《深度学习》(3)目标,现状,适用领域

2021-04-24  本文已影响0人  2020MissR

作者:高彦杰,于子叶

微软亚洲研究院资深AI工程师

出版日期:2018年

字数:15.8万

书评:面向初学者,以实战为导向深度学习指南

深度学习知识体系,核心概念,模型与算法,工具和库(TensorFlow)等全栈技术知识

通过案例讲解如何应用到计算机视觉,自然语言处理,语音识别,对话机器人,人脸识别,自动驾驶

目标,现状,适用领域

一. 计算机视觉 Computer Vision

OCR (Optical Character Recognition,光学字符识别)

是指电子设备检查纸上打印的字符,通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的过程。

说白了就是识别图片上的文字,然后提取出来,变成可编辑的文档

二. 语音识别

端到端解决方案 End to End 

传统的语音识别系统,是由许多个模块组成的,包括声学模型、发音词典、语言模型。其中声学模型和语言模型是需要训练的。这些模块的训练一般都是独立进行的,各有各的目标函数,比如声学模型的训练目标是最大化训练语音的概率,语言模型的训练目标是最小化 perplexity。由于各个模块在训练时不能互相取长补短,训练的目标函数又与系统整体的性能指标(一般是词错误率 WER)有偏差,这样训练出的网络往往达不到最优性能。

针对这个问题,一般有两种解决方案:

端到端训练(end-to-end training):一般指的是在训练好语言模型后,将声学模型和语言模型接在一起,以 WER 或它的一种近似为目标函数去训练声学模型。由于训练声学模型时要计算系统整体的输出,所以称为「端到端」训练。可以看出这种方法并没有彻底解决问题,因为语言模型还是独立训练的。

端到端模型(end-to-end models):系统中不再有独立的声学模型、发音词典、语言模型等模块,而是从输入端(语音波形或特征序列)到输出端(单词或字符序列)直接用一个神经网络相连,让这个神经网络来承担原先所有模块的功能。典型的代表如使用 CTC 的 EESEN 、使用注意力机制的 Listen, Attend and Spell 。这种模型非常简洁,但灵活性就差一些:一般来说用于训练语言模型的文本数据比较容易大量获取,但不与语音配对的文本数据无法用于训练端到端的模型。因此,端到端模型也常常再外接一个语言模型,用于在解码时调整候选输出的排名(rescoring)。

「输入是语音波形(raw waveform)」并不是端到端模型的本质特征,端到端模型的输入也可以是特征序列(MFCC 等)。端到端模型的本质特征是把声学模型、发音词典、语言模型这些传统模块融合在一起。

End to End 的好处:通过缩减人工预处理和后续处理,尽可能使模型从原始输入到最终输出,给模型更多可以根据数据自动调节的空间,增加模型的整体契合度。

三. 自然语言处理 Natural Language Processing, NLP

Encoder-decoder模型

所谓encoder-decoder模型,又叫做编码-解码模型。这是一种应用于seq2seq问题的模型。

那么seq2seq又是什么呢?简单的说,就是根据一个输入序列x,来生成另一个输出序列y。

seq2seq有很多的应用,例如翻译,文档摘取,问答系统等等。在翻译中,输入序列是待翻译的文本,输出序列是翻译后的文本;在问答系统中,输入序列是提出的问题,而输出序列是答案。

为了解决seq2seq问题,有人提出了encoder-decoder模型,也就是编码-解码模型。

所谓编码,就是将输入序列转化成一个固定长度的向量;解码,就是将之前生成的固定向量再转化成输出序列。

encoder-decoder模型虽然非常经典,但是局限性也非常大。最大的局限性就在于编码和解码之间的唯一联系就是一个固定长度的语义向量C。也就是说,编码器要将整个序列的信息压缩进一个固定长度的向量中去。

Encoder-Decoder模型的两个弊端

一是语义向量无法完全表示整个序列的信息,

还有就是先输入的内容携带的信息会被后输入的信息稀释掉,或者说,被覆盖了。

输入序列越长,这个现象就越严重。这就使得在解码的时候一开始就没有获得输入序列足够的信息, 那么解码的准确度自然也就要打个折扣了。

四. 自动驾驶

上一篇下一篇

猜你喜欢

热点阅读