《机器学习》-周志华 第五章:神经网络 读书笔记

文章目录

      • 5.神经网络
        • 5.1 神经元(neuron)模型
        • 5.2感知机与多层网络
          • 5.2.1 感知机(perceptron)
        • 5.3 误差逆传播算法
          • 5.3.1 推导
          • 5.3.2 算法
          • 5.3.3 缓解过拟合
        • 5.4 全局最小与局部最小
        • 5.5 其他常见的神经网络
          • 5.5.1 REF(radial basis function ,径向基函数)网络
          • 5.5.2 ART(adaptive rsonance theory,自适应谐振理论)网络
        • 5.6 深度学习

5.神经网络

5.1 神经元(neuron)模型

下图为M-P神经元模型

《机器学习》-周志华 第五章:神经网络 读书笔记_第1张图片

神经元收到其他n个神经元传递的输入信号,输入信号通过带权重的连接进行连接,神经元将总输入值与神经元阈值进行比较,通过激活函数处理,产生输出。即
y = f ( ∑ i = 1 n w i x i − θ ) y = f(\sum_{i=1}^n w_ix_i - \theta) y=f(i=1nwixiθ)
激活函数为sigmoid函数
s i g m o i d ( x ) = 1 1 + e − x sigmoid(x) =\frac{1}{1+e^{-x}} sigmoid(x)=1+ex1
把许多这样的神经元按一定层次结构连接起来就得到神经网络。

5.2感知机与多层网络

5.2.1 感知机(perceptron)

由两层神经元组成,例:

《机器学习》-周志华 第五章:神经网络 读书笔记_第2张图片

可以把阈值 θ \theta θ看成一个值衡为-1,权重 w n + 1 w_{n+1} wn+1的输入。

  • 如果一个二分类的感知机(分类结果为0,1),两个模式线性可分,可以用下式学习(损失函数为 ∑ ( y ^ − y ) w T x \sum(\hat y-y)w^Tx (y^y)wTx
    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

  • 如果是非线性可分问题,需要考虑多层功能神经元。即有隐藏层,隐藏层和输出层都是有激活函数的功能神经元。

  • 多层前馈神经网络(multi-layer feedforwaed neural networks):每层神经元和下一层神经元全连接,神经元间没有同层连接,不存在跨层连接。

    • 输入层接受外界输入
    • 隐层和输出层包含功能神经元
    • “前馈”是指网络拓扑结构上不存在环或回路,并不是指网络中信号不能向后传。
  • 神经网络学习过程,就是学习权重和阈值的过程。

5.3 误差逆传播算法

误差逆传播/反向传播(back propagation),BP算法。

5.3.1 推导

训练集 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),\cdots,(x_m,y_m)},x_i \in R^d,y_i \in R^l D=(x1,y1),(x2,y2),,(xm,ym),xiRd,yiRl

  • 神经网络中,输入d维,输出 l l l维,隐藏层q维
    《机器学习》-周志华 第五章:神经网络 读书笔记_第3张图片

α h = ∑ i = 1 d v i h x i b h = f ( α h − γ h ) = 1 1 + e − ( α h − γ h ) β j = ∑ h = 1 q w h j b h y j = f ( β j − θ j ) = 1 1 + e − ( β j − θ j ) \begin{aligned} \alpha_h &= \sum_{i=1}^d v_{ih}x_i \\ b_h &= f(\alpha_h - \gamma_h) = \frac{1}{1+e^{-(\alpha_h -\gamma_h)}} \\ \beta_j &= \sum_{h=1}^q w_{hj}b_h \\ y_j &= f(\beta_j - \theta_j) = \frac{1}{1+e^{-(\beta_j-\theta_j)}} \end{aligned} αhbhβjyj=i=1dvihxi=f(αhγh)=1+e(αhγh)1=h=1qwhjbh=f(βjθj)=1+e(βjθj)1
在样本 ( x k , y k ) (x_k,y_k) (xk,yk)上的损失函数为
E k = ∑ j = 1 l ( y j − y ^ j ) 2 E_k = \sum_{j=1}^l(y_j - \hat y_j)^2 Ek=j=1l(yjy^j)2
梯度下降法迭代参数
∇ θ j = ∂ E k ∂ y ^ j ∂ y ^ j ∂ θ j = − ( y ^ j − y j ) y ^ j ( 1 − y ^ j ) ∇ w h j = ∂ E k ∂ y ^ j ∂ y ^ j ∂ β j ∂ β j ∂ w h j = ( y ^ j − y j ) y ^ j ( 1 − y ^ j ) b h ∇ v i h = ∑ j = 1 l ∂ E k ∂ y ^ j ∂ y ^ j ∂ β j ∂ β j ∂ b h ∂ b h ∂ α h ∂ α h ∂ v i h = ∑ j = 1 l ( y ^ j − y j ) y ^ j ( 1 − y ^ j ) w h j b h ( 1 − b h ) x i = b h ( 1 − b h ) x i ∑ j = 1 l ( y ^ j − y j ) y ^ j ( 1 − y ^ j ) w h j ∇ γ h = ∑ j = 1 l ∂ E k ∂ y ^ j ∂ y ^ j ∂ β j ∂ β j ∂ b h ∂ b h ∂ γ h = ∑ j = 1 l ( y ^ j − y j ) y ^ j ( 1 − y ^ j ) ( − w h j b h ( 1 − b h ) ) = − b h ( 1 − b h ) ∑ j = 1 l ( y ^ j − y j ) y ^ j ( 1 − y ^ j ) w h j \begin{aligned} \nabla \theta_j &= \frac{\partial E_k}{\partial \hat y_j}\frac{ \partial\hat y_j}{\partial \theta_j} =- (\hat y_j- y_j)\hat y_j(1-\hat y_j) \\ \nabla w_{hj} &= \frac{\partial E_k}{\partial \hat y_j}\frac{ \partial\hat y_j}{\partial \beta_j}\frac{\partial \beta_j}{\partial w_{hj}}= (\hat y_j- y_j)\hat y_j(1-\hat y_j)b_h\\ \nabla v_{ih} &= \sum_{j=1}^l \frac{\partial E_k}{\partial \hat y_j}\frac{ \partial\hat y_j}{\partial \beta_j}\frac{\partial \beta_j}{\partial b_h}\frac{\partial b_h}{\partial \alpha_h}\frac{\partial \alpha_h}{\partial v_{ih}} = \sum_{j=1}^l (\hat y_j- y_j)\hat y_j(1-\hat y_j)w_{hj}b_h(1-b_h)x_i\\ &= b_h(1-b_h)x_i\sum_{j=1}^l (\hat y_j- y_j)\hat y_j(1-\hat y_j)w_{hj}\\ \nabla \gamma_h & = \sum_{j=1}^l \frac{\partial E_k}{\partial \hat y_j}\frac{ \partial\hat y_j}{\partial \beta_j}\frac{\partial \beta_j}{\partial b_h}\frac{\partial b_h}{\partial \gamma_h} =\sum_{j=1}^l (\hat y_j- y_j)\hat y_j(1-\hat y_j) (- w_{hj}b_h(1-b_h))\\ &= -b_h(1-b_h)\sum_{j=1}^l (\hat y_j- y_j)\hat y_j(1-\hat y_j)w_{hj} \end{aligned} θjwhjvihγh=y^jEkθjy^j=(y^jyj)y^j(1y^j)=y^jEkβjy^jwhjβj=(y^jyj)y^j(1y^j)bh=j=1ly^jEkβjy^jbhβjαhbhvihαh=j=1l(y^jyj)y^j(1y^j)whjbh(1bh)xi=bh(1bh)xij=1l(y^jyj)y^j(1y^j)whj=j=1ly^jEkβjy^jbhβjγhbh=j=1l(y^jyj)y^j(1y^j)(whjbh(1bh))=bh(1bh)j=1l(y^jyj)y^j(1y^j)whj

g j = ( y ^ j − y j ) y ^ j ( 1 − y ^ j ) e h = b h ( 1 − b h ) ∑ j = 1 l w h j g j \begin{aligned} g_j &= (\hat y_j- y_j)\hat y_j(1-\hat y_j) \\ e_h &= b_h(1-b_h) \sum_{j=1}^lw_{hj}g_j \end{aligned} gjeh=(y^jyj)y^j(1y^j)=bh(1bh)j=1lwhjgj
这时,梯度下降更新
Δ θ j = η g j Δ w h j = − η g j b h Δ v i h = − η e h x i Δ γ h = η e h \begin{aligned} \Delta \theta_j &= \eta g_j\\ \Delta w_{hj} &= - \eta g_j b_h \\ \Delta v_{ih} &= - \eta e_h x_i \\ \Delta \gamma_h &= \eta e_h \end{aligned} ΔθjΔwhjΔvihΔγh=ηgj=ηgjbh=ηehxi=ηeh

5.3.2 算法

算法的目标是最小化训练集D上的累计误差
E = 1 m ∑ k = 1 m E k E=\frac{1}{m} \sum_{k=1}^m E_k E=m1k=1mEk
标准BP算法

  • 初始化所有权重和阈值
  • 对于每个样本 ( x k , y k ) (x_k,y_k) (xk,yk)循环:
    • 提供输入,计算隐藏层输出 b ^ h \hat b_h b^h及输出层输出 y ^ j \hat y_j y^j
    • 根据 y ^ j \hat y_j y^j计算 g j g_j gj,再计算 e h e_h eh
    • 更新权重 w h j , v i h w_{hj},v_{ih} whj,vih和阈值 θ j , γ h \theta_j,\gamma_h θj,γh

累计误差逆传播(accumulated error backpropagation)
读取整个训练集D一遍后才对参数进行更新,更新频率低。

5.3.3 缓解过拟合

早停,early stopping
将数据集分为训练集和验证集,训练集用来计算梯度、更新权重、阈值;验证机用来估计误差。若训练集误差降低但验证机误差升高,停止训练,并返回有最小验证集误差的参数。
正则化,regularization
在误差目标函数中增加一个用于描述网络复杂度的部分。例如连接权和阈值的平方和。
E = λ 1 m ∑ k = 1 k E k + ( 1 − λ ) ∑ i w i 2 E = \lambda \frac{1}{m}\sum_{k=1}^kE_k + (1-\lambda)\sum_i w_i^2 E=λm1k=1kEk+(1λ)iwi2
其中 λ ∈ ( 0 , 1 ) \lambda\in (0,1) λ(0,1),用于对经验误差和网络复杂度这两项进行折中。

5.4 全局最小与局部最小

跳出局部最小的策略:

  • 以多组不同的参数值初始化多个神经网络,即从多个不同的初始点开始搜索,这样有可能陷入不同的局部极小;取其中误差最小的解作为最终参数。
  • 使用“模拟退火”技术:在每一步都以一定的概率接受比当前解更差的结果,从而有助于“跳出”局部极小。每步迭代中,接受“次优解”的概率随时间的推移而逐渐降低,保证算法稳定。
  • 使用随机梯度下降。即便陷入局部极小,计算出的梯度仍可能不为0.

5.5 其他常见的神经网络

5.5.1 REF(radial basis function ,径向基函数)网络
  • 单隐层前馈神经网络
  • 使用径向基函数作为隐层神经元激活函数;输出层是对隐层输出的线性组合
    ϕ ( x ) = ∑ i = 1 q w i ρ ( x , c i ) \phi(x) = \sum_{i=1}^qw_i\rho(x,c_i) ϕ(x)=i=1qwiρ(x,ci)
    其中q是隐层神经元个数, c i , w i c_i,w_i ci,wi是神经元对应的中心和权重; ρ \rho ρ是径向基函数。
    ρ ( x , c i ) = e − β i ∥ x − c i ∥ 2 \rho(x,c_i) = e^{-\beta_i\parallel x-c_i\parallel^2} ρ(x,ci)=eβixci2
    通常先确定神经元中心 c i c_i ci,包括随机采样、聚类等;再利用BP确定参数 w i , β i w_i,\beta_i wi,βi
5.5.2 ART(adaptive rsonance theory,自适应谐振理论)网络

该网络由比较层、识别层、识别阈值和重置模块构成。

  • 比较层接受输入样本,传递给识别层
  • 识别层每个神经元对应一个模式类,神经元数目可在训练过程中动态增长以增加新的模式类
  • 识别神经元间相互竞争,产生获胜神经元。
    • 计算输入向量与每个识别神经元对应的模式类的代表向量间距离,距离最小者胜
    • 获胜神经元抑制其他神经元的激活
    • 如果与获胜样本相似度大于阈值,将样本归于获胜神经元对应的模式
    • 网络连接权更新,使以后接受相似样本时会计算出更大相似度
    • 如果与获胜样本相似度小于阈值,重置模块在识别层增设新的神经元,代表向量设为当前输入向量。

5.6 深度学习

  • 无监督逐层训练:
    • “预训练”:每次训练一层隐节点,训练时将上一层隐节点的输出作为输入,而本层隐节点的输出作为下一层隐节点的输入
    • 预训练完成后,对整个网络进行“微调”训练(fine tuning)
    • 可以视为将大量参数分组,每组先找到局部较好,再基于局部较优联合寻找全局最优。
  • “权共享”,让一组神经元使用相同的连接权,在卷积神经网络(convolutional neural network,CNN)中发挥了重要作用。

深度学习中每层神经元对上层的输出进行处理,目的是把和输出目标间联系不太紧密的输入表示,转化为与输出目标联系更密切的表示。通过多层处理,把初始的“底层”特征表示转为“高层”特征表示,用简单模型即可完成复杂的分类等学习任务。可将深度学习理解为“特征学习”(feature learning)或“表示学习”(representation learning)

你可能感兴趣的:(《机器学习》-周志华,机器学习-周志华)