• 《神经网络与深度学习》(一) 感知机、多层神经网络、BP算法、深度学习


    (1)感知机模型(双层神经网络模型:输入层和计算单元,瓶颈:XOR问题——线性不可分)

                           

    (2)多层神经网络(解决线性不可分问题——在感知机的神经网络上多加一层,并利用“后向传播”(Back-propagation)学习方法,可以解决XOR问题)(1974年,哈佛博士论文)

    (3)BP算法训练的神经网络:信号正向传播和误差反向传播(修正权值)

    缺点:

    l  梯度越来越稀疏:从顶层向下,误差校正信号越来越小

    l  收敛到局部最小值:随机值初始化会导致这种情况的发生(从远离最优区域开始的时候)

    l  只能用有标签的数据来训练

    (4)生物学实验

     

    (4)深度学习:首先利用无监督学习对每层进行逐层预训练(Layers Pre-Training)去学习特征(学到数据本身的结构),每次单独训练一层,并将训练结果作为更高一层的输入;然后到最上层改用监督学习从上到下进行微调(Fine-tune)去学习模型

    Ps:由于深度学习的第一步不是随机初始化,而是通过学习输入的数据结构得到的,因此这个值更接近全局最优。

    步骤:模仿大脑的学习(编码)和重构(解码)——不是训练数据到标记的“映射”,而是去学习数据本身内在结构和特征[隐含层也叫做特征探测器(Feature detector)]。(通常隐含层中的神经元数比输入/输出层的少,这是为了使神经网络只学习最重要的特征并实现特征的降维)

    1)无监督训练

     

     

    2)有监督微调:第一种——只调整分类器;第二种——通过有标签样本,微调整个系统。

    Deep Learning和 neural network异同

    二者的相同在于deep learning采用了神经网络相似的分层结构,系统由包括输入层、隐层(多层)、输出层组成的多层网络,只有相邻层节点之间有连接,同一层以及跨层节点之间相互无连接,每一层可以看作是一个logistic regression模型;这种分层结构,是比较接近人类大脑的结构的。

    而为了克服神经网络训练中的问题,DL采用了与神经网络很不同的训练机制。传统神经网络中,采用的是back propagation的方式进行,简单来讲就是采用迭代的算法来训练整个网络,随机设定初值,计算当前网络的输出,然后根据当前输出和label之间的差去改变前面各层的参数,直到收敛(整体是一个梯度下降法)。而deep learning整体上是一个layer-wise的训练机制。这样做的原因是因为,如果采用back propagation的机制,对于一个deep network(7层以上),残差传播到最前面的层已经变得太小,出现所谓的gradient diffusion(梯度弥散)。

    BP算法作为传统训练多层网络的典型算法,实际上对仅含几层网络,该训练方法就已经很不理想。深度结构(涉及多个非线性处理单元层)非凸目标代价函数中普遍存在的局部最小是训练困难的主要来源。

    BP算法存在的问题:

    (1)梯度越来越稀疏:从顶层越往下,误差校正信号越来越小;

    (2)收敛到局部最小值:尤其是从远离最优区域开始的时候(随机值初始化会导致这种情况的发生);

    (3)一般,我们只能用有标签的数据来训练:但大部分的数据是没标签的,而大脑可以从没有标签的的数据中学习;

    deep learning训练过程具体如下:

    1)使用自下上升非监督学习(就是从底层开始,一层一层的往顶层训练):

    采用无标定数据(有标定数据也可)分层训练各层参数,这一步可以看作是一个无监督训练过程,是和传统神经网络区别最大的部分(这个过程可以看作是feature learning过程):

    具体的,先用无标定数据训练第一层,训练时先学习第一层的参数(这一层可以看作是得到一个使得输出和输入差别最小的三层神经网络的隐层),由于模型capacity的限制以及稀疏性约束,使得得到的模型能够学习到数据本身的结构,从而得到比输入更具有表示能力的特征;在学习得到第n-1层后,将n-1层的输出作为第n层的输入,训练第n层,由此分别得到各层的参数;

    2)自顶向下的监督学习(就是通过带标签的数据去训练,误差自顶向下传输,对网络进行微调):

    基于第一步得到的各层参数进一步fine-tune(微调)整个多层模型的参数,这一步是一个有监督训练过程;第一步类似神经网络的随机初始化初值过程,由于DL的第一步不是随机初始化,而是通过学习输入数据的结构得到的,因而这个初值更接近全局最优,从而能够取得更好的效果;所以deep learning效果好很大程度上归功于第一步的feature learning过程。

    参考:http://www.cnblogs.com/caocan702/p/5662789.html

  • 相关阅读:
    .net core 认证与授权(三)
    .net core 认证与授权(二)
    .net core 认证与授权(一)
    算法常识——快速排序
    ip 在网络传输中是如何传递的
    打开c++ 项目遇到的错误
    算法常识——鸡尾酒排序
    算法常识——冒泡排序
    算法常识——排序汇
    Tomcat 生产服务器性能优化
  • 原文地址:https://www.cnblogs.com/flippedkiki/p/7764914.html
Copyright © 2020-2023  润新知