深度学习理论

前段时间,跟部门同事分享了深度学习相关的一些理论基础,在此记录一下。仅供后续学习和复习。算法

目录网络

一、背景及现状ide

二、Embeding函数

三、DNN学习

四、CNN优化

五、RNN(LSTM)编码

六、应用(结合自身的应用案例)spa

(1)情感分析/类目预测(文本分类)3d

(2)NER/POS TAGGING (标注、命名实体识别)blog

(3)流量预测

(4)CTR预估

七、总结与挑战

1、背景与现状

上图基本说明深度学习的发展历史,简要说明以下:

一、MCP人工神经元模型,可是仍是比较简单的单层感知机的形式,改模型被证实是一种线性模型,只能解决线性问题,就连最简单的异或都没法正确分类。因而迎来了神经网络的第一次低谷。
二、到了1986年,因为BP算法的发明,人们提出了多层的神经网络,当时被证实是能够逼近任何一个连续的函数。(包括非线性问题)。那个时候比较有表明性的是BP神经网络;然而当时提出的网络缺少理论支持,而且又被指出BP反向传播算法存在梯度消失的状况,又一次让深度学习陷入谷底。
三、2012年,再一次ImageNet图像识别比赛中,Hinton团队采用了CNN构建的AlexNet网络,直接碾压第二名,得到比赛冠军。当时AlexNet的创新点是:(1)采用ReLU激活函数,可以解决梯度消失的问题。(2)采用GPU对计算进行加速(3)添加了DropOut层减小过拟合,加强泛化能力。

2、Embeding

(1)Word2Vec

该方法是一个三层的神经网络,分别利用CBOW(利用上下文预测当前单词)和Skip-Gram(利用当前单词预测上下文)两种方式进行训练。

CBOW:

Skip-Gram:

 

这里须要注意的是,

  1)三层的神经网络结构。其中输出层为了减小算法的复杂度,采用Huffman编码树的形式进行编码输出。即输出一颗树型结构。

  2)训练过程当中,实际是须要两次遍历预料,第一次遍历构建输出的Huffman树和字典,第二次遍历进行训练。

(2)Paragraph2Vec、Doc2vec

  该方法相似word2vec,只是在训练的过程当中,增长了paragraph vector(段落向量)

(3)Glove

  该方法用的是词的共现矩阵经过矩阵分解获得全局的信息,而且获得每一个词对应的全局词向量,

  再根据CBOW的思想(利用上下文预测当前单词的几率,这里的几率就是共现矩阵中共现几率比值)进行优化全局词向量,进而获得最优的词向量。

 

 3、DNN

一、神经网络的思想源于生物医学上的感知器,启用计算机模拟以下:

典型的DNN模型以下所示:

前向输入后向传播:

这里主要讲解一下训练过程当中是如何训练的,参数是如何更新迭代的,这里采用一个例子进行说明:

假若有这样一个网络:

第一层是输入,第二层是隐藏层,第三层是输出层。

(1)前向运算:

  1)第二层输出,以下所示:

  

  2)第三层输出:

  

则通常通用公式以下:

  

反向传播(BP算法):这里须要理解为什么须要反向传播?主要是为了更新网络参数)

 咱们知道前向传播的算是函数以下:

,进一步展开获得以下:

对损失函数求导可得:

咱们假设:,则导数能够变换成以下所示:

我没来看看对应的

 

则有:,即

获得了梯度以后,咱们便可获得每层的权重更新的方法。

4、CNN

  首先来看一下CNN的网络结构及特性:(1)局部感知,(2)权值共享。从总体上,采用通讯里面的知识理解CNN,本质是一个滤波器,只是该滤波器是经过卷积的方式进行滤波。这里须要注意的地方是,卷积层的输出神经元个数分别维护一个卷积算子的权重。每一个输出的神经元能够理解成就是一个滤波器,多少个神经元就有多少个滤波器。(在分享时,发现不少人这里不是很理解。。。)

例如:

,假设咱们的卷积因子是,则有以下所示:

5、RNN(LSTM)

经典RNN结构以下所示:这里因为篇幅的问题,原本是也想说一下它的训练过程当中参数是如何更新的。这里就略过,感兴趣的能够留言。主要跟CNN相似,不一样的地方是它加上了时间维度。称之为(BPTT算法)。

 

 重点讲一下LSTM,这里主要讲解一下我本身对LSTM的理解,若是须要知道其余方面的内容能够网上查阅相关资料,这方面还挺详细的。这里我也把它相关的结构图贴上来:

理解经典LSTM网络结构主要包含三个部门,分别是:遗忘门,输入门,输出门

一、遗忘门:指的是上一状态的记忆,在当前状态下,有多少信息是能够遗忘的。这里主要是经过一个sigmod函数进行加权获得有多少信息做为当前状态的记忆保留下来。

二、输入门:因为上一状态记忆会有一个遗失过程,当前状态能够根据当前输入x和上一状态记忆决定当前状态下,有多少信息能够添加到记忆(信息流)中去。这里有一个加法操做和一个sigmod函数决定添加多少信息。信息时经过输入x和上一状态记忆经过tan函数获得当前状态的信息

三、输出门:根据当前状态的输入x和上一状态记忆,经过sigmod函数决定当前状态记忆信息多少能够输出。当前状态记忆信息是由输入门添加的信息+上一状态保留的信息经过tanh函数获得信息

注意:输入门和输出门对应的tanh输入的内容是不同的。输入门对应的输入时输入x和上一状态记忆;输出门对应的是加法以后的记忆信息。

 6、应用

 一、文本分类

LSTM

二、NER

BI-LSTM+CRF

三、流量预测

LSTM

四、CTR预估

Wide-Deep

相关文章
相关标签/搜索