Day04-《西瓜书》-神经网络(DataWhale)

五、神经网络

(neural networks)

5.1 神经元模型

(neuron)

Day04-《西瓜书》-神经网络(DataWhale)_第1张图片

神经元接收到来自n个其他神经元传递的输入信号,这写信号通过带权重的连接进行传递,神经元接受到的总输入值与神经元的阈值进行比较后,通过激活函数处理产生神经元的输出。

激活函数

Day04-《西瓜书》-神经网络(DataWhale)_第2张图片

理想的激活函数是阶跃函数,但是阶跃函数步连续,不光滑。实际使用Sigmoid函数。

将一个神经网络视为包含了许多参数的数学模型,这个模型有若干个函数。例如 y i = f ( ∑ i w i x i − θ j ) y_i = f(\sum_iw_ix_i-\theta_j) yi=f(iwixiθj)

10个神经元两两连接,有100个参数:90个连接权和10个阈值

5.2 感知机

Day04-《西瓜书》-神经网络(DataWhale)_第3张图片

感知机(Perceptron):由两层神经元组成,输入层接受外界输入信号后传递给输出层,输出层是M-P神经元(阈值逻辑单元(threshold logic unit))

假定 f f f是阶跃函数,有

  • ”与“( x 1 ∧ x 2 x_1\wedge x_2 x1x2):令 w 1 = w 2 = 1 , θ = 2 w_1=w_2=1,\theta=2 w1=w2=1,θ=2,则 y = f ( 1 ⋅ x 1 + 1 ⋅ x 2 − 2 ) y=f(1·x_1+1·x_2-2) y=f(1x1+1x22),仅在 x 1 = x 2 = 1 x_1=x_2=1 x1=x2=1时, y = 1 y=1 y=1
  • “或”( x 1 ∨ x 2 x_1 \vee x_2 x1x2):当 w 1 = w 2 = 1 , θ = 0.5 w_1=w_2=1,\theta=0.5 w1=w2=1,θ=0.5,则 y = f ( 1 ⋅ x 1 + 1 ⋅ x 2 − 0.5 ) y=f(1·x_1+1·x_2-0.5) y=f(1x1+1x20.5),当 x 1 = 1 x_1=1 x1=1 x 2 = 1 x_2=1 x2=1 y = 1 y=1 y=1
  • ”非“( ¬ x 1 \neg x_1 ¬x1):当 w 1 = − 0.6 , w 2 = 0 , θ = − 0.5 w_1=-0.6,w_2=0,\theta=-0.5 w1=0.6,w2=0,θ=0.5,则 y = f ( − 0.6 ⋅ x 1 + 0 ⋅ x 2 + 0.5 ) y=f(-0.6·x_1+0·x_2+0.5) y=f(0.6x1+0x2+0.5),当 x 1 = 1 , y = 0 x_1=1,y=0 x1=1,y=0;当 x 1 = 0 x_1=0 x1=0 y = 1 y=1 y=1

​ 一般的,给定训练数据集,权重 w i ( i = 1 , 2 , . . . , n ) w_i(i=1,2,...,n) wi(i=1,2,...,n)以及阈值 θ \theta θ可通过学习得到。阈值 θ \theta θ可看作一个固定输入为-1.0的”哑结点“(dummy node)所对应的连接权重 w n + 1 w_{n+1} wn+1,权重和阈值的学习可以同一为权重的学习。

​ 感知机学习规则:对训练样例 ( x , y ) (x,y) (x,y),若当前感知机的输出为 y ^ \hat{y} y^,则感知机权重可以调整为:
w i ← w i + Δ w i Δ w i = η ( y − y ^ ) x i \begin{aligned} w_i &\leftarrow w_i+\Delta w_i \\ \Delta w_i &= \eta(y-\hat{y})x_i \end{aligned} wiΔwiwi+Δwi=η(yy^)xi
其中 η ∈ ( 0 , 1 ) \eta \in (0,1) η(0,1)为学习率(一般设置为小整数,例如0.1)

​ 如果感知机对训练样例 ( x , y ) (x,y) (x,y)预测正确,即 y ^ = y \hat{y}=y y^=y,则感知机不会发生变化,否则将根据错误的程度进行权重调整。

​ 感知机只有输出层神经元进行激活函数处理,只拥有一层功能神经元,学习能力有限。

【**线性可分:**若两类模式是线性可分的,即存在一个线性超平面能将他们分开】

Day04-《西瓜书》-神经网络(DataWhale)_第4张图片

若两类模式是线性可分的【图(a~c)】,则感知机的学习过程一定是收敛(converge)的,从而求得适当的权向量 w = ( w 1 , w 2 , . . . , w n + 1 ) w=(w_1,w_2,...,w_{n+1}) w=(w1,w2,...,wn+1);否则感知机学习过程会发生震荡(fluctuation), w w w难以稳定,不能求得合适解。

5.3 多层网络

解决非线性问题
Day04-《西瓜书》-神经网络(DataWhale)_第5张图片

​ 图(a),输出层与输入层之间的一层神经元,称为隐层或隐含层(hidden layer),隐含层和输出层神经元都是拥有激活函数的功能神经元

多层前馈神经网络(multi-layer feedforward neural networks)

Day04-《西瓜书》-神经网络(DataWhale)_第6张图片

​ 每层神经元与下一层神经元全互连,神经元之间不存在同层连接,也不存在跨层连接。

​ 输入层神经元接受外界输入,隐层与输出层神经元对信号进行加工,最终结果由输出层神经元输出。

​ 神经网络的学习过程,就是根据训练数据来调整神经元之间的”连接权“(connection weight)以及每个功能神经元的阈值

5.4 误差逆传播算法(BP)

(error BackPropagation)

用于训练多层网络,BP算法不仅适用于多层前馈神经网络,还可以用于其他神经网络

原理

Day04-《西瓜书》-神经网络(DataWhale)_第7张图片

给定训练集 D = ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x m , y m ) , x i ∈ R d , y i ∈ R l D = {(x_1,y_1),(x_2,y_2),...,(x_m,y_m)},x_i \in \mathbb{R}^d,y_i\in\mathbb{R}^l D=(x1,y1),(x2,y2),...,(xm,ym),xiRd,yiRl

即:输入实例又 d d d 个属性描述,输出 l l l 维实值向量

图5.7:

  • d d d 个输入神经元,

  • l l l 个输出神经元,

  • q q q 个隐层神经元的多层前馈网络结构,

  • 输出层的第 j j j 个神经元的阈值用 θ j \theta_j θj 表示,

  • 隐层第 h h h 个神经元的阈值用 γ h \gamma_h γh表示

  • 输入层第 i i i 个神经元与隐层第 h h h 个神经元之间的连接权为 v i h v_{ih} vih

  • 输出层第 i i i 个神经元之间的连接权为 w h j w_{hj} whj

  • 隐层第 h h h 个神经元接收到的输入为 α h = ∑ i = 1 d v i h x i \alpha_h=\sum_{i=1}^d v_{ih}x_i αh=i=1dvihxi

  • 输出层第 j j j 个神经元接收的输入为 β j = ∑ h = 1 q w h j b h \beta_j = \sum_{h=1}^qw_{hj}b_h βj=h=1qwhjbh b h b_h bh为隐层第 h h h个神经元的输出

假设隐层和输出层神经元都使用Sigmoid函数 f ( x ) = 1 1 + e − x f(x)=\frac{1}{1+e^{-x}} f(x)=1+ex1

​ 对训练例 ( x k , y k ) (x_k,y_k) (xk,yk),假定神经网络的输出 y ^ k = ( y ^ 1 k , y ^ 2 k , . . . , y ^ l k ) \hat{y}_k=(\hat{y}^k_1,\hat{y}^k_2,...,\hat{y}^k_l) y^k=(y^1k,y^2k,...,y^lk),即:
y ^ j k = f ( β j − θ j ) \hat{y}_j^k = f(\beta_j-\theta_j ) y^jk=f(βjθj)
则网络在 ( x k , y k ) (x_k,y_k) (xk,yk)上的均方误差为:
E k = 1 2 ∑ j = 1 l ( y ^ j k − y j k ) 2 E_k = \frac{1}{2}\sum_{j=1}^l(\hat{y}^k_j-y_j^k)^2 Ek=21j=1l(y^jkyjk)2

你可能感兴趣的:(机器学习(理论篇))