【机器学习基础笔记(五)】神经网络

251 阅读6分钟

5.1 神经元模型

image.png M-P神经元模型如上。

image.png sigmoid函数。

5.2 感知机与多层网络

感知机由两层神经元组成,输入层接收外界输入信号后传递给输出层,输出层是M-P神经元。
感知机只有输出层神经元进行激活函数处理,即只拥有一层功能神经元,其学习能力非常有限。它甚至不能解决异或这样简单的非线性可分问题。
要解决非线性可分问题,需考虑使用多层功能神经元。两层感知机就能解决异或问题。输出层与输入层之间的一层神经元,被称为隐含层。隐含层和输出层神经元都是拥有激活函数的功能神经元。

image.png 多层前馈网络如上。
神经网络的学习过程,就是根据训练数据来调整神经元之间的“连接权”以及每个功能神经元的阈值;换言之,神经网络“学”到的东西,蕴含在连接权与阈值中。

5.3 误差逆传播算法

多层网络的学习能力比单层感知机强的多,而多层网络的学习,单靠感知机的学习规则显然不过,需要更强大的学习算法。误差逆传播(error back propagation,BP)算法就是其中最杰出的代表,它是迄今最成功的神经网络学习算法。

对于每一个训练样本,BP算法执行的步骤为:先将输入样本提供给输入层神经元,然后逐层将信号前传,指导产生输出层的结果;然后计算出输出层的误差,再将误差逆向传播到隐层神经元,最后根据隐层神经元的误差来对连接权重和阈值(偏量)进行调整。该过程为循环进行,直到满足某一过程为止。

误差逆传播算法

  由于其强大的表示能力,BP神经网络经常遭遇过拟合。两种策略常用来缓解BP网络的过拟合。

第一种策略是“早停”:将数据分成训练集和验证集,训练集用来计算梯度、更新连接权和阈值,验证集用来估计误差,若训练集误差降低但验证集误差升高,则停止训练,同时返回具有最小验证集误差的连接权和阈值
第二种策略是“正则化”,在误差目标函数中增加一个用于描述网络复杂度的部分

image.png

5.4 全局最小与局部极小

image.png 在现实任务中,常采用以下策略来试图“跳出”局部极小,从而进一步接近全局最小:

·以多组不同参数值初始化多个神经网络,按标准方法训练后,取其中误差最小的解作为最终参数。   

·使用“模拟退火”技术。模拟退火在每一步都以一定的概率接受比当前解更差的结果,从而有助于“跳出”局部极小。在每步迭代过程中,接受“次优解”的概率要随着时间的推移而逐渐降低,从而保证算法稳定。  

·使用随机梯度下降,随机梯度下降法在计算梯度时加入了随机因素。于是,即便陷入局部极小点,它计算出的梯度仍可能不为零,这样就有机会跳出局部极小继续搜索。   

·遗传算法(genetic algorithms)   

模拟退火

5.5 其他常见神经网络

 RBF网络   
   RBFRadial Basis Function,径向基函数)网络是一种单隐层前馈神经网络,它使用径向基函数作为隐层神经元激活函数,而输出层则是对隐层神经元输出的线性组合。
 
 ART网络  
   ART(Adaptive Resonance Theory,自适应谐振理论)网络,它具有一个很重要的优点:可进行增量学习或在线学习。  
 
 SOM网络  
   SOMSelf-Organizing Map,自组织映射)网络是一种竞争学习型的无监督神经网络,它能将高纬输入数据映射到低维空间(通常为二维),同时保持输入数据在高维空间的拓扑结构,即将高维空间中相似的样本点映射到网络输出层中的邻近神经元。   
     
 级联相关网络   
    一般的神经网络模型通常假定网络结构是事先固定的,训练的目的是利用训练样本来确定合适的连接权、阈值等参数。结构自适应网络则将网络结构也当作学习的目标之一,并希望能在训练过程中找到最符合数据特点的网络结构。级联相关(Cascade-Correlation)网络是结构自适应网络的重要代表。   
    
 Elman网络  
   Elman网络是最常用的递归神经网络之一,它的结构与多层前馈网络很相似,但隐层神经元的输出被反馈回来,与下一时刻输入层神经元提供的信号一起,作为隐层神经元在下一时刻的输入。隐层神经元通常采用sigmoid激活函数,而网络的训练则常通过推广的BP算法进行。      
      
 Boltzmann机   
   Boltzmann机是一种“基于能量的模型”,常见结构如图5-3(a)所示,其神经元分为两层:显层与隐层。显层用于表示数据的输入与输出,隐层则被理解为数据的内在表达。Boltzmann机中的神经元都是布尔型的,即只能取01两种状态,状态1表示激活,状态0表示抑制。  

5.6 深度学习

深度学习减少训练开销的策略:

   1)“预训练+微调” 的做法可视为将大量参数分组,对每组先找到局部看起来比较好的设置,然后再基于这些局部较优的结果联合起来进行全局寻优。这样就在利用了模型大量参数所提供的自由度的同时,有效地节省了训练开销。
   2)“权共享” 即让一组神经元使用相同的连接权。这个策略在卷积神经网络(CNN)中发挥了重要作用。以CNN进行手写数字识别任务为例,这是一种监督学习算法。在训练中,无论是卷积层还是采样层,其每一组神经元都是用相同的连接权,从而大幅减少了需要训练的参数数目。

机器学习系列学习笔记之——神经网络