Lessons from Machine Learning


A choice does not really matter, how you made that choice does.


人生总是在不断地选择,我们总是希望选择最好的一个(至少看上去是),最大化收益,最小化损失,因此做选择之前难免要权衡一番。这样看,权衡可以说是一项非常重要的能力了。  

把这个过程看作使用机器学习(Machine learning)训练一个选择模型,模型根据目标和当前的参数作出选择,计算损失,接着不断调整参数以最小化损失。训练得当的参数能够根据不同的输入得到正确的选择。这个调整参数的过程就相当于不断权衡的过程,调整输入各个部分的权重,重要的部分给高权值,使结果最优。

  • 学习率(Learning rate)是训练神经网络的一个重要参数,它决定了得到损失后要多大程度地调整参数,过大或者过小的学习率都会影响训练的结果。学习率过大,每次都剧烈地调整参数,最后网络很难收敛。甲说选 A,好以后都选 A,乙说选 B,好以后都该选 B,摇摆不定,太容易受影响,难以收敛。学习率过小,每次只修正一丢丢,方向可能是对的,但是太慢了。理想的学习率应该是初始稍大,然后慢慢衰减。所以,在一无所知的时候多学点,但逐渐要有自己的思考和选择。

  • 过拟合(Overfitting)大概是训练中最常见的问题了,过拟合是在见过的样本中表现很好,对没见过的样本表现很差,表示一种泛化(举一反三)的能力。一般是因为训练数据太少了,就是见过的问题太少了,没办法挖掘到问题背后的规律,倾向于直接记住问题,遇到没见过的问题自然就懵了,这和平时不做题考前背题没卵用是一样的道理。所以,人生经历(训练数据)很重要。(平时多做题也很重要

  • 梯度弥散(Gradient vanish)也经常令人头痛。梯度在网络中是从深层到浅层逐层传递调整参数的,当层数太深时,浅层参数接受到的梯度(由于梯度连乘、激活函数等原因)可能变得很小,即没有得到足够的修正信息,不能作出有效调整。人大概也有梯度弥散这个问题,经历过一件事,梯度弥散的人只会修正一部分参数(通常在比较肤浅的层面进行修正),在更本质的层面没有进行足够的修正。所以,马克思先生说的对,要透过现象看本质,从本质上修正自己

上面是监督学习(Supervised learning),监督学习有一个前提,就是拥有标注正确的数据,即对于每种情况,我们都知道绝对正确的选择是什么(才能够计算损失,进而调整)。然而生活中很多时候是没有真正意义上正确的,大部分时候是作出一个选择后得到一个反馈,我们尝试去最大化反馈,这个反馈和作出的选择不一定存在直接的明显的联系(当前的反馈不仅受当前选择的影响,也受过去选择的影响)。

对于这些情况可以用强化学习(Reinforcement learnig)的思想来解决。一个直观的例子:假如要训练小狗听到 sit 就坐下,你并不会告诉他听到 sit 就应该两只前爪收起来,身子立起来呈坐姿,相反你会在他正确的 sit 之后给他食物(反馈),这样经过一定次数的训练后小狗慢慢学习到怎么做才能得到更多食物。前者告诉每一步正确做法是监督学习,后者对每一步作出反馈让其自己探索最佳策略则是强化学习。

人的一生很少有人从头到尾一步步教你遇到什么情况应该怎么做(监督学习),大部分时候要靠自己根据反馈不断探索(强化学习)。一个残酷的事实:强化学习要比监督学习更难优化,因为其监督信号比监督学习的监督信号要弱。

再次的,人生经历(反馈)很重要,只有足够多的经历,得到足够多的反馈才能逐渐收敛到最优策略。以及,勇于尝试(探索)很重要,让你发掘更多未知的精彩