原力君在系列的第四篇《人工智能系列(四) 机器学习简介》中提到机器学习的分类和常用方法,机器学习有监督学习、无监督学习、半监督学习、主动学习、强化学习这5种学习方式;而根据所学知识(或模型)结构不同,可以使用诸如神经网络、决策树、规则、贝叶斯网络等方法去构建学习算法;深度学习目前可以说是一种基于神经网络的学习方法。而目前人工智能这么火爆,很大程度上归功于深度学习等机器学习算法的成功应用,如阿尔法狗、沃森、翻译机、人脸识别、无人车等。本篇聊聊深度学习。
“学习”俩字,就足以让人们感受到机器的智能水平了。再加上“深度”俩字,原力君感觉钻进了无边无际的宇宙世界而不能自拔。这两句话,只是为了表明我对深度学习这个名字的态度:它太唬人了!
深度学习的目的,是要得到样本数据中输入输出数据之间的关系。这个关系实际上是一个函数,在实际工程中常用“模型”俩字来表示这个函数。为什么?因为一般人不知道函数,函数是有数学定义的;而一般人也不知道模型,但是模型可以让人听上去似懂非懂;而对理工科的同志来说,“函数”俩字表达的更清楚一些。实际中,深度学习常用来学习如何根据采集的数据来识别某一个物体,那这个“函数”在一定程度上就表征了这个物体的特性,因此大家也就常常用“模型”俩字来描述深度学习得到的函数关系。模型,包含了两层含义:一是说模型实际上是一个函数关系,二是说这个函数是用来表征物体特性的。
深度学习可以看作是一种更高级的函数拟合方法
仔细回想一下我们高中学过的线性回归方程,假设我们得到了一组关于施化肥量和水稻产量的数据:
这组数据绘制成二维平面图之后,是一系列的散点。但是,我们可以使用一条直线去拟合施化肥量和水稻产量之间的关系。通常来说,直线方程可以表示为y=ax+b。在本例中,y代指水稻产量,x代指施化肥量,而a和b两个参数用来表征施化肥量和水稻产量之间的数学关系。
上面刚刚讲到,深度学习最终的目的是得到一个模型来表征样本数据所描述的系统,是不是感觉跟线性回归问题很相似?
在实际工程中,我们的研究对象可能比较复杂,很难用一个线性方程来表示其模型。值得高兴的是,研究者已经证明了一个事实:神经网络可以用来表征任何形式的函数。因此,深度学习通常使用神经网络来表征研究对象的模型。
有了神经网络,深度学习要做的就是使用已有的样本数据,利用合适的优化方法,去寻找能够最好的描述研究对象特性的神经网络参数。一旦得到了最优的参数,神经网络就可以定型,我们就可以在实际应用中使用这个已定型的神经网络来判断采集的数据是否属于我们的研究对象。当然,与线性回归相比,深度学习的过程非常复杂。
人工神经网络、激活函数、代价函数、梯度下降、反向传播是深度学习的几个关键点
人工神经网络是深度学习的基础,深度学习的结果通常是用神经网络的形式表示的。与人的大脑神经网络类似,人工神经网络的基础是人工神经元。单个神经元很简单,但是非常多个神经元串联并联组合在一起之后,就会量变引起质变,生成一种复杂神经网络。
激活函数是神经网络中每个神经元的输入输出函数。为了利用深度学习得到最优神经网络参数,激活函数必须是连续的。
代价函数是指给定输入数据,神经网络的输出与样本数据中真实的输出数据偏差,通常用的是残差平方和来表示,也有其他的表示方法,此处不表。
梯度下降法,是一种常见的原理比较简单的优化求解算法。深度学习过程中,算法也是利用代价函数的变化来计算梯度(变化率,为正则变大,为负则变小)。我们的目的当然是让代价函数越来越小,也就是让其梯度一直为负,这就是梯度下降的意思。
反向传播,可以看作是一种近似计算神经网络代价函数对网络参数梯度的方法。由于神经网络结构的复杂性,我们没法用一般的方法去计算其梯度,而反向传播法提供了一种可行的方法。之所以叫反向传播,是因为它采用了一种从网络的最后一层开始计算梯度,逐步往前面一层推进,因此而得名。
神经网络结构不同产生不同的深度学习方法
不同的神经网络结构,会产生不用的深度学习方法,但是其基本思路大同小异。常见的神经网络结构有:多层感知机、DNN深度神经网络、CNN卷积神经网络、RNN递归神经网络等。但是不管使用什么样的网络结构,神经网络最终是用来表征模型函数的,学习的过程都是通过微调参数观察输出来得到最优参数的。
一句话总结:深度学习可以看作是一种更高级的函数拟合方法;人工神经网络、激活函数、代价函数、梯度下降、反向传播是深度学习的几个关键点;常见的深度学习神经网络结构有多层感知机、DNN、CNN、RNN等。
领取专属 10元无门槛券
私享最新 技术干货