当前技术:★★★★✰
未来潜力:★★★✰✰
应用落地:★★★★✰
语音识别,翻译和自然语言处理其实是三种技术,但由于在场景中经常混用,放在一起更合适一点。
语音识别
语音识别领域在机器学习算法前已经取得了巨大的进步。主要采用统计模式识别技术,涉及的技术包括还包括发声机理,听觉机理,信号处理,概率论和信息论等等。
语音识别领域也曾一筹莫展,直到1952年AT&T贝尔实验室开发的Audrey语音识别系统通过跟踪语音中的共振峰的方法得到了98%的正确率。到1950年代末,伦敦学院(College of London)的Denes已经将语法概率加入语音识别中。1960年代,人工神经网络被引入了语音识别。这一时代的两大突破是线性预测编码Linear Predictive Coding (LPC), 及动态时间规整Dynamic Time Warp技术。
语音识别技术的最重大突破是隐马尔科夫模型Hidden Markov Model的应用。从Baum提出相关数学推理,经过Labiner等人的研究,卡内基梅隆大学的李开复最终实现了第一个基于隐马尔科夫模型的非特定人大词汇量连续语音识别系统Sphinx。此后严格来说语音识别技术并没有脱离HMM框架。
在这之后语音识别的主要进步是在应用方面,Siri系统,微信的语音转换都已经成为日常。
开放平台,语音识别的开放平台很多,几乎各大厂都有,另外科大讯飞的被人为是全套自主产权的专业语音识别系统。
翻译
机器翻译曾长久依赖是人们的梦想,最初的设想是简单的词汇逐词逐字翻译,类似使用一个词典并配以语法规则,语言学分析也曾经是翻译的一大流派,乔姆斯基的《句法结构》被认为是理论语言学的最大贡献。
当机器学习开始盛行开始,翻译问题也被简单粗暴的用大量数据的方式解决了。翻译算法主要使用RNN循环神经网络,RNN 是神经网络中的一种,它擅长对序列数据进行建模处理。长短期记忆网络(LSTM)作为一种特殊的RNN,能帮助我们处理不能被先验知道的序列,并且能够学习长期性的依赖关系,是翻译最常使用的方式。
当前的技术是一个研究员可以很方便的制作自己的机器翻译机,使用序列到序列模型(也称为seq2seq),包括两个RNN,一个是处理输入的编码器网络,一个是产生输出的解码器网络。
翻译技术目前也已经成熟。结合语音识别,再加上电子合成音技术,就是微软曾经演示过的,使用skype不同语言者可以自由语音对话,效果惊人。
虽然说翻译技术成熟,在目前的机器学习道路下已经没有什么可以改进的了,但由于维特根斯坦指出的语言本身的问题,翻译不会"完美“。所以高水平的人工翻译还是需要,而且我们还是继续需要学外语。
自然语言处理NLP
自然语言处理是三个领域中最具潜力的,当然本身的含义也比较广,甚至是包括了如今的机器翻译的。
自然语言处理NLP的机器学习和下棋的机器学习不一样,下棋的机器学习更多关注算法本身,因为输入数据非常明确,就是棋子落在那里,结果就是赢或输,而且可以机器自对弈积累更多输入数据,但语言最终的判断还在人这里,并且有一定的模糊性。
所以包含在自然语言处理NLP的技术很多,数据输入阶段包括语言识别技术、OCR技术、分词技术等,语言初步处理包括上下文,语法,语义等分析,比如分析一个词(指英文词)的前后缀、词根等,从语法结构上(乔姆斯基的用上了)分析一个句子的构成,用语料库进行语义分析。自然语言处理NLP的应用无处不在,在使用语言作为主要交流的场景里,比如网络搜索、提取关键信息,情感分析,翻译,对话系统等,目前都有还不错的结果。
以上每种技术,每种方法,每个场景都有一些小窍门,可以花很久时间研究,有些已经成熟,有些尚有空间。甚至可能有一些数据预处理的方法我们还没有发现,算法这里我倒觉得不会有突破性进展了,都是小修小补,而场景上有非常大的拓展空间。
学习自然语言公认的是斯坦福的CS224N,由于自然语言处理NLP技术包含很多,每年如果是不同教授讲,内容差别挺大的。自然语言这块,我觉得最好从场景出发选技术,而不要想要把NLP所有技术都学会。
个人职业选择
目前语音识别的算法已经可以看作成熟,而且因为用统计方法实现,稳定性比机器学习算法好,不会受刻意设计的对抗样本攻击。因为能改进的方面有限,所以新进入语音识别领域做工程师并不是一个很好的选择。
但如果本行业中可能用到语音识别相关的能力,可以从语音识别开始学习和了解人工智能,设想一下新的应用场景,反正技术实现成本已经很低,很值得“玩”一下。
翻译领域类似,各大厂都有自己的翻译平台,技术可能有高低,但意义不大,而且还都是免费平台,对个人来说,选择这个领域的意义也不大。
但是自然语言处理还仍旧是很有潜力的,尤其是大厂把通用语言处理做的再好,我们依然可以为某个专门领域,专门场景设计自然语言处理器,而在商业环境中这往往是非常需要的。