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
7c79a698
Commit
7c79a698
authored
Oct 25, 2019
by
xiaotong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
new pages
parent
0c5005e4
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
95 行增加
和
18 行删除
+95
-18
Section05-Neural-Networks-and-Language-Modeling/section05-test.tex
+9
-17
Section05-Neural-Networks-and-Language-Modeling/section05.tex
+86
-1
没有找到文件。
Section05-Neural-Networks-and-Language-Modeling/section05-test.tex
查看文件 @
7c79a698
...
@@ -19,6 +19,7 @@
...
@@ -19,6 +19,7 @@
\usepackage
{
pgfplots
}
\usepackage
{
pgfplots
}
\usepackage
{
subfigure
}
\usepackage
{
subfigure
}
\usepackage
{
tikz-3dplot
}
\usepackage
{
tikz-3dplot
}
\usepackage
{
esvect
}
\usepackage
{
tcolorbox
}
\usepackage
{
tcolorbox
}
\tcbuselibrary
{
skins
}
\tcbuselibrary
{
skins
}
...
@@ -116,29 +117,20 @@
...
@@ -116,29 +117,20 @@
\section
{
神经语言模型
}
\section
{
神经语言模型
}
%%%------------------------------------------------------------------------------------------------------------
%%%------------------------------------------------------------------------------------------------------------
\subsection
{
前馈、循环、自注意力神经网络
}
\subsection
{
词嵌入
}
%%%------------------------------------------------------------------------------------------------------------
%%%------------------------------------------------------------------------------------------------------------
%%%
循环单元的设计、梯度消失、训练等问题
%%%
用实例理解词的分布式表示
\begin{frame}
{
进一步的问题
}
\begin{frame}
{
分布式表示的可视化
}
\begin{itemize}
\begin{itemize}
\item
\textbf
{
循环单元设计
}
:循环单元就是一个函数,入读当前时刻的输入和上一时刻的状态,生成当前时刻的状态
\item
\textbf
{
一个著名的例子
}
:国王
$
\to
$
王后
\\
\begin{displaymath}
\begin{displaymath}
\
textbf
{
h
}_
t = g(
\textbf
{
x
}_
t,
\textbf
{
h
}_{
t-1
}
;
\theta
)
\
vv
{
\textrm
{
国王
}}
-
\vv
{
\textrm
{
男人
}}
+
\vv
{
\textrm
{
女人
}}
=
\vv
{
\textrm
{
王后
}}
\end{displaymath}
\end{displaymath}
很多种方式设计
$
g
(
\cdot
)
$
,如著名的LSTM、GRU等
这里,
$
\vv
{
\textrm
{
word
}}$
表示单词的分布式向量表示
\item
<2->
\textbf
{
梯度消失/爆炸
}
:随着序列变长,在反向传播时循环神经网络会产生更多的局部梯度相乘计算,这会导致
\alert
{
梯度消失/爆炸问题
}
\item
更多的词的可视化:相似的词聚在一起
\begin{displaymath}
\underbrace
{
0.2
\times
0.3
\times
...
\times
0.2
\times
0.1
}_{
\text
{
100项
}}
\approx
0
\end{displaymath}
\vspace
{
-0.8em
}
\begin{itemize}
\item
可以考虑梯度裁剪,限制梯度的大小
\item
也可以引入short-cut connection,如残差网络
\end{itemize}
\item
<2->
\textbf
{
训练
}
:有了自动微分,这不是个大问题 :)
\end{itemize}
\end{itemize}
\end{frame}
\end{frame}
%%%------------------------------------------------------------------------------------------------------------
%%%------------------------------------------------------------------------------------------------------------
...
...
Section05-Neural-Networks-and-Language-Modeling/section05.tex
查看文件 @
7c79a698
...
@@ -19,6 +19,7 @@
...
@@ -19,6 +19,7 @@
\usepackage
{
pgfplots
}
\usepackage
{
pgfplots
}
\usepackage
{
subfigure
}
\usepackage
{
subfigure
}
\usepackage
{
tikz-3dplot
}
\usepackage
{
tikz-3dplot
}
\usepackage
{
esvect
}
\usepackage
{
tcolorbox
}
\usepackage
{
tcolorbox
}
\tcbuselibrary
{
skins
}
\tcbuselibrary
{
skins
}
...
@@ -4366,11 +4367,95 @@ $\textbf{V}, \textbf{U}, \textbf{W}$: 参数
...
@@ -4366,11 +4367,95 @@ $\textbf{V}, \textbf{U}, \textbf{W}$: 参数
\end{itemize}
\end{itemize}
\end{frame}
\end{frame}
%%%------------------------------------------------------------------------------------------------------------
%%%------------------------------------------------------------------------------------------------------------
\subsection
{
词嵌入
}
\subsection
{
词嵌入
}
%%%------------------------------------------------------------------------------------------------------------
%%%------------------------------------------------------------------------------------------------------------
%%% 词的one-hot和distributed表示
\begin{frame}
{
单词的表示
}
\begin{itemize}
\item
如何表示一个单词?
\begin{itemize}
\item
\textbf
{
One-hot
}
: 假如有一个词典
$
V
$
,里面包含10k个单词,并进行编号。每个单词都可以表示为10k维的one-hot向量,仅在编号那个维度为1,其它为0
\item
<2->
\textbf
{
Distributed
}
: 类似于神经语言模型,每个单词可以被表示为一个实数向量,每一维都对应一种``属性'' -
\alert
{
词嵌入
}
\end{itemize}
\end{itemize}
\begin{center}
\begin{tikzpicture}
\begin{scope}
\node
[anchor=north west] (o1) at (0,0)
{
\footnotesize
{$
\begin
{
bmatrix
}
0
\\
1
\\
0
\\
0
\\
0
\\
...
\\
0
\end
{
bmatrix
}$}}
;
\node
[anchor=north west] (o2) at ([xshift=1em]o1.north east)
{
\footnotesize
{$
\begin
{
bmatrix
}
0
\\
0
\\
0
\\
1
\\
0
\\
...
\\
0
\end
{
bmatrix
}$}}
;
\node
[anchor=north east] (v) at ([xshift=-0em]o1.north west)
{
\footnotesize
{$
\begin
{
matrix
}
\textrm
{
\ \ \ \ \
你
}_
1
\\
\textrm
{
\ \
桌子
}_
2
\\
\textrm
{
\ \ \ \ \
他
}_
3
\\
\textrm
{
\ \
椅子
}_
4
\\
\textrm
{
\ \
我们
}_
5
\\
...
\\
\textrm
{
你好
}_{
10
k
}
\end
{
matrix
}$}}
;
\node
[anchor=south] (w1) at (o1.north)
{
\footnotesize
{
桌子
}}
;
\node
[anchor=south] (w2) at (o2.north)
{
\footnotesize
{
椅子
}}
;
\node
[anchor=north] (label) at (o1.south)
{
\footnotesize
{
单词的one-hot表示
}}
;
\visible
<3->
{
\node
[anchor=south,fill=red!20!white] (cosine) at (w1.north)
{
\footnotesize
{$
cosine
(
\textrm
{
`桌子'
}
,
\textrm
{
`椅子'
}
)=
0
$}}
;
}
\end{scope}
\visible
<2->
{
\begin{scope}
[xshift=2in]
\node
[anchor=north west] (o1) at (0,0)
{
\footnotesize
{$
\begin
{
bmatrix
}
.
1
\\
-
1
\\
2
\\
...
\\
0
\end
{
bmatrix
}$}}
;
\node
[anchor=north west] (o2) at ([xshift=1em]o1.north east)
{
\footnotesize
{$
\begin
{
bmatrix
}
1
\\
2
\\
.
2
\\
...
\\
-
1
\end
{
bmatrix
}$}}
;
\node
[anchor=north east] (v) at ([xshift=-0em]o1.north west)
{
\footnotesize
{$
\begin
{
matrix
}
\textrm
{
\ \ \
属性
}_
1
\\
\textrm
{
\ \ \
属性
}_
2
\\
\textrm
{
\ \ \
属性
}_
3
\\
...
\\
\textrm
{
属性
}_{
512
}
\end
{
matrix
}$}}
;
\node
[anchor=south] (w1) at (o1.north)
{
\footnotesize
{
桌子
}}
;
\node
[anchor=south] (w2) at (o2.north)
{
\footnotesize
{
椅子
}}
;
\node
[anchor=north] (label) at ([yshift=-2em]o1.south)
{
\footnotesize
{
单词的分布式表示(词嵌入)
}}
;
\visible
<3->
{
\node
[anchor=south,fill=red!20!white] (cosine) at (w1.north)
{
\footnotesize
{$
cosine
(
\textrm
{
`桌子'
}
,
\textrm
{
`椅子'
}
)=
0
.
5
$}}
;
}
\end{scope}
}
\end{tikzpicture}
\end{center}
\end{frame}
%%%------------------------------------------------------------------------------------------------------------
%%% 分布式表示的优点
\begin{frame}
{
为什么需要分布式表示?
}
\begin{itemize}
\item
\textbf
{
一个自然的问题
}
:分布式表示中每一维都是什么意思
\begin{itemize}
\item
可以把每一维都理解为一个属性,比如:性别、身高等
\item
但是,模型更多的是把一个维度看做是事物的一种``刻画'',是一种统计意义上的``语义'',而非人工归纳的属性
\end{itemize}
\item
<2-> 那这种方法有什么好处?
\begin{itemize}
\item
更容易刻画词语之间的
\alert
{
相似性
}
\item
连续空间表示模型可以更准确的刻画客观事物,而不是非零即一的判断
\end{itemize}
\item
<2-> 预测下一个词任务
\begin{itemize}
\item
分布式表示很容易指导``桌子''和``椅子''是相似的
\item
即使``椅子''没在这个句型中出现过,系统仍然可以通过它和``桌子''的相似性进行预测
\end{itemize}
\begin{tabular}
{
l | l
}
屋里 要 摆放 一个
\_\_\_\_\_
&
预测下个词
\\
\hline
屋里 要 摆放 一个
\alert
{
桌子
}
&
见过
\\
屋里 要 摆放 一个
\blue
{
椅子
}
&
没见过,但是仍然是合理预测
\end{tabular}
\end{itemize}
\end{frame}
%%%------------------------------------------------------------------------------------------------------------
%%% 用实例理解词的分布式表示
\begin{frame}
{
分布式表示的可视化
}
\begin{itemize}
\item
\textbf
{
一个著名的例子
}
:国王
$
\to
$
王后
\\
\begin{displaymath}
\vv
{
\textrm
{
国王
}}
-
\vv
{
\textrm
{
男人
}}
+
\vv
{
\textrm
{
女人
}}
=
\vv
{
\textrm
{
王后
}}
\end{displaymath}
这里,
$
\vv
{
\textrm
{
word
}}$
表示单词的分布式向量表示
\item
更多的词的可视化:相似的词聚在一起
\end{itemize}
\end{frame}
%%%------------------------------------------------------------------------------------------------------------
\subsection
{
句子表示模型及预训练
}
\subsection
{
句子表示模型及预训练
}
\end{CJK}
\end{CJK}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论