为什么要有深度学习?系统学习清单
请点击上面公众号,免费订阅。
《实例》阐述算法,通俗易懂,助您对算法的理解达到一个新高度。包含但不限于:经典算法,机器学习,深度学习,LeetCode 题解,Kaggle 实战。期待您的到来!
01
—
回顾
利用36天的时间,系统地梳理了机器学习(ML)的一些经典算法,从算法思想,到算法实例,有的包括源码实现,有的包括实战分析,大致分类如下:
机器学习的概念总结
线性回归
4 回归分析简介
8 机器学习之线性回归:OLS 无偏估计及相关性python分析
逻辑回归
决策树算法
13 机器学习:谈谈决策树
14 机器学习:对决策树剪枝
贝叶斯算法
17 机器学习:说说贝叶斯分类
高斯混合聚类模型(GMM)
数据降维算法
集成算法
36 机器学习:提升树(boosting tree)算法的思想
有了对这些 ML 算法的基本认识后,下一站,探索下深度学习吧,首先要清楚,深度学习也是机器学习的一个子领域,并且在近几年变得非常火热。
那么,第一问题,为什么深度学习变得如此火热? 上面说的这些ML算法还有用吗?
02
—
为什么要有深度学习?
深度学习可以用更多的数据或是更好的算法来提高学习算法的结果。对于某些应用而言,深度学习在大数据集上的表现比其他机器学习(ML)方法都要好。
性能表现方面,深度学习探索了神经网络的概率空间,与其他工具相比,深度学习算法更适合无监督和半监督学习,更适合强特征提取,也更适合于图像识别领域、文本识别领域、语音识别领域等。
为什么深度学习会如此被热衷,因为它不以任何损失函数为特征,也不会被特定公式所限制,这使得该算法对科学家们更为开放,它能以比其他传统机器学习工具更好的方式进行使用和扩展。
进一步地说,引用 《Deep Learning Book MIT》(免费电子书:http://www.deeplearningbook.org/)这本书上的某个观点,或许能进一步给出为什么要从机器学习到深度学习,
1960年后,线性分类器的局限性开始被认识到,它只能将输入空间切分为非常简单的区域,即由一个超平面分离的两个半区间。对于像图像和语音识别这类问题,需要输入-输出函数对输入的非相关变化(位置的变化,方向变化,光照变化,语音的高音和低音变化)不敏感,而对类别敏感(如白狼和萨摩耶犬)。
在像素级别,两张不同的姿态,不同环境下萨摩耶犬的照片会有极大的不同,而同样的背景,同样位置的萨摩耶犬和白狼的照片可能非常相似。对直接操作图像像素的线性分类器或者其他“浅层”分类器可能不容易区分后两张照片,同时将前两张放在同一类。这就是为什么浅层分类器需要好的特征提取器—有选择地产生图片中重要类别信息的表示,同时对无关信息如姿态具有不变性—-以解决选择无关的困境。
为了让分类器更强大,可以使用广义非线性特征以及核函数方法。但广义特征(如高斯核函数)泛华能力差,常规的方法是手动设计好的特征提取器,而这需要大量工程经验和领域专家才能完成。如果好的特征可以使用通过学习的方法自动学习得到,上述问题就可以避免,这是深度学习的核心优势。
由此可见,深度学习有它强于传统的机器学习算法的地方,并且有时候只能用深度学习借助训练神经网络来完成某些识别任务。
03
—
深度学习系统学习清单
有了对ML算法的基本认识后,有助于对深度学习的快速理解,根据 playground.tensorflow.org 给出的一本免费深度学习电子书,再结合相关的paper,可以快速了解其中的理论和算法,包括广泛使用的几套神经网络模型,先对这些内容做一个提纲,接下来再有重点的总结。
这本书的组织思路如下:
1. Perceptrons 感知器,这是最简单的神经网络
2. Sigmoid neurons
3. The architecture of neural networks
4 A simple network to classify handwritten digits 手写字分类
对手写字分类任务中,涉及到深度学习非常重要的参数求解方法:梯度下降学习权重参数;书中给出了源码实现。
5 反向传播算法(BP)
6 提升神经元学习的方法
7 可视化地证明:神经网络可以表示任何函数
8 为什么深度神经网络难以训练,包括常见的梯度消失问题。
再分析总结几套常用的神经网络:
DNN,深度神经网路。
特指全连接的神经元结构,并不包含卷积单元或是时间上的关联。
RNN,循环神经网络
训练样本输入是连续的序列,且序列的长短不一,比如基于时间的序列:一段连续的语音,一段连续的手写文字。这些序列比较长,且长度不一,比较难直接的拆分成一个个独立的样本来通过DNN/CNN进行训练。
但是 RNN有致命的缺陷,只能知道记忆短暂的信息,对于距离相距很远的信息记忆能力差。比如我们做完型填空时,可能需要整合全文来填某一个句子,比如 I grew up in China….此处省略一万字.....I speak fluent _____ . 如果 RNN 只知道邻近的几个单词,可能它会知道此处需要填写一门语言,但至于应该填什么,就需要找到更远前的信息,直到 找到 China 才行。这种需要寻找相距很远信息的情况,实际上非常常见。
此时需要,LSTM ,它是 RNN 的一种特殊形式,它被广泛应用在语音识别、语言建模、机器翻译、为图像起标题。
CNN,卷积神经网络
是深度学习算法在图像处理领域的一个应用。CNN主要用来识别位移、缩放及其他形式扭曲不变性的二维图形。
以上总结的是一本深度学习电子书的提纲,几套深度学习的神经网络模型,DNN,RNN,LSTM,CNN ,接下来,将会对它们进行详细总结。
参考文献
http://neuralnetworksanddeeplearning.com
http://ufldl.stanford.edu/tutorial/
http://www.deeplearningbook.org/
请记住:每天一小步,日积月累一大步!
《实例》阐述算法,通俗易懂,助您对算法的理解达到一个新高度。包含但不限于:经典算法,机器学习,深度学习,LeetCode 题解,Kaggle 实战。期待您的到来!