rnn

机器学习算法

旧城冷巷雨未停 提交于 2019-11-27 10:19:00
文章目录 一 监督学习 1 classification分类 (1) Binary Decision Tree(BDT)二分决策树 (2) Naive Bayesian Classifier朴素贝叶斯分类器 (3) Neural Network(NN)神经网络 (4)Convolution NN(CNN)卷积神经网络 (5)Deep Belief Networks(DBN)深度信念网络 (6)Recurrent NN(RNN)深度循环神经网络 2 regression回归 (1)LinearRegression线性回归: (2)树回归: 二 强化学习 1 Q-learning 2 Deep Q Networks 3 Double Q-learning 4 Prioritized experience replay 三 无监督学习 1 Dimensionality Reduction降维 (1)Stacked Auto-Encoders(SAE)栈式自编码 (2)Local Linear Embedding局部线性嵌入 2 Clustering聚类 (1)聚类算法简介 (2)聚类算法分类 (3)KMeans算法 (4)层次聚类(hierarchical clustering) (5) DBSCAN(基于密度的聚类算法) 3 Density Estimation密度估计 一 监督学习

深度学习文字识别

浪尽此生 提交于 2019-11-27 01:03:38
Blog : https://blog.csdn.net/implok/article/details/95041472 步骤 : 文字识别是AI的一个重要应用场景,文字识别过程一般由图像输入、预处理、文本检测、文本识别、结果输出等环节组成。 分类 :文字识别可根据待识别的文字特点采用不同的识别方法,一般分为定长文字、不定长文字两大类别。 定长文字(例如验证码),由于字符数量固定,采用的网络结构相对简单,识别也比较容易; 不定长文字(例如印刷文字、广告牌文字等),由于字符数量是不固定的,因此需要采用比较复杂的网络结构和后处理环节,识别也具有一定的难度。 一、定长文字识别 定长文字的识别相对简单,应用场景也比较局限,最典型的场景就是验证码的识别。由于字符数量是已知的、固定的,因此,网络结构比较简单,一般构建3层卷积层,2层全连接层便能满足“定长文字”的识别。 二、不定长文字识别 不定长文字在现实中大量存在,例如印刷文字、广告牌文字等,由于字符数量不固定、不可预知,因此,识别的难度也较大,这也是目前研究文字识别的主要方向。下面介绍不定长文字识别的常用方法:LSTM+CTC、CRNN、chinsesocr。 1、LSTM+CTC 方法 (1)什么是LSTM 为了实现对不定长文字的识别,就需要有一种能力更强的模型,该模型具有一定的记忆能力,能够按时序依次处理任意长度的信息,这种模型就是

LSTM

与世无争的帅哥 提交于 2019-11-26 17:07:35
循环神经网络在网络中引入了定性循环,使得信号从一个神经元传递到下一个神经元并不会马上消失,而是继续存活,隐藏层的输入不仅包括上一层的输出,还包括上一时刻该隐藏层的输出。 RNN引入了隐状态h(hidden state)的概念,h可以对序列形的数据提取特征,接着再转换为输出。每步的参数都是共享的 在经典的RNN结构中,通常使用tanh作为激活函数。 存在以下结构: N vs 1 RNN结构和1 vs N RNN结构。 RNN的公式:h_t=f(Ux_t+Wh_(t-1)+b) RNN很难处理长程依赖问题,即无法学到序列中蕴含的间隔时间较长的规律。 循环神经网络的发展有两个方向:一是增加隐藏层的功能,如simple RNN,GRU,LSTM,CW-RNN;另外一个是双向化及加深网络,如Bidirectional RNN和Reep Bidirectionsal RNN;两个结合引申出DBLSTM. LSTM规避了标准RNN中的梯度爆炸和梯度消失的问题。 LSTM的隐状态有两部分:一部分是ht,一部分是Ct,Ct是在各个步骤间传递的主要信息,长程传播。Ct在Ct-1的基础上遗忘和记住一些内容。 经典英文讲解:Understanding LSTM Networks LSTM:https://colah.github.io/posts/2015-08-Understanding-LSTMs/

6、循环神经网络(RNN)

北城以北 提交于 2019-11-26 14:04:59
6.1 为什么需要RNN? ​时间序列数据是指在不同时间点上收集到的数据,这类数据反映了某一事物、现象等随时间的变化状态或程度。一般的神经网络,在训练数据足够、算法模型优越的情况下,给定特定的x,就能得到期望y。其一般处理单个的输入,前一个输入和后一个输入完全无关,但实际应用中,某些任务需要能够更好的处理序列的信息,即前面的输入和后面的输入是有关系的。比如: ​当我们在理解一句话意思时,孤立的理解这句话的每个词不足以理解整体意思,我们通常需要处理这些词连接起来的整个序列; 当我们处理视频的时候,我们也不能只单独的去分析每一帧,而要分析这些帧连接起来的整个序列。为了解决一些这样类似的问题,能够更好的处理序列的信息,RNN就由此诞生了。 6.2 图解RNN基本结构 6.2.1 基本的单层网络结构 ​在进一步了解RNN之前,先给出最基本的单层网络结构,输入是 $x$ ,经过变换 Wx+b 和激活函数 f 得到输出 y : 6.2.2 图解经典RNN结构 ​在实际应用中,我们还会遇到很多序列形的数据,如: 自然语言处理问题。x1可以看做是第一个单词,x2可以看做是第二个单词,依次类推。 语音处理。此时,x1、x2、x3……是每帧的声音信号。 时间序列问题。例如每天的股票价格等等。 其单个序列如下图所示: 前面介绍了诸如此类的序列数据用原始的神经网络难以建模,基于此,RNN引入了隐状态$h$

[转帖]CNN、RNN、DNN的一般解释

邮差的信 提交于 2019-11-26 07:22:55
CNN、RNN、DNN的一般解释 https://www.jianshu.com/p/bab3bbddb06b?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation 0.0952017.10.16 19:10:36字数 3,145阅读 4,648 CNN(卷积神经网络)、RNN(循环神经网络)、DNN(深度神经网络)的内部网络结构有什么区别? 转自知乎 科言君 的回答 神经网络技术起源于上世纪五、六十年代,当时叫感知机(perceptron),拥有输入层、输出层和一个隐含层。输入的特征向量通过隐含层变换达到输出层,在输出层得到分类结果。早期感知机的推动者是Rosenblatt。 (扯一个不相关的:由于计算技术的落后,当时感知器传输函数是用线拉动变阻器改变电阻的方法机械实现的,脑补一下科学家们扯着密密麻麻的导线的样子…) 但是,Rosenblatt的单层感知机有一个严重得不能再严重的问题,即它对稍复杂一些的函数都无能为力(比如最为典型的“异或”操作)。连异或都不能拟合,你还能指望这货有什么实际用途么o(╯□╰)o 随着数学的发展,这个缺点直到上世纪八十年代才被Rumelhart、Williams、Hinton、LeCun等人(反正就是一票大牛)发明的多层感知机

TensorFlow初始化LSTM参数weight 和 bias

我只是一个虾纸丫 提交于 2019-11-26 02:51:25
TensorFlow 初始化 LSTM 参数 weight 和 bias 前言: 前一篇 博客 介绍了如何可视化神经网络的每一层,很简单的做法就是将训练好数据作为神经网络的初始化参数进行前向传播。在LSTM中我们可以从 官方文档 看到能初始化的参数只有weight。在可视化时我们往往需要传入weight和bias,或者载入模型参数继续训练也需要载入w和b。 初始化LSTM的weight 初始化w比较简单,设置为一个常量传入即可,这里get_parameter函数为将模型参数读入到numpy,可参考上一篇博客。因为是两层的LSTM每层参数不一样分开两次写入,用constant赋值w。 multi_rnn_cells = [get_parameter(model_dir,'generator_model/rnn/multi_rnn_cell/cell_0/lstm_cell/kernel'), get_parameter(model_dir, 'generator_model/rnn/multi_rnn_cell/cell_0/lstm_cell/bias'), get_parameter(model_dir, 'generator_model/rnn/multi_rnn_cell/cell_1/lstm_cell/kernel'), get_parameter(model_dir,