计算机视觉
1. 定义
计算机视觉是使用计算机及相关设备对生物视觉的一种模拟。它的主要任务是通过对采集的图片或视频进行处理以获得相应场景的三维信息。计算机视觉是一门关于如何运用照相机和计算机获取人们所需的、被拍摄对象的数据与信息的学问。形象地说,就是给计算机安装上眼睛 (照相机) 和大脑 (算法),让计算机能够感知环境。
2.基本任务
计算机视觉的基本任务包括图像处理、模式识别或图像识别、景物分析、图像理解等。除了图像处理和模式识别之外,它还包括空间形状的描述、几何建模以及认识过程。实现图像理解是计算机视觉的终极目标。下面举例说明图像处理、模式识别和图像理解
图像处理技术可以把输人图像转换成具有所希望特性的另一幅图像。例如,可通过处理使输出图像有较高的信噪比,或通过增强处理突出图像的细节,以便于操作员的检验。在计算机视觉研究中经常利用图像处理技术进行预处理和特征抽取
模式识别技术根据从图像抽取的统计特性或结构信息,把图像分成预定的类别。例如,文字识别或指纹识别。在计算机视觉中,模式识别技术经常用于对图像中的某些部分(例如分割区域)的识别和分类。
图像理解技术是对图像内容信息的理解。给定一幅图像,图像理解程序不仅描述图像本身,而且描述和解释图像所代表的景物,以便对图像代表的内容做出决定。在人工智能研究的初期经常使用景物分析这个术语,以强调二维图像与三维景物之间的区别。图像理解除了需要复杂的图像处理以外,还需要具有关于景物成像的物理规律的知识以及与景物内容有关的知识。
深度学习
计算机视觉里经常使用的卷积神经网络,即CNN,一种对人脑比较精准的模拟,人脑在识别图片的过程中,并不是对整幅图同时进行识别,而是感知图片中的局部特征,之后再将局部特征综合起来得到整幅图的全局信息。卷积神经网络模拟了这一过程,其卷积层通常是堆叠的,低层的卷积层可以提取到图片的局部特征,例如角、边缘、线条等。高层的卷积层能够从低层的卷积层中学到更复杂的特征,从而实现对图片的分类和识别。
卷积就是两个函数之间的相互关系。在计算机视觉里面,可以把卷积当作一个抽象的过程,就是把小区域内的信息统计抽象出来。例如,对于一张爱因斯坦的照片,可以学习n个不同的卷积和函数,然后对这个区域进行统计。可以用不同的方法统计,比如可以着重统计中央,也可以着重统计周围,这就导致统计的函数的种类多种多样,以达到可以同时学习多个统计的累积和。
下图演示了如何从输入图像得到最后的卷积,生成相应的图。首先用学习好的卷积和对图像进行扫描,然后每个卷积和会生成一个扫描的响应图,称为响应图或者称为特征图(feature map)。如果有多个卷积和,就有多个特征图。也就是说,从一个最开始的输入图像(RGB三个通道)可以得到256个通道的featuremap,因为有256个卷积和,每个卷积和代表一种统计抽象的方式。
在卷积神经网络中,除了卷积层,还有一种叫池化的操作。池化操作在统计上的概念更明确,就是一种对一个小区域内求平均值或者求最大值的统计操作。
带来的结果是,池化操作会将输入的feature map的尺寸减小,让后面的卷积操作能够获得更大的视野,也降低了运算量,具有加速的作用。
在如下图所示这个例子里,池化层对每个大小为2x2px的区域求最大值,然后把最大值赋给生成的featuremap的对应位置。如果输入图像的大小是100x100px,那输出图像的大小就会变成50x50px,featuremap变成了原来的1/4。同时保的信息是原来2x2区域里面最大的信息。
如下图所示是LeNet网络,LeNet网络输入图像是大小为32×32像素的灰度图,第一层经过了一组卷积和,生成了6个28X28px的feature map,然后经过一个池化层,得到6个14X14px的feature map,然后再经过一个卷积层,生成了16个10X10px的卷积层,再经过池化层生成16个5×5px的feature map。
这16个大小为5×5px的feature map再经过3个全连接层,即可得到最后的输出结果。输出就是标签空间的输出。由于设计的是只对 0~9进行识别,所以输出空间是10,果要对10数字再加上52个大、小写字母进行识别的话,输出空间就是62。向量各维度的值代表“图像中元素等于该维度对应标签的概率”,即若该向量第一维度输出为0.6,即表示图像中元素是“0”的概率是0.6。那么该62维向量中值最大的那个维度对应的标签即为最后的预测结果。62维向量里,如果某一个维度上的值最大,它对应的那个字母和数字就是预测结果。
AlexNet网络
AlexNet是基于LeNet的改进,它可以被看作LeNet的放大版。AlexNet的输入是一个大小为224X224像素的图片,输入图像在经过若干个卷积层和若干个池化层后,最后经过两个全连接层泛化特征,得到最后的预测结果。
AlexNet的特征:在第一层,都是一些填充的块状物和边界等特征;中间的层开始学习一些纹理特征;而在接近分类器的高层,则可以明显看到的物体形状的特征。最后的一层,即分类层,不同物体的主要特征已经被完全提取出来。
自然语言
自然语言,区别于计算机所使用的机器语言和程序语言,是指人类用于日常交流的语言。而自然语言处理的目的却是要让计算机来理解和处理人类的语言。
自然语言的一个句子背后往往包含着不直接表述出来的常识和逻辑。这使得计算机在试图处理自然语言的时候不能从字面上获取所有的信息。因此自然语言处理的难度更大,它的发展与应用相比于计算机视觉也往往呈现出滞后的情况。
为了将深度学习引入自然语言处理领域,研究者尝试了许多方法来表示和处理自然语言的表层信息(如词向量、更高层次、带上下文信息的特征表示等),也尝试过许多方法来结合常识与直接感知(如知识图谱、多模态信息等)。这些研究都富有成果,其中的许多都已应用于现实中,甚至用于社会管理、商业、军事的目的。
自然语言处理的基本问题
自然语言处理主要研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法,其主要任务包括:
语言建模:计算一个句子在一个语言中出现的概率。
词性标注:句子都是由单独的词汇构成的,自然语言处理有时需要标注出句子中每个词的词性。需要注意的是,句子中的词汇并不是独立的,在研究过程中,通常需要考虑词汇的上下文。
中文分词:将中文句子恰当地切分为单个的词。
句法分析:通过明确句子内两个或多个词的关系来了解整个句子的结构。最终句法分析的结果是一棵句法树。
情感分类:给出一个句子,判断这个句子表达的情感。
机器翻译:最常见的是把源语言的一个句子翻译成目标语言的一个句子,最终预测出来的整个目标语言句子必须与给定的源语言句子具有完全相同的含义。
阅读理解:有许多形式。有时候是输入一个段落,一个问题,生成一个回答,或者在原文中标定一个范围作为回答,有时候是输出一个分类。
强化学习
1.概念
强化学习是机器学习的一个重要分支,它与非监督学习、监督学习并列为机器学习的三类主要学习方法。强化学习强调如何基于环境行动,以取得最大化的预期利益,所以强化学习可以被理解为决策问题。它是多学科多领域交叉的产物,其灵感来自于心理学的行为主义理论,即有机体如何在环境给予的奖励或惩罚的刺激下,逐步形成对刺激的预期,产生能获得最大利益的习惯性行为。强化学习的应用范围非常广泛,各领域对它的研究重点各有不同。
监督学习是通过带有标签或对应结果的样本训练得到一个最优模型,再利用这个模型将所有的输入映射为相应的输出,以实现分类。
非监督学习是在样本的标签未知的情况下,根据样本间的相似性对样本集进行聚类,使类内差距最小化,学习出分类器。
2.强化学习的四个元素
智能体(agent):智能体是执行任务的客体,只能通过与环境互动来提升策略。
环境状态(state) :在每一个时间节点,agent所处的环境的表示即为环境状态。
行动(action) :在每一个环境状态中,agent可以采取的动作即为行动。
反馈(reward) :每到一个环境状态,agent就有可能会收到一个 reward 反馈。
3.强化学习算法的目标
强化学习算法的目标就是获得最多的累计奖励(正反馈)。
4.强化学习的特征
没有监督者,只有一个反馈信号;
反馈是延迟的,不是立即生成的;
强化学习是序列学习,时间在强化学习中具有重要的意义;
Agent的行为会影响以后所有的决策。
5.强化学习算法简介
强化学习主要可以分为Model-Free(无模型的) 和 Model-based(有模型的) 两大类。Model-Free算法又分成基于概率的和基于价值的。
Model-Free和Model-Based
如果agent不需要去理解或计算出环境模型,算法就是Model-Free的;相应地,如果需要计算出环境模型,那么算法就是Model-Based的。实际应用中,研究者通常使用如下方法进行判断:在agent执行它的动作之前,它是否能对下一步的状态和反馈做出预测?如果可以,那么就是Model-Based方法,如果不能,即为Model-Free方法。
两种方法各有优劣。Model-Based方法中,agent可以根据模型预测下一步的结果,并提前规划行动路径。但真实模型和学习到的模型是有误差的,这种误差会导致agent虽然在模型中表现很好,但是在真实环境中可能打不到预期结果。Model-Free的算法看似随意,但这恰好更易于研究者们去实现和调整。
基于概率的算法和基于价值的算法
基于概率的算法直接输出下一步要采取的各种动作的概率, 然后根据概率采取行动。每种动作都有可能被选中, 只是可能性不同。基于概率的算法的代表算法为policy-gradient而基于价值的算法输出的则是所有动作的价值, 然后根据最高价值来选择动作, 相比基于概率的方法, 基于价值的决策部分更为死板——只选价值最高的,而基于概率的, 即使某个动作的概率最高, 但是还是不一定会选到它。基于价值的算法的代表算法为Q-Learning。
6.强化学习算法的应用
(1)交互性检索
交互性检索是在检索用户不能构建良好的检索式(关键词)的情况下,通过与检索平台交流互动并不断修改检索式,从而获得较准确检索结果的过程。
当用户想要搜索一个竞选演讲(Wu & Lee,INTERSPEECH 16)时,他不能提供直接的关键词,其交互性搜索过程如下图所示。在交互性检索中,机器作为agent,在不断地尝试中(提供给用户可能的问题答案)接受来自用户的反馈(对答案的判断),最终找到符合要求的结果。
(2)新闻推荐
一次完整的推荐过程包含以下过程:用户刷新或者下拉,后台获取到用户请求,并根据用户的标签召回候选新闻,推荐引擎则对候选新闻进行排序,最终给用户推出新闻,如此往复,直到用户关闭 app,停止浏览新闻。
将用户持续浏览新闻的推荐过程看成一个决策过程,就可以通过强化学习学习每一次推荐的最佳策略,从而使得用户从开始打开 app 开始到关闭 app 这段时间内的点击量最高。
在此例中,推荐引擎作为agent,通过连续的行为即推送10篇新闻,获取来自用户的反馈,即单击:如果用户浏览了新闻,则为正反馈,否则为负反馈,从中学习出奖励最高(点击量最高)的策略。