2018-7-20

感知机,PLA

多层感知机是由感知机推广而来,感知机的神经网络表示如下: 

                                                                    

表达式:

从上述内容更可以看出,PLA是一个线性的二分类器,但不能对非线性的数据并不能进行有效的分类。因此便有了对网络层次的加深,理论上,多层网络可以模拟任何复杂的函数。

多层感知机,MLP

多层感知机(Multi-Layer perception)的一个重要特点就是多层,我们将第一层称之为输入层,最后一层称之有输出层,中间的层称之为隐层。MLP并没有规定隐层的数量,因此可以根据各自的需求选择合适的隐层层数。且对于输出层神经元的个数也没有限制。 除了输入层外,其余的每层激活函数均采用 sigmod ,MLP 容易受到局部极小值与梯度弥散的困扰。
MLP神经网络结构模型如下,本文中只涉及了一个隐层,输入只有三个变量\small [x_1,x_2,x_3]和一个偏置量\small b,输出层有三个神经元。相比于感知机算法中的神经元模型对其进行了集成。 网络结构如下图:

                                                          

MLP的前向传播

前向传播指的是信息从第一层逐渐地向高层进行传递的过程。以下图为例来进行前向传播的过程的分析。 
假设第一层为输入层,输入的信息为\small [x_1,x_2,x_3]。对于层\small L_l,用\small L_l表示该层的所有神经元,其输出为\small {\bf y}_l,其中第j个节点的输出为\small y_l^{(j)},该节点的输入为\small u_l^{(j)},连接第\small l层与第\small (l-1)\small (l-1)\small (l-1)层的权重矩阵为\small W_l,上一层(第\small l-1层)的第i个节点到第\small l层第\small j个节点的权重为\small w_l^{(ji)}

结合之前定义的字母标记,对于第二层的三个神经元的输出则有:

将上述的式子转换为矩阵表达式:

                                 \small {\mathbf y_2}= \left[ \begin{array}{c}y_2^{(1)}\\y_2^{(2)}\\y_2^{(3)}\\ \end{array} \right]=f \left( \left[ \begin{array}{ccc} w_2^{11}&w_2^{12}&w_2^{13}\\ w_2^{21}&w_2^{22}&w_2^{23}\\ w_2^{31}&w_2^{32}&w_2^{33}\\ \end{array} \right] \left[ \begin{array}{c}x_1\\x_2\\x_3\\ \end{array} \right]+ \left[ \begin{array}{c}b_2^{(1)}\\b_2^{(2)}\\b_2^{(3)}\\ \end{array} \right] \right) =f({\mathbf {W_2X+b_2}})

将第二层的前向传播计算过程推广到网络中的任意一层,则: 

                              \small \left\{ \begin {aligned} &y_l^{(j)} = f\left(u_l^{(j)}\right)\\ &u_l^{(j)}=\sum_{i \in L_{l-1}} w_l^{(ji)} y_{l-1}^{(i)} + b_l^{(j)}\\ &\mathbf y_l = f(\mathbf u_l ) = f(\mathbf W_l\mathbf y_{l-1}+\mathbf b_l) \end {aligned} \right.

其中\small f(\cdot)为激活函数,\small b_l^{(j)}为第\small l层第\small j个节点的偏置。

反向传播

使用反向传播来调整MLP模型中的参数。由于存在多层的网络结构,因此无法直接对中间的隐层利用损失来进行参数更新,但可以利用损失从顶层到底层的反向传播来进行参数的估计。反向传播的具体推倒明天再开一篇博客介绍。

 

 

 

 

 

 

 

 

 

 

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐