从算法的角度看,机器学习有很多种算法,例如回归算法、基于实例的算法、正则化算法、决策树算法、贝叶斯算法、聚合算法、关联规则学习算法和人工神经网络算法。很多算法可以应用于不同的具体问题;很多具体的问题也需要同时应用好几种不同的算法。由于篇幅有限,我们仅介绍其中(可能是公众心目中名气最大的)一种:人工神经网络。
人工神经网络:
既然人工智能要模拟人类的思考过程,一些人工智能科学家想,不如我们先看看人类是怎样思考的吧?
人类的大脑是一个复杂的神经网络。它的组成单元是神经元。每一个神经元看起来很简单,它们先接收上一个神经细胞的电信号刺激,再向下一个神经细胞发出电信号刺激。
别看神经元细胞很简单,但如果神经元的数量很多,它们彼此之间的连接恰到好处,变成神经网络,就可以从简单中演生出复杂的智能来。例如,人类的大脑中含有1千亿个神经元,平均每个神经元跟其他的神经元存在7000个突触连接。一个三岁小孩大脑中,大约会形成1千万亿个突触。随着年龄的增长,人类大脑的突触数量会逐渐减少。成年人的大脑中,大约会有1百万亿到5百万亿个突触。
虽然科学家还没有完全搞清楚人类大脑的神经网络的运作方式,但人工智能科学家想,不理解没关系,先在计算机中模拟一组虚拟的神经网络试试看,这就是人工神经网络。
在人工神经网络中,每一个小圆圈都是在模拟一个“神经元”。它能够接收从上一层神经元传来的输入信号(也就是一堆数字);根据不同神经元在它眼中的重要性,分配不同的权重,然后将输入信号按照各自的权重加起来(一堆数字乘以权重的大小,再求和);接着,它将加起来结果代入某个函数(通常是非线性函数),进行运算,得到最终结果;最后,它再将这个结果输出给神经网络中的下一层神经元。
人工神经网络中的神经元看起来很简单,只知道傻傻地将上一层神经元的输入数据进行简单的运算,然后再傻傻地输出。没想到这一套还真的很管用,运用一系列精巧的算法,再给它投喂大量的数据之后,人工神经网络居然能够像人脑的神经网络一样,从复杂的数据中发现一系列“特征”,产生“聪明的思考结果”。
那么人工神经网络是怎么学习的呢?所谓的学习,本质上是让人工神经网络尝试调节每一个神经元上的权重大小,使得整个人工神经网络在某一个任务的测试中的表现达到某个要求(例如,识别汽车的正确率达到90%以上)。
请回忆一下前面讲过的“梯度下降法”。人工神经网络尝试不同的权重大小,相当于在一个参数空间的地图上四处游走。每一种权重的组合对应的人工神经网络执行任务时的错误率,相当于这个地图上的每一点都有一个海拔高度。寻找一组权重,使得人工神经网络的表现最好,错误率最低,就相当于在地图上寻找海拔最低的地方。所以,人工神经网络的学习过程,常常要用到某种“梯度下降法”,这就是为什么如果将来你要学习人工智能,第一个要掌握的就是“梯度下降法”。
机器学习的分类:
从学习风格的角度看,机器学习有很很多种学习方法,我们简要地列举其中几种方法:监督学习、非监督学习、强化学习和迁移学习。
监督学习:
比方说,你想教计算机如何识别一张照片上的动物是不是猫。你先拿出几十万张动物的照片,凡是有猫的,你就告诉计算机有猫;凡是没有猫的,你就告诉计算机没有猫。也就是说,你预先给计算机要学习的数据进行了分类。这相当于你监督了计算机的学习过程。
经过一段监督学习的过程之后
非监督学习:
比方说,你想教计算机区分猫和狗的照片。你拿出几十万张猫和狗的照片(没有其他动物)。你并不告诉计算机哪些是猫,哪些是狗。也就是说,你没有预先给计算机要学习的数据进行分类,所以你并没有监督计算机的学习过程。
经过一段监督学习的过程之后,计算机就能把你输入的照片按照相似性分成两个大类(也就是区分了猫和狗)。只不过计算机只是从数字照片的数学特征的角度进行了分类,而不是从动物学的角度进行了分类。
强化学习:
比方说,你想教计算机控制一只机械臂打乒乓球。一开始,计算机控制机械臂像傻瓜一样,拿着球拍做很多随机的动作,完全不得要领。
但是,一旦机械臂凑巧接到一个球,并把球击打到对手的球桌上,我们就让计算机得一分,这叫做奖励。一旦机械臂没有正确地接到球、或没有把球击打到正确的位置上,我们就给计算机扣一分,这叫做惩罚。经过大量的训练之后,机械臂渐渐地从奖励和惩罚中,学会了接球、击打球的基本动作。
迁移学习:
比方说,你让计算机学会了控制机械臂打乒乓球之后,又叫它学习打网球。这个时候,你不需要让计算机从零开始重新学,因为乒乓球和网球的规则是相似的。例如,这两种球都要把球击打到对方的球场/球桌上。所以,计算机可以将之前学到的动作迁移过来。这样一种学习,就叫做迁移学习。
作者:价值ETF
来源:雪球
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。