机器如何学习?5分钟弄懂监督学习、无监督学习、半监督学习与强化学习
作者 | Frank Chen
翻译 | 智子
整理 | AI100(ID:rgznai100)
读懂机器学习的四大方法
根据训练方法的不同,机器学习可以分为四类:
- 监督学习
- 无监督学习
- 半监督学习
- 强化学习
本文会对各种学习方法给出一种非常直观的解释。
文中,我们也会为你介绍那些经常在论文中出现的名词术语,还会给出不同的机器学习方法所对应的学习资源。
总的来说,本文的分类方法,既适用于传统的机器学习,又适用于新出现的深度学习。
对于数学相关的问题,可以看看 斯坦福大学的深度学习教程 ,它涵盖了监督学习和无监督学习,且附有代码实例。
斯坦福大学的深度学习教程(吴恩达等人撰写) http://ufldl.stanford.edu/tutorial/
▍监督学习
监督学习是用正确答案已知的例子来训练神经网络,也就是用标记过的数据。如果我们想设计一个系统——从相册中找出包含你的父母的照片,基本的步骤如下:
第一步:数据的生成和分类
首先,需要将你所有的照片看一遍,记录下来哪些照片上有你的父母。然后把照片分为两组。第一组叫做训练集,用来训练神经网络。第二组叫做验证集,用来检验训练好的神经网络能否认出你的父母,正确率有多少。
之后,这些数据会作为神经网络的输入,得到一些输出。用数学语言表示就是:找到一个函数,该函数的输入是一幅照片。当照片上有你的父母的时候,输出为1;没有的时候,输出为0。
这种问题通常叫做分类。因为这个例子中,输出只有两个可能,是或者不是。
当然,监督学习的输出也可以是任意值,而不仅仅是0或者1。举另一个例子,我们的神经网络可以预测一个人还信用卡的概率。这个概率可以是0到100的任意一个数字。这种问题通常叫做回归。
第二步:训练
在进行训练这一步时,每一幅图像都会作为神经网络的输入,根据一定的规则(激活函数),决定某个神经元的输出,进而得到某一层的输出。当计算完所有神经元的时候,最后得到了最右边的神经元(输出节点)的输出,是0还是1。
上一步中,我们已对照片上是否有你父母做过标记。这样,我们就能知道神经网络所预测的结果是否正确,并把这一信息反馈回神经网络。
这里所反馈的,是成本函数的计算结果,即神经网络计算结果与实际情况的偏差。这个函数也叫做目标函数、效用函数或者适应度函数。这一结果用来调整神经元的权重和偏差,这就是BP算法,即 反向传播算法 ,因为该信息是从后向前传递的。
刚才针对的是一个照片。你需要对每张照片不断重复这个过程。每个过程中都要最小化成本函数。
BP算法有很多实现方法,最常用还是梯度递减的方法。
Algobeans 非常通俗易懂的解释了这个方法。Michael Nielsen 在此基础上,加上了积分和线性代数,也给出了形象生动的演示。
神经网络入门 https://algobeans.com/2016/11/03/artificial-neural-networks-intro2/ 反向传播算法原理 http://neuralnetworksanddeeplearning.com/chap2.html
第三步:验证
至此,第一组中的数据已经全部用完。接下来我们会用第二组数据验证训练得到的模型的准确率。
优化模型的许多参数(超参)需要优化,因此导致第二步和第三步通常会交叉进行。常用的超参有神经网络有多少个神经元,有多少层神经元,哪个函数用来激活一个神经元(激活函数),用多快的速度来训练网络(学习速率)等等。 Quora 工程师主管的这一回复 很好的解释了这些超参。
Quora 工程师主管回复