目录
1.感知机
1.模型的介绍和学习策略
1.模型的介绍

2.模型的几何意义

3.学习策略:条件

2.梯度下降法
1.梯度的概念

2.梯度下降法

3.例子


3.感知机的原始形式
1.学习问题

2. 梯度下降方法

3.原始算法

4.感知机的对偶形式
1.对偶形式

2.对偶形式的算法

3.Gram矩阵

4.例题分析





参考代码:
import numpy as np
import matplotlib.pyplot as plt
def Gram(x_list):
''' 计算Gram矩阵 '''
G = [[0 for j in range(len(x_list))] for i in range(len(x_list))]
for i in range(len(x_list)):
for j in range(i, len(x_list)):
G[i][j] = x_list[i][0] * x_list[j][0] + x_list[i][1] * x_list[j][1]
G[j][i] = G[i][j]
return G
def Perceptron_Study_antithesis(x_list, y_list):
alpha = np.zeros(len(y_list))
b = 0
rate = 1 # 学习率
item = 0 # 迭代次数
G = Gram(x_list) # 计算Gram矩阵
while True:
flag = 0
for i in range(len(y_list)):
temp = 0
for j in range(len(y_list)):
temp += alpha[j] * y_list[j] * G[j][i]
if y_list[i] * (temp + b) > 0:
flag += 1
continue
else:
item += 1
alpha[i] += rate
b += y_list[i] * rate
print('第{}次迭代:alpha = ({},{}, {}), b = {}, 误分类点:({},{})'.format(item, alpha[0], alpha[1],
alpha[2], b, x_list[i][0],
x_list[i][1]))
break
if flag == len(y_list): # 全部分对,不再调整方程
w = [0, 0]
for i in range(len(y_list)):
w[0] += alpha[i] * y_list[i] * x_list[i][0]
w[1] += alpha[i] * y_list[i] * x_list[i][1]
print('超平面方程为: {}*x1 + {}*x2 + {} = 0'.format(w[0], w[1], b))
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
plt.xlabel('X')
plt.ylabel('Y')
plt.xlim(xmax=5, xmin=0)
plt.ylim(ymax=5, ymin=0)
x1 = np.array([3, 4])
y1 = np.array([3, 3])
x3 = np.array([1])
y3 = np.array([1])
plt.scatter(x1, y1, marker='o', alpha=1, color="red", label='正类')
plt.scatter(x3, y3, marker='x', alpha=1, color="green", label='负类')
x2 = np.arange(0, 5, 0.1)
y2 = -((w[0]) * x2 + b) / (w[1] + 0.000001)
plt.plot(x2, y2, label="拟合直线", c='orange')
plt.legend()
plt.title('感知机对偶形式') # 图的标题
plt.show()
break
if __name__ == '__main__':
x_list = [(3, 3), (4, 3), (1, 1)]
y_list = [1, 1, -1]
Perceptron_Study_antithesis(x_list, y_list)
5.算法的收敛性
1.收敛性的定理

2. 收敛性的证明






该文详细介绍了感知机的学习策略,包括模型介绍、几何意义和学习条件。接着,阐述了梯度下降法的概念和应用,并展示了在感知机原始形式中的使用。此外,还探讨了感知机的对偶形式及其算法,以及Gram矩阵的计算。最后,提到了算法的收敛性定理和证明,并提供了一个实际的Python代码示例来实现感知机学习过程。


1431

被折叠的 条评论
为什么被折叠?



