人工神经网络

289 阅读2分钟

基于仿生学神经元的MP模型

屏幕快照 2021-05-20 11.25.50.png

感知器算法

在第二步时,训练样本并没有达到平衡,此时要改变W和b的值,通过不断的循环,知道第二步达到平衡时,退出循环,具体算法步骤如下:

屏幕快照 2021-05-20 11.31.42.png

屏幕快照 2021-05-20 11.37.22.png

注意:只要数据集线性可分,感知器算法一定可以实现线性可分。

为什么阶跃函数作为神经网络的非线性函数?

因为非线性网络采用阶跃函数,那么三层神经网络可以模拟任意非线性函数。

神经网络的层数和个数设定

要根据具体的应用场景来设置,比如场景非常简单的情况下,神经网络也可以设置简单些,实际应用场景非常复杂的情况,也可以将神经网络设计复杂些。

利用梯度下降法求解局部极小值

屏幕快照 2021-05-24 12.55.16.png

人工神经网络后向传播算法过程

屏幕快照 2021-05-27 23.50.03.png

屏幕快照 2021-05-27 23.51.27.png

对神经网络的改进

对非线性函数加以改造

由于阶跃函数在对0处求导时处于无限大,所以需要对阶跃函数加以改造

如下图所示为sigmoid 函数

屏幕快照 2021-05-29 17.17.38.png

双曲正切函数 tanh

屏幕快照 2021-05-29 17.21.56.png

改进后的非线性函数可以使得x在整个范围内都有导数,并且求导后的公式非常简便。

采用softmax 和交叉熵对目标函数进行改进

图中z 是目标结果,对目标结果进行soft Max进而得出y,y为这个目标占总的目标值的比重,为一个百分数,所有的y加一起概率和为1.

屏幕快照 2021-05-29 17.28.37.png

屏幕快照 2021-05-29 17.28.17.png

屏幕快照 2021-05-29 17.29.56.png

屏幕快照 2021-05-29 17.30.52.png

最后再通过梯度下降法对E(y)取局部最小值。这种对目标函数的改进可以有效的提高算法的精度。

随机梯度下降法

神经网络的训练过程如下图所示,若每输入一个数据或某一个数据影响整个参数的迭代更新,这样训练速度是非常慢的。

屏幕快照 2021-05-29 17.39.46.png

为了改变这种瓶颈,设置了一个batch,为一批样本。

屏幕快照 2021-05-29 17.41.55.png

根据batch的样本大小对所有的数据进行了一次遍历,这是一个epoch,训练过程中会训练多个epoch,对于每一个epoch,都会随机打乱所有的训练样本的次序,增加训练样本的随机性。

屏幕快照 2021-05-29 17.42.40.png

屏幕快照 2021-05-29 17.43.41.png