2017-06-06 23:00:49 soulmeetliang 阅读数 5536

[机器学习入门] 李宏毅机器学习笔记-10 (Tips for Deep Learning;深度学习小贴士)

PDF VIDEO

Recipe of Deep Learning

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


在 training data上的performance不好

这里写图片描述


Deeper usually does not imply better

这里写图片描述


Vanishing Gradient Problem

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


ReLU(Rectified Linear Unit)

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

ReLU - variant

这里写图片描述

**那么除了ReLU有没有别的activation function了呢?
所以我们用 Maxout来根据training data自动生成activation function**
ReLU is a special cases of Maxout


Maxout

这里写图片描述


ReLU is a special cases of Maxout

这里写图片描述


More than ReLU

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


Maxout - Training

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


Adaptive Learning Rate

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


RMSProp

这里写图片描述


Hard to find optimal network parameters

这里写图片描述


Momentum(gradient descent 融入惯性作用)

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

所以,加了momentum后:

这里写图片描述


Adam

这里写图片描述


在testing data上performance不好

这里写图片描述


Early Stopping

这里写图片描述


Regularization

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


Regularization - Weight Decay

这里写图片描述


Dropout

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


Dropout- Intuitive Reason

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


Dropout is a kind of ensemble

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

2019-06-19 22:06:26 wangwei19871103 阅读数 385

目的

通过学习和理解李宏毅的GAN课程,对GAN有更加深入的理解,希望能结合李宏毅老师的课件和自己的理解把GAN的理论基础搞明白,这样就可以去学习更多GAN的变种,同时也可以帮助更多想入门GAN的朋友一点点经验吧。

GAN的理论原理

通俗的讲,GAN中文叫做生成对抗网络,就是双方互相博弈(生成器和鉴别器,鉴别器要最大化,求出分布差异,生成器要最小化,降低差异),最后达到一种平衡状态。我们用GAN做图片生成,做风格学习,做语音识别或者做语音和声纹分离,本质上都是在做概率分布的学习,我们希望我们的模型可以去接近真实分布。

简单的说,就是我希望训练一个模型,模型用来学习真实样本的分布,很多时候我们是不知道真实样本的分布的,但是它确实是存在的。那我们要怎么来学习这个分布呢,最常见的就是用极大似然估计,即我们希望我们的模型生成的样本,看起来很最像是真实的分布生成的样本。换句话说,我们希望模型的样本分布和真实样本分布差距越来越小,因此引入了散度的概念,即两个分布之间的差异,不是距离,应该是信息损耗。这个属于信息论里的概念,有兴趣的可以去了解下[这篇文章],了解下信息量,信息熵,相对熵(KL散度),更好的理解GAN。

在这里插入图片描述
举个生成图片的例子来解释下GAN在做什么。
假设上面中间那个很奇怪的图形是我们真实数据的分布Pdata,简化成二维的这么个图形,上面的每一个点就是一张图片,可以看到左边从图形里面采样到的样本点是很不错,右边从图形外面采样的就比较差了。那我们要做的当然就是去找到这个Pdata啦,希望可以用上面公式来表达。我们是通过很多张样本分析,能知道哪些地方的样本是比较好的,即知道哪里地方出现的好的样本概率高,也知道哪些地方出现差的样本概率高。

极大似然估计

那我们有什么方法通过样本来找出真实数据的分布呢,用的就是极大似然估计,其实也就是估计下,并非帧的能找到,只是极大可能的接近真实分布。

在这里插入图片描述

1.我们有参数θ的分布PG
2.我们想调整参数θ,使得PdataPG越接近越好
3.从真实数据分布Pdata中采样一堆数据x1,x2…,调整参数θ,使得x1,x2…从PG产生的概率越大越好
4.因此就有了关于θ的似然函数
在这里插入图片描述
整体的概率就是每个样本从PG里产生的最大概率的乘积。

我们想让这个L最大,即我们需要找到参数θ,使得L最大,即在这里插入图片描述
一般累乘比较难计算,我们用取log化为累加
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
因为样本都是取自Pdata,而且求和,我们可以近似转换为期望
在这里插入图片描述
期望对连续随机变量也可以转换为积分问题
在这里插入图片描述
然后为了凑出散度公式,再后面加上了一项
在这里插入图片描述
即如下
在这里插入图片描述
KL散度的公式,可以参考
在这里插入图片描述
由于编辑公式太麻烦,决定手写补上中间的过程,便于理解,字难看了点,能明白过程就行。

在这里插入图片描述
在这里插入图片描述
可以看到,极大似然估计可以变换成KL散度,即两个分布的差异。
我们现在的目标变成求θ,使得两个分部之间差异最小。

生成器G

那现在问题来了,PG怎么来呢,传统的方法是用高斯混合模型的组合而来的,貌似是用很多高斯分部曲线的组合来拟合真实分布,但是貌似对图片效果不好,模糊,所以我们就尝试用神经网络来生成,反正只要能找到一组参数θ,生成PG就行,神经网络刚好擅长这个啊。
在这里插入图片描述
我们可以定义一个噪音分布用于采样,可以是高斯分部,也可以是均匀分布,中间是神经网络,输入样本Z,无论前面是高斯还是均匀分布,都可以被G学习后变为后面的PG分布,我们希望分布PG和真实的分布Pdata越接近越好。所以问题变成我们要找一个G,生成一个分布PG,使得PGPdata越接近越好,可以定义成:
在这里插入图片描述
Div就是两个分布之间的散度(差异),可以是KL散度,也可以是其他的比如JS散度。
简单就是说,为什么的目标等价于要找到一个神经网络G,生成的PG让两个分布之间的差距最小。(有没有发现GAN的核心一直围绕着2个分布之间的差异展开,其他很多的东西都是为这个思想服务,不论前面的最大似然估计,还是后面要讲的交叉熵损失函数都是这个原理)

判别器D

但是问题由来了,我们不知道PGPdata是什么,怎么来衡量他们的差异呢。我们可以采样啊,我们可以通过G去生成样本,就是PG中采样来的,同样,我们也有真实样本,从Pdata采样来的。然后用伸进网络当一个判别器D来解决Div,来判断这些样本的差异情况。
在这里插入图片描述
假设我们采样的样本如下,我们把所有样本给D,训练D为一个二分类器,如果Div大,就给PG低分数,给Pdata高分数,如果Div小,就给这2个差不多分数,直到Div=0时,两个分数就一样了,都为0.5,也说明无法判断样本是哪个分布来的,理论上即达到PGPdata一样了。
在这里插入图片描述
我们固定G,训练D,接下来要为D选择目标函数V(G,D)啦,我们希望来自Pdata的越大越好,来自PG的越小越好,即我们希望整体V(G,D)越大越好
在这里插入图片描述
即我们需要训练个D,使得V(G,D)越大越好
在这里插入图片描述
接下来讲下为什么D和Div相关
在这里插入图片描述

可以看到,如果Div很小,则D就很难鉴别,如果Div很大,D就很容易鉴别,即D和Div是相关的。

我们将刚才的V的期望转换为积分
在这里插入图片描述
即我们需要求这个的最大值,假设 D(x)可以是任意函数,求积分最大,也就是求被积函数最大。在这里插入图片描述
如下假设,可得V最大时候的D取值,就是函数求倒数,等于0,求出D
在这里插入图片描述
之后我们为了凑JS散度做了相应变换,以下为JS散度和KL散度的关系。
在这里插入图片描述
将D的值代入V(G,D)中,凑出JS散度,基本每步都有了,就不手动推导了
在这里插入图片描述
在这里插入图片描述
JS散度和KL散度可以认为是等效的,进过上面的推导,我们得出DivV(G,D)的关系,最大V(G,D),等价于Div
在这里插入图片描述
可以换为

在这里插入图片描述
那现在我们来可视化看一下最大的V(G,D)Div具体的关系:
在这里插入图片描述
假设我们有三个G,可以看到在每个G中,根据上面的的公式,先找到了V(G,D)的最大值和相应的D,因为V(G,D)的最大值,就是散度,可以看到绿色的虚线就是散度的大小,然后我们又需要找到一个最小散度的G,可见G3的散度的是最小的,因此G3就是我们要找的分布差距最小的生成器。

具体求法

在说说上面的公式怎么求吧,G不变,先求出优化的D,然后再求出G,再求出优化的D,再求G,这样无限循环。

因此在求G的时候,D是不变得,所以可以简化为
在这里插入图片描述
然后可以用梯度下降法优化G
在这里插入图片描述
在求梯度的时候会涉及
在这里插入图片描述
这个函数的求导,其实这个是可以求导的,
在这里插入图片描述
上图就是个max的函数,求导时,就是分段求导,x范围内哪个函数大,就用哪个来求导。

在这里插入图片描述
上图为整体算法,我们先生成G0,然后用梯度上升法最大化V(G0,D),和求出相应的D1,然后用梯度下降法最小化V(G,D1),即最小化散度,求出G1,然后继续上面的循环,直到最小化散度为0时候的Gx应该就是最好的生成器啦。

在这里插入图片描述
事实上我们的V(G,D)是换成均值来做的,D就是个二分类器,首先我们训练D,此时G是固定的,我们用梯度上升法训练K次,最大化V(G,D),求出相应的D,然后固定D,用梯度下降法,最小化V(G,D),此时只要求V(G,D)的后半段微分即可,前半段固定了,更新G,这样不断循环,最终使得V(G,D)最大化为0,即分布无差异。

好了,今天就到这里了,希望对学习理解有帮助,大神看见勿喷,仅为自己的学习理解,能力有限,请多包涵,图片来自李宏毅课件,侵删。

2017-07-30 08:43:54 jiandanjinxin 阅读数 1052

深度学习历史


这里写图片描述


深度学习经典步骤


这里写图片描述

这里写图片描述

这里写图片描述

神经网络的符合标记含义

这里写图片描述

这里写图片描述

Wij 代表的是从神经元j到神经元i,这样写的目的是便于表达,否则最后的表达式子就是Wij的转置,细节见下面。

这里写图片描述

每个神经元的偏执值组成一个向量b

这里写图片描述

单个神经元的输出结果

这里写图片描述

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

所有神经元输出的结果

这里写图片描述

这里写图片描述


深度学习示例数字识别


这里写图片描述

这里写图片描述

这里写图片描述

将图片reshape到一列(按行reshape或者按列reshape均可),类别可用0ne-hot来标记。


深度学习损失函数


这里写图片描述

这里写图片描述

这里写图片描述

批量算损失,梯度下降法去更新参数,以便找到最优的目标函数。


深度学习梯度下降法


这里写图片描述

这里写图片描述


参考文献


http://speech.ee.ntu.edu.tw/~tlkagk/courses_ML17.html

2017-08-04 21:44:31 soulmeetliang 阅读数 2583

[机器学习入门] 李宏毅机器学习笔记-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!

2018-01-07 16:21:48 Allenlzcoder 阅读数 895

台大李宏毅Machine Learning 2017Fall学习笔记 (6)Logistic Regression

做Logistic Regression回归,需要3步。
Step 1: Function Set
在此问题中选择sigmod(z)函数,具体见下图。
这里写图片描述
这里写图片描述
这里对Logistic Regression和Linear Regression的输出值做个对比,主要是输出值的范围不同。
这里写图片描述
Step 2: Goodness of a Function
如果训练数据集的格式如下所示:
这里写图片描述
假设训练集数据是由fw,b(x)=Pw,b(C1|x)函数产生。给定wb,由该函数产生这组数的概率为

L(w,b)=fw,b(x1)fw,b(x2)(1fw,b(x3))fw,b(xN)

现在的目标是求出使L(w,b)最大的wb
w,b=arg maxw,bL(w,b)

为了便于处理,对 上式进行等价处理:
这里写图片描述
这里写图片描述
注意:上图中采用交叉熵函数作为损失函数。Cross entropy表示两个distribution有多么接近,若两个distribution一模一样,则cross entropy=0
关于前两步对Logistic Regression和Linear Regression做对比。
这里写图片描述
至于为何不用square error做线性回归,暂且不表。
Step 3: Find the best function
这一步的工作就是要利用梯度下降法,不断迭代,找到符合要求的解。PPT中步骤详细,直接贴上来。
这里写图片描述
这里写图片描述
这里写图片描述
顺便观察下迭代的公式,可以发现逻辑回归和线性回归的迭代公式是相同的。
这里写图片描述
好,模型的求解讲解完毕。再说一说为何不用square error
如果采用了logistic regression + square error的方式,那么在第三步中会出现微分值为0的情况,导致参数无法迭代更新。比如下面两个例子。
这里写图片描述
这里写图片描述
Cross entropy: 距离目标点越远时,目标值越大,参数更新的越快。
Square error: 当距离目标远时,目标函数对参数的微分值极小,参数更新速度很慢,不容易得到结果。
下图形象地展示了这一点。
这里写图片描述
判别式模型与生成式模型(Discriminative v.s. Generative)
这一小节讲述的logistic regression属于判别式模型(Discriminative);上一节中利用高斯分布描述数据的联合概率的方法求解model属于生成式模型(Generative)。
这里写图片描述
两种求解模型的方法各有优劣,在此小节的问题中判别式模型的准确率更高。
那生成式模型的优势见下图。
这里写图片描述
之前讨论的都是二分类问题,如果遇到多分类问题,以三分类为例,则需要把sigmod(x)函数改为softmax(x),其公式如下:
softmax(zj)=ezjiezi

举例如下:
这里写图片描述
这里写图片描述
Logistic Regression的限制
有时会出现无法分类的情况,如下图。
这里写图片描述
这里写图片描述
此时需要进行特征变换,但是要找到一个很好的特征变换往往并不容易。
这里写图片描述
这时候咱们把几个逻辑回归组合起来,其效果相当于特征变换的作用。再加一个逻辑回归当作分类器。整体结构图如下所示。
这里写图片描述
首先进行特征变换,结果如下。
这里写图片描述
基于特征变换的结果进行分类,如下图。
这里写图片描述
注:上图右下中的x,1x,2画反了。。。
把多个logistic regression串在一起,再换个名字叫Deep Learning,瞬间就潮了许多。就可以去骗麻瓜说我们是在利用深度学习的方法做人工智能,模拟人类大脑的运作~~~

Deep learning 学习入门笔记

博文 来自: zygdzt
没有更多推荐了,返回首页