人工智能
背景:人工智能最初可以追溯至1956年,当时多名计算机科学家在达特茅斯会议上共同提出了人工智能的概念。在随后几十年中,人工智能一方面被认为是人类文明未来的发展方向,另一方面也被认为是难以企及的梦想。实际上,直到2012年之前,情况一直如此。
定义:人工智能(Artificial Intelligence,AI)是机器模拟人的意识和思维,让计算机具备人类拥有如感知、学习、记忆、推理、决策等的能力。细分为:
- 机器感知:机器视觉、NLP
- 学习:模式识别、机器学习、增强学习、迁移学习等
- 记忆:知识表示
- 决策:规划、数据挖掘、专家系统等
在机器上实现人工智能
智能的三个核心部分,学习,存储,应用,在自然界中有自然界的实现方式。
消费级人工智能产品:谷歌 Assistant、微软 Cortana、苹果 Siri、亚马逊 Alexa、阿里的天猫精灵、小米的小爱同学。
人工智能的先锋:
- Geoffrey Hinton:多伦多大学教授,谷歌大脑多伦多分部负责人,人工智能领域的鼻祖,他发表了许多让神经网络得以应用的论文,激活了整个人工智能领域。他还培养了许多人工智能的大家。如LeCun就是他的博士后。
- Yan LeCun:纽约大学教授,Facebook人工智能研究室负责人,他改进了卷积神经网络(CNN)算法,使CNN具有了工程应用价值,现在CNN依旧是计算机视觉领域最有效的模型之一。
- Yoshua Bengio:蒙特利尔大学教授,现任微软公司战略顾问,他推动了循环神经网络(RNN)算法的发展,使RNN得到了工程应用,用RNN解决了自然语言处理中的问题。
机器学习:实现人工智能的方法
背景: 机器学习的概念来自于人工智能发展的早期。随后多年中,基于算法的方法包括决策树学习、归纳逻辑编程、聚类算法、强化学习,以及贝叶斯网络等等。正如我们所知,这些技术最终都未能形成通用人工智能,而早期的机器学习方法甚至也没有带来狭义人工智能。
机器学习 (Machine Learning) 是近 20 多年兴起的一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。
定义:机器学习是一种统计学习方法,计算机用已有的数据得出某种模型,再利用模型预测结果。如果一个程序可以在任务T上,随着经验E的增加,效果P也可以随之增加,则称这个程序可以从经验中学习。
卡内基梅隆大学(Carnegie Mellon University)的Tom Michael Mitchell教授在1997年出版的书籍Machine Learning中对机器学习进行过非常专业的定义,这个定义在学术界内被多次引用。通过垃圾邮件分类的问题来解释机器学习的定义。在垃圾邮件分类问题中,“一个程序”指的是需要用到的机器学习算法,比如逻辑回归算法;“任务T”是指区分垃圾邮件的任务;“经验E”为已经区分过是否为垃圾邮件的历史邮件,在监督式机器学习问题中,这也被称之为训练数据;“效果P”为机器学习算法在区分是否为垃圾邮件任务上的正确率。
机器学习三要素
分类:机器学习利用算法去分析数据、学习数据,随后对现实世界情况作出判断和预测。因此,与预先编写好、只能按照特定逻辑去执行指令的软件不同,机器实际上是在用大量数据和算法去“自我训练”,从而学会如何完成一项任务。机器学习可以分为以下几类:
- 监督学习 (Supervised Learning):从给定的数据集中学习出一个函数, 当新的数据到来时, 可以根据这个函数预测结果, 训练集通常由人工标注
- 无监督学习 (Unsupervised Learning):相较于监督学习, 没有人工标注
- 强化学习(Reinforcement Learning,增强学习):通过观察通过什么样的动作获得最好的回报, 每个动作都会对环境有所影响, 学习对象通过观察周围的环境进行判断
- 半监督学习(Semi-supervised Learning):介于监督学习和无监督学习
深度学习 (Deep Learning):利用深层网络神经模型, 抽象数据表示特征。
也有资料说明:深度学习是无监督学习的一种。
机器学习面临的挑战
- 数据会以各种形式和大小出现。真实数据集可能比较混乱、不完整,并且采用各种不同格式提供。
- 预处理数据可能需要掌握专业知识和工具 。例如,对象检测算法训练中的特征选取,需要掌握图像处理领域的专业知识。不同类型的数据的特征选取,需要掌握图像处理领域的专业知识。不同类型的数据
- 找到拟合数据的最佳模型需要时间。 如何选择正确的模型是一项平衡过程。高度灵活的模型由于拟合了噪声的细微变化而造成了过度拟合。另一方面,简单的模型可能要有更多的假设条件。这些始终是在模型速度、准确性和复杂性之间权衡取舍。
深度学习:深层次神经网络/实现机器学习的技术
背景:2006年,加拿大多伦多大学教授、机器学习领域的泰斗Geoffrey Hinton和他的学生RuslanSalakhutdinov在《科学》上发表了一篇文章,开启了深度学习在学术界和工业界的浪潮。这篇文章动机在于建立、模拟人脑进行分析学习,文章有两个主要观点:
1)多隐层的人工神经网络具有优异的特征学习能力,学习得到的特征对数据有更本质的刻画,从而有利于可视化或分类;
2)深度神经网络在训练上的难度,可以通过“逐层初始化”(layer-wise pre-training)来有效克服,在这篇文章中,逐层初始化是通过无监督学习实现的。
深度学习的概念源于人工神经网络的研究。含多隐层的多层感知器就是一种深度学习结构。深度学习通过组合低层特征形成更加抽象的高层表示属性类别或特征,以发现数据的分布式特征表示。
Deep learning本身算是machine learning的一个分支,简单可以理解为neural network的发展。大约二三十年前,neural network曾经是ML领域特别火热的一个方向,但是后来确慢慢淡出了,原因包括以下几个方面:1)比较容易过拟合,参数比较难tune,而且需要不少trick;2)训练速度比较慢,在层次比较少(小于等于3)的情况下效果并不比其它方法更优;
所以中间有大约20多年的时间,神经网络被关注很少,这段时间基本上是SVM和boosting算法的天下。但是,一个痴心的老先生Hinton,他坚持了下来,并最终(和其它人一起Bengio、Yann.lecun等)提成了一个实际可行的deep learning框架。
定义:深度学习(Deep learning)是通过构建具有很多隐层的机器学习模型和海量的训练数据,来学习更有用的特征,从而最终提升分类或预测的准确性。因此,“深度模型”是手段,“特征学习”是目的。区别于传统的浅层学习,深度学习的不同在于:
1)强调了模型结构的深度,通常有5层、6层,甚至10多层的隐层节点;
2)明确突出了特征学习的重要性,也就是说,通过逐层特征变换,将样本在原空间的特征表示变换到一个新特征空间,从而使分类或预测更加容易。与人工规则构造特征的方法相比,利用大数据来学习特征,更能够刻画数据的丰富内在信息。
深度学习的训练过程
为了克服神经网络训练中的问题,DL采用了与神经网络很不同的训练机制。深度学习与传统的神经网络在训练机制上存在差异:
传统神经网络(这里作者主要指前向神经网络)中,采用的是back propagation的方式进行,简单来讲就是采用迭代的算法来训练整个网络,随机设定初值,计算当前网络的输出,然后根据当前输出和label之间的差去改变前面各层的参数,直到收敛(整体是一个梯度下降法)。
deep learning整体上是一个layer-wise的训练机制。这样做的原因是因为,如果采用back propagation的机制,对于一个deep network(7层以上),残差传播到最前面的层已经变得太小,出现所谓的gradient diffusion(梯度扩散)。
如果对所有层同时训练,时间复杂度会太高;如果每次训练一层,偏差就会逐层传递。这会面临跟上面监督学习中相反的问题,会严重欠拟合(因为深度网络的神经元和参数太多了)。
2006年,hinton提出了在非监督数据上建立多层神经网络的一个有效方法,简单的说,分为两步,一是每次训练一层网络(相当于参数的初始化),二是调优,使原始表示x向上生成的高级表示r和该高级表示r向下生成的x’尽可能一致。
具体的训练方法是:
1)首先逐层构建单层神经元,这样每次都是训练一个单层网络。采用无标定数据(有标定数据也可)分层训练各层参数,这一步可以看作是一个无监督训练过程,是和传统神经网络区别最大的部分(这个过程可以看作是feature learning过程)。
使用自下上升非监督学习(就是从底层开始,一层一层的往顶层训练)
2)当所有层训练完后,使用wake-sleep算法进行调优。wake-sleep算法进行调优,是自顶向下的监督学习(就是通过带标签的数据去训练,误差自顶向下传输,对网络进行微调)
将除最顶层的其它层间的权重变为双向的,这样最顶层仍然是一个单层神经网络,而其它层则变为了图模型。向上的权重用于“认知”,向下的权重用于“生成”。然后使用Wake-Sleep算法调整所有的权重。让认知和生成达成一致,也就是保证生成的最顶层表示能够尽可能正确的复原底层的结点。比如顶层的一个结点表示人脸,那么所有人脸的图像应该激活这个结点,并且这个结果向下生成的图像应该能够表现为一个大概的人脸图像。Wake-Sleep算法分为醒(wake)和睡(sleep)两个部分。
(1)wake阶段:认知过程,通过外界的特征和向上的权重(认知权重)产生每一层的抽象表示(结点状态),并且使用梯度下降修改层间的下行权重(生成权重)。也就是“如果现实跟我想象的不一样,改变我的权重使得我想象的东西就是这样的”。
(2)sleep阶段:生成过程,通过顶层表示(醒时学得的概念)和向下权重,生成底层的状态,同时修改层间向上的权重。也就是“如果梦中的景象不是我脑中的相应概念,改变我的认知权重使得这种景象在我看来就是这个概念”。
- 常见的深度学习算法包括:
- 受限波尔兹曼机(Restricted Boltzmann Machine, RBN)
- 深度置信网络(Deep Belief Networks,DBN)
- 卷积神经网络(Convolutional Neural Network, CNN)
- 堆栈式自动编码器(Stacked Auto-encoders,SAE)。
神经网络
背景:人工神经网络在人工智能的诞生早期就已出现,但在“智能性”方面一直未能取得太大突破。问题在于,最基本的神经网络也需要大量的计算资源,因此很难实现。不过,由多伦多大学的吉奥夫里•辛顿(Geoffrey Hinton)带领的一个小型研究团队持续地进行这方面的尝试,最终找到了一种可以由超级计算机运行的算法,证明了这一概念。然而,直到GPU开始大规模部署之后,这种技术才得以普及。
神经网络的发展历史:
- 第一次兴起:1958年,人们把两层神经元首尾相接,则称单层神经网络,称为感知机。感知机成了首个可以学习的人工神经网络。引发了神经网络研究的第一次兴起。
- 第二次寒冬:1969年,这个领域的权威者Minsky用数学公式证明了只有单层神经网络的感知机无法对异或逻辑进行分类,Minsky还指出要想解决异或逻辑可分问题,需要把单层神经网络扩展到两层或者以上。然而那个时代计算机的运算能力无法支撑这种运算量。只有一层计算单元的感知机暴露了它的天然缺陷,使得神经网络陷入第一次寒冬。
- 第二次兴起:1986年,Hinton等人提出了方向传播方法(BP),有效地解决了两层神经网络的算理问题,引发了神经网络研究的第二次兴起。
- 第二次寒冬:1995年,支持向量机(SVM)诞生,支持向量机可以免去神经网络需要调节参数的不足,还避免了神经网络中局部最优问题,一举击败神经网络,称为当时人工智能领域的主流算法,使得神经网络进入了第二个冬季。
第二次兴起:2006年,深层次神经网络出现,2012年,卷积神经网络在图像识别领域中的惊人表现,又引发了神经网络研究的第三次兴起。
定义:人工神经网络(Artificial Neural Network,即ANN )是由大量的简单处理单元经广泛并行互连形成的一种网络系统。它是对人脑系统的简化、抽象和模拟,具有大脑功能的许多基本特征。
关系
人工智能与机器学习
机器学习是实现人工智能的手段, 其主要研究内容是如何利用数据或经验进行学习, 改善具体算法的性能多领域交叉, 涉及概率论、统计学, 算法复杂度理论等多门学科广泛应用于网络搜索、垃圾邮件过滤、推荐系统、广告投放、信用评价、欺诈检测、股票交易和医疗诊断等应用。
人工智能的根本在于智能,而机器学习则是部署支持人工智能的计算方法。简单的讲,人工智能是科学,机器学习是让机器变得更加智能的算法,机器学习在某种程度上成就了人工智能。
机器学习与深度学习
深度学习是机器学习研究中的一个新的领域,其动机在于建立、模拟人脑进行分析学习的神经网络,它模仿人脑的机制来解释数据,例如图像,声音和文本。深度学习是无监督学习的一种。
深度学习与神经网络
深度学习算法是对人工神经网络的发展。在计算能力变得日益廉价的今天,深度学习试图建立大得多也复杂得多的神经网络。很多深度学习的算法是半监督式学习算法,用来处理存在少量未标识数据的大数据集。
现代的深度学习已经超越了神经科学观点,它可以更广泛地适用于各种并不是由神经网络启发而来的机器学习框架。值得注意的是,有一个领域的研究者试图从算法层理解大脑的工作机制,它不同于深度学习的领域,被称为“计算神经学”(computational neuroscience)。深度学习领域主要关注如何搭建智能的计算机系统,解决人工智能中遇到的问题。计算神经学则主要关注如何建立更准确的模型来模拟人类大脑的工作。
Neural networks, a beautiful biologically-inspired programming paradigm which enables a computer to learn from observational data
Deep learning, a powerful set of techniques for learning in neural networks
参考:
- 无监督学习
- 简单读懂人工智能:机器学习与深度学习是什么关系
- 系统学习深度学习(一) –深度学习与神经网络关系
- Neural Networks and Deep Learning
- 机器学习算法汇总:人工神经网络、深度学习及其它