“机器学习的发展要追溯到1957年,Rosenblatt提出了感知机模型……”
华东大学的一间教室里,徐毅站在讲台上,一边播放幻灯片,一边对着台下的学生讲解道。
刚刚进入八月份,虽然秋季学期还未正式开学,但华东大学的小学期课程已经开始,徐毅正在给选修《机器学习》这门课程的本科生上课。
炎热的夏风伴随着着窗外的蝉鸣,带进屋中昏沉的睡意,连不停嗡嗡转动的风扇也无法吹散。
但教室里的学生几乎全都专注地看向讲台,认真听着徐毅的讲授,展现出作为重点大学学生的优秀素质,让已经汗流浃背的徐毅感到欣慰不已。
“……根据我们前面的讲述,感知机实际上就是将我们输入的数据作为向量,把向量中的每一个元素进行加权求和,最后将数据分类,我们可以用一张二维的图像作为示例。”
徐毅放出下一张PPT,图上是一个画着x轴和y轴的平面坐标系,上面散落着许多红色和蓝色的点。
“来看这张图,里面每一个点就代表一个数据样本,我们用两种颜色来表示数据的种类。”
“感知机的目的就是要找到一条直线,从而将这些点按照种类分开,就像这样…”
随着徐毅点击鼠标,一条直线在图中出现,将两种颜色的点切到左右两边。
“用数学语言来描述的话,就是用直线y=wx+b来将数据样本分类,而感知机的学习过程就是寻找这条直线的系数w和b的过程,”
徐毅又一点鼠标,坐标系上的点和直线统统消失,转而出现了坐标在(0,0)(0,1)(1,0)(1,1)上的四个点,它们刚好构成了一个小正方形的四个顶点,右上角的顶点被标成蓝色,另外三个点则是红色。
“我们用这四个点来表示最基础的逻辑门,蓝色表示真,红色表示假,图中所示是一个与门,显而易见我们可以用一条直线把真值和假值分开。”
一道将正方形右上角斜着切开的黑线随着徐毅的话语出现,
“同样地,对于或门和非门逻辑,我们同样可以用一个感知机来表示,但是感知机有一个很重大的缺陷,大家觉得是什么?”
听到徐毅的提问,下面的学生七嘴八舌地回答起来。
“多个种类混杂的情况?”
“不能用直线分离的点……”
“异或问题!”
徐毅看了一眼说出正确答案的学生,这个小胖子叫王浩中,对机器学习的相关知识了解的相当全面,在前几节课上已经给他留下了很深刻的印象,因此他毫不意外地点点头,补充道:
“多分类问题实际上可以转化为多个二分类问题,因此这类问题是完全可以用感知机实现的……”
“所以正确答案就是线性不可分问题!例如这样一些混杂在一起的点,我们就不能用直线将它们分开,这种问题的最简单形式就是异或问题。”
屏幕上的四个点颜色再变,左下和右上的两个点变成蓝色,另两个点变成红色。
这时台下一个扎着单马尾的女生急切举手,徐毅冲她点点头示意可以提问。
“老师,异或不是可以用前面三种基本逻辑表示么?为什么可以学习三种基本逻辑的感知器不能表示异或?”
听到这个问题的徐毅笑了笑,并未直接回答,反而问起其他学生,
“非常好的问题!我们都知道异或可以由两个非门和与门再加一个或门组成,那么我们可不可以同样用几个感知机分别表示几种基本逻辑,最终组成一个异或门呢?有没有同学讲一下想法……王浩中?”
看到学生纷纷陷入沉默,于是直接点名前面的小胖子。
“嗯……可能原因是由于感知机最后的非线性激活函数,从而导致多层结构的感知机无法求解?据我所知好像现在没有类似的方法,所以这条路应该是不可行的。”
虽然徐毅提出的这个思路之前没有想过,但凭着对机器学习的深刻理解,王浩中思索片刻后便给出了结论。
王浩中的父亲是领域内的专家,在他高中时候就带着他参与相关研究,王浩中在大二时就能以第一作者的身份发表二区论文,因此他对自己的答案有着充足的自信,挺起胸膛等着老师的回复。
“没错!因为在感知机中使用的激活函数是sign函数,即对于任意大于零的自变量x,我们都令函数f(x)的值为1,而对于小于等于零的x,我们令函数值为-1,这是为了模拟人的神经元工作原理……”