引言:最近实验室在组织一起学习深度学习,为了让自己加深理解,遂记下如下笔记,方便以后查阅:
一:深度学习的发展史:
1:First winter of NN;
1:1949年:神经元学习模型Learning model of neurons被提出来
2:1958年:感知器,Perceptron概念被提出来;
3:1983年: 神经网络的反向传播 ,Neural network Back propagation
-
2:机器学习第一次浪潮:浅层学习模型 (Shallow Learning)
80年代年代初开始2006年左右
用于人工神经网络的反向传播算法(也叫Back Propagation算法或者BP算法)的发明,给机器学习带来了希望,掀起了基于统计模型的机器学习热潮。这个热潮一直持续到今天。人们发现,利用BP算法可以让一个人工神经网络模型从大量训练样本中学习出统计规律,从而对未知事件做预测。这种基于统计的机器学习方法比起过去基于人工规则的系统,在很多方面显示出优越性。这个时候的人工神经网络,虽然也被称作多层感知机(Multi-layer Perceptron),但实际上是一种只含有一层隐层节点的浅层模型。
其实Deep Learning是 Machine Learning的一个分支,Deep Learning可以看做是Neural Network(人工神经网络)的进一步发展;由于Neural Network(神经网络)暴露了以下问题- 1:容易过拟合,调参难
- 2:训练比较慢,在层数小于3层时效果不占优势;
20世纪90年代,由于神经网络的种种弊病,人们提出了各种浅层机器学习模型
1:SVM支持向量机(Support Vector Machines):只有一层隐含节点
2:Boosting:只有一层隐含节点
3:Decision Tree(决策树)
4:最大商法( Logistic Regression逻辑回归):没有隐含层
3:深度学习第二大浪潮(Deep Learning):
2006年,加拿大多伦多大学教授、机器学习领域泰斗——Geoffrey Hinton和他的学生Ruslan Salakhutdinov在顶尖学术刊物《科学》上发表了一篇文章,开启了深度学习在学术界和工业界的浪潮。这篇文章有两个主要的信息:
1.多隐层的人工神经网络具有优异的特征学习能力,学习得到的特征对数据有更本质的刻画,从而有利于可视化或分类;
2.深度神经网络在训练上的难度,可以通过“逐层初始化”(Layer-wise Pre-training)来有效克服,在这篇文章中,逐层初始化是通过无监督学习实现的。
对比:
浅层学习模型局限性:有限的样本和计算单元情况下对复杂函数的表示能力有限。
深度学习:通过学习一种深度非线性网格结构实现向复杂函数逼近;表征输入数据分布式表示,并展现了强大的从少数样本集中学习数据集本质特征的能力。
深度模型是手段,特征学习是目的;
深度学习和浅层学习的区别:
1:强调了模型结构的深度;
2:突出了特征学习的重要性;也就是说,通过逐层特征变换,将样本在原空间的特征表示变换到一个新特征空间,从而使分类或预测更加容易。与人工规则构造特征的方法相比,利用大数据来学习特征,更能够刻画数据的丰富内在信息。
二:BP算法及其应用:
- 1:传统分类算法:
如:逻辑回归,Logistic regression
都是采用线性的,对于简单的分类问题可以解决,但是对于非线性复杂的分类问题就没有办法;或者容易过拟合; -
2:BPNet(反向传播网络):
通过增加隐含层,可以解决使一些使用简单的分类算法无法解决的问题;
如下图带有一层隐含层的神经网络模型:
- 2.1:损失函数:Loss Function
为什么损失函数是凸形的 - 2.2:regularization terms 正则化项?
防止过拟合 - 2.3:the gradient descent 梯度下降怎么和BPNet相结合
求偏导
三:神经网络实例以及自编码
1:什么是自编码?