《神经网络与深度学习》自学笔记(一)
最近在读邱锡鹏老师的《神经网络与深度学习》,自己太菜了,看完就忘,所以决定用写笔记的方法加强理解,如有表述错误,请求批评指正。以下是本人对第一章绪论部分的理解。
什么是智能
这个问题其实是老生常谈了,但是每次看到图灵测试时,都会感慨大佬就是大佬!!以下是关于其内容的表述,如果你还不了解相关内容,那赶快记下来,加入膜拜大军吧。
图灵测试:“一个人在不接触对方的情况下,通过一种特殊的方式和对方进行一系列的问答,如果在相当长时间内,他无法通过这些问题判断对方是人还是计算机,那么久可以认为这个计算机是智能的。”****
说白了,“智能”就是让机器看起来更像人,正是基于这一需求,一台智能的计算机就必须兼具学习、记忆、推理、决策等能力,这也是为什么人工智能会有那么多分支的原因。
从传统机器学习到表示学习
传统的机器学习(浅层学习 Shallow Learning)最主要的特点是不涉及特征学习,只注重预测模型的学习。如图:
也就是说,在传统机器学习中我们关注的是怎样构造预测函数,使得最终的结果尽可能准确,然而一个尴尬的现实摆在眼前:不同的预测函数对最终的结果影响并不大,反而是特征处理的结果,更多的影响了最终处理结果。所以,机器学习问题又转化成了特征工程(Feature Engineering)。那么,传统机器学习的特征处理指的是什么呢?它指的是用人工干预的方法,把我们人能看懂的文字、图片等形式的数据转化为机器能读懂的数据,如上图所示,一般分为三个步骤:
(1)预处理:去除噪声等无用信息。
(2)特征提取:提取有效特征,如图像中的边缘特征。
(3)特征转换:对特征的加工,如降维,常用的方法有主成分分析(PCA),线性判别分析(LDA)。降维又可细分为特征抽取(Feature Extraction)和特征选择(Feature Selection)。
看上去特别麻烦对不对。。。因此,我们就希望可以自动地学习有效特征,并提高模型的性能,这就是我们下面要介绍的表示学习(Representation Learning)。由此u,又延伸出许多问题。
- 对特征而言,何为“有效”?一般具有几个特点:同样尺寸,包含更多信息;高层语义信息丰富(便于后续的学习);普适性(不局限于当前一个任务)。
- 在机器学习中,我们经常使用的特征表示方式为:局部表示(Local Representation)和分布式表示(Distributed Representation),前者就是我们常说的one-hot编码,后者则是嵌入(Embedding)后的结果。这里就不得不说一下嵌入的问题了,其实在读这本书之前,我对这个操作的理解一直是云里雾里,直到我看到书中的一个解释:假设我们有100种颜色,用one-hot编码需要100个100维的稀疏向量来表述,而在RGB空间中,只需要100个三维稠密向量就可以成功地表示所有的颜色,而且后期再添加颜色、理解这线颜色之间的关系都是非常方便的,这个由高维稀疏向量向低维稠密向量转化的过程就是我们已经听过无数遍的“Embedding”,是不是好理解多了!
深度学习
要学到好的高层语义表示,通常是需要经过多个非线性转换的,这就是我们接下来需要理解的“深度学习”。还是来理解几个小问题:
- 何为“深度”?10层?100层?深度的概念就是我们之前提到的进行非线性变换的次数,而只要次数超过一次,这个网络就可以被称为“深度”网络,很随意是吗?这其实是与我们后期要介绍的贡献度分配(CAP)直接相关的,也就是某个组件或参数,对最终输出的影响。
- 那我们为什么要用到深层结构?这是因为深层结构可以增加特征的重用性,从而指数级地增加表示能力,提高最终的模型准确率。
端到端学习
在学习过程中不分块或分阶段训练,直接优化总体目标,期间没有人工干预。