人工神经网络

(一)感知器

简单介绍

    感知器是一个输入层,一个输出层的单层神经网络,通常是给定输入,经过一个线性权重的连接后,输出1或者-1。这样的网络的拟合能力是有限的,例如:我们不能找到一条直线可以把图上的四个点区分开。


单层神经网络的缺点.png

权重更新

    更新法则如下,是学习率,通常是一个很小的数。

  • 当预测正确,即,则不进行权重更新
  • 当,,则增大正项的权重,减小负项的权重
  • 当,,则增大负项的权重,减小正项的权重

(二)多层神经网络

简单介绍

  • 一般有一个输入层,一个输出层和若干个隐藏层
  • 每一层的连接方式:
    1)先是线性连接 :
    2)再通过一个非线性的激活函数
  • 权重更新的方法有很多,这里只介绍梯度下降随机梯度下降以及这些算法的核心部分——Back Propagation 反向传播

Forward Propagation 前向传播

    设是NN的输出,下标代表处于该层的第几个元素,上标代表处于NN的第几层。

    损失函数用的是回归问题常用的Mean Square Error

Back Propagation 反向传播

    根据求导的链式法则,我们有:

其中,对于sigmoid激活函数来说,。
    所以接下来只要计算即可。
1)如果是输出层

2)如果是最后一个隐藏层,即输出层的前一层
\begin{align*} &\frac{\partial l}{\partial z_j^{l-1}} \\=& \sum_{i=1}^{l_n} \frac{\partial l}{\partial a_i^l}\frac{\partial a_i^l}{\partial z_j^{l-1}} \\ =& \sigma(z^{l-1}_j)(1- \sigma(z^{l-1}_j))\sum_{i=1}^{l_n}-(y_i - \hat{y}_i)\sigma(z^l_i)(1-\sigma(z^l_i))w_{ij} \end{align*}
其中,代表层的神经元个数。
3),这些都和2)中的过程一致

  • 总结
        算到3)的时候,相信你更能体会到这个方法为什么叫反向传播了。
    -- 对于每一层都是先接到上一层传递过来的(类似于前向传播中每层的输入)
    -- 然后再乘以该层的权重(前向传播中的线性变换)
    -- 最后乘以一个系数(前向传播中的激活函数)
    这样就可以得到权重更新时需要的梯度(导数的相反数),权重依据下式进行更新:

        最重要的是,BP做到了每个求导式子只计算了一次,从而大大增加了梯度求解的效率。

Gradient Descend —— 梯度下降

    梯度下降就是应用BP算法,对每个样本点都计算,,利用下式更新权重

Stochastic Gradient Descend —— 随机梯度下降

    梯度下降在更新权重的时候,需要计算所有的样本点的梯度,当样本量非常大的时候,将大大降低算法的效率,因此,随机梯度下降算法应运而生。
    其想法也很简单,就是在更新权重的时候我们可以每次只算一部分样本的梯度,这部分样本称为batch,设其大小为,那么权重更新用下式

注意:上述的每一个权重更新方法都不能保证NN可以收敛到全局最优点,有可能会陷入局部最优点。

你可能感兴趣的:(人工神经网络)