深度学习“深度学习”-概念篇

Q:什么是“深度学习

对于“深度学习”这个术语,一个粗浅的定义是“主要使用深度神经网络为工具的机器学习算法”。深度学习首先是一类机器学习的方法,因为它和其他机器学习方法一样允许计算机从样本中、从实例中、从数据中使用统计手段“学习”出规律来,而不用像专家系统和其他符号主义的方法一样人工定义规则。其次,深度学习不同于其他机器学习方法的地方,在于它主要的工具,或者说使用到的数学模型是。

虽说深度学习这个词时近几年才后起来,但是它在1986年甚至更早就被提出来了。早在19世纪60年代最简单的人工神经网络——多层感知机就已经现世。19世纪八九十年代,联结主义学术思潮对人工神经网络的研究进一步加深。在这一时期,许多现在大热的模型,如卷积神经网络和循环神经网络就被提出了;而许多现在的学术大牛,如Hinton,LeCun,Bengio也在那个时期初露锋芒。由于当时的数据量和算力不足的原因,神经网络不如SVM等简单的算法好用,但2006年左右,Hinton 和 Salakhutdinov 发现多层前馈神经网络可以先通过逐层预训练,再用反向传播(Back Propagation)算法进行精调的方式进行有效学习,算法深度学习得以获得不输于SVM等算法的实用性。随着移动互联网的提出和摩尔定律进一步发挥作用,数据量和算力也上来了,深度学习方法也越来越好用。在2012年的ImageNet图像识别比赛上,深度学习方法方法以优于第二名10个百分点的绝度优势获胜,至此一战成名。2016年,AlphaGo击败李世石,从此深度学习天下皆知。更多深度学习的可以参考由Ian Goodfellow、Yoshua Bengio、Aaron Courville合著的《Deep Learning》 第一章,中文世界比较好的资料是复旦大学邱锡鹏 写的《神经网络与深度学习》第一章。

Q:人工神经网络的本质是什么? 一个函数

人工智能的各种算法都是数学模型,人工神经网络不例外。从数学角度看,一个人工神经网络,本质上就是一个函数,一个从输入到输出的映射。更具体一点,神经网络是有多个简单函数组合而成的符合函数。

我们知道,人工神经网络的基本单元是人工神经元,任何神经网络都是神经元堆叠组合而成。神经元也是一个简单的函数。周志华的《机器学习》第五章中有一个图[3]很简洁美观地描绘了一个神经元的经典结构。

简单神经元

简单来说,一个神经网络就是一个线性组合与一个非线性函数的复合函数,就是把线性组合的结果丢进一个非线性函数里[4]。

神经元和函数表达形式,图片来自维基百科

一个概率分布函数

一个人工神经网络是一个概率分布函数。这其实不足为奇,应该说任何机器学习模型,或者说统计学习模型都是概率分布函数。毕竟机器学习的根本目标是预测:预测(判断)某张图片的类别、预测某间房子的房价、预测某日的天气情况、预测某个时段的车流量、预测某个用户喜欢的商品、预测某条广告的点击率······既然是预测,则必然用到概率模型。哪怕是最基本的线性回归模型:y = w1 * x1 + w2 * x2 + b 背后也是正态分布概率模型(将y看做x的随机变量,求y的条件概率分布,具体看Stanford的cs229-note-1, 中文看这篇文章)

同样,每个神经网络的输出都是输入的随机变量,每个神经网络都是一个参数化条件概率模型,也正是因为如此,基本上所有神经网络都可以用最大似然评估(MLE)来优化。

多个Logistic回归模型的组合

有一点机器学习知识的人都知道,如果

神经元和函数表达形式,图片来自维基百科

图中的外层函数为sigmoid函数,哪怕外层函数为relu或者tanh,我们也可以将它看做广义的logistic模型。如此一来,一个神经元其实就是一个logistic回归模型。那么多个神经元连接起来的神经网络,本质上就是多个logistic回归模型的分层组合。

Q:神经网络背后的设计思想是什么? 或问:为什么将多个神经元(Logistic回归模型)连在一起就能有这么强大的威力?

关于这个问题有那么一种解释:神经网络是分层的,浅层的神经元可以提纯出更有价值的信息给深层的神经元处理。至于哪些信息是“更有价值的信息”,可以通过不断试错(最小化损失函数)来确定。一个Logistic模型不给力,我们可以用多几个。当然不是全部一起上,而是让这些个Logistic模型分工合作。是:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyddpw.html