机器学习笔记10-神经网络
感知器:
会有一些输入,将它们视为放电频率或输入的强度,在这种情况下 即 X1、X2 和 X3 把他们相应地乘以权值 w1、w2 和 w3,在这里 权值基本相当于神经元 (即这个单元) 对每个输入的增益或敏感性。
现在对所有输入求和,强度乘以权值,就是激发函数。然后我们看看函数的值是否大于等于激发阈,决定输出。
即线性加权和后跟一个阈值二值化方法
感知器就是一个线性函数,它计算的是超平面
可以执行‘与’运算,也叫做逻辑积:
改变权重和阈值,可变为‘或’运算:
还有‘非’运算:
就可以表达任何布尔函数
训练感知器:
两个方法
一个是感知器规则
另一个是梯度下降或德尔塔定律。
它们之间的差别是感知器规则利用的是阈值输出,而另一个机制不使用阈值
感知器规则:
如何设置单一单元的权值,以使其符合特定的训练集
阈值定位0,寻找权重。
y是实际结果
y^是预测结果
n是学习速率
x是输入
当误差不够小时,循环改变权重(第二行)
但该算法只适合线性可分,所以为了算法更为健壮,我们使用梯度下降法:
我们之前做的是:我们把不同的输入特征乘以其对应的权值 w,然后求和,我们把所有这些加起来得出**函数,然后通过比较**函数值是否大于或等于 0 来得出预计输出
a:**函数
现在对实际值和**函数的误差进行梯度下降,为什么不用与y^的误差呢,主要原因是不可导(不是连续函数)。从**函数到 y^ 有一个巨大的跳跃 ,就是y^ 等于 0 的时候(突变跃迁不可导)
Sigmoid 的意思就是 s 形函数
如果用Sigmoid函数来替换y^,则可导可微,能够计算调整权重对输出的影响。
更新函数:
但如果是大量复杂数据使用梯度下降法,就会很容易陷入局部最优解
过多的节点,隐藏层,或者过大的权重,都会导致过拟合