Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
T
Toy-MT-Introduction
概览
Overview
Details
Activity
Cycle Analytics
版本库
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
问题
0
Issues
0
列表
Board
标记
里程碑
合并请求
0
Merge Requests
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
Snippets
成员
Collapse sidebar
Close sidebar
活动
图像
聊天
创建新问题
作业
提交
Issue Boards
Open sidebar
NiuTrans
Toy-MT-Introduction
Commits
f147c823
Commit
f147c823
authored
Oct 08, 2019
by
xiaotong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
new pages
parent
521ddae4
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
42 行增加
和
48 行删除
+42
-48
Section05-Neural-Networks-and-Language-Modeling/section05-test.tex
+17
-47
Section05-Neural-Networks-and-Language-Modeling/section05.tex
+25
-1
没有找到文件。
Section05-Neural-Networks-and-Language-Modeling/section05-test.tex
查看文件 @
f147c823
...
...
@@ -116,58 +116,28 @@
\subsection
{
参数学习 - 反向传播
}
%%%------------------------------------------------------------------------------------------------------------
%%%
梯度下降的变种
\begin{frame}
{
梯度下降的不同实现方式
}
%%%
关于梯度下降的改进
\begin{frame}
{
一些改进
}
\begin{itemize}
\item
\textbf
{
梯度下降
}
:我们可以沿着梯度方向更新
$
\textbf
{
w
}$
一小步,之后得到更好的
$
\textbf
{
w
}$
,之后重新计算梯度,不断重复上述过程
\begin{displaymath}
\textbf
{
w
}_{
t+1
}
=
\textbf
{
w
}_
t -
\alpha
\cdot
\frac
{
\partial
J(
\textbf
{
w
}_
t)
}{
\partial
\textbf
{
w
}_
t
}
\end{displaymath}
其中
$
t
$
表示更新的步数,
$
\alpha
$
是一个参数,表示更新步幅的大小。
$
\alpha
$
的设置需要根据任务进行调整。而
$
J
(
\textbf
{
w
}_
t
)
$
的形式决定了具体的算法具体的实现。
\item
<2->
\textbf
{
批量梯度下降(Batch Gradient Descent)
}
:
\begin{displaymath}
J(
\textbf
{
w
}_
t) =
\frac
{
1
}{
n
}
\sum
_{
i=1
}^{
n
}
L(
\textbf
{
x
}_
i,
\hat
{
\textbf
{
y
}}_
i;
\textbf
{
w
}_
t)
\end{displaymath}
这种方法训练稳定,但是由于每次更新需要对所有训练样本进行遍历,效率低(比如
$
n
$
很大),大规模数据上很少使用
\end{itemize}
\end{frame}
%%%------------------------------------------------------------------------------------------------------------
%%% 梯度下降的变种
\begin{frame}
{
梯度下降的不同实现方式(续)
}
\begin{itemize}
\item
\textbf
{
随机梯度下降(Stochastic Gradient Descent)
}
:
\begin{displaymath}
J(
\textbf
{
w
}_
t) = L(
\textbf
{
x
}_
i,
\hat
{
\textbf
{
y
}}_
i;
\textbf
{
w
}_
t)
\end{displaymath}
大名鼎鼎的SGD,所有机器学习的课程里几乎都有介绍。每次随机选取一个样本进行梯度计算和参数更新,更新的计算代价低,而且适用于利用少量样本进行在线学习(online learning),不过方法收敛慢
\vspace
{
0.3em
}
\item
<2->
\textbf
{
小批量梯度下降(Mini-batch Gradient Descent)
}
:
\begin{displaymath}
J(
\textbf
{
w
}_
t) =
\frac
{
1
}{
m
}
\sum
_{
i=j
}^{
j+m
}
L(
\textbf
{
x
}_
i,
\hat
{
\textbf
{
y
}}_
i;
\textbf
{
w
}_
t)
\end{displaymath}
每次随机使用若干样本进行参数更新(数量不会特别大),算是一种折中方案,当今最常用的方法之一
\item
\textbf
{
变种和改进
}
:提高基于梯度的方法的收敛速度、训练稳定性等,可以google一下
\begin{itemize}
\item
Momentum, Adagrad, Adadelta, RMSprop, Adam, AdaMax, Nadam, AMSGrad等等
\item
\footnotesize
{
\url
{
http://ruder.io/optimizing-gradient-descent
}}
\end{itemize}
\item
<2->
\textbf
{
并行化
}
:大规模数据处理需要分布式计算,梯度更新的策略需要设计
\begin{itemize}
\item
\textbf
{
同步更新
}
:所有计算节点完成计算后,统一汇总并更新参数。效果稳定,但是并行度低
\item
\textbf
{
异步更新
}
:每个节点可以随时更新。并行度高,但是由于节点间参数可能不同步,方法不十分稳定
\end{itemize}
\item
<3->
\textbf
{
其它
}
\begin{itemize}
\item
深度网络梯度爆炸的问题,使用梯度裁剪、残差链接
\item
引入正则化因子,可以对外部知识建模,比如引入噪声让训练更稳定
\end{itemize}
\end{itemize}
\end{frame}
\end{CJK}
\end{document}
Section05-Neural-Networks-and-Language-Modeling/section05.tex
查看文件 @
f147c823
...
...
@@ -2939,7 +2939,7 @@ $\textbf{w}^*$表示在训练集上使得损失的平均值达到最小的参数
\addplot
3 [surf]
{
-bivar(mu1,sigma1,mu2,sigma2)
}
;
\node
[circle,fill=red,minimum size=3pt,inner sep=1.5pt] () at (axis cs:0.5,2,-0.01)
{}
;
\draw
[->,very thick,ublue] (axis cs:0.5,2,-0.01) -- (axis cs:0.8,1.6,-0.03) node [pos=1,right,inner sep=2pt]
{
\tiny
{
-
$
\frac
{
\partial
J
(
\textbf
{
w
}
)
}{
\partial
\textbf
{
w
}}$}}
;
\draw
[->,very thick,dotted] (axis cs:0.5,2,-0.01) -- (axis cs:0.2,1.5,-0.03);
\draw
[->,very thick,dotted] (axis cs:0.5,2,-0.01) -- (axis cs:0.2,3.5,-0.03);
...
...
@@ -3007,5 +3007,29 @@ J(\textbf{w}_t) = \frac{1}{m} \sum_{i=j}^{j+m} L(\textbf{x}_i,\hat{\textbf{y}}_i
\end{frame}
%%%------------------------------------------------------------------------------------------------------------
%%% 关于梯度下降的改进
\begin{frame}
{
一些改进
}
\begin{itemize}
\item
\textbf
{
变种和改进
}
:提高基于梯度的方法的收敛速度、训练稳定性等,可以google一下
\begin{itemize}
\item
Momentum, Adagrad, Adadelta, RMSprop, Adam, AdaMax, Nadam, AMSGrad等等
\item
\footnotesize
{
\url
{
http://ruder.io/optimizing-gradient-descent
}}
\end{itemize}
\item
<2->
\textbf
{
并行化
}
:大规模数据处理需要分布式计算,梯度更新的策略需要设计
\begin{itemize}
\item
\textbf
{
同步更新
}
:所有计算节点完成计算后,统一汇总并更新参数。效果稳定,但是并行度低
\item
\textbf
{
异步更新
}
:每个节点可以随时更新。并行度高,但是由于节点间参数可能不同步,方法不十分稳定
\end{itemize}
\item
<3->
\textbf
{
其它
}
\begin{itemize}
\item
深度网络梯度消失和爆炸的问题,使用梯度裁剪、残差链接
\item
引入正则化因子,可以对外部知识建模,比如引入噪声让训练更稳定
\end{itemize}
\end{itemize}
\end{frame}
\end{CJK}
\end{document}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论