感知机是SVM和神经网络的基础。
神经元
f()函数理想中为阶跃函数,但实际中应用sigmoid函数
感知机与神经元
感知机(Perceptron)由两层神经元组成(输入层、输出层),输入层接收外界输入信号后传递给输出层,输出层是M-P神经元,亦称“阈值逻辑单元”(threshold logic unit)。
输入层只接受输入而没有权重以及阈值,输出层的神经元有阈值,两层间连接有权重。
把阈值当做是第n+1个权重,第n+1个输入是-1,那么就可以把阈值放进权重里了。那么只需要做权重的学习。
根据错误程度进行调整。
这样两层神经元只能处理线性问题,而非线性问题则需要多层网络。
输入输出层之间的叫做隐层。
误差逆传播算法
权重的学习用感知机那一套不行了,所以用了更强大的BP算法。
所有的参数如上图所示。
有两种BP算法,一种标准BP算法,每次更新只针对单个样本,更新频繁;另一种是累积BP算法,用累积误差最小化来进行更新,读取整个训练集之后才会进行一次更新。很多情况下先用累积BP,下降到一定程度,下降缓慢,再使用标准BP往往会有很好的效果。
详细讲一下标准BP算法。
同理可以得到其他三个参数的更新
另一种累积误差BP算法。
累积误差:
只需要一个包含足够多神经元的隐层,多层前馈网络就能以任意精度逼近任意复杂度的连续函数。
表示能力太强大,容易过拟合,有如下两个解决方案:
局部极小与全局最小
这个就跟高数中讲的一样,使用梯度下降法,找到的是局部极小值,如何跳出局部极小来找到全局最小?