Commit 1707baea by xiaotong

utf8 files

parent 7a717e9d
% !Mode:: "TeX:GBK"
% !TEX encoding = GBK
% !Mode:: "TeX:UTF-8"
% !TEX encoding = UTF-8 Unicode
\def\CTeXPreproc{Created by ctex v0.2.13, don't edit!}
\documentclass[cjk,t,compress,12pt]{beamer}
......@@ -66,11 +66,11 @@
{\newcommand{\mycfont}{you}}
{\newcommand{\mycfont}{gbsn}}
\begin{CJK}{GBK}{\mycfont}
\begin{CJK}{UTF8}{\mycfont}
\end{CJK}
\setbeamerfont*{frametitle}{size=\large,series=\bfseries}
\setbeamertemplate{navigation symbols}{\begin{CJK}{GBK}{\mycfont} 第五章 神经网络和语言模型 \hspace*{2em} 肖桐\&朱靖波 \end{CJK} \hspace*{2em} \today \hspace*{2em} \insertframenumber{}/\inserttotalframenumber}
\setbeamertemplate{navigation symbols}{\begin{CJK}{UTF8}{\mycfont} 第五章 神经网络和语言模型 \hspace*{2em} 肖桐\&朱靖波 \end{CJK} \hspace*{2em} \today \hspace*{2em} \insertframenumber{}/\inserttotalframenumber}
\setbeamertemplate{itemize items}[circle] % if you want a circle
\setbeamertemplate{itemize subitem}[triangle] % if you wnat a triangle
......@@ -78,15 +78,15 @@
\begin{document}
\begin{CJK}{GBK}{\mycfont}
\begin{CJK}{UTF8}{\mycfont}
\title{\Large{神经网络和语言模型}}
\author{\large{\textbf{肖桐\ \ 朱靖波}}}
\title{\Large{神经网络和语言模型}}
\author{\large{\textbf{肖桐\ \ 朱靖波}}}
\institute{
\blue{\url{xiaotong@mail.neu.edu.cn}} \black{} \\
\blue{\url{zhujingbo@mail.neu.edu.cn}} \black{} \\
\vspace{1.0em}
东北大学 自然语言处理实验室 \\
东北大学 自然语言处理实验室 \\
\blue{\underline{\url{http://www.nlplab.com}}} \black{} \\
\vspace{0.2cm}
\hspace{0.1cm} \includegraphics[scale=0.1]{../Figures/logo.pdf}
......@@ -99,20 +99,20 @@
\setlength{\leftmarginii}{1em}
%%%------------------------------------------------------------------------------------------------------------
\section{为什么要谈神经网络}
\section{为什么要谈神经网络}
%%%------------------------------------------------------------------------------------------------------------
\subsection{历史}
\subsection{历史}
%%%------------------------------------------------------------------------------------------------------------
%%% 为什么要谈神经网络
\begin{frame}{为什么要谈神经网络}
%%% 为什么要谈神经网络
\begin{frame}{为什么要谈神经网络}
\begin{itemize}
\item 近些年\textbf{深度学习(Deep Learning)}体现了巨大的潜力
\item 近些年\textbf{深度学习(Deep Learning)}体现了巨大的潜力
\begin{itemize}
\item 席卷了包括机器翻译在内的很多NLP任务
\item 已经成为了NLP中方法的新范式
\item 衍生出\textbf{神经机器翻译}等新一代方法(下一章内容)
\item 席卷了包括机器翻译在内的很多NLP任务
\item 已经成为了NLP中方法的新范式
\item 衍生出\textbf{神经机器翻译}等新一代方法(下一章内容)
\end{itemize}
\vspace{0.2em}
\begin{center}
......@@ -120,27 +120,27 @@
\end{center}
\vspace{0.5em}
\item<2-> \textbf{人工神经网络(Artificial Neural Network)}是深度学习的实践基础
\item<2-> \textbf{人工神经网络(Artificial Neural Network)}是深度学习的实践基础
\end{itemize}
\end{frame}
%%%------------------------------------------------------------------------------------------------------------
%%% 简单的历史
\begin{frame}{神经网络和深度学习的概念(1940s-1970s)}
%%% 简单的历史
\begin{frame}{神经网络和深度学习的概念(1940s-1970s)}
\begin{itemize}
\item \textbf{神经网络}最早出现在控制论中(Cybernetics),随后更多地在连接主义(Connectionism)中被提及
\item \textbf{神经网络}最早出现在控制论中(Cybernetics),随后更多地在连接主义(Connectionism)中被提及
\begin{itemize}
\item \textbf{最初的想法}:模拟大脑的生物学习机制进行计算机建模
\item<2-> 比如使用线性加权函数来描述输入$\textbf{x}$和结果$\textbf{y}$之间的联系
\item \textbf{最初的想法}:模拟大脑的生物学习机制进行计算机建模
\item<2-> 比如使用线性加权函数来描述输入$\textbf{x}$和结果$\textbf{y}$之间的联系
\vspace{-0.5em}
\begin{displaymath}
f(\textbf{x},\textbf{w})=x_1 \cdot w_1 + ... + x_n \cdot w_n
\end{displaymath}\\
\vspace{-0.5em}
其中$\textbf{w}$是权重。这类模型也影响了随机梯度下降等现在机器学习方法的发展。
\item<3-> 这类方法的局限也很明显,无法描述非线性问题,如著名的异或函数(XOR)学习问题
其中$\textbf{w}$是权重。这类模型也影响了随机梯度下降等现在机器学习方法的发展。
\item<3-> 这类方法的局限也很明显,无法描述非线性问题,如著名的异或函数(XOR)学习问题
\end{itemize}
\end{itemize}
......@@ -148,38 +148,38 @@
\vspace{-0.5em}
\begin{center}
\includegraphics[scale=0.21]{./Figures/concept-history.jpg}\\
\scriptsize{图片引自《Deep Learning》}
\scriptsize{图片引自《Deep Learning》}
\end{center}
\end{frame}
%%%------------------------------------------------------------------------------------------------------------
%%% 深度学习的发展
\begin{frame}{神经网络和深度学习的发展(1980s-1990s)}
%%% 深度学习的发展
\begin{frame}{神经网络和深度学习的发展(1980s-1990s)}
\begin{itemize}
\item 现在,生物学属性已经不是神经网络的唯一灵感来源。深度学习也进入了新的发展阶段。两类思潮影响巨大:
\item 现在,生物学属性已经不是神经网络的唯一灵感来源。深度学习也进入了新的发展阶段。两类思潮影响巨大:
\begin{itemize}
\item<2-> \textbf{连接主义(Connectionism)}。在认知学科中,早期的符号主义(Symbolicism)很难解释大脑如何使用神经元进行推理。连接主义的核心思想是:“大量简单的计算单元连接到一起可以实现智能行为”。\\
这也推动了反向传播等训练多层神经网络方法的应用,并发展了包括长短时记忆模型在内的经典建模方法。
\item<3-> \textbf{分布式表示(Distributed representation)}:一个复杂系统的任何部分的输入都应该是多个特征共同表示的结果。比如,一个单词并非一个词条,而是由成百上千个特征共同描述出来,而每个特征都描述了这个词的"某个"方面。
\item<2-> \textbf{连接主义(Connectionism)}。在认知学科中,早期的符号主义(Symbolicism)很难解释大脑如何使用神经元进行推理。连接主义的核心思想是:“大量简单的计算单元连接到一起可以实现智能行为”。\\
这也推动了反向传播等训练多层神经网络方法的应用,并发展了包括长短时记忆模型在内的经典建模方法。
\item<3-> \textbf{分布式表示(Distributed representation)}:一个复杂系统的任何部分的输入都应该是多个特征共同表示的结果。比如,一个单词并非一个词条,而是由成百上千个特征共同描述出来,而每个特征都描述了这个词的"某个"方面。
\end{itemize}
\item<4-> \alert{遗憾的是},上世纪90年代后期,在很多应用中人们对神经网络方法期望过高,但是结果并没有达到预期。特别是,核方法、图模型等机器学习方法取得了很好的效果,神经网络研究进入又一次低谷。
\item<4-> \alert{遗憾的是},上世纪90年代后期,在很多应用中人们对神经网络方法期望过高,但是结果并没有达到预期。特别是,核方法、图模型等机器学习方法取得了很好的效果,神经网络研究进入又一次低谷。
\end{itemize}
\end{frame}
%%%------------------------------------------------------------------------------------------------------------
%%% 深度学习的第三次浪潮
\begin{frame}{第三次浪潮(2000s-now)}
%%% 深度学习的第三次浪潮
\begin{frame}{第三次浪潮(2000s-now)}
\begin{itemize}
\item \textbf{深度学习的爆发}源于2006年Hinton等人成功训练了一个深度信念网络(deep belief network)。之后,深度学习的浪潮逐步席卷了机器学习及人工智能应用领域,延续至今。现代深度学习的成功有三方面原因:
\item \textbf{深度学习的爆发}源于2006年Hinton等人成功训练了一个深度信念网络(deep belief network)。之后,深度学习的浪潮逐步席卷了机器学习及人工智能应用领域,延续至今。现代深度学习的成功有三方面原因:
\begin{enumerate}
\item \textbf{模型和算法}的完善与改进
\item \textbf{并行计算能力}的提升使大规模实践变为了可能
\item 以Hinton等人为代表的学者的\textbf{坚持与持续投入}
\item \textbf{模型和算法}的完善与改进
\item \textbf{并行计算能力}的提升使大规模实践变为了可能
\item 以Hinton等人为代表的学者的\textbf{坚持与持续投入}
\end{enumerate}
\item<2-> \textbf{从应用的角度},数据量的快速提升和模型容量的增加也为深度学习的成功提供了条件
\item<2-> \textbf{从应用的角度},数据量的快速提升和模型容量的增加也为深度学习的成功提供了条件
\end{itemize}
\visible<2->{
......@@ -214,16 +214,16 @@
\end{frame}
%%%------------------------------------------------------------------------------------------------------------
\subsection{深度学习的优势}
\subsection{深度学习的优势}
%%%------------------------------------------------------------------------------------------------------------
%%% 端到端学习
\begin{frame}{端到端学习}
%%% 端到端学习
\begin{frame}{端到端学习}
\begin{itemize}
\item 深度神经网络给我们提供了一种机制,可以直接从学习输入到输出的关系,称之为\alert{端到端学习}
\item 深度神经网络给我们提供了一种机制,可以直接从学习输入到输出的关系,称之为\alert{端到端学习}
\begin{itemize}
\item<2-> \textbf{基于特征工程的方法}:需要大量人工定义的特征,这个过程往往会带来对问题的隐含假设
\item<3-> \textbf{基于端到端学习的方法}:没有人工定义的特征,整个过程完全由神经网络建模
\item<2-> \textbf{基于特征工程的方法}:需要大量人工定义的特征,这个过程往往会带来对问题的隐含假设
\item<3-> \textbf{基于端到端学习的方法}:没有人工定义的特征,整个过程完全由神经网络建模
\end{itemize}
\end{itemize}
\vspace{-0.5em}
......@@ -240,17 +240,17 @@
\end{frame}
%%%------------------------------------------------------------------------------------------------------------
%%% 深度学习的表现
\begin{frame}{深度学习的表现 - 以语言建模为例}
%%% 深度学习的表现
\begin{frame}{深度学习的表现 - 以语言建模为例}
\begin{itemize}
\item \textbf{比如},在语言建模(LM)任务上,基于神经网络和深度学习的方法体现了巨大优势,在PTB数据上PPL值已经得到惊人的下降(PPL越低越好)
\item \textbf{比如},在语言建模(LM)任务上,基于神经网络和深度学习的方法体现了巨大优势,在PTB数据上PPL值已经得到惊人的下降(PPL越低越好)
\begin{itemize}
\item 传统$n$元语法模型面临数据稀疏等问题
\item<2-> 神经语言模型可以更好地描述序列生成问题
\item 传统$n$元语法模型面临数据稀疏等问题
\item<2-> 神经语言模型可以更好地描述序列生成问题
\end{itemize}
\end{itemize}
\begin{tabular}{l | l | l | r}
模型 & 作者 & 年份 & PPL \\ \hline
模型 & 作者 & 年份 & PPL \\ \hline
3-gram LM & Brown et al. & 1992 & 178.0 \pause \\ \hline
Feed-forward Neural LM & Bengio et al. & 2003 & 162.2 \\
Recurrent NN-based LM & Mikolov et al. & 2010 & 124.7 \\
......@@ -263,22 +263,22 @@ GPT-2 (Transformer) & Radford et al. & 2019 & \alert{35.7}
\end{frame}
%%%------------------------------------------------------------------------------------------------------------
\section{神经网络基础}
\section{神经网络基础}
%%%------------------------------------------------------------------------------------------------------------
\subsection{简单的例子}
\subsection{简单的例子}
%%%------------------------------------------------------------------------------------------------------------
%%% 神经元
\begin{frame}{神经网络的基本单元 - 神经元}
%%% 神经元
\begin{frame}{神经网络的基本单元 - 神经元}
\begin{itemize}
\item 生物学上,神经元是神经系统的基本组成单元,因此大家想象的神经网络应该是这样的\\
\item 生物学上,神经元是神经系统的基本组成单元,因此大家想象的神经网络应该是这样的\\
\begin{center}
\includegraphics[scale=0.25]{./Figures/neuron-real.jpg}\\
\end{center}
\item<2-> 但我们这里说的是\textbf{人工神经元},实际上是这样的 :)
\item<2-> 但我们这里说的是\textbf{人工神经元},实际上是这样的 :)
\begin{itemize}
\item 输入$x$经过$w$进行线性变化,之后加上偏移$b$,在经过激活函数$f$,最后得到$y$ - 啥东东???
\item 输入$x$经过$w$进行线性变化,之后加上偏移$b$,在经过激活函数$f$,最后得到$y$ - 啥东东???
\end{itemize}
{\Large
\begin{displaymath}
......@@ -291,14 +291,14 @@ y = f(w \cdot x + b)
\end{frame}
%%%------------------------------------------------------------------------------------------------------------
%%% 感知机
\begin{frame}{最简单的人工神经元模型 - 感知机}
%%% 感知机
\begin{frame}{最简单的人工神经元模型 - 感知机}
\begin{itemize}
\item 感知机是人工神经元的一种实例。在上世纪50-60年代被提出后,对神经网络研究产生了深远影响。
\item 感知机是人工神经元的一种实例。在上世纪50-60年代被提出后,对神经网络研究产生了深远影响。
\begin{itemize}
\item<2-> \textbf{输入}是若干个二值变量,$x_i=0$ or $1$
\item<3-> 每一个输入变量对应一个\textbf{权重}$w_i$(实数)
\item<4-> \textbf{输出}也是一个二值结果,$y=0$ or $1$。 判断的依据是,输入和加权和是否大于(或者小于)一个阈值$\sigma$
\item<2-> \textbf{输入}是若干个二值变量,$x_i=0$ or $1$
\item<3-> 每一个输入变量对应一个\textbf{权重}$w_i$(实数)
\item<4-> \textbf{输出}也是一个二值结果,$y=0$ or $1$。 判断的依据是,输入和加权和是否大于(或者小于)一个阈值$\sigma$
\begin{displaymath}
y = \left\{ \begin{array}{ll}
0 & \sum_i {w_i \cdot x_i} < \sigma \\
......@@ -351,34 +351,34 @@ y = f(w \cdot x + b)
\end{frame}
%%%------------------------------------------------------------------------------------------------------------
%%% 感知机 - 一个实例
\begin{frame}{一个实例}
%%% 感知机 - 一个实例
\begin{frame}{一个实例}
\begin{itemize}
\item 一个非常简单的例子。比如,有一个音乐会,你正在纠结是否去参加,有三个因素会影响你的决定
\item 一个非常简单的例子。比如,有一个音乐会,你正在纠结是否去参加,有三个因素会影响你的决定
\begin{itemize}
\item $x_0$:剧场是否离你足够近?
\item $x_1$:票价是否低于300元?
\item $x_2$:女朋友是否愿意一起?
\item $x_0$:剧场是否离你足够近?
\item $x_1$:票价是否低于300元?
\item $x_2$:女朋友是否愿意一起?
\end{itemize}
\item<2-> 如何决定?比如,女朋友很希望和你一起,但是剧场很远而且票价500元。如果这些因素对你的决策都是同等重要的,那么会有一个综合得分:
\item<2-> 如何决定?比如,女朋友很希望和你一起,但是剧场很远而且票价500元。如果这些因素对你的决策都是同等重要的,那么会有一个综合得分:
\begin{displaymath}
x_0 \cdot w_0 + x_1 \cdot w_1 + x_2 \cdot w_2 = 0 \cdot 1 + 0 \cdot 1 + 1 \cdot 1 = 1
\end{displaymath}
\item<3-> 如果你不是十分纠结,能够接受不完美的事情,你可能会有$\sigma=1$,于是
\item<3-> 如果你不是十分纠结,能够接受不完美的事情,你可能会有$\sigma=1$,于是
\begin{displaymath}
\sum_i x_i \cdot w_i \ge \sigma
\end{displaymath}
\textbf{那么},你会去参加音乐会
\textbf{那么},你会去参加音乐会
\end{itemize}
\end{frame}
%%%------------------------------------------------------------------------------------------------------------
%%% 感知机 - 一个实例(cont)
\begin{frame}{一个实例(继续)}
%%% 感知机 - 一个实例(cont)
\begin{frame}{一个实例(继续)}
\begin{itemize}
\item 可以看出,实际上这个决策过程本质上就是一个感知机
\item<2-> 但是,人并不是完美的,往往对有些事情会更在意一些。如果你是\textbf{守财奴},因此会对票价看的更重一些,这时你会用不均匀的权重计算每个因素的影响,比如:$w_0=0.5$$w_1=2$$w_2=0.5$
\item<3-> 女朋友很希望和你一起,但是剧场很远而且票价500元,会导致你\alert{选择不去}看音乐会(女朋友都不要了,咋整)
\item 可以看出,实际上这个决策过程本质上就是一个感知机
\item<2-> 但是,人并不是完美的,往往对有些事情会更在意一些。如果你是\textbf{守财奴},因此会对票价看的更重一些,这时你会用不均匀的权重计算每个因素的影响,比如:$w_0=0.5$$w_1=2$$w_2=0.5$
\item<3-> 女朋友很希望和你一起,但是剧场很远而且票价500元,会导致你\alert{选择不去}看音乐会(女朋友都不要了,咋整)
\begin{displaymath}
\sum_i x_i \cdot w_i = 0 \cdot 0.5 + 0 \cdot 2 + 1 \cdot 0.5 = 0.5 < \sigma = 1
\end{displaymath}
......@@ -389,10 +389,10 @@ y = f(w \cdot x + b)
\begin{tikzpicture}
\begin{scope}
\node [anchor=center,circle,draw,thick,minimum size=3em] (neuron) at (0,0) {};
\node [anchor=east] (x1) at ([xshift=-6em]neuron.west) {$x_1$:票价够低?};
\node [anchor=center] (x0) at ([yshift=3em]x1.center) {$x_0$:距离够近?};
\node [anchor=center] (x2) at ([yshift=-3em]x1.center) {$x_2$:女友一起?};
\node [anchor=west] (y) at ([xshift=2em]neuron.east) {$y$:去不去?};
\node [anchor=east] (x1) at ([xshift=-6em]neuron.west) {$x_1$:票价够低?};
\node [anchor=center] (x0) at ([yshift=3em]x1.center) {$x_0$:距离够近?};
\node [anchor=center] (x2) at ([yshift=-3em]x1.center) {$x_2$:女友一起?};
\node [anchor=west] (y) at ([xshift=2em]neuron.east) {$y$:去不去?};
\visible<1>{
\draw [->,thick] (x0.east) -- (neuron.150) node [pos=0.5,above,yshift=0.2em] {\small{$w_0=1$}};
......@@ -410,7 +410,7 @@ y = f(w \cdot x + b)
}
\visible<3->{
\node [anchor=south] (ylabel) at (y.north) {\red{\textbf{不去了!}}};
\node [anchor=south] (ylabel) at (y.north) {\red{\textbf{不去了!}}};
}
\end{scope}
......@@ -420,27 +420,27 @@ y = f(w \cdot x + b)
\end{frame}
%%%------------------------------------------------------------------------------------------------------------
%%% 感知机 - 一个实例(cont2)
\begin{frame}{一个实例(还在继续)}
%%% 感知机 - 一个实例(cont2)
\begin{frame}{一个实例(还在继续)}
\begin{itemize}
\item 在受到了女朋友一万点伤害之后,你意识到决策不应该只考虑非0即1的因素,应该把"程度"考虑进来:
\item 在受到了女朋友一万点伤害之后,你意识到决策不应该只考虑非0即1的因素,应该把"程度"考虑进来:
\begin{itemize}
\item $x_0$:距离/10
\item $x_1$:票价/100
\item $x_2$:女朋友是否愿意一起?(这条不敢改)
\item $x_0$:距离/10
\item $x_1$:票价/100
\item $x_2$:女朋友是否愿意一起?(这条不敢改)
\end{itemize}
\item 这时,$x_0$$x_1$是连续变量,$x_2$是一个离散变量。
\item 这时,$x_0$$x_1$是连续变量,$x_2$是一个离散变量。
\end{itemize}
\end{frame}
%%%------------------------------------------------------------------------------------------------------------
\subsection{数学基础:张量计算}
\subsection{数学基础:张量计算}
%%%------------------------------------------------------------------------------------------------------------
\subsection{多层神经网络}
\subsection{多层神经网络}
%%%------------------------------------------------------------------------------------------------------------
\subsection{参数学习 - 反向传播}
\subsection{参数学习 - 反向传播}
\end{CJK}
\end{document}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论