bigquant 2020-06-05
本文将使用“算法”一词,以高度简化的方式来描述单个算法、模型或者使用多种算法的软件。在每个类别中,逐一讨论数据输入的类型、作为黑箱的算法以及输出(为了简便易行,即使真实算法不是黑箱也暂且把它当成黑箱)。
因为这是高层次的概述,所以我鼓励你深入研究感兴趣的具体应用,搞清楚它们究竟是如何应用于行业或者业务活动的。目前也有很多资源可供使用,以学习所涉及的技术细节和具体算法。
预测是预测分析或者预测建模的同义词,这是根据有标签,以及有时甚至无标签的输入数据来判断输出数据的过程。在机器学习和人工智能中,预测分析可以进一步细分为回归和分类。
下面将对使用有标签数据(有监督)进行预测的两个子类进行讨论。
1. 回归
图1-1展示了在回归方法中输入有标签数据,经预测模型处理,然后从连续数列中生成数值的过程(例如股市的闭市价)。
▲图1-1:回归
应用包括客户全周期的股票价值和净利润、收入及其增长预测、价格变动、信贷违约风险以及股票交易计算。
2. 分类
分类指的是输入有标签数据,经过分类模型处理后,把输入数据分成一类或多类的过程,如图1-2所示。
▲图1-2:分类
垃圾邮件过滤器是二元分类应用的标准案例。电子邮件是经分类模型处理后的输入数据,输出数据是确定了的垃圾邮件或者非垃圾邮件,非垃圾邮件专指那些不含垃圾内容的好邮件。垃圾邮件会被送入垃圾箱,而非垃圾邮件则被送入收件箱。
假如引入第三个类别“不确定”,那么分类器现在就可以把输入的邮件分成三类。因为超过了两个类别,所以这是多元分类的例子。在该例子中,电子邮件的客户端可能有“疑似垃圾邮件”的文件夹供用户审查每封邮件,并以此训练分类器更好地区分垃圾与非垃圾邮件。
如果要把输入数据分成三类或更多类,那么算法可以为输入数据选择单一类别或者计算输入数据属于每个类别的概率。在后一种情况下,可以采用概率最大的类别作为选择的结果,或者采用所有类别的概率来按你自己定制的规则处理。
在这种情况下,假定一封刚收到的邮件被确定有85%的可能性是垃圾邮件,10%的可能性是非垃圾邮件,5%的可能性为不确定。因为是垃圾邮件的可能性比较高,因此可以判定该邮件为垃圾邮件,或者以其他方式来使用计算出的概率。
最后,某些算法可以为同一输入分配多个标签。这里有一个与图像识别相关的例子,假设输入的数据是红苹果的图像,那么算法可以为该图像分配红色、苹果和水果等多个不同的标签。该案例为图像分配所有三个类别的做法是合适的。
应用包括信用风险、贷款审批和客户流失。分类可以与本文后续讨论的识别应用相结合。
推荐系统是依据现有信息进行推荐的一种个性化形式,其结果与各个用户甚为相关。其可以用来提高客户转化率、销售率、满意度和留存率。事实上,亚马逊就是通过增加这些引擎把营业收入提高了35%, 75%的Netflix观赏节目也来自于这样的推荐。
推荐系统是一种特别的信息过滤系统。也可以通过用户搜索、排名和评分的办法来完成个性化。推荐系统根据诸如商品或者用户等的输入数据,经过推荐模型或者引擎的处理来完成推荐(例如产品、文章、音乐、电影),如图2所示。
▲图2:推荐系统
值得一提的是与推荐系统相关的“冷启动问题”。冷启动是指智能应用尚未拥有足够的信息来为特定用户或者群体做出高度个性化和关联度的推荐。例如,用户尚未产生关于它们的偏好、兴趣或购买历史的信息。
另一个例子是当商品(例如衣服、产品、视频、歌曲)刚刚面世的时候。有几种技术有助于解决这个问题,但因篇幅所限就不深入讨论了。
推荐系统应用包括推荐产品、视频、音乐、歌曲、书籍和电视节目(例如亚马逊、Netflix、Spotify)。除了推荐以外,也包括个性化的内容,包括新闻、报道、电邮和定向广告(例如推特)。
其他的案例还包括个性化医疗计划、个性化图像和图标(例如YouTube、Netflix、Yelp)、葡萄酒推荐、个性化购物(例如完美的夹克衫搭配)、时尚穿搭(例如StitchFix)以及全套的自动化推荐。
计算机视觉是一个广阔的领域,它包括涉及诸如图像和视频之类视觉信息的模式识别(下一节将讨论另外一种技术)。计算机视觉以照片、静止的视频图像和一系列图像(视频)作为输入,经过模型的处理,产生输出,如图3所示。
▲图3:计算机视觉
输出可以是识别、检测和发现某个目标、特征或者活动。视觉相关的应用隐含着一定程度的自动化,特别是自动化视觉,通常需要人在应用中参与(例如检查)。机器视觉一词用来描述在工业应用中的类似或者有一定重叠度的技术,诸如检查、过程控制、测量和机器人。
计算机视觉有许多有趣而且强大的应用,同时应用场景也在快速增加。例如,可以在下述场景中使用计算机视觉:
无人航空器(UAV)经常被称为无人机。通过应用计算机视觉,无人机能够执行检查(例如石油管道、无线信号塔)、完成建筑和区域搜索、帮助制作地图和送货。计算机视觉现在正广泛应用于公安、安保和监控。当然,这类应用也要注意符合伦理道德,保护人们的利益。
计算机视觉还有最后一件事值得一提。通过看、闻、听、触和味五大感觉,人类能够感知环境和周围的世界。感官捕获信息,然后传递到神经系统进行转换,同时也决定应该采取什么行动或者应该做出什么样的反应。计算机视觉是对特定人工智能应用视觉的一种类比。
模式识别涉及输入非结构化数据,经过模型处理,继而检测是否存在某种特定的模式(检测),然后为识别出的模式分配一个类别(分类),或者发现所识别模式的主题(识别),如图4-1所示。
▲图4-1:模式识别
这些应用的输入可以包括图像(包括视频——一系列静止的图像)、音频(例如讲话、音乐和声音)和文本。文本可以根据其特性进一步细分为电子、手写或者打印(例如纸、支票、车牌号)。
以图像为输入的目的可能是检测目标、识别目标、发现目标,或者三者皆有。人脸识别就是一个好例子。训练模型来检测图像中的人脸,并对检测到的目标进行分类,打上人的标签,这就是目标检测的例子,这里的目标是未经识别的人脸。
“检测”用来指代所发现的不同于背景的目标。其也包括对目标位置的测量和围绕被检测目标边际框的具体测量。识别是指为检测到的目标分类或打标签的过程(在本案例中是人脸),识别会更进一步,并为所识别的人脸分配一个身份。图4-2呈现了一些图像识别的案例。
▲图4-2:图像识别与检测
诸如人脸识别这样的生物特征识别技术可以用来为图中的人自动打标签。生物特征识别的另外一种形式是根据指纹来识别。
其他的应用包括:
音频识别的应用包括:
最后,手写或打印的文本可以通过光学字符识别(OCR)和手写字符识别转换为电子文档。文档也可以转换为语音,但这被认为更可能是人工智能的生成性应用,而不是识别性应用。本文稍后会讨论生成性应用。
图5中所示的聚类和异常检测是两种最常见的无监督机器学习技术。它们也被认为是模式识别技术。
▲图5:聚类和异常检测
这两个过程都以无标签数据作为输入,经过相应算法(聚类或异常检测)的处理,在聚类的场景下完成分组,或者在异常检测场景下确定是否属于异常。我们首先讨论聚类。
聚类把无标签数据中相似的数据聚合成组。具体的组数由完成聚类任务的人(通常是数据科学家)决定。并没有绝对正确或者错误的组数,但对某一特定的应用,通常可以通过试错来确定理想的组数。
因为数据没有标签,所以聚类者必须为每组指定某种含义或标签以便清楚地描述(例如运动狂)。然后用模型把新数据分配给某个组,从而假定该组的标签或描述。可以把这个过程想象成某种形式的预测分类,也就是为每个新数据点分配一个类(通过分组标签)。
把新数据点(例如客户)分配给集群(细分市场),会为我们提供一种可以精准定位、个性化以及策略性定位产品的更好方法,并可以用合适的方式来对每个细分市场的客户进行营销。
聚类应用包括细分和聚焦市场与客户、三维医疗影像分析、按照购物习惯分类产品以及社交媒体分析。
异常检测是用来检测异常数据(高度不寻常、偏离常规或畸形)模式的一种技术。异常检测应用包括基于音频的缺陷和裂纹检测、网络安全、质量控制(例如制造缺陷检测)以及计算机与网络系统健康(例如NASA的缺陷和错误检测)。
在网络安全的异常检测应用方面,常见的威胁包括恶意软件、勒索软件、计算机病毒、系统和内存攻击、拒绝服务(DoS)攻击、网络钓鱼、不需要的程序执行、凭据盗窃、数据传输和盗窃等。毋庸讳言,这方面的异常检测场景层出不穷。
自然语言是人工智能发展与应用中非常有趣且令人激动的领域,通常分成三个子领域:自然语言处理(NLP)、自然语言生成(NLG)和自然语言理解(NLU)。让我们分别进行讨论。
1. NLP
自然语言处理(NLP)输入文本、语音或手写形式的语言,经过NLP算法处理后,输出结构化的数据,如图6-1所示。现在有很多潜在的NLP场景和输出。
▲图6-1:NLP
值得一提的是,有时NLP也被认为是NLG和NLU的超集,因此人工智能自然语言应用在总体上可以被认为是NLP的一种形式。也有人认为它是自然语言应用的特定集合,我们正在讨论的就是其中的一部分。
与NLP相关的具体任务和技术包括:
一个具体的NLP应用涉及公司会议录音、文本转换,然后提供会议总结,其中包括围绕不同话题的分析和会议表现(https://www.chorus.ai)。
另外一个应用采用NLP来对招聘面试进行分析,并根据性别中立性、语调、措辞等因素给出整体评分。它还为提高评分和整体工作描述提供优化建议。
其他的应用还包括:
现在有许多云服务提供商通过NLP服务和API接口来提供这方面的一些功能。
2. NLG
NLG以结构化数据的形式来输入语言,经过NLG算法处理,产生对应语言作为输出,如图6-2所示。这种语言输出可以是文本或者文本转换为语音的形式。结构化输入数据的案例可以是比赛中运动员情况的统计数据、广告效果数据或者公司的财务数据。
▲图6-2:NLG
应用包括:
安德烈·卡帕西创建的模型可以自动产生维基百科文章、婴儿姓名、数学论文、计算机代码和莎士比亚的模型。其他的应用包括生成手写文本甚至创作笑话。
3. NLU
最后,NLU以语言为输入(文本、语音或手写),经过NLU算法的处理,产生可以被理解的语言作为输出,如图6-3所示。所产生的可理解语言可以用来采取行动、生成响应、回答问题、进行对话等。
▲图6-3:NLU
“理解”一词可以非常深奥且具有哲学性质,并会涉及领悟的概念,注意到这一点非常重要。理解所指的能力,往往不仅是领悟信息(与死记硬背相反),而且是把理解的信息与现存知识整合,并以此作为不断增长的知识基础。
缺乏与人类相似的语言理解和领悟是今天基于自然语言的人工智能应用的一大缺憾,其根源在于让机器获取与人类相似的语言理解能力难于上青天。还记得前面关于人工智能现状和人工智能难题的讨论吗?这就是一个明证。
在不进行全面哲学讨论的情况下,让我们仅用术语“理解”来表示算法(重申,大大简化)能够对输入语言做更多的工作,而不仅是解析并执行简单的任务,如文本分析。NLU要解决的问题显然比NLP和NLG(普通人工智能问题)难得多,而且NLU是实现通用人工智能(AGI)的主要基本组成。
目前的NLU日臻完善,已经有了包括个人虚拟助理、聊天机器人、客户成功(支持与服务)代理、销售代理等在内的应用。这些应用通常包括某些形式的手写内容或语音对话,经常围绕着信息搜集、问题解答或者某些协助性工具。
个人助理的具体应用案例包括诸如亚马逊的Alexa、苹果的Siri、谷歌的Assistant以及Nuance的Nina。聊天机器人的应用案例包括润滑油专家、工作面试、学生贷款顾问和商业保险专家。这是人工智能研究非常活跃和有潜在发展空间的领域,绝对值得关注。
多数情况下,数据都是按照序列采集的,因此数据的序列极为重要而且由特定索引所确定。
最为常见的数据序列索引是时间,按时间排序的数据被称为时间序列数据。每天交易时段股票的价格波动、DNA序列、物联网传感器数据,以及诸如风向等科学现象,都是时间序列的好例子。
时间序列分析和建模可用于学习、判断和预测基于时间的事件,包括趋势、季节变动、循环和噪声。
对某些特定应用,字母和单词的序列也是有效的序列数据,这些序列被打上不同的标签,诸如n-grams、skip-grams、句子、段落,甚至语言本身,其中语言是以语音、文字或者电子的方式来表达的。另外,音频和视频也是序列数据。
应用包括:
许多强大的人工智能应用都围绕着信息的搜索、提取和排序(评分)。这特别适用于非结构化和半结构化数据,例如文本文档、网页、图像和视频。
可以使用这类数据(有时候辅以结构化数据)来提取信息、提供搜索或优化处理推荐,以及按照相关性、重要性或优先级来对条目进行排序或评分。这组技术大多都与个性化有关,因为搜索结果和其他条目可以按照针对某个用户或群体的相关性的大小排列或排序。
目前,有许多搜索任务都是通过键盘输入或者语音提供给诸如谷歌这样的搜索引擎,该引擎使用谷歌独有的人工智能搜索算法。电子商务应用也使用他们自己的引擎来搜索产品,搜索过程可以由文本、声音(语音)及视觉输入驱动。
文本搜索包括谷歌搜索、微软的Bing,以及分布式、透明和社区驱动的搜索。
基于声音和图像的搜索应用包括:
视频搜索基于图像内容进行搜索。早就有购物应用采取这种方式。用户把拍摄的照片提交给视频搜索引擎。接着用照片产生相似性搜索结果,诸如衣服。有些图像引擎也能以视觉方式展示相似的其他产品和推荐。
除了分类技术以外,还有排序和评分技术,包括下述这些应用:
强化学习(RL)与这里迄今描述过的人工智能技术迥然不同(简单回想一下前面提到的人类学习的方法)。基本的想法是有一个代理在虚拟环境中行动以获得积极的回报。每个动作都会引起环境状态的变化,而且每个动作都由称为策略的模型来决定。策略尝试确定在给定状态下要采取的优秀操作。
如果暂时不理解请别担心;我会举个例子,希望能解释得更清楚。图9很形象地展示了强化学习。
▲图9:强化学习
你可以考虑以游戏《吃豆女士》(Ms. Pac-Man,为何不是Ms. Pac-Woman?)为例。吃豆女士的目标是吃掉屏幕上所有的点,但是更大的目标是从可能吃掉的点中获得最多的分数。为什么得分最多才是真正的目标?或者说为什么要玩这个游戏?
首先,得分越多,能得到的自由生命就越长,自由生命越长就能玩得越久,就可以继续积累更多的分数。其次,如果能完成比赛或者创造世界纪录,就能获得正式的“吹牛权”,谁不希望呢?
在这种情况下,得分是奖励,吃豆女士是代理,环境是屏幕,参与其中的人(玩家)是通过操纵游戏控制杆决定采取行动的策略。
当然环境是有状态的。有一个普通的不易察觉的情况,那就是在吃豆女士吃屏幕上的点和水果时,必须躲开追赶她的幽灵,还有一个不可战胜的情况,那就是当吃豆女士吃了无敌药丸(我不知道它到底叫什么)后,她就可以吃掉幽灵从而得到很多额外的分。
决定无敌与非无敌的是环境状态的变化,也是代理人在环境中能力的变化。
值得一提的是,在人们玩《吃豆女士》游戏的过程中,有时会受完成屏幕目标的驱使,尽可能打通更多关卡而不是得最多分。在这种情况下,人们只会使用无敌状态来加速,吃尽可能多的不受阻碍的点,可能不会通过吃幽灵来得到最多分。
假设你有强化学习应用,目标是得最多分。在这种情况下,应用将尝试学习如何做到这一点,也就是吃尽可能多的幽灵和水果。
还有一件事要提,得分是一种积极的回报。碰到幽灵丧命是一种消极的回报。随着时间的推移,强化应用应该尝试最大化得分和最小化生命损失。尽管这个例子是在游戏场景中构建的,但是我们可以通过许多其他的方式来使用强化学习。
应用包括:
实际应用的最后一节指出了一些应用,因为涉及多种组合技术,或者不适合已经讨论过的任何类别,所以将它们归类为混合或杂项。
应用案例包括: