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
单韦乔
Toy-MT-Introduction
Commits
2e92218f
Commit
2e92218f
authored
Oct 07, 2019
by
xiaotong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
new pages
parent
9752394b
显示空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
90 行增加
和
28 行删除
+90
-28
Section05-Neural-Networks-and-Language-Modeling/section05-test.tex
+63
-27
Section05-Neural-Networks-and-Language-Modeling/section05.tex
+27
-1
没有找到文件。
Section05-Neural-Networks-and-Language-Modeling/section05-test.tex
查看文件 @
2e92218f
...
@@ -116,39 +116,75 @@
...
@@ -116,39 +116,75 @@
\subsection
{
参数学习 - 反向传播
}
\subsection
{
参数学习 - 反向传播
}
%%%------------------------------------------------------------------------------------------------------------
%%%------------------------------------------------------------------------------------------------------------
%%%
常见的目标函数
%%%
梯度下降
\begin{frame}
{
常见的损失函数
}
\begin{frame}
{
梯度下降(Gradient Descent)
}
\begin{itemize}
\begin{itemize}
\item
损失函数记为
$
Loss
(
\hat
{
\textbf
{
y
}}_
i,
\textbf
{
y
}_
i
)
$
,简记为
$
L
$
,以下是常用的定义
\item
如果把目标函数看做是参数
$
\textbf
{
w
}$
的函数,记为
$
J
(
\textbf
{
w
}
)
$
。优化目标是:找到使
$
J
(
\textbf
{
w
}
)
$
达到最小的
$
\textbf
{
w
}$
\item
注意,
$
\textbf
{
w
}$
可能包含几亿个实数,不能是SMT中MERT之类的调参方法。这里可以考虑一种更加适合大量实数参数的优化方法,其核心思想是
\alert
{
梯度下降
}
:
\begin{itemize}
\item
<2-> 如果
$
J
(
\textbf
{
w
}
)
$
对于
$
\textbf
{
w
}$
可微分,
$
\frac
{
\partial
J
(
\textbf
{
w
}
)
}{
\partial
\textbf
{
w
}}$
表示
$
J
$
在
$
\textbf
{
w
}$
处变化最大的方向
\item
<2->
$
\textbf
{
w
}$
沿着梯度方向更新,新的
$
\textbf
{
w
}$
可以使函数更接近极值
\end{itemize}
\end{itemize}
\end{itemize}
\vspace
{
0.5em
}
\pgfplotsset
{
%
colormap=
{
whitered
}{
color(-1cm)=(orange!75!red);color(1cm)=(white)
}
\footnotesize
{
\renewcommand
{
\arraystretch
}{
1.2
}
\begin{tabular}
{
l | l | l | l
}
名称
&
定义
&
NiuTensor实现(
\texttt
{
yh
}
表示
$
\hat
{
\textbf
{
y
}}_
i
$
)
&
应用
\\
\hline
0-1
&
$
L
=
\left\{
\begin
{
array
}{
ll
}
0
&
\hat
{
\textbf
{
y
}}_
i
=
\textbf
{
y
}_
i
\\
1
&
\hat
{
\textbf
{
y
}}_
i
\ne
\textbf
{
y
}_
i
\end
{
array
}
\right
.
$
&
\scriptsize
{
\texttt
{
L = Sign(Absolute(yh - y))
}}
&
感知机
\\
Hinge
&
$
L
=
\max
(
0
,
1
-
\hat
{
\textbf
{
y
}}_
i
\cdot
\textbf
{
y
}_
i
)
$
&
\scriptsize
{
\texttt
{
L = Max(0, 1 - yh * y))
}}
&
SVM
\\
绝对值
&
$
L
=
|
\hat
{
\textbf
{
y
}}_
i
-
\textbf
{
y
}_
i|
$
&
\scriptsize
{
\texttt
{
L = Absolute(yh - y)
}}
&
回归
\\
Logistic
&
$
L
=
\log
(
1
+
\hat
{
\textbf
{
y
}}_
i
\cdot
\textbf
{
y
}_
i
)
$
&
\scriptsize
{
\texttt
{
L = Log(1 + yh * y)
}}
&
回归
\\
平方
&
$
L
=(
\hat
{
\textbf
{
y
}}_
i
-
\textbf
{
y
}_
i
)
^
2
$
&
\scriptsize
{
\texttt
{
L = Power(yh - y, 2)
}}
&
回归
\\
指数
&
$
L
=
\exp
(-
\hat
{
\textbf
{
y
}}_
i
\cdot
\textbf
{
y
}_
i
)
$
&
\scriptsize
{
\texttt
{
L = Exp(Negate(yh * y))
}}
&
\scriptsize
{
AdaBoost
}
\\
交叉熵
&
$
L
=-
\sum
_
k
\textbf
{
y
}_
i
^{
[
k
]
}
\log
\hat
{
\textbf
{
y
}}_
i
^{
[
k
]
}
$
&
\scriptsize
{
\texttt
{
L = CrossEntropy(y, yh)
}}
&
多分类
\\
&
\scriptsize
{$
\textbf
{
y
}_
i
^{
[
k
]
}$
:
$
\textbf
{
y
}_
i
$
的第
$
k
$
维
}
&
&
\\
\end{tabular}
\renewcommand
{
\arraystretch
}{
1.0
}
}
}
\vspace
{
-0.5em
}
\begin{itemize}
\begin{center}
\item
注意:
\begin{tikzpicture}
[
\begin{itemize}
declare function =
{
mu1=1;
}
,
\item
损失函数可以根据问题不同进行选择,没有固定要求
declare function =
{
mu2=2;
}
,
\item
有些损失函数对网络输出有要求,比如交叉熵要求
$
\hat
{
\textbf
{
y
}}_
i
$
和
$
\textbf
{
y
}_
i
$
都是概率分布
declare function =
{
sigma1=0.5;
}
,
\end{itemize}
declare function =
{
sigma2=1;
}
,
\end{itemize}
declare function =
{
normal(
\m
,
\s
)=1/(2*
\s*
sqrt(pi))*exp(-(x-
\m
)
^
2/(2*
\s
^
2));
}
,
declare function =
{
bivar(
\ma
,
\sa
,
\mb
,
\sb
)=1/(2*pi*
\sa*\sb
) * exp(-((x-
\ma
)
^
2/
\sa
^
2 + (y-
\mb
)
^
2/
\sb
^
2))/2;
}
]
\footnotesize
{
\visible
<2->
{
\begin{scope}
\begin{axis}
[
colormap name = whitered,
width = 8cm,
height = 5cm,
view =
{
20
}{
45
}
,
enlargelimits = false,
grid = major,
domain = -1:3,
y domain = 0:4,
samples = 30,
xlabel =
$
\textbf
{
w
}^{
[
1
]
}$
,
ylabel =
$
\textbf
{
w
}^{
[
2
]
}$
,
xlabel style =
{
xshift=0em,yshift=0.8em
}
,
ylabel style =
{
xshift=0.2em,yshift=0.8em
}
,
zlabel =
{$
f
(
\cdot
)
$}
,
ztick =
{
-0.1
}
,
colorbar,
colorbar style =
{
at =
{
(1.2,0.5)
}
,
anchor = north west,
ytick =
{
0,-0.1
}
,
height = 0.25*
\pgfkeysvalueof
{
/pgfplots/parent axis height
}
,
title =
{}
}
]
\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.5,3,-0.03);
%\draw [black!50] (axis cs:0,-1,0) -- (axis cs:0,4,0);
\end{axis}
\end{scope}
}
}
\end{tikzpicture}
\end{center}
\end{frame}
\end{frame}
...
...
Section05-Neural-Networks-and-Language-Modeling/section05.tex
查看文件 @
2e92218f
...
@@ -2710,7 +2710,7 @@ cycle}
...
@@ -2710,7 +2710,7 @@ cycle}
%%%------------------------------------------------------------------------------------------------------------
%%%------------------------------------------------------------------------------------------------------------
%%% 神经网络 = 表达式
%%% 神经网络 = 表达式
\begin{frame}
{
神经网络 = 表达式
}
\begin{frame}
{
神经网络 =
函数
表达式
}
\begin{itemize}
\begin{itemize}
\item
所有的神经网络都可以看做由变量和函数组成的表达式
\\
\item
所有的神经网络都可以看做由变量和函数组成的表达式
\\
\end{itemize}
\end{itemize}
...
@@ -2855,5 +2855,31 @@ Logistic & $L=\log(1 + \hat{\textbf{y}}_i \cdot \textbf{y}_i)$ & \scriptsize{\te
...
@@ -2855,5 +2855,31 @@ Logistic & $L=\log(1 + \hat{\textbf{y}}_i \cdot \textbf{y}_i)$ & \scriptsize{\te
\end{frame}
\end{frame}
%%%------------------------------------------------------------------------------------------------------------
%%% 优化目标函数
\begin{frame}
{
参数优化
}
\begin{itemize}
\item
对于第
$
i
$
个输入样本(
$
\textbf
{
x
}_
i
$
,
$
\hat
{
\textbf
{
y
}}_
i
$
),如果把损失函数看做参数
$
\textbf
{
w
}$
的函数(把
$
\textbf
{
b
}$
也作为一种
$
\textbf
{
w
}$
),记为
$
L
(
\textbf
{
x
}_
i,
\hat
{
\textbf
{
y
}}_
i;
\textbf
{
w
}
)
$
,则参数学习可以被描述为:
\\
\begin{displaymath}
\textbf
{
w
}^
* =
\argmin
_{
\textbf
{
w
}}
\frac
{
1
}{
n
}
\sum
_{
i=1
}^{
n
}
L(
\textbf
{
x
}_
i,
\hat
{
\textbf
{
y
}}_
i;
\textbf
{
w
}
)
\end{displaymath}
$
\textbf
{
w
}^
*
$
表示在训练集上使得损失的平均值达到最小的参数。
$
\frac
{
1
}{
n
}
\sum
_{
i
=
1
}^{
n
}
L
(
\textbf
{
x
}_
i,
\hat
{
\textbf
{
y
}}_
i;
\textbf
{
w
}
)
$
被称作代价函数(cost function),它是损失函数均值期望的估计。
\vspace
{
0.5em
}
\item
<2-> 核心问题:
\textbf
{
求解
$
\argmin
$
,即找到代价函数最小值点
}
\begin{itemize}
\item
这是非常常见的问题,回一下第三章的IBM模型,当时使用的是EM算法
\item
但是这里并不是一个生成模型
\item
需要一种更加通用的求解方法
\end{itemize}
\end{itemize}
\end{frame}
\end{CJK}
\end{CJK}
\end{document}
\end{document}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论