人工智能的知识体系–深度学习

【声明】本文为AdamsLee原创,转载请注明出自围炉网并保留本文有效链接:人工智能的知识体系–深度学习, 转载请保留本声明!
  • 基础

    • 理论证明具有足够多隐藏层神经元的神经网络能以任意精度逼近任意连续函数

    • 神经元激活函数

      • 线性函数

      • 阶跃函数

      • sigmoid函数

      • 双曲正切函数

    • 损失函数被称为优化问题的目标函数

  • 语言模型与文本生成(Language Modeling and Generating Text)

    • 简单地说,语言模型就是用来计算一个句子的概率的模型,也就是判断一句话是否是人话的概率。对信息检索,机器翻译,语音识别等任务有着重要的作用。语言模型分为统计语言模型和神经网络语言模型。

    • n-gram models也即n元语言模型

      • 马尔科夫假设(Markov Assumption):下一个词的出现仅依赖于它前面的一个或几个词。在实践中用的最多的就是bigram和trigram了,高于四元的用的非常少,由于训练它须要更庞大的语料,并且数据稀疏严重,时间复杂度高,精度却提高的不多。

    • one-hot编码 (独热码)

      • 又称为一位有效编码,主要是采用N位状态寄存器来对N个状态进行编码,每个状态都由他独立的寄存器位,并且在任意时候只有一位有效。

      • One-Hot编码是分类变量作为二进制向量的表示。这首先要求将分类值映射到整数值。然后,每个整数值被表示为二进制向量,除了整数的索引之外,它都是零值,它被标记为1。

      • 无法表示分词间的语义关系

    • 词向量 (word embedding)

      • 判断一个词的词性,是动词还是名词。用机器学习的思路,我们有一系列样本(x,y),这里 x 是词语,y 是它们的词性,我们要构建 f(x)->y 的映射,但这里的数学模型 f(比如神经网络、SVM)只接受数值型输入,而 NLP 里的词语,是人类的抽象总结,是符号形式的(比如中文、英文、拉丁文等等),所以需要把他们转换成数值形式,或者说——嵌入到一个数学空间里,这种嵌入方式,就叫词嵌入(word embedding),而 Word2vec,就是词嵌入( word embedding) 的一种

      • Skip-gram 模型

        • 用一个词语作为输入,来预测它周围的上下文(从预测词汇反推原始语句)

      • CBOW 模型

        • 拿一个词语的上下文作为输入,来预测这个词语本身(从当前词汇推测下一个词汇)

      • 用于培训和使用文字嵌入的软件包括Tomas Mikolov的Word2vec,斯坦福大学GloVe,fastText,Gensim, Indra和Deeplearning4j。主成分分析(PCA)和T分布式随机邻居嵌入(t-SNE)都用于减少单词向量空间的维度,并可视化单词嵌入和集群。

      • 最新的语言模型 Bert 也借鉴了 Word2vec 的 CBOW 模式

  • 卷积神经网络 – CNN

    • CNN 最擅长的就是图片的处理。它受到人类视觉神经系统的启发。

    • CNN 有2大特点:

      • 能够有效的将大数据量的图片降维成小数据量

      • 能够有效的保留图片特征,符合图片处理的原则

    • 典型的 CNN 由3个部分构成:

      • 卷积层负责提取图像中的局部特征;

      • 池化层用来大幅降低参数量级(降维);

      • 全连接层类似传统神经网络的部分,用来输出想要的结果。

    • 典型的 CNN 并非只是上面提到的3层结构,而是多层结构,例如 LeNet-5 的结构:

      • 卷积层 – 池化层- 卷积层 – 池化层 – 卷积层 – 全连接层

    • 目前 CNN 已经得到了广泛的应用,比如:人脸识别、自动驾驶、美图秀秀、安防等很多领域。

    • 采用权值共享策略,即让多个神经元共用相同连接权值,来降低训练参数个数

    • CNN中的权值共享就是一个特征映射(即一组神经元)共享一个卷积核和一个偏置

    • 卷积核就是一组网络权值,而且几个卷积核就可以得到几个特征映射平面

    • 卷积层关键特点

      • 图像的一些关键特征比整个图像小很多,不必覆盖整个图像进行特征发现,从而降低了网络参数

      • 图像的不同区域可能分布着相同的特征属性,因此可以采用相同的方式进行特征提取

    • 池化层主要作用是去掉卷积得到的特征映射中的次要部分,进而减少网络参数。本质是对局部特征的再次抽象表达,也叫子采样

      • 均值子采样mean pooling

      • 最大值子采样max pooling

    • Adam优化算法是可以替代传统随机梯度下降过程中的一阶优化算法

  • 生成对抗网络 – Generative Adversarial Networks | GAN

    • 由2个重要的部分构成:

      • 生成器(Generator):通过机器生成数据(大部分情况下是图像),目的是“骗过”判别器

      • 判别器(Discriminator):判断这张图像是真实的还是机器生成的,目的是找出生成器做的“假数据”

    • 过程:

      • 第一阶段:固定「判别器D」,训练「生成器G」

        • 我们使用一个还 OK 判别器,让一个「生成器G」不断生成“假数据”,然后给这个「判别器D」去判断。

      • 第二阶段:固定「生成器G」,训练「判别器D」

        • 当通过了第一阶段,继续训练「生成器G」就没有意义了。这个时候我们固定「生成器G」,然后开始训练「判别器D」。

      • 循环阶段一和阶段二

    • GAN的优缺点

      • 可以预测状态规划行动、生成缺失的数据和标签、提升图像分辨率、多模态学习,但原始GAN模型的训练缓慢,不可控问题明显

      • 优势

        • 能更好建模数据分布(图像更锐利、清晰)

        • 理论上,GANs 能训练任何一种生成器网络。其他的框架需要生成器网络有一些特定的函数形式,比如输出层是高斯的。

        • 无需利用马尔科夫链反复采样,无需在学习过程中进行推断,没有复杂的变分下界,避开近似计算棘手的概率的难题。

      • 缺陷

        • 难训练,不稳定。生成器和判别器之间需要很好的同步,但是在实际训练中很容易D收敛,G发散。D/G 的训练需要精心的设计。

        • 模式缺失(Mode Collapse)问题。GANs的学习过程可能出现模式缺失,生成器开始退化,总是生成同样的样本点,无法继续学习。

  • 循环神经网络(RNN)(Recurrent neural network)

    • Recurrent Neural Network是在时间维度展开

    • RNNs的目的使用来处理序列数据。

    • 在传统的神经网络模型中,是从输入层到隐含层再到输出层,层与层之间是全连接的,每层之间的节点是无连接的。但是这种普通的神经网络对于很多问题却无能无力。例如,你要预测句子的下一个单词是什么,一般需要用到前面的单词,因为一个句子中前后单词并不是独立的。RNNs之所以称为循环神经网路,即一个序列当前的输出与前面的输出也有关。具体的表现形式为网络会对前面的信息进行记忆并应用于当前输出的计算中,即隐藏层之间的节点不再无连接而是有连接的,并且隐藏层的输入不仅包括输入层的输出还包括上一时刻隐藏层的输出。

    • 理论上,RNNs能够对任何长度的序列数据进行处理。但是在实践中,为了降低复杂性往往假设当前的状态只与前面的几个状态相关

    • 环装结构,把同一个网络复制多次,以时序的形式将信息不断传递到下一网络。

    • 梯度消失:随着输入序列的递增,远端序列的信息在传递过程中有衰减,并导致信息丢失,网络训练过程中梯度会随着时序而逐渐消失

    • 应用

      • RNNs已经被在实践中证明对NLP是非常成功的。如词向量表达、语句合法性检查、词性标注等。

      • 循环神经网络是机器翻译(Machine Translation, MT)的主流算法之一,并形成了区别于“统计机器翻译”的“神经机器翻译(neural machine translation)”方法。

      • 循环神经网络也是语义分析( sentiment analysis)的工具之一,被应用于文本分类、社交网站数据挖掘等场合。

      • 在语音合成(speech synthesis)领域,有研究将多个双向LSTM相组合建立了低延迟的语音合成系统,成功将英语文本转化为接近真实的语音输出。循环神经网络也被用于端到端文本-语音(Text-To-Speech, TTS)合成工具的开发,例子包括Tacotron、Merlin等。

  • 长短期记忆(英语:Long Short-Term Memory,LSTM)

    • 基于Recurrent Neural Network改进

    • LSTM的表现通常比循环神经网络及隐马尔科夫模型(HMM)更好,比如用在不分段连续手写识别上。2009年,用LSTM构建的人工神经网络模型赢得过ICDAR手写识别比赛冠军。LSTM还普遍用于自主语音识别,2013年运用TIMIT自然演讲数据库达成17.7%错误率的纪录。作为非线性模型,LSTM可作为复杂的非线性单元用于构造更大型深度神经网络。

    • LSTM是一种含有LSTM区块(blocks)或其他的一种类神经网络,文献或其他资料中LSTM区块可能被描述成智能网络单元,因为它可以记忆不定时间长度的数值,区块中有一个gate能够决定input的信息是否能被提取及能不能被输出output。

    • 核心技术:通过块block结构cell来判断信息是否有用

    • 通过输入门、输出门和遗忘门来控制流入cell的信息

    • LSTM有很多个版本,其中一个受到关注的版本是GRU(Gated Recurrent Unit),根据谷歌的测试表明,LSTM中对学习贡献较大的是Forget gate,其次是Input gate,最次是Output gate。

  • 递归神经网络(recursive neural network)

    • Recursive Neural Network在空间维度展开

    • 具有树状阶层结构且网络节点按其连接顺序对输入信息进行递归的人工神经网络(Artificial Neural Network, ANN),被视为循环神经网络(recurrent neural network)的推广。当递归神经网络的每个父节点都仅与一个子节点连接时,其结构等价于全连接的循环神经网络。递归神经网络可以引入门控机制(gated mechanism)以学习长距离依赖。

    • 不同的语法解析树则对应了不同的意思。一个是『两个外语学院的/学生』,也就是学生可能有许多,但他们来自于两所外语学校;另一个是『两个/外语学院的学生』,也就是只有两个学生,他们是外语学院的。为了能够让模型区分出两个不同的意思,我们的模型必须能够按照树结构去处理信息,而不是序列,这就是递归神经网络的作用。

    • 递归神经网络具有可变的拓扑结构且权重共享,被用于包含结构关系的机器学习任务,在自然语言处理(Natural Language Processing, NLP)领域有受到关注

    • 因为神经网络的输入层单元个数是固定的,因此必须用循环或者递归的方式来处理长度可变的输入。循环神经网络实现了前者,通过将长度不定的输入分割为等长度的小块,然后再依次的输入到网络中,从而实现了神经网络对变长输入的处理。

    • 递归神经网络可以把一个树/图结构信息编码为一个向量,也就是把信息映射到一个语义向量空间中。这个语义向量空间满足某类性质,比如语义相似的向量距离更近。

    • 语法树的标注需要花费大量人工,递归神经网络的实际应用并不广泛

  • 胶囊神经网络(CapsNet)

    • CNN的缺陷

      • CNN着力于检测图像像素中的重要特征,缺乏对象空间关系。

    • 胶囊网络优点

      • 由于胶囊网络集合了位姿信息,因此其可以通过一小部分数据即学习出很好的表示效果,所以这一点也是相对于CNN的一大提升。举个例子,为了识别手写体数字,人脑需要几十个最多几百个例子,但是CNN却需要几万规模的数据集才能训练出好结果,这显然还是太暴力了!

      • 更加贴近人脑的思维方式,更好地建模神经网络中内部知识表示的分层关系,胶囊背后的直觉非常简单优雅。

    • 胶囊网络缺点

      • 胶囊网络的当前实现比其他现代深度学习模型慢很多(我觉得是更新耦合系数以及卷积层叠加影响的),提高训练效率是一大挑战。

  • Attention 机制

    • 将有限的注意力集中在重点信息上,从而节省资源,快速获得最有效的信息。

    • Attention 的3大优点

      • 参数少

        • 模型复杂度跟 CNN、RNN 相比,复杂度更小,参数也更少。所以对算力的要求也就更小。

      • 速度快

        • Attention 解决了 RNN 不能并行计算的问题。Attention机制每一步计算不依赖于上一步的计算结果,因此可以和CNN一样并行处理。

      • 效果好

        • 在 Attention 机制引入之前,有一个问题大家一直很苦恼:长距离的信息会被弱化,就好像记忆能力弱的人,记不住过去的事情是一样的。

        • Attention 是挑重点,就算文本比较长,也能从中间抓住重点,不丢失重要的信息。下图红色的预期就是被挑出来的重点。

    • 人类学习一门新语言基本经历四个阶段:死记硬背(通过阅读背诵学习语法练习语感)->提纲挈领(简单对话靠听懂句子中的关键词汇准确理解核心意思)->融会贯通(复杂对话懂得上下文指代、语言背后的联系,具备了举一反三的学习能力)->登峰造极(沉浸地大量练习)。

    • 这也如同attention的发展脉络,RNN 时代是死记硬背的时期,attention 的模型学会了提纲挈领,进化到 transformer,融汇贯通,具备优秀的表达学习能力,再到 GPT、BERT,通过多任务大规模学习积累实战经验,战斗力爆棚。

  • Transformer

    • 一个完全基于注意力机制的编解码器模型,它抛弃了之前其它模型引入注意力机制后仍然保留的循环与卷积结构,而采用了自注意力(Self-attention)机制,在任务表现、并行能力和易于训练性方面都有大幅的提高。

    • 在 Transformer 出现之前,基于神经网络的机器翻译模型多数都采用了 RNN的模型架构,它们依靠循环功能进行有序的序列操作。虽然 RNN 架构有较强的序列建模能力,但是存在训练速度慢,训练质量低等问题。

    • 由于 Transformer 并行处理所有的词,以及每个单词都可以在多个处理步骤内与其它单词之间产生联系,它的训练速度比 RNN 模型更快,在翻译任务中的表现也比 RNN 模型更好。除了计算性能和更高的准确度,Transformer 另一个亮点是可以对网络关注的句子部分进行可视化,尤其是在处理或翻译一个给定词时,因此可以深入了解信息是如何通过网络传播的。

  • 强化学习-Reinforcement learning

    • 强化学习并不是某一种特定的算法,而是一类算法的统称。

    • 用于描述和解决智能体(agent)在与环境的交互过程中通过学习策略以达成回报最大化或实现特定目标的问题

    • 强化学习理论受到行为主义心理学启发,侧重在线学习并试图在探索-利用(exploration-exploitation)间保持平衡。不同于监督学习和非监督学习,强化学习不要求预先给定任何数据,而是通过接收环境对动作的奖励(反馈)获得学习信息并更新模型参数

此条目发表在未分类分类目录,贴了标签。将固定链接加入收藏夹。