深度学习入门——前馈神经网络

        前馈神经网络作为深度学习基础中的基础,是很多同学入门深度学习的必经之路。由于马上要迎来考试复习周,在这里简单记录一下学习心得。

感知机模型

        感知机(perceptron)是深度学习中最基本的元素,很多模型的构成需要它的参与。感知机的结构如下:

深度学习入门——前馈神经网络_第1张图片

        其中X1,X2... Xn为模型输入,每一个Xi代表了一个特征。在上图的模型中,其接收了4个特征作为输入。Y为模型输出,给出模型分类结果。其中间计算过程如下:

Y=f(x)=sign(\omega \cdot x+b)         

其中\omega为权重向量,b为偏置。\omega\cdot x等同于\omega 1\ast x1+\omega 2\ast x2+\omega 3\ast x3+...+\omega n\ast xn。sign为符号函数,其计算方法如下:

 sign(x)=\left\{\begin{matrix} 0, x< 0& & \\ 1, x\geqslant 0& & \end{matrix}\right.

其作用是将计算结果按照任务要求分为两类。

        感知机模型的工作过程可以简单的理解为接收特征作为输入,通过权重和偏置与特征进行计算,并不断调整权重值和偏置值,对目标进行分类。

        感知机模型可以学习出一下几种分类方式:

        对于一个两个特征的样本的二分类问题,其数据和分类可以可视化在一个平面上。

        (1)与门

        输入和输出的关系如下:

x1 x2 y
0 0 0
0 1 1
1 0 1
1 1 1

         可以可视化为:

深度学习入门——前馈神经网络_第2张图片

         感知机模型可以很轻松的通过一条直线将两类区分,图中的斜线为感知机模型产生的分类线。

        (2)或门

        输入和输出的关系如下:

x1 x2 y
0 0 0
0 1 0
1 0 0
1 1 1

         可以可视化为:

深度学习入门——前馈神经网络_第3张图片

        感知机模型同样可以通过一条直线将样本分为两类。

        (3)异或门

        输入和输出的关系如下:

x1 x2 y
0 0 1
0 1 0
1 0 0
1 1 1

         可以可视化为:

深度学习入门——前馈神经网络_第4张图片

        由图可以看出感知机模型不能够通过一条直线将样本分为两类,那么需要如何应对此类的分类问题呢?

        我们已知异或门是由与门和或门拼接组成,其组成结构可以视为:

深度学习入门——前馈神经网络_第5张图片

        因此,只需要采用两层的感知机结构就可以解决异或问题。分类结果可以可视化为:

        

深度学习入门——前馈神经网络_第6张图片

        此外,对于更复杂的分类问题,多层感知机模型在理论上都可以找到分类方法。而通过堆叠多层感知机,就得到了我们要讲的前馈神经网络。     

前馈神经网络 

        为了让多层感知机模型进行可以自主优化,需要引入反向传播算法。反向传播算法使多层神经网络成为了可能,算法具体内容可以参考:反向传播算法。

深度学习入门——前馈神经网络_第7张图片

         其中输入层接收输入数据,隐藏层会逐层提取提取数据特征,再在输出层上分类输出。其中每一个细胞的工作原理都与感知机模型相似。模型计算方法如下:

z_{m}=\sum_{i=1}^{n}\omega _{im}x_{i}+b_{m}

o_{m}=f(z_{m})

其中f为激活函数。在没有激活函数时,模型的输出只会是输入的线性组合。而激活函数可以引入非线性因素,使模型输出更加复杂,从而提升模型的表达能力。

        在这里总结一下我对激活函数作用的简单理解。在未添加激活函数时,在二维平面上的分类线只会是直线的组合。当数据集需要用到特定的曲线进行分类时,比如分类曲线形状可能类似字母“S”,那么需要堆叠很多层的神经网络来产生很多小段直线去拟合“S”曲线。在添加激活函数后,模型本身的输出就是非线性的,因此在二维平面上的分类线可以是曲线。只需要较少层数的神经网络就可以完成对上述任务的拟合。

        常见的激活函数有Sigmoid,Relu,tanh等,之后有机会闲下来再总结。

你可能感兴趣的:(机器学习,深度学习,神经网络)