《机器学习》——李宏毅 学习笔记(四)
深度学习(Deep Learning)
什么是深度学习? 深度学习可以说是机器学习的一个分支,目前在人工智能领域表现较好的应用通常都是由深度学习做技术支撑的。 而要了解深度学习,我们无法避开感知机 以及神经网络 这两个概念。
- 感知机
感知机(Perceptron) ,作为最早的机器学习模型,在1957年由罗森布拉特提出。虽然叫“感知机”,但事实上这个模型是用来做二分类的,它的输入为特征向量,输出为类别。感知机对应于输入空间中将实例划分为两类的分离超平面。感知机旨在求出该超平面,为求得超平面导入了基于误分类的损失函数,常常通过梯度下降法对损失函数进行优化。
(最原始的感知机)
感知机在一些分类任务上做的还不错, 很多科学家认为人们已经找到了人工智能发展关键技术了。然而好景不长,很快感知机的局限性就被发现。1969年,明斯基与西蒙·派珀特在其著作《感知机》中着重阐述了感知机的局限性——无法处理异或问题。
从感知机的数学模型可以直观看出,感知机无非是用一条直线做分类,当出现下方的问题时,一条直线根本无法对数据进行分类:
感知机无法解决线性不可分的问题,其实只要再加一层隐藏层就可以解决,当时罗森布拉特和明斯基他们其实已经知道这件事,但是罗森·布拉特等人并没能及时推广感知机学习算法到多层神经网络上。这直接导致了感知机技术的沉寂,也间接导致人工神经网络技术的沉寂。一部分人认为如果当时就能大力发展人工神经网络技术,或许现在人类在AI方面的技术要比当下更好。然而我却不这样认为,因为神经网络的训练是需要大量数据以及算力的,即使当时就提出这一概念,也同样会因为算力和数据的匮乏而无法得到很好的效果。神经网络的发展到现在绝不仅仅是某个概念提出就能带来的,更应该是在数据、算力等因素综合作用下的结果。
- 多层感知机(人工神经网络)
多层感知机(Mutil-layer Perceptron) 没有太多神奇的地方,其实就是感知机的堆叠而已。通过将多层线性分类器组合到一起,并在中间层添加非线性激活函数,从而得到一个能够处理线性不可分数据的模型。
比如一个典型的多层感知机模型如下:
简单粗暴但有效……
理论上两层感知机理论上已经可以拟合任何函数。但是通常情况下我们使用的人工神经网络要比此结构复杂得多,因为一般情况下,隐含层越大,层数越多,模型的表达能力就越强(因为隐含层复杂意味着参数足够多,模型容量大,也能学习到更多的信息)。
- 深度学习
当我们了解了多层感知机之后,深度学习的概念也就自然而然出现了。为什么使用神经网络的机器学习叫深度学习呢?
“深度”:指从输入层到输出层所经过的层数很多,网络很深。
“学习”:和机器学习中的“学习”是相同的意思,参考:《机器学习》——李宏毅 学习笔记(一) | 阿一的博客
深度学习这个词真的是很直观的描述,就是用一个很深的神经网络做机器学习。当然除了深度这个最典型的特征,神经网络还是个黑箱,深度学习的中间过程不可知,深度学习产生的结果不可控。所以深度学习的可解释性也是目前重要的研究方向之一,不过目前作为一个底层炼丹师我只求好用,不求甚解。。。
参考资料
2.什么是深度学习?