神经网络的基本组成

引入

回忆一下高中生物中学到的知识:当一个神经元受到足够强的刺激的时候,就会被激活向下一个神经元释放递质,然后激活下一个神经元,以此类推,最终将信号传导到需要的地方。
那么我们的神经网络也是由此而来建模而来,我们需要着重需要定义的一些量就是:

  1. 怎么样才算足够强的刺激
  2. 如何表示被激活
  3. 如何向下一个神经元传递信息

神经元

一般神经网络都会非常大,所以神经元定义要尽量的简单。一般用一个线性组合+激活函数来表示。
1139760-20180809151440944-1688462042.png
线性组合:
\[g(x)=\mathrm{w}^T\mathrm{x} \]
偏置项隐含表示在\(x_0\)里。

激活函数:
\[f(z)=\begin{equation}\nonumber\begin{cases}1\qquad z>0\\0\qquad otherwise\end{cases}\end{equation}\]
即用阶跃函数表示激活函数。

神经元:
\[y=f(x)=\begin{equation}\nonumber\begin{cases}1\qquad \mathrm{w}^T\mathrm{x}>0\\0\qquad otherwise\end{cases}\end{equation}\]

那么我们可以理解成线性组合表示刺激的大小,而激活函数定义了多大刺激可以激活神经元,最终神经元就表示了这样。
其实这就是个感知机

但是这里我们为了后面方便求导,用sigmoid来表示激活函数
\[sigmoid(x)=\frac{1}{1+e^{-x}}\]
激活函数也可以选择普通的阶跃函数,这里选择sigmoid是因为方便后面的求导。

那么神经元就是:
\[y=\frac{1}{1+e^{-\vec{w}^T\centerdot\vec{x}}}\]

神经网络

1139760-20180809154200086-944662030.png
那么将神经元用一定的规则进行连接就可以得到神经网络。
上图是一个全连接(full connected)的神经网络,我们以这个神经网络作为例子。

这里要对神经网络的一些基本的部分进行说明。

  • 输入层,即输入x的那一层。
  • 输出层,即输出y的那一层。
  • 隐层,输入层和输出层之间不管隔了多少层都叫隐层。

这里以计算某一个输出\(y_1\)为例:
\[\begin{align}\nonumber y_1&=sigmoid(\vec{w}^T\centerdot\vec{a})\\ \nonumber &=sigmoid(w_{84}a_4+w_{85}a_5+w_{86}a_6+w_{87}a_7+w_{8b}) \end{align}\]

那么\(a_4\)就是:
\[\begin{align}\nonumber a_4&=sigmoid(\vec{w}^T\centerdot\vec{x})\\ \nonumber &=sigmoid(w_{41}x_1+w_{42}x_2+w_{43}x_3+w_{4b}) \end{align}\]
其他\(a\)的值同理。

向量表示

那么第一个隐层的向量\(\vec{a}\)
\[ \vec{a}= \begin{bmatrix} a_4 \\ a_5 \\ a_6 \\ a_7 \\ \end{bmatrix} \]
对应的权重:
\[ W= \begin{bmatrix} \vec{w}_4 \\ \vec{w}_5 \\ \vec{w}_6 \\ \vec{w}_7 \\ \end{bmatrix}= \begin{bmatrix} w_{41},w_{42},w_{43},w_{4b} \\ w_{51},w_{52},w_{53},w_{5b} \\ w_{61},w_{62},w_{63},w_{6b} \\ w_{71},w_{72},w_{73},w_{7b} \\ \end{bmatrix} \]
对此过程不清楚的可以翻译参考1。

由此我们其实可以看出,一层的权重可以用一个矩阵来表示,那么整个神经网络的权重就可以用一个三维的张量来表示了。所有一般来说神经网络的权重会表示成一个三维的数组。

前向计算

那么对于这样的一个神经网络:
1139760-20180809163731844-178685581.png

我们可以使用这样的一个过程:
\[ \begin{align}\nonumber &\vec{a}_1=f(W_1\centerdot\vec{x})\\ \nonumber &\vec{a}_2=f(W_2\centerdot\vec{a}_1)\\ \nonumber &\vec{a}_3=f(W_3\centerdot\vec{a}_2)\\ \nonumber &\vec{y}=f(W_4\centerdot\vec{a}_3)\\ \nonumber \end{align} \]
\(\vec{x}\)得到\(\vec{y}\)
这个过程就叫做前向计算。

参考

  1. 零基础入门深度学习

转载于:https://www.cnblogs.com/nevermoes/p/DL_1.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值