| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 深度学习03:Tips for Deep Learning -> 正文阅读 |
|
[人工智能]深度学习03:Tips for Deep Learning |
文章目录深度学习理论系列: 深度学习01 深度学习02:CNN 1 做deep learning的流程
2 欠拟合对策2.1 New activation function2.1.1 Gradient Problem(梯度消失)??在全连接网络中,如果我们选择的激活函数是sigmod,那么越deep,就越容易发生梯度消失的情况。我们随机选择了几个初始的参数值,然后没怎么训练模型就停止了。数学推导如下: 2.1.2 ReLU??解决梯度消失的办法就是ReLU,该函数形状如下图所示,z为input,a为output,如果input>0则output = input,如果input<0则output = 0。output=0的neuron对整个network是没有任何作用的,因此可以把它们从network中拿掉。output=input的好处是不会像sigmoid function一样使input产生的影响逐层递减。 2.1.3 Maxout??假设现在有input
x
1
x_{1}
x1? ,
x
2
x_{2}
x2? ,它们乘上几组不同的weight分别得到5,7,-1,1,这些值本来是不同neuron的input,它们要通过activation function变为neuron的output;但在Maxout network里,我们事先决定好将某几个“neuron”的input分为一个group,比如5,7分为一个group,然后在这个group里选取一个最大值7作为output 2.2 Adaptive learning rate2.2.1 Adagrad若某个方向比较平缓则用大的learning rate,如果比较陡峭则用小的learning rate。 2.2.2 Momentum??常用mini-batch SGD训练算法,然而虽然这种算法能够带来很好的训练速度,但是在到达最优点的时候并不能够总是真正到达最优点,而是在最优点附近徘徊。另一个缺点就是这种算法需要我们挑选一个合适的学习率,当我们采用小的学习率的时候,会导致网络在训练的时候收敛太慢;当我们采用大的学习率的时候,会导致在训练过程中优化的幅度跳过函数的范围,也就是可能跳过最优点。我们所希望的仅仅是网络在优化的时候网络的损失函数有一个很好的收敛速度同时又不至于摆动幅度太大 指数加权平均数 ??假定我们有一堆数据
θ
0
\theta_{0}
θ0?,
θ
1
\theta_{1}
θ1?,…,
θ
n
\theta_{n}
θn?,那么,我们根据这些数据来拟合一条曲线,所得的值
v
t
v_{t}
vt?就是如下的公式: Momentum 2.2.2 RMSPropRMSProp算法对权重 W 和偏置 b 的梯度使用了微分平方加权平均数。 2.2.3 Adam??momentum是优化梯度的方向,RMSProp是为了动态调整学习率,Adam优化算法基本上就是将Momentum和RMSprop结合在一起。具体过程如下: 3 过拟合对策3.1 early stopping??假设你今天的learning rate调的比较好,那随着训练的进行,total loss通常会越来越小,但是Training set和Testing set的情况并不是完全一样的,很有可能当你在Training set上的loss逐渐减小的时候,在Testing set上的loss反而上升了 ??所以,理想上假如你知道testing data上的loss变化情况,你会在testing set的loss最小的时候停下来,而不是在training set的loss最小的时候停下来;但testing set实际上是未知的东西,所以我们需要用validation set来替代它去做这件事情 3.2 RegularizationL1正则和L2正则 3.3 Dropout??在training的时候,每次update参数之前,我们对每一个neuron(也包括input layer的“neuron”)做sampling(抽样) ,每个neuron都有p%的几率会被丢掉,如果某个neuron被丢掉的话,跟它相连的weight也都要被丢掉
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 23:41:45- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |