个人博客:https://luxialan.com

深度学习基础(一)神经网络 分类: 深度学习 2015-01-19 21:29 84人阅读 评论(0) 收藏

由生物学基础我们知道,神经网络是有无数个神经元和连接这些神经元的突触构成的,某个神经元接受一系列的电信号刺激,当这个刺激达到一定的阀值后,这个神经元就被激活,通过突触将某些信息传递给下一个神经元。每个神经元可以看成是一个激活函数(activation function),输入值为强度大小不同的电刺激,输出值为传递给下一个神经元的刺激。

我们先来看神经网络最简单的形式,神经元。

SingleNeuron.png

输入:

x1,x2,x3 和 +1

输出:

\textstyle h_{W,b}(x) = f(W^Tx) = f(\sum_{i=1}^3 W_{i}x_i +b)

最常见的激活函数形式有:

 f(z) = \frac{1}{1+\exp(-z)}.                           

Sigmoid activation function.

f(z) = \tanh(z) = \frac{e^z - e^{-z}}{e^z + e^{-z}},


Tanh activation function.

神经网络由多个神经元组成:

Network331.png

为了方便表示,我们定义一些符号:

nl:神经网络的层数  Ll为输入层   L_{n_l} 为输出层

W^{(l)}_{ij}  :是第l层的第j个单元与第l+1层的第i个单元之间的参数

 a^{(l)}_i   :表示的是第l层的第i个单元被激活(激活函数的输出值) l=1时候代表输入值x

z^{(l)}_i :表示的是第l层的第i个单元的所有输入值

\textstyle z_i^{(2)} = \sum_{j=1}^n W^{(1)}_{ij} x_j + b^{(1)}_i

a^{(l)}_i = f(z^{(l)}_i).

于是我们有:

\begin{align}a_1^{(2)} &= f(W_{11}^{(1)}x_1 + W_{12}^{(1)} x_2 + W_{13}^{(1)} x_3 + b_1^{(1)})  \\a_2^{(2)} &= f(W_{21}^{(1)}x_1 + W_{22}^{(1)} x_2 + W_{23}^{(1)} x_3 + b_2^{(1)})  \\a_3^{(2)} &= f(W_{31}^{(1)}x_1 + W_{32}^{(1)} x_2 + W_{33}^{(1)} x_3 + b_3^{(1)})  \\h_{W,b}(x) &= a_1^{(3)} =  f(W_{11}^{(2)}a_1^{(2)} + W_{12}^{(2)} a_2^{(2)} + W_{13}^{(2)} a_3^{(2)} + b_1^{(2)}) \end{align}


将z向量化表示后:

\begin{align}z^{(2)} &= W^{(1)} x + b^{(1)} \\a^{(2)} &= f(z^{(2)}) \\z^{(3)} &= W^{(2)} a^{(2)} + b^{(2)} \\h_{W,b}(x) &= a^{(3)} = f(z^{(3)})\end{align}

最后化简得到:

\begin{align}z^{(l+1)} &= W^{(l)} a^{(l)} + b^{(l)}   \\a^{(l+1)} &= f(z^{(l+1)})\end{align}

这个就是所谓的向前传导(forward propagation),可以理解为刺激由左往右逐层传递,最后输出一个值。


参考资料http://deeplearning.stanford.edu/wiki/index.php/UFLDL_Tutorial

版权声明:本文为博主原创文章,未经博主允许不得转载。

posted @ 2015-01-19 21:29  luxialan  阅读(142)  评论(0编辑  收藏  举报