什么是神经网络?
在生物学中,多个神经元之间会通过轴突传递信息,神经元收到信息后会做出某种反应或者加工处理信息再传给其他神经元。利用这种机理,我们可以创造出人工神经网络,也就是机器学习中的神经网络,但机器学习中的神经网络还是有所不同的,在机器学习中,神经网络大概会呈现出下面这种形状,它包含输入层(Input Layer)、输出层(Out Layer)、隐藏层(Hidden Layer)。
根据我的个人理解,生物学中的神经网络结构更类似于一种立体网状结构,机器学习中的神经网络更类似于一种层状结构,把上层的信息通过加工处理传递给下一层。(这种说法可能不太正确,但我们可以这样理解)。每个节点(图中的圆圈)代表一种特定的输出函数,称为激励函数(activation function)。每两个节点间的连接都代表一个对于通过该连接信号的加权值,称之为权重,这相当于人工神经网络的记忆。
模型表示
一般表示
用一个简单的神经网络,如下图,该神经网络一共三层,分别为输入层、隐藏层、输出层。用ai(j)a_i^{(j)}ai(j)表示第jjj层的第iii个激活单元;用Θ(j)\Theta^{(j)}Θ(j)表示从第jjj层到第j+1j+1j+1的权重矩阵。

第二层:
a1(2)=g(Θ10(1)x0+Θ11(1)x1+Θ12(1)x2+Θ13(1)x3)
a_1^{(2)}=g(\Theta_{10}^{(1)}x_0+\Theta_{11}^{(1)}x_1+\Theta_{12}^{(1)}x_2+\Theta_{13}^{(1)}x_3)
a1(2)=g(Θ10(1)x0+Θ11(1)x1+Θ12(1)x2+Θ13(1)x3)
a1(2)=g(Θ20(1)x0+Θ21(1)x1+Θ22(1)x2+Θ23(1)x3)
a_1^{(2)}=g(\Theta_{20}^{(1)}x_0+\Theta_{21}^{(1)}x_1+\Theta_{22}^{(1)}x_2+\Theta_{23}^{(1)}x_3)
a1(2)=g(Θ20(1)x0+Θ21(1)x1+Θ22(1)x2+Θ23(1)x3)
a1(2)=g(Θ30(1)x0+Θ31(1)x1+Θ32(1)x2+Θ33(1)x3)
a_1^{(2)}=g(\Theta_{30}^{(1)}x_0+\Theta_{31}^{(1)}x_1+\Theta_{32}^{(1)}x_2+\Theta_{33}^{(1)}x_3)
a1(2)=g(Θ30(1)x0+Θ31(1)x1+Θ32(1)x2+Θ33(1)x3)
第三层:
hΘ(x)=a1(3)=g(Θ10(2)a0(2)+Θ11(2)a1(2)+Θ12(2)a2(2)+Θ13(2)a3(2))
h_{\Theta}(x)=a_1^{(3)}=g(\Theta_{10}^{(2)}a_0^{(2)}+\Theta_{11}^{(2)}a_1^{(2)}+\Theta_{12}^{(2)}a_2^{(2)}+\Theta_{13}^{(2)}a_3^{(2)})
hΘ(x)=a1(3)=g(Θ10(2)a0(2)+Θ11(2)a1(2)+Θ12(2)a2(2)+Θ13(2)a3(2))
上面公式中的g(⋅)g(·)g(⋅)为SigmaSigmaSigma函数.
如果第jjj层有sjs_jsj个单元,第j+1j+1j+1层有sj+1s_{j+1}sj+1个单元,那么权重矩阵Θ(j)\Theta^{(j)}Θ(j)的大小为sj+1×(sj+1)s_{j+1}\times (s_{j}+1)sj+1×(sj+1)
向量表示
还是上面的神经网络,只不过这次我们加上了偏置项。

在一般的表示中,
a1(2)=g(Θ10(1)x0+Θ11(1)x1+Θ12(1)x2+Θ13(1)x3)
a_1^{(2)}=g(\Theta_{10}^{(1)}x_0+\Theta_{11}^{(1)}x_1+\Theta_{12}^{(1)}x_2+\Theta_{13}^{(1)}x_3)
a1(2)=g(Θ10(1)x0+Θ11(1)x1+Θ12(1)x2+Θ13(1)x3)
a1(2)=g(Θ20(1)x0+Θ21(1)x1+Θ22(1)x2+Θ23(1)x3)
a_1^{(2)}=g(\Theta_{20}^{(1)}x_0+\Theta_{21}^{(1)}x_1+\Theta_{22}^{(1)}x_2+\Theta_{23}^{(1)}x_3)
a1(2)=g(Θ20(1)x0+Θ21(1)x1+Θ22(1)x2+Θ23(1)x3)
a1(2)=g(Θ30(1)x0+Θ31(1)x1+Θ32(1)x2+Θ33(1)x3)
a_1^{(2)}=g(\Theta_{30}^{(1)}x_0+\Theta_{31}^{(1)}x_1+\Theta_{32}^{(1)}x_2+\Theta_{33}^{(1)}x_3)
a1(2)=g(Θ30(1)x0+Θ31(1)x1+Θ32(1)x2+Θ33(1)x3)
提取,
z1(2)=Θ10(1)x0+Θ11(1)x1+Θ12(1)x2+Θ13(1)x3
z_1^{(2)}=\Theta_{10}^{(1)}x_0+\Theta_{11}^{(1)}x_1+\Theta_{12}^{(1)}x_2+\Theta_{13}^{(1)}x_3
z1(2)=Θ10(1)x0+Θ11(1)x1+Θ12(1)x2+Θ13(1)x3
z2(2)=Θ20(1)x0+Θ21(1)x1+Θ22(1)x2+Θ23(1)x3
z_2^{(2)}=\Theta_{20}^{(1)}x_0+\Theta_{21}^{(1)}x_1+\Theta_{22}^{(1)}x_2+\Theta_{23}^{(1)}x_3
z2(2)=Θ20(1)x0+Θ21(1)x1+Θ22(1)x2+Θ23(1)x3
z3(2)=Θ30(1)x0+Θ31(1)x1+Θ32(1)x2+Θ33(1)x3
z_3^{(2)}=\Theta_{30}^{(1)}x_0+\Theta_{31}^{(1)}x_1+\Theta_{32}^{(1)}x_2+\Theta_{33}^{(1)}x_3
z3(2)=Θ30(1)x0+Θ31(1)x1+Θ32(1)x2+Θ33(1)x3
x=[x0x1x2x3],z(2)=[z1(2)z2(2)z3(2)]
\pmb{x}=\begin{bmatrix}x_0\\x_1\\x_2\\x_3\end{bmatrix},\quad \pmb{z^{(2)}}=\begin{bmatrix}z_1^{(2)}\\
z_2^{(2)}\\
z_3^{(2)}\end{bmatrix}
xxx=⎣⎢⎢⎡x0x1x2x3⎦⎥⎥⎤,z(2)z(2)z(2)=⎣⎢⎡z1(2)z2(2)z3(2)⎦⎥⎤
用向量的运算表示为:
z(2)=Θ(1)a(1)=Θ(1)x
z^{(2)}=\Theta^{(1)}\pmb{a^{(1)}}=\Theta^{(1)}\pmb{x}
z(2)=Θ(1)a(1)a(1)a(1)=Θ(1)xxx
a(2)=g(z(2))
\pmb{a^{(2)}}=g(z^{(2)})
a(2)a(2)a(2)=g(z(2))
添加偏置项a0(2)=1,a_0^{(2)}=1,a0(2)=1,
z(3)=Θ(2)a(2)
z^{(3)}=\Theta^{(2)}\pmb{a^{(2)}}
z(3)=Θ(2)a(2)a(2)a(2)
hΘ(x)=a(3)=g(z(3))
h_\Theta(x)=a^{(3)}=g(z^{(3)})
hΘ(x)=a(3)=g(z(3))
当然,神经网络可以有很多层(如下图),但都可以通过上面的方法进行正向运算。

实例
为了方便理解,我们用一个较为简单的例子。用神经网络来表示逻辑关系中的AND、OR、XNOR
- 与运算
令,
x1,x2∈{0,1},y=x1ANDx2 x_1,x_2\in\left\{0,1\right\},\quad y=x_1\pmb{AND}x_2 x1,x2∈{0,1},y=x1ANDANDANDx2
则,

hΘ(x)=g(−30+20x1+20x2)
h_\Theta(x)=g(-30+20x_1+20x_2)
hΘ(x)=g(−30+20x1+20x2)
根据SigmaSigmaSigma函数的性质(待补充)

2. 或运算

hΘ(x)=g(−10+20x1+20x2)
h_\Theta(x)=g(-10+20x_1+20x_2)
hΘ(x)=g(−10+20x1+20x2)

3. 非运算

hΘ(x)=g(10−20x1)
h_\Theta(x)=g(10-20x_1)
hΘ(x)=g(10−20x1)

4. XNOR运算
也许通过上面的几个运算你仍对神经网络理解的不够深刻,那么这个运算可以让你加深一下印象,同时也能让你感受一下神经网络的魅力。
先用下面几个运算作为铺垫,
- x1ANDx2x_1ANDx_2x1ANDx2

- (NOT x1)AND(NOT x2)(NOT\,x_1)AND(NOT\,x_2)(NOTx1)AND(NOTx2)

- x1ORx2x_1ORx_2x1ORx2

XNOR运算:
XNOR运算可以结合上面三种运算来进行计算,如下图


本文介绍了神经网络的基本概念,包括其在生物学中的灵感来源及其在机器学习中的应用。文章详细解释了神经网络的结构组成,如输入层、隐藏层和输出层,并通过数学公式展示了神经网络如何进行信息处理。
4826

被折叠的 条评论
为什么被折叠?



