机器学习笔记之人工神经网络

一、发展历史

1943年,心理学家McCulloch和逻辑学家Pitts建立神经网络的数学模型,MP模型。

神经元生理结构:

神经元数学模型:

1.1 人工神经员发展历史

1960年代,人工网络得到了进一步地发展感知机和自适应线性元件等被提出。M.Minsky仔细分析了以感知机为代表的神经网络的局限性,指出了感知机不能解决非线性问题,这极大影响了神经网络的研究。

单层感知机的数学模型:

1982年,加州理工学院J.J.Hopfield教授提出了Hopfield神经网络模型,引入了计算能量概念,给出了网络稳定性判断。

离散Hopfield神经网络模型:

1986年,Rumelhart和McClelland为首的科学家提出了BP(Back Propagation)神经网络的概念,是一种按照误差逆向传播算法训练的多层前馈神经网络,目前是应用最广泛的神经网络。

1.2 BP神经网络模型:

极限学习机(Extreme Learning Machine, ELM),是由黄广斌提出的用于处理单隐层神经网络的算法。随机初始化输入权重𝛼𝑖和偏置,只求解输出权重值𝛽𝑖。

优点:

  • 学习精度有保证
  • 学习速度快

二、感知机算法

感知机(Perceptron)是二分类问题的线性分类模型,用 𝑋 ∈ $𝑅^{𝑛×𝑑} $表示数据集,用 𝑌 表示标签。需要学习的目标函数是:

从一堆输入输出中学习模型参数𝑤和𝑏。

感知机算法(Perceptron Algorithm):

  • 随机选择模型参数的(𝑤0, 𝑏0)初始值。选择一个训练样本\((𝑥_𝑛, 𝑦_𝑛)\)

  • 若判别函数\(𝑤^𝑇𝑥_𝑛+ 𝑏 > 0,且𝑦_𝑛= −1,则𝑤 = 𝑤 − 𝑥_𝑛,𝑏 = 𝑏 − 1\)

  • 若判别函数\(𝑤^𝑇𝑥_𝑛+ 𝑏 < 0,且𝑦_𝑛= +1,则𝑤 = 𝑤+𝑥_𝑛,𝑏 = 𝑏+1\)

  • 再选取另一个训练样本\((𝑥_𝑚, 𝑦_𝑚)\),回到2。

  • 终止条件:直到所有数据的输入输出对都不满足,则退出循环。

单层感知机只能处理线性问题,无法处理非线性问题!!

三、 BP算法

3.1 神经网络模型:

3.2 激活函数:

常见激活函数选择:

  • sigmoid 函数
  • tanh 函数
  • ReLU 函数
  • Leaky ReLU函数

最常用Sigmoid函数的优缺点:

优点:

  • 函数处处连续,便于求导
  • 可将函数值的范围压缩至[0,1],可用于压缩数据,且幅度不变
  • 便于前向传输

缺点:

  • 在趋向无穷的地方,函数值变化很小,容易出现梯度消失,不利于深层神经的反馈传输
  • 幂函数的梯度计算复杂
  • 收敛速度比较慢

3.3 BP算法主要步骤

第一步,对样本明确预测输出值与损失函数

第二步,明确参数调整策略

第三步,计算输出层阈值的梯度

第四步,计算隐层到输出层连接权值的梯度

第五步,计算隐层阈值的梯度

第六步,计算输入层到隐层连接权值的梯度

第七步,引出归纳结论

3.3.1 第一步,明确损失函数

对样本\((𝑥_𝑘, 𝑦_𝑘)\),神经网络的预测输出值为\(\hat{y}_k\)。全网络在样本\((𝑥_𝑘, 𝑦_𝑘)\)上的均方误:

3.3.2 第二步,明确参数调整策略

基于梯度下降(Gradient Descent)策略,以目标的负梯度方向对参数进行调整

3.3.3 计算输出层阈值\(𝜽_𝒋\)的梯度

利用链式法则,可得:

更新公式:\(\theta_j\)<--\(\theta_j\)-\(\eta\)\(_j\)

3.3.4 第四步,计算隐层到输出层连接权值𝒘\(_{𝒉𝒋}\)的梯度

利用链式法则,可得:

3.3.5 第五步,计算隐层阈值\(𝜸_𝒉\)的梯度\(\frac{𝜕𝐸𝑘}{𝜕𝛾}\)

利用链式法则,可得:

3.3.6 第六步,计算隐层权重\(𝒗_{𝒊𝒉}\)的梯度\(\frac{𝜕𝐸_𝑘}{𝜕𝑣_{𝑖ℎ}}\)

利用链式法则,可得:

3.3.7 第七步,引出结论

隐层阈值梯度取决于隐层神经元输出、输出层阈值梯度和隐层与输出层的连接权值。在阈值的调整过程中,当前层的阈值梯度取决于下一层的阈值,这就是BP算法的精髓。当前层的连接权值梯度,取决于当前神经元阈值梯度和上层神经元输出。只要知道上一层神经元的阈值梯度,即可计算当前层神经元阈值梯度和连接权值梯度。随后可以计算输出层神经元阈值梯度,从而计算出全网络的神经元阈值和连接权值梯度。最终达到训练网络的目的。

3.3.8 算法流程回顾:

  1. 将输入样本提供给输入层神经元
  2. 逐层将信号前传至隐层、输出层,产生输出层的结果
  3. 计算输出层误差
  4. 将误差反向传播至隐藏层神经元
  5. 根据隐层神经元对连接权重和阈值进行调整
  6. 上述过程循环进行,直至达到某些停止条件为止

优点:

  1. 能够自适应、自主学习。BP可以根据预设参数更新规则,通过不断调整神经网络中的参数,已达到最符合期望的输出。
  2. 拥有很强的非线性映射能力。
  3. 误差的反向传播采用的是成熟的链式法则,推导过程严谨且科学。
  4. 算法泛化能力很强

缺点:

  1. BP神经网络参数众多,每次迭代需要更新较多数量的阈值和权值,故收敛速度比较慢。
  2. 网络中隐层含有的节点数目没有明确的准则,需要不断设置节点数字试凑,根据网络误差结果最终确定隐层节点个数
  3. BP算法是一种速度较快的梯度下降算法,容易陷入局部极小值的问题。

四、参考资料

  1. Prof. Andrew Ng. Machine Learning. Stanford University
  2. 《统计学习方法》,清华大学出版社,李航著,2019年出版
  3. 《机器学习》,清华大学出版社,周志华著,2016年出版
  4. Christopher M. Bishop, Pattern Recognition and Machine Learning, Springer-Verlag, 2006
  5. Stephen Boyd, Lieven Vandenberghe, Convex Optimization, Cambridge University Press, 2004
  6. https://www.icourse163.org/course/WZU-1464096179
posted on 2022-02-22 23:23  lixin05  阅读(234)  评论(0编辑  收藏  举报