《神经网络与PyTorch实战》——1.2.2 机器学习和模式识别
1.2.2 机器学习和模式识别
目前人工智能的发展主要体现在机器学习(Machine Learning,ML)方面。机器学习的核心目标是在没有明确指定输入和输出关系的情况下,通过程序自主学习,得到输入和输出之间的关系。而要得到输入/输出之间关系,需要依靠计算,而且这个计算常常是浮点计算。例如,AlphaGo面对的围棋问题其实是一个离散的问题,它只需要判定在每种围棋局势下,下一步应该将棋子放在棋盘上361个网格交叉点中的哪一个。在AlphaGo利用神经网络解决这个问题时,AlphaGo的设计者不需要一一指定各种情况下AlphaGo应该如何下棋。AlphaGo通过阅读人类棋谱、自我对弈等方法,去学习神经网络中的系数,逐渐发现围棋的下棋策略。虽然这个问题不是一个连续的问题,但是人工神经网络中的系数并不一定是整数,也有可能是小数。因此,AlphaGo使用的神经网络就是一种机器学习的技术。
机器学习往往要利用数据学习。根据数据的特点,机器学习可以分为有监督学习和无监督学习两类。
(1)有监督学习
严格意义上的有监督学习(supervised learning)需要借助已有的数据进行训练,并且已有的数据既要包括输入数据,也要包括每种输入对应的参考输出。例如,如果要使用有监督学习的方法训练判别器判别一个人像是男性还是女性,就需要已知很多人像,并且还需要知道这些人像中人的真实性别。除了这种严格意义上的有监督学习外,还有一些广义上的有监督学习(也有人认为它们并不是监督学习)。
①?半监督学习(semi-supervised learning)——已知的数据中只有部分数据有参考输出,剩下的数据并没有参考输出。
②?主动学习(active learning)——一开始,在已知数据中只有很少的数据有参考输出。在训练的过程中,程序会主动挑选出一些还没有参考输出的数据,而希望人类提供这些数据的参考输出。我们给出参考输出后,所给参考输出会用于程序后续的学习。主动学习的特点在于该交互过程。
③?强化学习(reinforcement learning)——对于输入并没有给出参考输出,而是给出了一个优化目标(奖励或损失)。在学习的过程中,希望最大化奖励,最小化损失。AlphaGo就用到这种学习方法。另外,还有对抗机器学习(adversarial machine learning),它试图找出现有模型中的弱点,试图使现有模型尽可能多地出现错误、获得尽量少的收益。例如,可以试图生成一个假的数据,来突破某iPhone手机的指纹识别验证或人脸识别验证。
(2)无监督学习
无监督学习(unsupervised learning)同样需要使用数据,但是这些数据没有参考输出。利用没有参考输出的数据,无监督学习可以自行发掘数据中的规律。比如,无监督学习可以发现数据能分为若干没有事先定义的类,或发现数据中存在着和大部分数据有明显区别的异常点。再例如,生成对抗网络(Generative Adversarial Network,GAN)可以根据已有的数据来生成新的数据,使得别人没有办法判别出哪些数据是真实数据,哪些数据是假数据。例如,可以仿照画家梵高已有的绘画作品画出许多风格类似的画。
机器学习有许许多多的技术,在这里列举一些常见的模型。
* 人工神经网络(Artificial Neutral Network,ANN):对输入进行多次线性变换和非线性变换得到输出。学习的要点在于学习线性变换的系数。
* 决策树(decision tree):使用树形判定结构,计算满足不同判定条件的输入对应的输出。学习的要点在于学习树的判定准则和满足不同判定的结果。
* 贝叶斯推断(Bayesian inference):利用数据来更新变量的概率分布。学习的要点在于学习变量的分布。
* 支持向量机(Support Vector Machine,SVM):试图找到一种满足特定形式的分割方法,将数据分割成若干部分。
* 提升(boosting):将多个性能较差的模型结合起来,使其成为一个较强的模型。
模式识别(pattern recognition)是一个与机器学习高度重合的概念。
模式识别研究数据和符号的自动处理,特别是数据的理解和判读。模式识别认为数据存在某种可以利用的结构(称为“模式”),并且可以对这个结构加以利用。但是,模式识别并不一定要精确地匹配某种模式(精确匹配模式的算法称为“模式匹配”)。模式识别所识别的数据可以是光学数据(如人像、虹膜、笔迹)、声学数据(如语音、器乐声)、电学数据(如心电图、脑电波)等具象的东西,也可以是符号等抽象的东西。
许多模式识别算法可以根据数据不断改进自身的性能,这些模式识别算法都可以算是机器学习算法。
- 点赞
- 收藏
- 关注作者
评论(0)