一、AI应用领域 AI目前主要应用领域有计算机视觉、语音交互、自然语言处理三个方向。
1.1 计算机视觉(CV) 计算机视觉是一门研究如何让机器看的科学,是指用摄像头和计算机代替人眼识别、跟踪和测量目标的机器视觉的应用它是利用计算机及相关设备对生物视觉进行模拟,处理收集到的图片或视频,获取相应场景的三维信息,使计算机能够传感、抽象和判断周围世界的空间物体。
计算机视觉在现实场景中的应用价值主要体现在使用计算机识别图像和视频的能力,取代部分劳动力工作,节省劳动力成本,提高工作效率。传统的计算机视觉基本上遵循图像预处理、提取特征、建模和输出的过程。然而,通过深度学习,许多问题可以直接采用端到端,从输入到输出。
(1)研究内容
实际应用中采集的图像质量通常不如实验室数据理想,光照条件不理想,图像采集模糊是实际应用中常见的问题。因此,首先要纠正系统引入的光度学和几何畸变,抑制和去除成像过程中引入的噪声,统称图像恢复。 预处理输入的原始图像,采用图像过滤、图像增强、边缘检测等大量图像处理技术和算法,从图像中提取角、边缘、线条、边界、颜色等基本特征;该过程还包括各种图像变换(如校正)、图像纹理检测、图像运动检测等。 根据提取的特征信息,从图像中分离出反映三维对象的每个图像基元,如轮廓、线条、纹理、边缘、边界和对象的每个表面,并建立基元之间的和几何关系,称为基元的分割和关系的确定。 计算机根据预先存储在数据库中的预知识模型,在预知识的指导下,识别客观世界中所代表的基元或某些基元组合的某些实体——称为模型匹配,并根据图像中基元之间的关系得到图像所代表的实际场景的含义,并得到图像的解释或描述。 (2)应用场景
计算机视觉的应用场景非常广泛,如无人驾驶、无人安全、人脸识别、光学字符识别、物体跟踪、车辆车牌识别、图片搜索、医学图像分析等。最近,B站推出了一个新的弹幕屏幕屏蔽功能,即在播放视频时,弹幕自动通过人脸隐藏,也被应用CV,这一小功能进一步优化了B站核心价值之一的弹幕,大大提升了用户体验。
(3)瓶颈
目前,实际应用中收集的数据还不理想。光照条件、物体表面光泽、相机和空间位置的变化会影响数据质量。虽然算法可以用来弥补,但在许多情况下,算法无法解决信息的缺失。 在一个或多个平面图像中提取深度信息或表面倾斜信息并不容易,尤其是在灰度失真、几何失真和干扰的情况下。除了获取物体的三维信息外,在现实世界中,物体相互阻挡,各部分之间的阻挡使图像分离更加复杂。 不同的预测设置也使相同的图像产生不同的识别结果,预测在视觉系统中起着非常重要的作用。各种实际可能遇到的物体的知识模型存储在预知识库中,以及实际场景中各种物体之间的约束关系。计算机的作用是利用预测知识作为指导,最终通过匹配、搜索和推理来描述图像。在整个过程中预知识时刻提供处理的样板和证据,每一步的处理结果随时同预知识进行对比,所以预知识设置会对图像识别结果产生极大影响。 (4)企业提供相关方案
旷视face 人工智能开放平台(提供人脸识别、人体识别、文字识别等技术方案) :https://www.faceplusplus.com.cn/ 商汤科技(提供人脸与人体分析、通用与专业图像分析、视频处理等技术,提供智能安防、智能终端、智能金融等解决方案):https://www.sensetime.com/core 腾讯优图AI开放平台(提供人脸和人体识别、图像识别、文字识别、天眼安全、天眼交通等解决方案):https://open.youtu.qq.com/#/open 百度AI开放平台(提供人脸及人体识别、图像识别、文字识别、图像审核等):http://ai.baidu.com/tech/imagerecognition 阿里云(提供人脸识别、图像识别、图像搜索、视频识别等。https://ai.aliyun.com/?spm=a2c4g.11174283.1146454.294.167d1039G3kvVD 图普技术(提供图像内容审核、人脸识别、文字识别、图像场景识别等技术方案):https://www.tuputech.com/ 格灵深瞳(人眼摄像头、视图大数据分析平台、人脸识别系统等):http://www.deepglint.com/ 2.2 语音交互 语音交互也是一个非常流行的方向。事实上,语音交互的整个过程包括语音识别、自然语言处理和语音合成。自然语言处理通常被研究为一个单独的领域。本文还将介绍自然语言处理,因此只介绍语音识别和语音合成。
语音交互的最佳应用场景是眼睛不方便看,或手不方便操作。不方便看的典型场景是智能车,不方便操作的典型场景是智能扬声器,这也是目前流行的两个细分方向。
完整的语音交互基本上遵循以下流程:
AI知识点汇总 (1)语音识别(ASR)
1)研究内容
语音识别的输入是声音,属于计算机无法直接处理的模拟信号,因此需要将声音转换为计算机可以处理的文本信息。传统的识别方法需要通过编码将其转换为数字信号,并提取其特征进行处理。
隐马尔可夫模型通常用于传统的声学模型(HMM),语音输入-编码(特征提取)-解码-输出是处理过程。
还有一种端到端的识别方法,一般采用深度神经网络(DNN),这样,声学模型的输入通常可以使用更原始的信号特征(减少编码阶段的工作),输出不再需要通过音素等基本元素,可以直接是字母或汉字。
在计算资源和模型的培训数据充足的情况下,端到端往往能取得更好的效果。目前的语音识别技术主要是通过DNN实现。语音识别的效果一般采用识别率,即识别与标准文本相匹配的单词数量与标准文本总单词数量的比例。目前,中文通用语音连续识别的识别率可达97%。
2)衍生研究内容
麦克风阵列:在家庭、会议室、户外、商场等环境下,语音识别会出现噪音、混响、人声干扰、回声等问题。麦克风阵列可以在这种需求背景下解决。麦克风阵列由一定数量的声学传感器(通常是麦克风)组成,用于采样和处理声场的空间特性,实现语音增强、声源定位、混响、声源信号提取/分离。麦克风阵列分为2麦克风阵列、4麦克风阵列、6麦克风阵列和6麦克风阵列 麦克风阵列。随着麦克风数量的增加,拾音距离、噪声抑制、声源定位角度和价格会有所不同,因此有必要根据实际应用场景找到最佳方案。 远场语音识别:要解决远场语音识别,需要与前端和后端相结合。前端使用麦克风阵列硬件来解决噪声、混响、回声等问题,后端使用不同的近场和远场声学规建适合远场环境的声学模型,前后端共同解决远场识别问题。 语音唤醒:通过关键词唤醒语音设备,通常是3个以上的音节。例如:嘿Siri、和亚马逊echo的Alexa。语音唤醒基本在本地进行,必须在设备终端运行,不能切入云平台。因为一个7×为了保护用户隐私,24小时监控设备只能进行本地处理,而不是云处理音频流联网。 语音唤醒需要唤醒响应时间、功耗和效果。 在低信噪比的远场中,判断外界是否有有效的语音尤为重要。 (2)语音合成(TTS)
1)研究内容
这是一个将文本转换为语音(大声朗读)的过程。目前,拼接法和参数法有两种实现方法。
拼接法是将事先录制的大量语音切割成基本单元存储,然后根据需要选择拼接。该方法输出高质量的语音,但数据库太大。 参数法是通过语音提取参数,然后转换为波形,从而输出语音。该方法的数据库要求较小,但声音必然会有机械感。 DeepMind早些时候发布了机器学习语音生成模型WaveNet,直接生成原始音频波形可以在不依赖任何发音理论模型的情况下建模任何声音,在文本转换语音和传统音频生成方面取得优异的效果。
2)瓶颈
个性化TTS当用户预期较高时,数据需求量大,难以满足。AI产品经理选择用户期望较低的场景,或在设计时管理用户期望。
(3)企业提供相关方案
讯飞开放平台(提供语音识别、语音合成、语音扩展等技术解决方案及智能硬件及各种行业解决方案):https://www.xfyun.cn/ 图灵机器人(提供多场景聊天机器人解决方案):http://www.tuling123.com/ 腾讯AI开放平台(提供语音识别、语音合成等技术):https://ai.qq.com/ 百度AI开放平台(提供语音识别、语音合成等技术):http://ai.baidu.com/tech/speech 阿里云(提供语音识别、语音合成、录音文件识别等。https://ai.aliyun.com/?spm=a2c4g.11174283.1146454.294.167d1039G3kvVD 追逐技术(提供多行业智能外呼和智能机器人解决方案):https://zhuiyi.ai/ 2.3 理解自然语言(NLP) (1)研究内容
自然语言处理是计算机理解、分析和生成自然语言的一门学科理解和处理文本的过程,相当于人脑。NLP是目前AI发展的核心瓶颈。
NLP一般的研究过程是:开发够表达语言能力的模型——提出各种方法来不断提高语言模型的能力——根据语言模型设计各种应用系统——不断改进语言模型。自然语言理解和自然语言生成都属于自然语言理解的概念范畴。
理解自然语言(NLU)模块,重点是单句的语义理解,在句子级别对用户的问题进行分类,明确意图识别(Intent Classification);同时,找出用户问题中的关键实体,填充实体槽(Slot Filling)
一个简单的例子,用户问“我想吃冰激凌”,NLU模块就可以识别出用户的意图是“寻找甜品店或超市”,而关键实体是“冰激淋”。有了意图和关键实体,就方便了后面对话管理模块进行后端数据库的查询或是有缺失信息而来继续多轮对话补全其它缺失的实体槽。
自然语言生成(NLG)模块是机器与用户交互的最后一公里路,目前自然语言生成大部分使用的方法仍然是基于规则的模板填充,有点像实体槽提取的反向操作,将最终查询的结果嵌入到模板中生成回复。手动生成模板之余,也有用深度学习的生成模型通过数据自主学习生成带有实体槽的模板。
(2)应用场景
自然语言处理作为CUI(Conversational User Interface,对话式交互)中非常重要的一部分,只要是CUI的应用场景都需要自然语言处理发挥作用。除此之外,机器翻译、文本分类也都是自然语言处理的重要应用领域。
(3)瓶颈
1)词语实体边界界定
自然语言是多轮的,一个句子不能孤立的看,要么有上下文,要么有前后轮对话,而正确划分、界定不同词语实体是正确理解语言的基础。目前的深度学习技术,在建模多轮和上下文的时候,难度远远超过了如语音识别、图像识别的一输入一输出的问题。所以语音识别或图像识别做的好的企业,不一定能做好自然语言处理。
2)词义消歧
词义消歧包括多义词消歧和指代消歧。多义词是自然语言中非常普遍的现象,指代消歧是指正确理解代词所代表的⼈或事物。例如:在复杂交谈环境中,“他”到底指代谁。词义消歧还需要对文本上下文、交谈环境和背景信息等有正确的理解,目前还无法对此进行清晰的建模。
3)个性化识别
自然语言处理要面对个性化问题,自然语言常常会出现模凌两可的句子,而且同样一句话,不同的人使用时可能会有不同的说法和不同的表达。这种个性化、多样化的问题非常难以解决。
(4)提供相关方案的企业
讯飞开放平台(提供自然语言处理):https://www.xfyun.cn/ 图灵机器人(提供多场景的聊天机器人解决方案):http://www.tuling123.com/ 腾讯AI开放平台(提供基础文本解析、语义分析等技术):https://open.youtu.qq.com/#/open 百度AI开放平台(提供语言处理基础技术、文本审核、机器翻译等):http://ai.baidu.com/tech/nlp 阿里云(提供情感分析、实体识别、机器翻译等):https://ai.aliyun.com/?spm=a2c4g.11174283.1146454.294.167d1039G3kvVD 追一科技(提供智能外呼、及智能机器人在多行业的解决方案):https://zhuiyi.ai/ 二、AI技术 业内通常将人工智能分类为机器学习、计算机视觉、语音交互和自然语言处理四大领域,机器学习可以理解为是其他三大领域的底层基础,大致可以分为监督学习、非监督学习、强化学习、迁移学习。
本文在此基本不涉及公式,尽量以平直易懂的语言讲述这几种机器学习方法及相关算法。个人认为在实战过程中根据工作需要再深入学习这些算法,会更有针对性而且效率会更高,事半功倍。
2.1 机器学习 概念:投喂给机器训练数据,机器从这些数据中找出一个能够良好拟合已有数据的函数,新数据来了后,就可以通过这个函数预测对应结果。
适合解决的问题:有规律可以学习、编程很难做到、有能够学习到规律的数据。
工作方式:
根据任务目标确定算法; 在预处理阶段把数据分成三组:训练数据(用来训练模型)、验证数据(开发过程中用于调参)、 测试数据(测试用); 用训练数据来构建使用相关特征的模型; 把验证数据接入模型调参; 用测试数据检查被验证的模型的表现; 用完全训练好的模型在新数据上做预测; 用更多数据或选取不同特征以及利用调整过的参数来提升优化算法的性能表现。 分类:按学习方式可以分为监督学习(包括半监督学习)、无监督学习、强化学习、迁移学习。
2.2 监督学习 概念:机器学习的一种,通过学习许多有标签的样本,得到特征值和标记值之间的对应规律,然后对新的数据做出预测。
分类:根据输入数据x预测出输出数据y,如果y是整数的类别编号,则称为分类问题,算法包括:决策树、随机森林、贝叶斯、KNN、SVM、逻辑回归。如果y是实数值,则为回归问题,算法包括决策树、随机森林、KNN、SVM、线性回归。
主流算法:
1)决策树算法
基本原理:决策树是一个树结构,每个非叶节点表示一个特征属性,每个分支代表这个特征属性在某值域上的输出,每个叶节点存放一个类别。使用决策树进行决策的过程就是从根节点开始,测试待分类项中相应的特征属性,并按照其值选择输出分支,直到到达某个叶节点,该叶节点存放的类别即为决策结果。
决策树是一种判别模型,既支持分类问题,也支持回归问题,是一种非线性模型(分段线性函数不是线性的),它天然的支持多分类问题。决策树的构建由机器训练得到,而不是人工制定。
决策树的关键步骤是分裂属性,即在某个节点处按照某一特征属性的不同划分构造不同的分支,尽量让一个分裂子集中待分类项属于同一类别。而根据判断方法的不同所以产生了ID3算法,C4.5算法以及CART算法。
下图以银行判断是否给客户贷款为例大致说明决策树的原理:
AI知识点汇总 主要用途:基于规则的信用评估、赛马结果预测。
优劣势:擅长对人、地点、事物的一系列不同特征、品质、特性进行评估,非常容易解释,但容易趋于过拟合。
2)随机森林
基本原理:由决策树与集成学习算法相结合生成,由多棵决策树组成。用多棵决策树联合预测可以提高模型的精度,这些决策树用对训练样本集随机抽样构造出的样本集训练得到。由于训练样本集由随机抽样构造,因此称为随机森林。
随机森林不仅对训练样本进行抽样,还对特征向量的分量随机抽样,在训练决策树时,每次分裂时只使用一部分抽样的特征分量作为候选特征进行分裂。随机森林是一种判别模型,既支持分类问题,也支持回归问题,并且支持多分类问题,这是一种非线性模型。
主要用途:用户流失分析、风险评估。
优劣势:随机森林对大规模数据集和存在大量且有时不相关特征的项来说很有用,且有很好的解释性。它比使用单个模型预测出来的结果要精确的多,但同时也需要大量的维护工作。
3)朴素贝叶斯
基本原理:是在已知样本的特征向量为x的条件下反推样本所属的类别y,即对于给出的待分类项,求解在此待分类项出现的条件下各个类别出现的概率,哪个概率最大,就认为此待分类项属于哪个类别。
简单的举个例子:我们看到一个人高鼻深目金发碧眼,便可以推断他属于白种人,因为在这种外貌特征下他是白种人的概率最高。贝叶斯可以处理多分类问题,是一种非线性模型。
主要用途:文本处理里的垃圾邮件过滤、情感分析、消费者分类、拼写纠正、文字广告过滤、识别恶性评论等领域。
优劣势:对于在小数据集上有显著特征的相关对象,朴素贝叶斯方法可对其进行快速分类,且很统一被解释。所需估计的参数不大,对缺失数据不太敏感,而且无需复杂的迭代求解框架,适用于规模巨大的数据集。但是对输入数据的形式比较敏感、计算先验概率时分类决策可能存在错误。如果输入变量是相关的,则会出现问题。
4)k近邻(KNN)
基本原理:把标注好类别的训练样本映射到选取的特征数维度的坐标系里,然后再把测试样本映射到这个坐标系里,选取距离该测试样本最近的k个训练样本,其中哪个训练样本类别占比最大,就可以认为该类别就是这个测试样本的类别。
kNN算法是一种判别模型,即支持分类问题,也支持回归问题,是一种非线性模型。它天然的支持多分类问题。kNN算法没有训练过程,是一种基于实例的算法。
主要用途:适用 kNN可以处理数值型(从无限的数值集合中取值,如:0.100,42.001等)和标称型(只在有限目标集中取值,如:真与假)数据。一种特征对应一个维度,一种特征下的数据可以数值型的也可以是标称型的。
优劣势:这种算法思想简单,理论成熟,准确度高。但是会占用大量内存,因为需要存储所有的训练样本点,而且每个新测试样本需要通过kNN算法分类,都要计算这个测试样本与所有训练样本点的距离。
5)线性回归
基本原理:主要用于拟合数据趋势。简而言之,就是尽量用一条线或平面或超平面来拟合已有的一组数据。确定自变量和因变量间的相互依赖的定量关系。简单的线性回归一般使用“最小二乘法”来求解,最小二乘的思想就是使得求解的这条线或平面或超平面使所有误差的平方和最小。
主要用途:适用于数值型和标称型数据。
优劣势:结果易于理解,计算不复杂,但是只能用于拟合线性数据,非线性数据拟合效果很差。
6)逻辑回归
基本原理:逻辑回归只是对线性回归的计算结果加了Sigmoid函数进行处理,将数值结果转化为了0到1之间的概率,根据这个概率可以做预测。logistic回归是一种判别模型,它是一种线性模型,用于二分类问题。
主要用途:路面交通流量分析、邮件过滤,
优劣势:实现简单,分类时计算量非常小,速度很快,存储资源低,但是容易欠拟合。
7)支持向量机(SVM)
基本原理:支持向量机的目标是寻找一个分类超平面,它不仅能正确的分类每一个样本,并且要使得每一类样本中距离超平面最近的样本到超平面的距离尽可能远。SVM是一种判别模型,它既可以用于分类问题,也可以用于回归问题。标准的SVM只能支持二分类问题,使用多个分类器的组合,可以解决多分类问题。
主要用途:新闻分类、手写识别。
优劣势:擅长在变量x和其他变量之间进行二元分类操作,无论其关系是否为线性的。可以捕获数据之间更复杂的关系,而无需人为地进行困难的数据转换。但同时它的训练时间长得多,因为计算量更大,而且可解释性也比较差。
2.3 非监督学习 概念:机器学习的一种,训练样本中所有样本数据都不含标记值的学习方式,目的是将样本集划分成多个类,保证同一类的样本之间尽量相似,不同类的样本之间尽量不同。没有训练过程,直接对样本进行划分。
分类:聚类和降维。
主流算法:
1)k均值(k-means)
基本原理:将观测值分为 k 个聚类,随机初始化每个类的类中心,然后计算样本与每个类的中心的距离,将其分配到最近的那个类,然后根据这种分配方案重新计算每个类的中心。这也是一种分阶段优化的策略。
2)主成分分析(PCA)
基本原理:PCA是一种数据降维和去除相关性的方法,它通过线性变换将向量投影到低维空间,对向量进行投影就是让向量左乘一个矩阵得到结果向量。降维要确保的是在低维空间中的投影能很好的近似表达原始向量,即重构误差最小化。PCA是一种无监督的学习算法,它是线性模型,不能直接用于分类和回归问题。
2.4 半监督学习 训练样本中只有部分样本数据包含标记值的学习方式,当没有足够人力标记所有的样本数据,并且稍稍降低对模型预测精度的要求时,便可以使用半监督学习。相比无监督学习会有较高的精度,相比有监督学习可以大幅降低人工标记成本。
例如:在拥有上百万篇文章资讯类的网站中进行文章分类标记,便可以采用半监督学习,只需要对训练样本进行少量的人工标注处理,便可以得到较高精度的分类结果。
2.5 强化学习 强化学习是一种特殊的机器学习,根据输入环境参数确定要执行的动作,通过与环境交互来优化目标函数。在训练时,对于正确的动作做出奖励,对错误的动作做出惩罚,训练完成之后就用得到的模型进行预测。简要来说,强化学习算法是一种根据当前的状态确定要执行的动作的学习方式。
2.6 迁移学习 迁移学习简要来说,就是把已经学到训练好的模型参数迁移到新的模型来帮助并加快新模型训练数据集,这种学习方式可以大幅缩短新模型的学习时间。
2.7 深度学习 深度学习是机器学习的子集,这个概念来源于对人工神经网络的研究。深度学习通过组合低层特征形成更加抽象的高层表示属性类别或特征,以发现数据的分布式特征表示。
深度机器学习方法也有监督学习与无监督学习之分,不同的学习框架下建立的学习模型很是不同。例如:卷积神经网络(Convolutional neural networks,简称CNNs)就是一种深度的监督学习下的机器学习模型,而深度置信网(Deep Belief Nets,简称DBNs)就是一种无监督学习下的机器学习模型。
深度学习相较其他机器学习最厉害的一点:可以对数据特征进行预处理(省去数据人工标注的麻烦,同时可以对更多维和复杂的特征进行向量提取和空间向量的转换,方便后续处理),这也是它为什么很多层的原因,因为其中多出来的层数都是要用来进行数据特征提取预处理的。端到端的训练,是深度学习的核心技术。目前深度学习框架有tensorflow、keras、caffe、theano、torch等。
1)卷积神经网络(CNN)
基本原理:CNN是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。
卷积神经网络由输入层、卷积层、激活函数、池化层、全连接层组成。卷积层的作用是指对图片的矩阵进行卷积运算,得到一些数值,作为图片的某些特征。因为采用了卷积来处理图像,所以需要使用激活函数来加入非线性因素,来增加表达力。
池化层的作用是对上层的数据进行采样和压缩,一方面使特征图变小,简化网络计算复杂度;一方面进行特征压缩,提取主要特征。全连接层连接所有的特征,将输出值分类。
前面卷积层和池化层进行处理后,得到了很多的特征,全连接层使用这些特征进行分类。比如:识别数字,那就是对0~9的十个类别进行分类。卷积神经网络是一个判别模型,它既可以用于分类问题,也可以用于回归问题,并且支持多分类问题。
主要用途:图像处理,计算机视觉和图像分类的主要算法。
2)递归神经网络(RNN)
基本原理:又叫循环神经网络,在任意神经网络中,每个神经元都通过 1 个或多个隐藏层来将很多输入转换成单个输出。递归神经网络会将值进一步逐层传递,让逐层学习成为可能。换句话说,RNN 存在某种形式的记忆,允许先前的输出去影响后面的输入。当输入数据具有依赖性且是序列模式时,RNN 对之前发生在数据序列中的事是有一定记忆的,这有助于系统获取上下文。
基于RNN还衍生出了LSTM(Long-Short-Term-Memerory)和GRU(Gated Recurrent Unit)等一系列算法,这些算法拥有记住过去的能力,所以可以用来处理一些有时间序列属性的数据,在处理语言、文字等方面有独到的优势。
LSTM和GRU的优点是具备与其它递归神经网络一样的优点,但因为它们有更好的记忆能力,所以更常被使用。
递归神经网络是一个判别模型,既支持分类问题,也支持回归问题,并且支持多分类问题。
主要用途:语言建模、文本生成、机器翻译、语音识别、生成图像描述。