2017-10-14 12:17:43 u013735511 阅读数 794
  • 深度学习入门视频课程

    购买课程后,可扫码进入学习群,获取唐宇迪老师答疑 深度学习入门视频课程从基本的神经网络开始讲起,将复杂的神经网络分成几个小模块,先对的知识点的细节进行详细讲解再拓展到整个神经网络,从神经网络的架构,细节进行全面分析,并使用python代码完成的神经网络,从效果上感受神经网络的强大。熟悉神经网络后再进军卷积神经网络与递归神经网络,详解CNN与RNN的原理与细节。对经典网络模型结构详细分析讲解,选择经典论文剖析。带大家上手深度学习!

    24649 人正在学习 去看看 唐宇迪

Recurrent Neural Network(RNN) (Neural Network with Memory)

1.一些基本的理解

开场首先来个填词题目,I would like to arrive at (Taipei) on (November 2nd). 我们人来填的话,很简单就能想到第一个空是地点,第二个是时间。那么对于计算机,它该如何处理这样的内容呢。

首先第一个要解决的是表示形式。
在语言中,最基本的是字,然后由字可以组成词语,词语可以连成句子,那么问题就变得简单了,只要我们能表示一个词语,并让计算机识别这个词语,那么就可以表示这样一个句子。不过在自然语言中,一个字表达的意思往往不够清楚,因此主要选择对词语进行建模,然后连词成句,当然也可以对字进行建模,不过数量上应该少很多。

怎样对词语建模呢
如果了解work2vec的工作原理,那这个问题就很简单了。work2vec将句子先拆分成词语,首先建立词语库,对每一个词语初始化100、200甚至更高维度的词向量,注意到,这里的词向量是需要先初始化的,然后在不断的训练中得到最优词向量。
(有一种编码方式叫做独热编码one-hot encoding, 具体内容查看下面网址,个人觉得这个讲的比其它的好 http://www.wyblog.cn/2016/10/31/%E6%95%B0%E6%8D%AE%E9%A2%84%E5%A4%84%E7%90%86-one-hot%E7%BC%96%E7%A0%81/)

2.我们来看看RNN

A recurrent neural network and the unfolding in time of the computation involved in its forward computation. Source: Nature

The above diagram shows a RNN being unrolled (or unfolded) into a full network. By unrolling we simply mean that we write out the network for the complete sequence. For example, if the sequence we care about is a sentence of 5 words, the network would be unrolled into a 5-layer neural network, one layer for each word.
1.xt is the input at time step t. For example, x1 could be a one-hot vector corresponding to the second word of a sentence.
2.st is the hidden state at time step t. It’s the “memory” of the network. st is calculated based on the previous hidden state and the input at the current step:
3.st=f(Uxt + Wst-1). The function f usually is a nonlinearity such as tanh or ReLU. s-1, which is required to calculate the first hidden state, is typically initialized to all zeroes.
4.ot is the output at step t. For example, if we wanted to predict the next word in a sentence it would be a vector of probabilities across our vocabulary. ot = softmax(Vst).

上文简单点翻译过来就是说,RNN网络是时序性质的网络,在文本处理中,我们需要多少个信息(以每个RNN神经单元的输出信息为单位信息),则RNN就会展开多少层去模拟生成。从介绍中我们也可以知道,RNN第一个隐藏层的初始状态初始化为全0,每一层都会有输出信息,而且输出信息是由softmax处理得到的概率分布信息。

3.RNN作用

RNN主要作用在NLP(Neural Language Processing)领域,因为在语言处理过程中需要知道语义上下文信息。上图的RNN模型是可以知道上文信息的模型,当然我们亦可以实现上下文都可以得知的双向循环RNN模型,亦可以多个RNN结构叠加。其实这个设计就看需求了。在RNN中用的最多最火热的就是LSTM(Long Short-term Memory)了,我们接下来谈一谈这个。

4.LSTM
先来看一天搞懂深度学习里面的两张图(就是这么大张旗鼓的用别人的东西)

这里写图片描述

这里写图片描述

看到LSTM加了一个Forget Gate,事实上就是这样简单么? 我们来看两张对比图片。


这里写图片描述
这里写图片描述

LSTM的核心是顶部的那条cell线,它直接穿过各个时刻的隐藏层,并且只会进行简单的变大变小(X号表示乘以一个倍率)以及添加新内容(+号),因此它可以在各个时刻变换中,使信息无损地保留下去。

对于当前时刻,第一个要做的就是要去除掉哪些无用的信息,第二个添加新信息,最后输出结果。具体反映在图中依次为从左到右,主线上x号对应的为去除无用信息的,主线上+号对应的就是增加信息的。

这里写图片描述

这里写图片描述

同样是用ht-1和x作为输入,首先是一个sigmoid的门,来判断我们需要更新哪些信息。然后再用一个tanh门函数,来表示我们可能要更新信息的数值,两者相乘,得到具体要更新哪些信息,以及他们对应的数值。最后再加入到Ct-1中,得到这些数值之后,我们就能得出当前状态Ct了:

这里写图片描述

我们得到的Ct可以作为cell线的输出,剩下还有隐藏层和当前时刻的输出需要处理,方法如下:

首先把Ct的状态,用tanh函数转化为适合隐藏层和当前时刻输出的形式(-1到1),然后根据ht-1和x的消息,选择把哪些输出。比如x输入了一个新的性别消息,比如man,那么相应的我们就需要把该身份信息传递给下一时刻,这样一来,如果下一时刻的输入信息要求推测动词的使用形式,那么根据我们传递过去的man这个信息,就能确定此时应该用第三人称单数作为输出。

最后:话说这些图做的都炒鸡好,感谢!

参考文献
1.http://www.wildml.com/2015/09/recurrent-neural-networks-tutorial-part-1-introduction-to-rnns/
2.http://www.jianshu.com/p/9dc9f41f0b29
3.http://blog.sina.com.cn/s/blog_8e5ce7190102wsna.html

2017-08-07 21:06:03 ykyorky 阅读数 2429
  • 深度学习入门视频课程

    购买课程后,可扫码进入学习群,获取唐宇迪老师答疑 深度学习入门视频课程从基本的神经网络开始讲起,将复杂的神经网络分成几个小模块,先对的知识点的细节进行详细讲解再拓展到整个神经网络,从神经网络的架构,细节进行全面分析,并使用python代码完成的神经网络,从效果上感受神经网络的强大。熟悉神经网络后再进军卷积神经网络与递归神经网络,详解CNN与RNN的原理与细节。对经典网络模型结构详细分析讲解,选择经典论文剖析。带大家上手深度学习!

    24649 人正在学习 去看看 唐宇迪

网上看了很多作为基础者,如何学习深度学习?下面,对网上的一些资源评论进行一个总结概括,给自己选择一条好的道路。

首先大神推荐的《1天搞懂深度学习》,台湾李宏毅教授写的,据说通俗易懂,系统的介绍和概括了深度学习的入门。

深度学习,是根据经验值,给一个初始值,再根据模型(其实也就是数学公式)、对训练集进行训练,最后用测试集进行测试的时候能够得到一个比较符合要求结果的一个过程。

测试集和训练集的好坏,会影响深度学习的结果。

入门从Hinton coursera 上的 Neural Networks for Machine Learning以及stanford cs231开始,这都是国外的。

读deep learning和PRML,读paytnon和numpy的官方文档,看一个Andrew Ng和Hinton的courera,剩下的读一读经典的paper和github源代码,最后最重要的就是动手做实验。


2019-03-10 10:50:01 qq_24140919 阅读数 67
  • 深度学习入门视频课程

    购买课程后,可扫码进入学习群,获取唐宇迪老师答疑 深度学习入门视频课程从基本的神经网络开始讲起,将复杂的神经网络分成几个小模块,先对的知识点的细节进行详细讲解再拓展到整个神经网络,从神经网络的架构,细节进行全面分析,并使用python代码完成的神经网络,从效果上感受神经网络的强大。熟悉神经网络后再进军卷积神经网络与递归神经网络,详解CNN与RNN的原理与细节。对经典网络模型结构详细分析讲解,选择经典论文剖析。带大家上手深度学习!

    24649 人正在学习 去看看 唐宇迪

最近刚开始学习深度学习相关知识,今天就先从理论开始整理这几天自己所学的深度学习相关笔记。

一、学习主要参考网址:

http://www.huaxiaozhuan.com/【AI算法工程师手册】

在看手册的过程中,对于不懂的参考的网址:

深度前馈网络:异或问题
https://blog.csdn.net/rookiew/article/details/77602598

代价函数(损失函数)、目标函数:
https://blog.csdn.net/lyl771857509/article/details/79428475

https://www.cnblogs.com/Belter/p/6653773.html?utm_source=itdadao&utm_medium=referral

反向传播算法:
http://www.cnblogs.com/charlotte77/p/5629865.html

二、深度学习基础知识

深度学习:计算机从经验中学习,以层次化的概念(concept)来理解世界。

深度学习 < 特征学习 < 机器学习 < AI

下图给出了不同AI系统中,不同部分的关联。

深度学习的成功的关键有三个:

  • 训练集大小的增长。
  • 硬件和软件的发展。包括更快的 CPU、通用的GUP发展、更大内存、更快的网络连接、更好的软件基础。
  • 算法优化。激活函数从sigmoid 转换到 ReLU 函数。它使得基于梯度下降的算法运行的更快。迭代网络的效率也更高了。

主要学习深度学习框架:Tensorflow,Keras

三、最简单的神经网络

神经网络基本示意图:

其中重要的就是激活函数:使得线性变为非线性。从而也就使得神经网络具有能理解任意输入变量间的非线性关系。

常见的激活函数有sigmoid、softmax、relu等,这里就不详细讲解了。

异或问题是最能体现神经网络的作用的。

什么是异或问题?

and:  (0,0) →  0;(0,1) →  0;(1,0) →  0;(1,1) → 1

nand:(0,0) →  1;(0,1) →  0;(1,0) →  0;(1,1) → 0

or:     (0,0) →  0;(0,1) →  1;(1,0) →  1;(1,1) → 1

xor:   (0,0) →  0;(0,1) →  1;(1,0) →  1;(1,1) → 0

其中and,nand,or都可以用线性的方法将其分类开来,即y = wx+b的形式将结果分为正负,正为1,负为0。但是xor却用线性的方法区分不开了。

示例:

                                    

          x1 and x2                                           x1 nand x2                                                  x1 or x2

                                          

                                                                             x1 xor x2

具体代码参见我的github:https://github.com/ly987/deep-learning/tree/master/xor_problem

四、代价函数与目标函数

关于代价函数:

线性回归中,最常用的是均方误差,具体形式为:

逻辑回归中,最常用的是代价函数是交叉熵,具体形式为:

学习过神经网络后,发现逻辑回归其实是神经网络的一种特例(没有隐藏层的神经网络)。因此神经网络中的代价函数与逻辑回归中的代价函数非常相似,具体形式为:

大多数神经网络采用最大似然准则,令代价函数为负的对数似然函数

至于为什么神经网络会采用对数来作为代价函数,我是在后边学习唐宇迪老师讲的深度学习入门视频课程中弄懂的。主要原因还是与激活函数有关。就拿softmax激活函数来说,它对输出的每个类别i的得分值进行处理,得到每个类别的概率,先使得得分值大的通过指数扩大很多倍,得分值为负的呢就变成很小的数;再使用归一化进行所有类别的值相加为1。这样处理后,再对本来正确分类的那个类别概率值进行更改,使得其越接近1代价越小,而log函数正好符合这一条件。

关于目标函数:

在迭代更新过程中,并不是代价越小越好,因为可能会导致过拟合。

所以这里会添加一个正则项来对w进行惩罚。

所以我们最终的优化函数是:

什么是过拟合?

我看到有两个解释:

1. 就比如,在更新权重w时,存在两组权重参数使得最后的代价一样,如w1(1,0,0,0)和w2(0.25,0.25,0.25,0.25),我们该选择哪一组权重参数呢?显然如果选择w1这组权重参数的话,就很容易造成过拟合,也就是在训练的这个样本计算出来的代价很小,但是如果换给测试样本,可能会使得代价变得很大,因为w1的意思就是第一个特征很重要,后面两个特征一点用都没有,这时我们就可以通过正则惩罚项使得神经网络选择w2这组权重。

2. 这里讲解得很直观,如下图:

在神经网络层越多的时候,样本的数据的代价就越小,但是也出现一个问题--过拟合,也就是如果出现一个错误的样本数据,它会很影响整个网络的模型,有时我们不需要它分得太过于正确了,这样的话,就太局限性了,界限太过于分明了。

神经网络中过拟合的一般解决办法

1. 添加正则化项:增大惩罚项,使得泛化能力好。

2. 全连接操作改为drop-out,即每层只选择某些神经元进行处理。

五、反向传播算法

反向传播:允许来自代价函数的信息通过网络反向流动,以便计算梯度。

关于反向传播,这个博客网址里有一个实例讲解,很清楚的讲了什么时反向传播,以及怎么计算等。这里就不详细讲解了。

http://www.cnblogs.com/charlotte77/p/5629865.html

2017-12-08 14:59:37 wy005002 阅读数 181
  • 深度学习入门视频课程

    购买课程后,可扫码进入学习群,获取唐宇迪老师答疑 深度学习入门视频课程从基本的神经网络开始讲起,将复杂的神经网络分成几个小模块,先对的知识点的细节进行详细讲解再拓展到整个神经网络,从神经网络的架构,细节进行全面分析,并使用python代码完成的神经网络,从效果上感受神经网络的强大。熟悉神经网络后再进军卷积神经网络与递归神经网络,详解CNN与RNN的原理与细节。对经典网络模型结构详细分析讲解,选择经典论文剖析。带大家上手深度学习!

    24649 人正在学习 去看看 唐宇迪

内容简介

《深度学习:21天实战Caffe》是一本深度学习入门读物。以目前已经大量用于线上系统的深度学习框架Caffe为例,由浅入深,从 Caffe 的配置、部署、使用开始学习,通过阅读 Caffe 源码理解其精髓,加强对深度学习理论的理解,最终达到熟练运用 Caffe 解决实际问题的目的。和国外机器学习、深度学习大部头著作相比,《深度学习:21天实战Caffe》偏重动手实践,将难以捉摸的枯燥理论用浅显易懂的形式表达,透过代码揭开其神秘面纱,更多地贴近实际应用。

《深度学习:21天实战Caffe》pdf高清完整版电子书下载地址:http://download.csdn.net/download/cpp12341234/9805948?utm_source=blogseo需要的小伙伴点击下载,绝对高清电子书!




目录

第1天 什么是深度学习 2

第2天 深度学习的过往 10

第3天 深度学习工具汇总 19

第4天 准备Caffe环境 27

第5天 Caffe依赖包解析 34

第6天 运行手写体数字识别例程 50

第7天 Caffe代码梳理 82

第8天 Caffe数据结构 101

第9天 Caffe I/O模块 149

第10天 Caffe模型 172

第11天 Caffe前向传播计算 181

第12天 Caffe反向传播计算 193

第13天 Caffe最优化求解过程 207

第14天 Caffe实用工具 231

第15天 Caffe计算加速 260

第16天 Caffe可视化方法 275

第17天 Caffe迁移和部署 300

第18天 关于ILSVRC不得不说的一些事儿 318

第19天 放之四海而皆准 327

第20天 继往开来的领路人 356

第21天 新生 363


2017-08-04 21:44:31 soulmeetliang 阅读数 2585
  • 深度学习入门视频课程

    购买课程后,可扫码进入学习群,获取唐宇迪老师答疑 深度学习入门视频课程从基本的神经网络开始讲起,将复杂的神经网络分成几个小模块,先对的知识点的细节进行详细讲解再拓展到整个神经网络,从神经网络的架构,细节进行全面分析,并使用python代码完成的神经网络,从效果上感受神经网络的强大。熟悉神经网络后再进军卷积神经网络与递归神经网络,详解CNN与RNN的原理与细节。对经典网络模型结构详细分析讲解,选择经典论文剖析。带大家上手深度学习!

    24649 人正在学习 去看看 唐宇迪

[机器学习入门] 李宏毅机器学习笔记-37(Deep Reinforcement Learning;深度增强学习入门)

PDF VIDEO

Deep Reinforcement Learning

深度增强学习是一套很复杂的方法,在这里只了解皮毛。

Scenario of Reinforcement Learning

有个傻傻的机器人小白(Agent)去闯荡世界(Environment),世界是非常开放的,将自己的状态(State)毫不吝啬地给小白呈现 ,而小白也会做出一些懵懵懂懂的探索动作(Action),这时候世界就会告诉小白你的所作所为是好的还是不好的(Reward)。

这里写图片描述

小白看到一杯水(State),懵懂的小白一下子将它打翻了(Action),则他会收到负面反馈(Reword)。由于环境是连续的,紧接着小白面前的就是一杯被打翻的水(State),于是试着把水擦干净(Action),得到了正面反馈(Reward)。

这里写图片描述

于是,小白要做的就是,根据前面收获的正面和负面反馈,去学习哪些能时正面反馈最大化的行为。


Learning to paly Go

这里写图片描述

这里写图片描述

可见,只有在少数的action下才有reword,这是一个难点。
下面来比较一下:Learning to paly Go - Supervised v.s. Reinforcement

这里写图片描述

在下棋这个任务里,监督学习就想从老师那里学习,看到A,落子到某处,看到B,落子到……
AlphaGo 采取的策略是先用监督学习learn的不错后,再用增强学习狂下棋。


Learning a chat-bot

原来我们的方法是:

这里写图片描述

再比较一下 Supervised v.s. Reinforcement

这里写图片描述

在增强学习中,机器人小白跟人讲话,看人脸色好,就知道自己讲对了,脸色差,就反省自己做错了。

这里写图片描述

当然不断跟人讲话会把人逼疯的,所以两个小白一直对话就好,但这样也有一个问题,下棋可以判断输赢,但是对话的脸色却是不好判断的,这是该任务的尚待解决的问题。

这里写图片描述

有一个方法是,Use some pre-defined rules to evaluate the goodness of a dialogue

这里写图片描述


More applications

在一些人也不知道对错的情况下,缺少labeled data ,这时候增强学习就比较适用。

这里写图片描述

这里写图片描述


Example: Playing Video Game

这里写图片描述

Space invader

Play yourself: http://www.2600online.com/spaceinvaders.htm l • How
about machine: https://gym.openai.com/evaluations/eval_Eduozx4HRyqgTCVk9ltw

这里写图片描述

这里写图片描述

Difficulties of Reinforcement Learning

这里写图片描述


Outline

增强学习有两大类,Policy-based是在learn一个做事的actor,而Value-based会learn不做事,只会评论的Critic。

这里写图片描述

增强学习的方法很多,在这里讲的是当时的最强方法:Asynchronous Advantage Actor-Critic (A3C)
Alpha Go 用的方法是:policy-based + value-based + model-based

Policy-based Approach

Learning an Actor

这里写图片描述

function是Pi,input是environment,output是Action。

回顾Deep learning 的是那个步骤:

这里写图片描述

Step 1: Neural Network of function

这里写图片描述

这里写图片描述

NN的好处就是比较generalized,即使没见过的场景,也可能给出合理的结果。

Step 2:goodness of function

这里写图片描述

Review: Supervised learning

这里写图片描述

在增强学习中一个Actor的好坏定义是非常类似的。

这里写图片描述

期望值衡量了actor 的好坏,那么这个期望值如何计算呢?

这里写图片描述

Step 3: pick the best function

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

Add a Baseline:

这里写图片描述

The probability of the actions not sampled will decrease.

Value-based Approach

Learning a Critic

这里写图片描述

Three kinds of Critics

这里写图片描述

这里写图片描述

How to estimate

这里写图片描述

这里写图片描述

这里写图片描述


Actor-Critic

这里写图片描述

这里写图片描述

这里写图片描述

Demo of A3C:

走迷宫:https://www.youtube.com/watch?v=nMR5mjCFZCw

这里写图片描述

开赛车: https://www.youtube.com/watch?v=0xo1Ldx3L5Q

这里写图片描述

end!

没有更多推荐了,返回首页