1、图像也有自己的单元———边缘线,不同的图像只是边缘线单元方向不同。
类似于: 基本汉字结构(偏旁~部首(像素)——文字(边缘线)——文档(图像)——。。。)
2、BP算法并不能用于深度学习
原因是1> 网络越往后会存在 梯度稀疏2> 随机初始化会收敛与局部最小3> 神经网络只能训练有标签数据
3、deep learning训练过程
如果对所有层同时训练,时间复杂度会太高;如果每次训练一层,偏差就会逐层传递。这会面临跟上面监督学习中相反的问题,会严重欠拟合
分为两步,一是每次训练一层网络,二是调优
1)首先逐层构建单层神经元,这样每次都是训练一个单层网络。
2)当所有层训练完后,Hinton使用wake-sleep算法进行调优
使用自下上升非监督学习(就是从底层开始,一层一层的往顶层训练):
采用无标定数据(有标定数据也可)分层训练各层参数,这一步可以看作是一个无监督训练过程,
是和传统神经网络区别最大的部分
具体的,先用无标定数据训练第一层,训练时先学习第一层的参数(这一层可以看作是得到一个使得输出和输入差别最小的三层神经网络的隐层),由于模型capacity的限制以及稀疏性约束,使得得到的模型能够学习到数据本身的结构,从而得到比输入更具有表示能力的特征;在学习得到第n-1层后,将n-1层的输出作为第n层的输入,训练第n层,由此分别得到各层的参数;
自顶向下的监督学习(就是通过带标签的数据去训练,误差自顶向下传输,对网络进行微调):
基于第一步得到的各层参数进一步fine-tune整个多层模型的参数,这一步是一个有监督训练过程;第一步类似神经网络的随机初始化初值过程,由于DL的第一步不是随机初始化,而是通过学习输入数据的结构得到的,因而这个初值更接近全局最优,从而能够取得更好的效果;所以deep learning效果好很大程度上归功于第一步的feature learning过程
Deep Learning的常用模型或者方法
AutoEncoder自动编码器 (类似一个神经网络,输入输出包含同样的元,隐含层一般是一层,且元比输入少)
自动编码器就必须捕捉可以代表输入数据的最重要的因素,就像PCA那样,找到可以代表原信息的主要成分
就是寻找可以用少量特征代替大量的数据,从而减少计算量。