9CaKrnK4OdD smart.huanqiu.comarticle解密:监督学习,非监督学习和强化学习/e3pmh140m/e3pmh2jgm<article><section data-type="rtext"><p>我们的机器学习有一个输入层和一个输出层,在输入层和输出层之间,还可以有若干个隐藏层。对于没有隐藏层或者只有一个隐藏层的情况,我们称之为浅层学习。对于具有两个以上隐藏层的情况,我们称之为深度学习(图一)。</p><p><i class="pic-con"><img src="//himg2.huanqiucdn.cn/attachment2010/2017/0821/20170821024809191.jpeg?imageView2/2/w/1260"/></i></p><p>图一: 深度神经网络</p><p>根据机器学习的应用情况,我们又把机器学习分为三类:监督学习(SupervisedLearning, SL), 非监督学习(Unsupervised learning, UL),和强化学习(Reinforcement Learning, RL)。本文主要介绍这三类机器学习。</p><p>监督学习(SL)比较好理解,我们在上一篇文章中提到的算法都属于监督学习。对于监督学习,原始数据(Training Data)中不仅有输入数据(输入层),还有输出数据(输出层)。输入层的每一个变量对应一个输入层的神经元,称为特征(Feature)。已知的输出层数据(精确结果)称为标签(Label)。监督学习是指原始数据中既有特征值也有标签值的机器学习。用输入层的数据计算输出层的值,然后对比标签值计算误差,再通过迭代找到最佳模型参数。所谓机器学习就是指对已知数据不断迭代从而找到最佳参数的过程。</p><p>根据输出层标签的数目(输出层神经元的数目),我们把监督学习(SL)要解决的问题分成两类:回归(Regression) 和分类(Classification)。如果输出层只有一个神经元,而且输出值是连续变量,这样的问题就叫回归,比如估算房子价格,估算一个电子邮件是垃圾邮件的概率等等。如果输出层神经元有多个,输出值是不连续的离散值,这样的问题就叫分类,比如手写数字的识别问题,输出层有 10个神经元,即 0到 9十种可能;再比如某种癌症的判定可以有“是”和“非”两种可能。实际应用中,有些问题既可以看成是分类,也可以看成回归,比如垃圾邮件判断。譬如先用回归计算出一个电子邮件是垃圾邮件的概率,然后从概率再转化成“是”与“非”。这样就变成了分类问题。</p><p>监督学习的算法有很多,而且很多算法已经被收集到成熟的算法库中,使用者可以直接调用。常用的经典算法有:</p><p>1.邻近算法(K-Nearest Neighbors, KNN)</p><p>2.线形回归( Linear Regression)</p><p>3.逻辑回归(Logistic Regression)</p><p>4.支持向量机(Support Vector Machine, SVM)</p><p>5.朴素贝叶斯分类器 (Naive Bayes)</p><p>6.决策树(Decision Tree)</p><p>7.Random Forests1</p><p>8.神经网络(Neural Network)</p><p>另外还有一些比较新的算法,比如卷积神经网络(Convolutional Neural Networks, CNN)和深信度网络(Deep Belief Networks, DBN)。</p><p>有时候我们的原始数据只有输入值,却没有已知的输出值标签(Label)。这样的问题就成为非监督学习(UL)了。这可能有点不好理解:没有输出值就不能计算误差,没有误差就无法找到最佳参数,那机器怎么学习呢?</p><p>非监督学习(UL)要解决的是另外一种问题。我们喂给机器很多特征数据(输入值),是希望机器通过学习找到输入数据中是不是存在某种共性特征,结构(比如都像猫),或者数据特征值之间是不是存在某种关联。而不是像监督学习那样希望预测输出结果。非监督学习要解决的问题也可以分成两大类:输入数据聚类(Clustering)和输入特征变量关联(Correlation)。</p><p>非监督学习怎么学习呢?我们这里也是有模型(分组就是模型),模型里也有参数,比如每一组的中心位置。学习过程也是通过多次迭代找到最佳参数,比如最开始随机选择每组的中心位置,然后通过迭代找到最佳中心位置。图二所示的是一个二维数据(只有两个输入变量)的聚类。我们人眼就可以判断,输入数据可以分成三个组(红、绿、蓝)。每一个组的组员离本组的中心(图二中带 X的黑色圆)是最近的(最佳中心位置)。而在多维空间中(比如 10维),我们就只能靠想象了,非监督学习就可以比人更有优势把数据分组。</p><p><i class="pic-con"><img src="//himg2.huanqiucdn.cn/attachment2010/2017/0821/20170821024809762.jpeg?imageView2/2/w/1260" data-alt="IMG_258"/></i></p><p>分成组有啥用呢?在现实中用处可就大了。比如你有大量明星照片,非监督学习(UL)的分组技术就可以帮你自动按照明星分类。或者你拍了张不认识花的照片,你想知道是什么花,你可以用非监督学习技术找到类似的花。商业上你可以把客户分组,然后根据客户类型推荐相应产品或评价客户风险。</p><p>非监督学习的另一类问题,所谓输入特征变量关联是要找出输入层的各个神经元之间的关系,比如它们是不是相互独立的变量。输入变量独立性要求是非常重要的。举个例子,房子的长度是 x, 宽度是 y, 房子的面积就是 z=xy. 很明显 z不是独立的,z可以用 x和 y来表达。当我们处理数据时在二维空间应该选独立的(x,y),当然我们也可以选(x,z)或者(y,z),只是要麻烦一些。如果我们坚持选(x,y,z),可想而知处理起来会有多么麻烦。在多维空间,那麻烦就更大了。不同的变量对结果的影响也是不同的,有些变量对最终结果甚至没有任何影响。机器学习里有专门的特征工程(Feature Engineering)技术来去除多余输入变量(譬如剔掉 z)和选择合适的(譬如剔掉不太重要的变量)输入变量(Dimensionality Reduction)。我们通常在进行监督学习计算之前,先通过检测输入变量的相关性对输入数据作预处理,以增加模型计算精度和降低计算量。这在深度学习中也是非常重要的。</p><p>常用的非监督学习算法有:</p><p>1.K均值聚类(K-Means Clustering)</p><p>2.具有噪声的基于密度的聚类方法(Density-based Spatial Clustering ofApplications with Noise:DBSCAN)</p><p>3.主成分分析算法(Principal Component Analysis ,PCA)</p><p>4.自组织映射神经网络(Self-Organizing Map, SOM)</p><p>5.受限玻尔兹曼机(Restricted Boltzmann Machine, RBM)</p><p>另外还有一些利用量子理论发展的算法,比如量子系综算法等等。</p><p>强化学习(RL)不同于监督学习和非监督学习。在强化学习(RL)中没有原始已知数据可以学习。强化学习面对的是一个不断变化的状态空间,要解决的是一个决策链问题。其目的是找到在当前环境(状态空间)下最佳决策是什么。这里的挑战是,当下的决策好坏当下无法验证和评估,要根据多次决策以后才能知道。就像下棋,当前的决策(棋子落点)要在五步十步棋之后才能判断是好是坏。所以强化学习中并没有大量的原始已知输入数据,机器需要在变化的环境中通过大量的多次的试错学习,再根据某种规则找到产生最佳结果的最佳路径,从而做出最佳决策。比较常见的应用有下棋(包括下围棋和象棋)、机器人、自动驾驶等。这些人工智能技术中都用到了强化学习。在下一篇文章中我们会专门讨论强化学习是怎样帮助阿尔法狗(AlphaGO)战胜人类围棋高手的。</p><p>除了上面讲的三大机器学习类型,随着机器学习的应用越来越广泛,也出现了混合型的应用。比如部分原始数据有输出值,部分没有,称为半监督学习(Semi-SupervisedLearning)。这就需要把监督学习和非监督学习结合起来。常用的半监督学习算法包括协同训练(Co-Training)和转导支持向量机(Transductive Support Vector Machine,TSVM)等等。</p><p>监督学习(SL)中有已知的输入数据和输出数据,相当于看着样本学习。非监督学习中没有输出数据,相当于自己学习。其学习目的是找到输入数据中存在的结构(Structure)和模式(Pattern)。强化学习即没有输入数据也没有输出数据,只有某种规则,相当于试错学习。其目的是在大量可能路径中寻找最佳决策或者路径。</p></section></article>1503297960000环球网版权作品,未经书面授权,严禁转载或镜像,违者将被追究法律责任。责编:王楠环球网150329796000011[]//himg2.huanqiucdn.cn/attachment2010/2017/0821/20170821024809315.jpg{"email":"wangnan@huanqiu.com","name":"王楠"}