前言:昨天看到微博上分享的深度学习视频,为上海复旦大学吴立德教授深度学习课程,一共六课时,视频地址点击打开链接。在此我结合其他资料,写点个人的学习笔记进行记录。
第一课:概述
本课吴老师对深度学习做了一个简单的介绍。内容分为三块:1.深度学习简介 2.深度学习应用 3.领域概况
1.深度学习简介
深度学习(deep learning)是机器学习(machine learning)的一个方法。本节首先简单介绍机器学习,然后引入深度学习的概念。
1.1 机器学习简介
机器学习四要素:
[星号**内容为我自己补充内容,部分内容来自《统计机器学习》]
a, 数据
** 机器学习算法是一类从数据中自动分析获得规律,并利用规律对未知数据进行预测的算法。(监督)学习中训练数据由输入(或特征向量)与输出对组成。
b, 模型
线性模型:
广义线性模型:
非线性模型: ANN (人工神经网络 维基百科点击打开链接) 常见的一种是前馈神经网络(feedforward neural network),深度学习主要针对就是这种前馈神经网络。
** 在监督学习过程中,模型就是所要学习的条件概率分布或据侧函数。模型的假设空间包含所有的可能的条件概率分布或决策函数。即假设空间中的模型一般无穷多个。
c, 准则
损失函数:
经验风险:
正则项:
学习目标:
** 设假设空间中的模型一般无穷多个,我们具体选择哪一个使用,需要一个模型评价指标。这里的准则就是评价指标。选择模型的好坏就是按照这个标准来说。
d, 算法
深度学习(Deep Learning)就是针对深度前馈神经网络的学习算法。
**算法是指学习模型的具体计算方法,统计学习基于训练数据集,根据学习策略,从假设空间中选择最优的模型,最后需要考虑用什么样的计算方法求解最优模型。说白了就是在假设中间中怎么去找那个在评价准则中最优的模型。
1.2 深度学习简介
深度前馈神经网络的学习问题就是深度学习。
1.2.1 广义线性模型 vs 线性模型 vs 非线性模型
课程中讲授线性模型和广义线性模型的区别,我们从上述公式中也可以看到。线性模型因变量y是由自变量x线性得到,而广义线性模型中我们找到一个变换,然后先对自变量x做一个变换,成为然后进行线性加和。在模式识别和机器学习中,我们称那个需要找到的变换为特征。找到一个好的变换对我们的学习很有帮助。在具体的应用任务中,寻找特征需要人工进行(特征工程)。现在在深度学习中,特征本身需要从数据中自己学习。
关于线性模型和广义线性模型可以参考点击打开链接
“深度”就是前馈神经网络层数较多(层数>5)。
**为什么深度的神经网络比较好?这个问题在《Learning Deep Architectures for AI》提及过。原文为“The main conclusion of this section is that functions that can be compactly represented by a depth k architecture might require an exponential number of computational elements to be represented by a depth k − 1 architecture. Since the number of computational elements one can afford depends on the number of training examples available to tune or select them, the consequences are not just computational but also statistical: poor generalization may be expected when using an insufficiently deep architecture for representing some functions.” 解读为存在某些函数可以简洁地通过 k 层逻辑门网络计算出来,但是如果限制为 k -1 层的话,就需要指数级别的逻辑门才行(解读来自点击打开链接)。其实可以这么认为:如果不深,那么想达到同样效果的神经网络就必须很扁平,并且用到的参数个数是前者的指数级(现在深度神经网络的参数个数是million级别)。参数一剧增,各种问题就出现了。
**浅层模型有一个重要特点,就是假设靠人工经验来抽取样本的特征,而强调模型主要是负责分类或预测。在模型的运用不出差错的前提下(如假设互联网公司聘请的是机器学习的专家),特征的好坏就成为整个系统性能的瓶颈。因此,通常一个开发团队中更多的人力是投入到发掘更好的特征上去的。要发现一个好的特征,就要求开发人员对待解决的问题要有很深入的理解。而达到这个程度,往往需要反复地摸索,甚至是数年磨一剑。因此,人工设计样本特征,不是一个可扩展的途径。深度学习的实质,是通过构建具有很多隐层的机器学习模型和海量的训练数据,来学习更有用的特征,从而最终提升分类或预测的准确性。所以“深度模型”是手段,“特征学习”是目的。区别于传统的浅层学习,深度学习的不同在于:1. 强调了模型结构的深度,通常有5层、6层,甚至10多层的隐层节点;2. 明确突出了特征学习的重要性,也就是说,同过逐层特征变换,将样本在原空间的特征表示变换到一个新特征空间,使分类或预测更加容易。(本段内容来余凯文章)
1.2.2 深度学习难处:
可训练参数太多
反应在这个问题上,就是
1. 计算资源要大 需要海量的CPU来玩这个算法。
2.数据量充足 数据量小,参数多,过拟合的问题就严重了。
3.算法效率要高 茫茫大海中如何去寻找那组最优的参数需要高效的进行。
4.解释困难 虽然模型取得效果,但是很难直观解释为什么模型会work。
非凸优化
调参困难
2,深度学习应用和领域概况
应用:语音识别 目标识别 自然语言处理 参考余凯老师的文章:点击打开链接
主要大牛:
University of Toronto Hinton 个人主页http://www.cs.toronto.edu/~hinton/[兼任Google特聘研究员 ]
New York University LeCun 个人主页http://yann.lecun.com/ [前段时间Facebook宣布聘请纽约大学教授扬•乐康(Yann LeCun)掌管其新建的人工智能实验室,就是这哥们]
University of Montreal Bengio 个人主页http://www.iro.umontreal.ca/~bengioy/yoshua_en/index.html
Stanford University Andrew Ng 个人主页http://cs.stanford.edu/people/ang/ [Google Brain项目联合创建人]
网上学习资料(按进阶程度排序):
0.9 新闻阅读:
Meet the Man Google Hired to Make AI a Reality点击打开链接
Computer science: The learning machines点击打开链接
1. 人工智能学会的文章点击打开链接
2. 深度学习博客 点击打开链接
3. Stanford 教授 Andrew Ng 的 Deep Learning 教程(中译本)点击打开链接
4. Deep Learning 工具集合点击打开链接
5. Yoshua Bengio 在 Google 蒙特利尔的报告(2012.11.22)点击打开链接