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
6f46964c
Commit
6f46964c
authored
Sep 24, 2019
by
xiaotong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
new pages
parent
928a956d
显示空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
482 行增加
和
155 行删除
+482
-155
Section05-Neural-Networks-and-Language-Modeling/section05-test.tex
+128
-87
Section05-Neural-Networks-and-Language-Modeling/section05.tex
+354
-68
没有找到文件。
Section05-Neural-Networks-and-Language-Modeling/section05-test.tex
查看文件 @
6f46964c
...
@@ -18,8 +18,9 @@
...
@@ -18,8 +18,9 @@
\usepackage
{
changepage
}
\usepackage
{
changepage
}
\usepackage
{
pgfplots
}
\usepackage
{
pgfplots
}
\usepackage
{
subfigure
}
\usepackage
{
subfigure
}
\usepackage
{
tikz-3dplot
}
\usepackage
{
tikz-3dplot
}
\usetikzlibrary
{
matrix
}
\usetikzlibrary
{
arrows,decorations.pathreplacing
}
\usetikzlibrary
{
arrows,decorations.pathreplacing
}
\usetikzlibrary
{
shadows
}
% LATEX and plain TEX when using Tik Z
\usetikzlibrary
{
shadows
}
% LATEX and plain TEX when using Tik Z
...
@@ -105,122 +106,162 @@
...
@@ -105,122 +106,162 @@
%%%------------------------------------------------------------------------------------------------------------
%%%------------------------------------------------------------------------------------------------------------
\subsection
{
神经网络的简单实现:张量计算
}
\subsection
{
神经网络的简单实现:张量计算
}
%%%------------------------------------------------------------------------------------------------------------
\newcounter
{
mycount1
}
%%% 张量的简单定义
\newcounter
{
mycount2
}
\begin{frame}
{
张量是什么
}
\newcounter
{
mycount3
}
\begin{itemize}
\newcounter
{
mycount4
}
\item
\textbf
{
深度学习
}
中,张量被``简单"地定义为
\alert
{
多维数组
}
\end{itemize}
\end{frame}
%%%------------------------------------------------------------------------------------------------------------
%%% 张量是一个多维线性函数
\begin{frame}
{
事实上,张量是个函数 - 别慌,了解一下 :)
}
\begin{itemize}
\item
\textbf
{
非常负责任的说
}
,张量
\alert
{
不是
}
向量和矩阵的简单扩展,甚至说,多维数组
\alert
{
也不是
}
张量所必须的表达形式
\item
<2-> 严格意义上,张量是:
\begin{enumerate}
\item
<2->
\textbf
{
看不懂的定义
}
:由若干坐标系改变时满足一定坐标转化关系的抽象对象,它是一个不随参照系的坐标变换而变化的几何量(几何定义)
\item
<3->
\textbf
{
还是看不懂的定义
}
:若干向量和协向量通过张量乘法定义的量(代数定义)
\item
<4->
\textbf
{
还可以解释的定义
}
:
\alert
{
张量是多重线性函数
}
,是定义在一些向量空间和笛卡儿积上的多重线性映射
\begin{itemize}
\item
这里把张量表示为
$
T
(
v
_
0
,...,v
_
r
)
$
,其中输入的是
$
r
$
个向量
$
\{
v
_
0
,...,v
_
r
\}
$
\item
多重线性是指,对于每个输入,函数都是线性的,比如,对于一个
$
v
_
i
$
,我们有
\vspace
{
-0.3em
}
\begin{displaymath}
T(v
_
0,...,v
_
i+c
\cdot
u,...,v
_
r) = T(v
_
0,...,v
_
i,...,v
_
r) + c
\cdot
T(v
_
0,...,u,...,v
_
r)
\end{displaymath}
其中,
$
c
$
为任意数。这个性质非常重要,它可以推导出前面的其它定义。
\end{itemize}
\end{enumerate}
\end{itemize}
\end{frame}
%%%------------------------------------------------------------------------------------------------------------
%%%------------------------------------------------------------------------------------------------------------
%%%
进一步解释一下张量的定义
%%%
张量矩阵乘法
\begin{frame}
{
张量
不是``矩阵''
}
\begin{frame}
{
张量
的矩阵乘法
}
\begin{itemize}
\begin{itemize}
\item
再理解一下,
\item
对于神经网络
$
\textbf
{
y
}
=
f
(
\textbf
{
x
}
\cdot
\textbf
{
w
}
+
\textbf
{
b
}
)
$
,
$
\textbf
{
x
}
\cdot
\textbf
{
w
}$
或
$
\textbf
{
x
}
\times
\textbf
{
w
}$
是线性变换,其中
$
\textbf
{
x
}$
是输入张量,
$
\textbf
{
w
}$
是一个矩阵
\begin{itemize}
\begin{itemize}
\item
如果一个物理量,在物体的某个位置上只是一个单值,它就是标量,比如密度
\item
$
\textbf
{
x
}
\cdot
\textbf
{
w
}$
表示的是矩阵乘法(或记为
$
\times
$
)
\item
如果它在同一个位置、从多个的方向上看,有不同的值,而且这个数恰好用矩阵乘观察方向来算出来,就是张量(rank
$
>
$
1)
\item
注意这里不是张量乘法,它还有其它定义
\item
$
\textbf
{
w
}$
是
$
n
\times
m
$
的矩阵,
$
\textbf
{
x
}$
的形状是
$
...
\times
n
$
,即
$
\textbf
{
x
}$
的第一维度需要和
$
\textbf
{
w
}$
的行数
\\
\vspace
{
0.5em
}
$
\textbf
{
x
}
(
1
:
2
,
1
:
2
,
\alert
{
1
:
3
}
)
\times
\textbf
{
w
}
(
\alert
{
1
:
3
}
,
1
:
2
)
=
\textbf
{
s
}
(
1
:
2
,
1
:
2
,
1
:
2
)
$
\end{itemize}
\end{itemize}
\end{itemize}
\end{itemize}
\vspace
{
-0.8em
}
\begin{center}
\begin{center}
\tdplotsetmaincoords
{
50
}{
140
}
\begin{tikzpicture}
\begin{tikzpicture}
[scale=2,tdplot
_
main
_
coords]
\visible
<3->
{
\draw
[thick,->]
(0,0,0) -- (1,0,0) node[anchor=north east]
{$
a
$}
;
\begin{scope}
[yshift=6.5em,xshift=1em]
\draw
[thick,->]
(0,0,0) -- (0,1,0) node[anchor=north west]
{$
b
$}
;
\visible
<2->
{
\draw
[thick,->]
(0,0,0) -- (0,0,1) node[anchor=south]
{$
c
$}
;
\setcounter
{
mycount1
}{
1
}
\draw
[step=0.5cm,color=orange,thick]
(-1,-1) grid (1,1);
\foreach
\y
in
{
+0.75,+0.25,-0.25,-0.75
}
\foreach
\x
in
{
-0.75,-0.25,0.25,0.75
}{
\node
[fill=orange!20,inner sep=0pt,minimum height=0.49cm,minimum width=0.49cm] at (
\x
,
\y
)
{
\number\value
{
mycount1
}}
;
\addtocounter
{
mycount1
}{
1
}
;
}
}
}
\
pgfmathsetmacro
{
\ax
}{
2
}
\
end{scope
}
\pgfmathsetmacro
{
\ay
}{
2
}
\
pgfmathsetmacro
{
\az
}{
1
}
\
begin{scope}
[yshift=6em,xshift=0.5em]
\
tdplotsetrotatedcoords
{
20
}{
40
}{
00
}
\
visible
<2->
{
\
visible
<4->
{
\
setcounter
{
mycount2
}{
2
}
\draw
[
thick,color=red,tdplot_rotated_coords,->]
(0,0,0)
\draw
[
step=0.5cm,color=blue,thick]
(-1,-1) grid (1,1);
-- (.7,0,0) node[anchor=east]
{$
a'
$}
;
\foreach
\y
in
{
+0.75,+0.25,-0.25,-0.75
}
\draw
[thick,color=green!50!black,tdplot_rotated_coords,->]
(0,0,0)
\foreach
\x
in
{
-0.75,-0.25,0.25,0.75
}{
-- (0,.7,0) node[anchor=west]
{$
b'
$
}
;
\node
[fill=blue!20,inner sep=0pt,minimum height=0.49cm,minimum width=0.49cm] at (
\x
,
\y
)
{
\number\value
{
mycount2
}
}
;
\draw
[thick,color=blue,tdplot_rotated_coords,->]
(0,0,0)
\addtocounter
{
mycount2
}{
1
}
;
-- (0,0,.7) node[anchor=south]
{$
c'
$}
;
}
}
}
\
tdplottransformmainrot
{
\ax
}{
\ay
}{
\az
}
\
end{scope
}
\visible
<3->
{
\node
[anchor=west,inner sep=2pt] (coord1) at (-0.40in,-0.4in)
{
\footnotesize
{
方向
$
v
=(
a,b,c
)
$}}
;
}
\begin{scope}
[yshift=5.5em,xshift=0em]
\visible
<4->
{
\node
[anchor=north west,inner sep=2pt] (coord2) at (coord1.south west)
{
\footnotesize
{
方向
$
u
=(
\red
{
a'
}
\black
{
,
}{
\color
{
ugreen
}
b'
}
\black
{
,
}
\blue
{
c'
}
\black
{
)
}$}}
;
}
\visible
<2->
{
\setcounter
{
mycount3
}{
3
}
\draw
[step=0.5cm,color=ugreen,thick]
(-1,-1) grid (1,1);
\foreach
\y
in
{
+0.75,+0.25,-0.25,-0.75
}
\foreach
\x
in
{
-0.75,-0.25,0.25,0.75
}{
\node
[fill=green!20,inner sep=0pt,minimum height=0.49cm,minimum width=0.49cm] at (
\x
,
\y
)
{
\number\value
{
mycount3
}}
;
\addtocounter
{
mycount3
}{
1
}
;
}
}
\end{scope}
\begin{scope}
[
xshift=0.4in,yshift=0.35in
]
\begin{scope}
[
yshift=5em,xshift=-0.5em
]
\visible
<2->
{
\visible
<2->
{
\node
[anchor=west,inner sep = 2pt] (description) at (0,0)
{
\small
{$
T
(
v,u
)
$
是一个三维空间
$
(
x,y,z
)
$
上的
}}
;
\setcounter
{
mycount4
}{
4
}
\node
[anchor=north west,inner sep = 2pt] (description2) at (description.south west)
{
\small
{
2阶张量,其中
$
v
$
和
$
u
$
是两个向量
}}
;
\draw
[step=0.5cm,color=red,thick]
(-1,-1) grid (1,1);
\foreach
\y
in
{
+0.75,+0.25,-0.25,-0.75
}
\foreach
\x
in
{
-0.75,-0.25,0.25,0.75
}{
\node
[fill=red!20,inner sep=0pt,minimum height=0.49cm,minimum width=0.49cm] at (
\x
,
\y
)
{
\number\value
{
mycount4
}}
;
\addtocounter
{
mycount4
}{
1
}
;
}
\node
[anchor=north] (xlabel) at (0,-1.2)
{$
\textbf
{
x
}$}
;
}
}
\end{scope}
\visible
<5->
{
\begin{scope}
[yshift=5em,xshift=1.5in]
\node
[anchor=north west,inner sep=2pt] (T) at ([yshift=-2em]description2.south west)
{
\small
{$
T
(
v,u
)=
$}}
;
\visible
<2->
{
\node
[anchor=west,inner sep=1pt] (T2) at (T.east)
{
\footnotesize
{$
\begin
{
pmatrix
}
v
_
x
\\
v
_
y
\\
v
_
z
\end
{
pmatrix
}^
T
$}}
;
\draw
[step=0.5cm,thick]
(-0.5,-1) grid (0.5,1.0);
\node
[anchor=west,inner sep=1pt] (T3) at ([xshift=2pt]T2.east)
{
\footnotesize
{$
\begin
{
pmatrix
}
T
_{
xx
}
&
T
_{
xy
}
&
T
_{
xz
}
\\
T
_{
yx
}
&
T
_{
yy
}
&
T
_{
yz
}
\\
T
_{
zx
}
&
T
_{
zy
}
&
T
_{
zz
}
\end
{
pmatrix
}$}}
;
\node
[fill=black!20,inner sep=0pt,minimum height=0.49cm,minimum width=0.49cm] at (-0.25,0.75)
{
-1
}
;
\node
[anchor=west,inner sep=1pt] (T4) at ([xshift=2pt]T3.east)
{
\footnotesize
{$
\begin
{
pmatrix
}
u
_
x
\\
u
_
y
\\
u
_
z
\end
{
pmatrix
}$}}
;
\node
[fill=black!20,inner sep=0pt,minimum height=0.49cm,minimum width=0.49cm] at (-0.25,0.25)
{
0
}
;
\node
[fill=black!20,inner sep=0pt,minimum height=0.49cm,minimum width=0.49cm] at (-0.25,-0.25)
{
1
}
;
\node
[fill=black!20,inner sep=0pt,minimum height=0.49cm,minimum width=0.49cm] at (-0.25,-0.75)
{
0
}
;
\node
[fill=black!20,inner sep=0pt,minimum height=0.49cm,minimum width=0.49cm] at (0.25,0.75)
{
0
}
;
\node
[fill=black!20,inner sep=0pt,minimum height=0.49cm,minimum width=0.49cm] at (0.25,0.25)
{
-1
}
;
\node
[fill=black!20,inner sep=0pt,minimum height=0.49cm,minimum width=0.49cm] at (0.25,-0.25)
{
1
}
;
\node
[fill=black!20,inner sep=0pt,minimum height=0.49cm,minimum width=0.49cm] at (0.25,-0.75)
{
0
}
;
\node
[anchor=north] (xlabel) at (0,-1.2)
{$
\textbf
{
w
}$}
;
}
}
\begin{pgfonlayer}
{
background
}
\visible
<7->
{
\visible
<3>
{
\draw
[->,thick] (-1.5in+2em+1.5em,-0.3) .. controls +(east:2) and +(west:1) .. (-0.55,0.8) node [pos=0.5,left]
{
\textbf
{
矩阵乘
}}
;
}
\node
[rectangle,inner sep=0pt,fill=red!20,minimum height=3.5em] [fit = (T3) ] (TBox)
{}
;
\visible
<4>
{
\draw
[->,thick] (-1.5in+2em+1.0em,-0.5) .. controls +(east:2) and +(west:1) .. (-0.55,0.8) node [pos=0.5,left]
{
\textbf
{$
\times
$}}
;
}
\visible
<5>
{
\draw
[->,thick] (-1.5in+2em+0.5em,-0.7) .. controls +(east:2) and +(west:1) .. (-0.55,0.8) node [pos=0.5,left]
{
\textbf
{$
\times
$}}
;
}
\visible
<6->
{
\draw
[->,thick] (-1.5in+2em,-0.9) .. controls +(east:2) and +(west:1) .. (-0.55,0.8) node [pos=0.5,left]
{
\textbf
{$
\times
$}}
;
}
\end{scope}
\begin{scope}
[yshift=6.5em,xshift=1em+3in]
\visible
<3->
{
\draw
[step=0.5cm,color=orange,thick]
(-0.5,-1) grid (0.5,1.0);
\foreach
\y
in
{
+0.75,+0.25,-0.25,-0.75
}{
\setcounter
{
mycount1
}{
2
}
\foreach
\x
in
{
-0.25,0.25
}{
\node
[fill=orange!20,inner sep=0pt,minimum height=0.49cm,minimum width=0.49cm] at (
\x
,
\y
)
{
\number\value
{
mycount1
}}
;
\addtocounter
{
mycount1
}{
-1
}
;
}
}
}
\visible
<6->
{
\node
[rectangle,inner sep=0pt,fill=green!20,minimum height=3.5em] [fit = (T2) ] (VBox)
{}
;
\node
[rectangle,inner sep=0pt,fill=blue!20,minimum height=3.5em] [fit = (T4) ] (UBox)
{}
;
}
}
\end{
pgfonlayer
}
\end{
scope
}
\begin{scope}
[yshift=6em,xshift=0.5em+3in]
\visible
<4->
{
\draw
[step=0.5cm,color=blue,thick]
(-0.5,-1) grid (0.5,1.0);
\foreach
\y
in
{
+0.75,+0.25,-0.25,-0.75
}{
\setcounter
{
mycount1
}{
2
}
\foreach
\x
in
{
-0.25,0.25
}{
\node
[fill=blue!20,inner sep=0pt,minimum height=0.49cm,minimum width=0.49cm] at (
\x
,
\y
)
{
\number\value
{
mycount1
}}
;
\addtocounter
{
mycount1
}{
-1
}
;
}
}
}
\end{scope}
\begin{scope}
[yshift=5.5em,xshift=0em+3in]
\visible
<5->
{
\draw
[step=0.5cm,color=ugreen,thick]
(-0.5,-1) grid (0.5,1.0);
\foreach
\y
in
{
+0.75,+0.25,-0.25,-0.75
}{
\setcounter
{
mycount1
}{
2
}
\foreach
\x
in
{
-0.25,0.25
}{
\node
[fill=green!20,inner sep=0pt,minimum height=0.49cm,minimum width=0.49cm] at (
\x
,
\y
)
{
\number\value
{
mycount1
}}
;
\addtocounter
{
mycount1
}{
-1
}
;
}
}
}
\end{scope}
\begin{scope}
[yshift=5.0em,xshift=-0.5em+3in]
\visible
<6->
{
\visible
<6->
{
\draw
[<-] (VBox.north) -- ([yshift=0.3em]VBox.north);
\draw
[step=0.5cm,color=red,thick]
(-0.5,-1) grid (0.5,1.0);
\node
[anchor=south,align=left] (Vlabel) at ([yshift=0.3em]VBox.north)
{
\scriptsize
{$
v
$
在基向量上的投影
}}
;
\foreach
\y
in
{
+0.75,+0.25,-0.25,-0.75
}{
\draw
[<-] (UBox.north) -- ([yshift=0.3em]UBox.north);
\setcounter
{
mycount1
}{
2
}
\node
[anchor=south,align=left] (Ulabel) at ([yshift=0.3em,xshift=-1em]UBox.north)
{
\scriptsize
{$
u
$
在基向量上的投影
}}
;
\foreach
\x
in
{
-0.25,0.25
}{
\node
[fill=red!20,inner sep=0pt,minimum height=0.49cm,minimum width=0.49cm] at (
\x
,
\y
)
{
\number\value
{
mycount1
}}
;
\addtocounter
{
mycount1
}{
-1
}
;
}
}
}
\visible
<7->
{
}
\draw
[<-] (TBox.south) -- ([yshift=-0.3em]TBox.south);
\node
[anchor=north,align=left] (Vlabel) at ([yshift=-0.3em]TBox.south)
{
\scriptsize
{
张量在
$
3
\times
3
$
个方向上的分量,记为
$
[
T
]
$}}
;
\visible
<3->
{
\node
[anchor=north west,align=left] (Vlabel2) at ([yshift=0.2em]Vlabel.south west)
{
\scriptsize
{
想象一下坐标系的旋转
}}
;
\node
[anchor=north] (xlabel) at (0,-1.2)
{$
\textbf
{
x
}
\cdot
\textbf
{
w
}$}
;
\node
[anchor=center] (elabel) at (-0.7in,0)
{
\Huge
{$
=
$}}
;
}
}
\end{scope}
\end{scope}
\end{tikzpicture}
\end{tikzpicture}
\end{center}
\end{center}
\end{frame}
\end{frame}
%%%------------------------------------------------------------------------------------------------------------
%%%------------------------------------------------------------------------------------------------------------
%%% 如何在深度学习中定义一个张量
\begin{frame}
{
在神经网络中使用张量
}
\begin{itemize}
\item
但是前面的可以忽略 - 在这里,``
\alert
{
张量就是多维数组
}
''
\end{itemize}
\end{frame}
%%%------------------------------------------------------------------------------------------------------------
\subsection
{
参数学习 - 反向传播
}
\subsection
{
参数学习 - 反向传播
}
\end{CJK}
\end{CJK}
...
...
Section05-Neural-Networks-and-Language-Modeling/section05.tex
查看文件 @
6f46964c
...
@@ -18,7 +18,9 @@
...
@@ -18,7 +18,9 @@
\usepackage
{
changepage
}
\usepackage
{
changepage
}
\usepackage
{
pgfplots
}
\usepackage
{
pgfplots
}
\usepackage
{
subfigure
}
\usepackage
{
subfigure
}
\usepackage
{
tikz-3dplot
}
\usetikzlibrary
{
matrix
}
\usetikzlibrary
{
arrows,decorations.pathreplacing
}
\usetikzlibrary
{
arrows,decorations.pathreplacing
}
\usetikzlibrary
{
shadows
}
% LATEX and plain TEX when using Tik Z
\usetikzlibrary
{
shadows
}
% LATEX and plain TEX when using Tik Z
...
@@ -424,7 +426,7 @@ GPT-2 (Transformer) & Radford et al. & 2019 & \alert{35.7}
...
@@ -424,7 +426,7 @@ GPT-2 (Transformer) & Radford et al. & 2019 & \alert{35.7}
\begin{frame}
{
一个例子 - 输入形式
}
\begin{frame}
{
一个例子 - 输入形式
}
\begin{itemize}
\begin{itemize}
\item
在遭受了女友一万点伤害之后,你意识到决策不应该只考虑非0即1的因素,应该把
"程度"
考虑进来:
\item
在遭受了女友一万点伤害之后,你意识到决策不应该只考虑非0即1的因素,应该把
``程度''
考虑进来:
\begin{itemize}
\begin{itemize}
\item
$
x
_
0
$
:10/距离
\item
$
x
_
0
$
:10/距离
\item
$
x
_
1
$
:150/票价
\item
$
x
_
1
$
:150/票价
...
@@ -1186,104 +1188,106 @@ cycle}
...
@@ -1186,104 +1188,106 @@ cycle}
%%%------------------------------------------------------------------------------------------------------------
%%%------------------------------------------------------------------------------------------------------------
%%% 常用的激活函数
%%% 常用的激活函数
\begin{frame}
{
常用的激活函数
}
\begin{frame}
{
常用的激活函数
}
\begin{itemize}
\begin{itemize}
\item
好多好多,列举不全 ...
\item
好多好多,列举不全 ...
\end{itemize}
\end{itemize}
\begin{figure
}
\vspace
{
-1em
}
\centering
\begin{figure}
\subfigure
[softplus]
{
\subfigure
[softplus]
{
\centering
\centering
\begin{minipage}
{
.2
\textwidth
}
\begin{minipage}
{
.2
\textwidth
}
\begin{tikzpicture}
\begin{tikzpicture}
\draw
[->]
(-1.2,0)--(1.2,0)node[left,below,font=
\tiny
]
{$
x
$}
;
\draw
[->]
(-1.2,0)--(1.2,0)node[left,below,font=
\tiny
]
{$
x
$}
;
\draw
[->]
(0,-1.2)--(0,1.2)node[right,font=
\tiny
]
{$
y
$}
;
\draw
[->]
(0,-1.2)--(0,1.2)node[right,font=
\tiny
]
{$
y
$}
;
\foreach
\x
in
{
-1,-0.5,0,0.5,1
}{
\draw
(
\x
,0)--(
\x
,0.05)node[below,outer sep=2pt,font=
\tiny
]at(
\x
,0)
{
\x
}
;
}
\foreach
\x
in
{
-1.0,-0.5,0.0,0.5,1.0
}{
\draw
(
\x
,0)--(
\x
,0.05)node[below,outer sep=2pt,font=
\tiny
]at(
\x
,0)
{
\x
}
;
}
\foreach
\y
in
{
1,0.5
}{
\draw
(0,
\y
)--(0.05,
\y
)node[left,outer sep=2pt,font=
\tiny
]at(0,
\y
)
{
\y
}
;
}
\foreach
\y
in
{
1.0,0.5
}{
\draw
(0,
\y
)--(0.05,
\y
)node[left,outer sep=2pt,font=
\tiny
]at(0,
\y
)
{
\y
}
;
}
\draw
[color=red ,domain=-1.2:1]
plot(
\x
,
{
ln(1+(exp(
\x
))
}
)node[right,black]
{
\tiny
$
y
=
ln
(
1
+
e
^
x
)
$}
;
\draw
[color=red ,domain=-1.2:1]
plot(
\x
,
{
ln(1+(exp(
\x
))
}
);
\node
[black,anchor=south]
at (0,1.2)
{
\small
$
y
=
ln
(
1
+
e
^
x
)
$}
;
\end{tikzpicture}
\end{tikzpicture}
\end{minipage}
%
\end{minipage}
%
}
}
\hfill
\hfill
\subfigure
[sigmoid]
{
\subfigure
[sigmoid]
{
\centering
\centering
\begin{minipage}
{
.2
\textwidth
}
\begin{minipage}
{
.2
\textwidth
}
\begin{tikzpicture}
\begin{tikzpicture}
\draw
[->]
(-1.2,0)--(1.2,0)node[left,below,font=
\tiny
]
{$
x
$}
;
\draw
[->]
(-1.2,0)--(1.2,0)node[left,below,font=
\tiny
]
{$
x
$}
;
\draw
[->]
(0,-1.2)--(0,1.2)node[right,font=
\tiny
]
{$
y
$}
;
\draw
[->]
(0,-1.2)--(0,1.2)node[right,font=
\tiny
]
{$
y
$}
;
\draw
[dashed]
(-1.2,1)--(1.2,1);
\draw
[dashed]
(-1.2,1)--(1.2,1);
\foreach
\x
in
{
-1,-0.5,0,0.5,1
}{
\draw
(
\x
,0)--(
\x
,0.05)node[below,outer sep=2pt,font=
\tiny
]at(
\x
,0)
{
\x
}
;
}
\foreach
\x
in
{
-1,-0.5,0,0.5,1
}{
\draw
(
\x
,0)--(
\x
,0.05)node[below,outer sep=2pt,font=
\tiny
]at(
\x
,0)
{
\foreach
\y
in
{
0.5,1
}{
\draw
(0,
\y
)--(0.05,
\y
)node[left,outer sep=2pt,font=
\tiny
]at(0,
\y
)
{
\y
}
;
}
\pgfmathparse
{
(
\x
)*5
}
\draw
[color=red ,domain=-1.2:1.2]
plot(
\x
,
{
1/(1+(exp(-1*(
\x
))))
}
)node[right,black]
{
\tiny
$
y
=
\frac
{
1
}{
1
+
e
^{
-
x
}}$}
;
\pgfmathresult
}
;
}
\node
[black,anchor=south]
at (0,1.2)
{
\tiny
$
y
=
\frac
{
1
}{
1
+
e
^{
-
x
}}$}
;
\foreach
\y
in
{
0.5,1.0
}{
\draw
(0,
\y
)--(0.05,
\y
)node[left,outer sep=2pt,font=
\tiny
]at(0,
\y
)
{
\y
}
;
}
\draw
[color=red,domain=-1.2:1.2]
plot(
\x
,
{
1/(1+(exp(-5*
\x
)))
}
);
\node
[black,anchor=south]
at (0,1.2)
{
\small
$
y
=
\frac
{
1
}{
1
+
e
^{
-
x
}}$}
;
\end{tikzpicture}
\end{tikzpicture}
\end{minipage}
%
\end{minipage}
%
}
}
\hfill
\hfill
\subfigure
[tanh]
{
\subfigure
[tanh]
{
\centering
\centering
\begin{minipage}
{
.2
\textwidth
}
\begin{minipage}
{
.2
\textwidth
}
\begin{tikzpicture}
\begin{tikzpicture}
\draw
[->]
(-1.2,0)--(1.2,0)node[left,below,font=
\tiny
]
{$
x
$}
;
\draw
[->]
(-1.2,0)--(1.2,0)node[left,below,font=
\tiny
]
{$
x
$}
;
\draw
[->]
(0,-1.2)--(0,1.2)node[right,font=
\tiny
]
{$
y
$}
;
\draw
[->]
(0,-1.2)--(0,1.2)node[right,font=
\tiny
]
{$
y
$}
;
\draw
[dashed]
(-1.2,1)--(1.2,1);
\draw
[dashed]
(-1.2,1)--(1.2,1);
\draw
[dashed]
(-1.2,-1)--(1.2,-1);
\draw
[dashed]
(-1.2,-1)--(1.2,-1);
\foreach
\x
in
{
-1,-0.5,0,0.5,1
}{
\draw
(
\x
,0)--(
\x
,0.05)node[below,outer sep=2pt,font=
\tiny
]at(
\x
,0)
{
\x
}
;
}
\foreach
\x
in
{
-1.0,-0.5,0.0,0.5,1.0
}{
\draw
(
\x
,0)--(
\x
,0.05)node[below,outer sep=2pt,font=
\tiny
]at(
\x
,0)
{
\x
}
;
}
\foreach
\y
in
{
0.5,1
}{
\draw
(0,
\y
)--(0.05,
\y
)node[left,outer sep=2pt,font=
\tiny
]at(0,
\y
)
{
\y
}
;
}
\foreach
\y
in
{
0.5,1.0
}{
\draw
(0,
\y
)--(0.05,
\y
)node[left,outer sep=2pt,font=
\tiny
]at(0,
\y
)
{
\y
}
;
}
\draw
[color=red ,domain=-1.2:1.2]
plot(
\x
,
{
tanh(
\x
)
}
)node[below,black]
{
\tiny
$
y
=
\frac
{
e
^{
x
}
-
e
^{
-
x
}}{
e
^{
x
}
+
e
^{
-
x
}}$}
;
\draw
[color=red ,domain=-1.2:1.2]
plot(
\x
,
{
tanh(
\x
)
}
);
\node
[black,anchor=south]
at (0,1.2)
{
\small
$
y
=
\frac
{
e
^{
x
}
-
e
^{
-
x
}}{
e
^{
x
}
+
e
^{
-
x
}}$}
;
\end{tikzpicture}
\end{tikzpicture}
\end{minipage}
\end{minipage}
}
}
\end{figure}
\end{figure}
\vspace
{
-1em
}
\begin{figure}
\begin{figure}
\subfigure
[relu]
{
\centering
\centering
\begin{minipage}
{
.2
\textwidth
}
\subfigure
[relu]
{
\centering
\begin{minipage}
{
.2
\textwidth
}
\begin{tikzpicture}
\begin{tikzpicture}
\draw
[->]
(-1.2,0)--(1.2,0)node[left,below,font=
\tiny
]
{$
x
$}
;
\draw
[->]
(-1.2,0)--(1.2,0)node[left,below,font=
\tiny
]
{$
x
$}
;
\draw
[->]
(0,-1.2)--(0,1.2)node[right,font=
\tiny
]
{$
y
$}
;
\draw
[->]
(0,-1.2)--(0,1.2)node[right,font=
\tiny
]
{$
y
$}
;
\draw
[dashed]
(-1.2,1)--(1.2,1);
\draw
[dashed]
(-1.2,1)--(1.2,1);
\draw
[dashed]
(-1.2,-1)--(1.2,-1);
\draw
[dashed]
(-1.2,-1)--(1.2,-1);
\foreach
\x
in
{
-1,-0.5,0,0.5,1
}{
\draw
(
\x
,0)--(
\x
,0.05)node[below,outer sep=2pt,font=
\tiny
]at(
\x
,0)
{
\x
}
;
}
\foreach
\x
in
{
-1.0,-0.5,0.0,0.5,1.0
}{
\draw
(
\x
,0)--(
\x
,0.05)node[below,outer sep=2pt,font=
\tiny
]at(
\x
,0)
{
\x
}
;
}
\foreach
\y
in
{
0.5,1
}{
\draw
(0,
\y
)--(0.05,
\y
)node[left,outer sep=2pt,font=
\tiny
]at(0,
\y
)
{
\y
}
;
}
\foreach
\y
in
{
0.5,1.0
}{
\draw
(0,
\y
)--(0.05,
\y
)node[left,outer sep=2pt,font=
\tiny
]at(0,
\y
)
{
\y
}
;
}
\draw
[color=red ,domain=-1.2:1.2]
plot(
\x
,
{
max(
\x
,0)
}
)node[right,black]
{
\tiny
$
y
=
\max
(
0
, x
)
$}
;
\draw
[color=red ,domain=-1.2:1.2]
plot(
\x
,
{
max(
\x
,0)
}
);
\node
[black,anchor=south]
at (0,1.2)
{
\small
$
y
=
\max
(
0
, x
)
$}
;
\end{tikzpicture}
\end{tikzpicture}
\end{minipage}
%
\end{minipage}
%
}
}
\hfill
\hfill
\subfigure
[gaussian]
{
\subfigure
[gaussian]
{
\centering
\centering
\begin{minipage}
{
.2
\textwidth
}
\begin{minipage}
{
.2
\textwidth
}
\begin{tikzpicture}
\begin{tikzpicture}
\draw
[->]
(-1.2,0)--(1.2,0)node[left,below,font=
\tiny
]
{$
x
$}
;
\draw
[->]
(-1.2,0)--(1.2,0)node[left,below,font=
\tiny
]
{$
x
$}
;
\draw
[->]
(0,-1.2)--(0,1.2)node[right,font=
\tiny
]
{$
y
$}
;
\draw
[->]
(0,-1.2)--(0,1.2)node[right,font=
\tiny
]
{$
y
$}
;
\draw
[dashed]
(-1.2,1)--(1.2,1);
\draw
[dashed]
(-1.2,1)--(1.2,1);
\foreach
\x
in
{
-1,-0.5,0,0.5,1
}{
\draw
(
\x
,0)--(
\x
,0.05)node[below,outer sep=2pt,font=
\tiny
]at(
\x
,0)
{
\x
}
;
}
\foreach
\x
in
{
-1.0,-0.5,0.0,0.5,1.0
}{
\draw
(
\x
,0)--(
\x
,0.05)node[below,outer sep=2pt,font=
\tiny
]at(
\x
,0)
{
\x
}
;
}
\foreach
\y
in
{
0.5,1
}{
\draw
(0,
\y
)--(0.05,
\y
)node[left,outer sep=2pt,font=
\tiny
]at(0,
\y
)
{
\y
}
;
}
\foreach
\y
in
{
0.5,1.0
}{
\draw
(0,
\y
)--(0.05,
\y
)node[left,outer sep=2pt,font=
\tiny
]at(0,
\y
)
{
\y
}
;
}
\draw
[color=red ,domain=-1.2:1.2]
plot(
\x
,
{
exp(-1*((
\x
)
^
2))
}
)node[right,black]
{
\tiny
$
y
=
e
^{
-
x
^
2
}$}
;
\draw
[color=red ,domain=-1.2:1.2]
plot(
\x
,
{
exp(-1*((
\x
)
^
2))
}
);
\node
[black,anchor=south]
at (0,1.2)
{
\small
$
y
=
e
^{
-
x
^
2
}$}
;
\end{tikzpicture}
\end{tikzpicture}
\end{minipage}
%
\end{minipage}
%
}
}
\hfill
\hfill
\subfigure
[identity]
{
\subfigure
[identity]
{
\centering
\centering
\begin{minipage}
{
.2
\textwidth
}
\begin{minipage}
{
.2
\textwidth
}
\begin{tikzpicture}
\begin{tikzpicture}
\draw
[->]
(-1.2,0)--(1.2,0)node[left,below,font=
\tiny
]
{$
x
$}
;
\draw
[->]
(-1.2,0)--(1.2,0)node[left,below,font=
\tiny
]
{$
x
$}
;
\draw
[->]
(0,-1.2)--(0,1.2)node[right,font=
\tiny
]
{$
y
$}
;
\draw
[->]
(0,-1.2)--(0,1.2)node[right,font=
\tiny
]
{$
y
$}
;
\foreach
\x
in
{
-1.0,-0.5,0.0,0.5,1.0
}{
\draw
(
\x
,0)--(
\x
,0.05)node[below,outer sep=2pt,font=
\tiny
]at(
\x
,0)
{
\x
}
;
}
\foreach
\x
in
{
-1,-0.5,0,0.5,1
}{
\draw
(
\x
,0)--(
\x
,0.05)node[below,outer sep=2pt,font=
\tiny
]at(
\x
,0)
{
\x
}
;
}
\foreach
\y
in
{
0.5,1.0
}{
\draw
(0,
\y
)--(0.05,
\y
)node[left,outer sep=2pt,font=
\tiny
]at(0,
\y
)
{
\y
}
;
}
\foreach
\y
in
{
0.5,1
}{
\draw
(0,
\y
)--(0.05,
\y
)node[left,outer sep=2pt,font=
\tiny
]at(0,
\y
)
{
\y
}
;
}
\draw
[color=red ,domain=-1:1]
plot(
\x
,
\x
);
\draw
[color=red ,domain=-1:1]
plot(
\x
,
\x
)node[right,black]
{
\tiny
$
y
=
x
$}
;
\node
[black,anchor=south]
at (0,1.2)
{
\small
$
y
=
x
$}
;
\end{tikzpicture}
\end{tikzpicture}
\end{minipage}
\end{minipage}
}
}
\end{figure}
\end{figure}
\end{frame}
\end{frame}
...
@@ -1654,6 +1658,288 @@ cycle}
...
@@ -1654,6 +1658,288 @@ cycle}
\end{frame}
\end{frame}
\newcounter
{
mycount1
}
\newcounter
{
mycount2
}
\newcounter
{
mycount3
}
\newcounter
{
mycount4
}
%%%------------------------------------------------------------------------------------------------------------
%%% 张量的简单定义
\begin{frame}
{
张量是什么
}
\begin{itemize}
\item
\textbf
{
深度学习
}
中,张量被``简单"地定义为
\alert
{
多维数组
}
\begin{itemize}
\item
张量的阶(rank)表示有多少个独立的方向,每个方向可以由多个维度表示
\end{itemize}
\end{itemize}
\begin{center}
\begin{tikzpicture}
\begin{scope}
\visible
<2->
{
\node
[anchor=north] (label) at (0,0)
{
标量
}
;
\node
[anchor=center] (label2) at ([yshift=-0.7em]label.south)
{
scalar
}
;
\node
[anchor=center] (rank) at ([yshift=-1.5em]label2.center)
{
(rank=0)
}
;
\node
[anchor=center] (scalar) at ([yshift=5em]label.north)
{
\Huge
{
3
}}
;
}
\end{scope}
\begin{scope}
[xshift=1in]
\visible
<3->
{
\node
[anchor=north] (label) at (0,0)
{
向量
}
;
\node
[anchor=center] (label2) at ([yshift=-0.7em]label.south)
{
vector
}
;
\node
[anchor=center] (rank) at ([yshift=-1.5em]label2.center)
{
(rank=1)
}
;
\node
[anchor=center] (scalar) at ([yshift=5em]label.north)
{$
\begin
{
pmatrix
}
2
\\
.
3
\\
-
8
\\
.
2
\end
{
pmatrix
}$}
;
}
\end{scope}
\begin{scope}
[xshift=2in]
\visible
<4->
{
\node
[anchor=north] (label) at (0,0)
{
矩阵
}
;
\node
[anchor=center] (label2) at ([yshift=-0.7em]label.south)
{
matrix
}
;
\node
[anchor=center] (rank) at ([yshift=-1.5em]label2.center)
{
(rank=2)
}
;
\node
[anchor=center] (scalar) at ([yshift=5em]label.north)
{$
\begin
{
pmatrix
}
1
&
1
&
9
\\
1
&
0
&
0
\\
1
&
-
4
&
7
\end
{
pmatrix
}$}
;
}
\end{scope}
\begin{scope}
[xshift=3.2in]
\visible
<5->
{
\node
[anchor=north] (label) at (0,0)
{
3阶张量
}
;
\node
[anchor=center] (label2) at ([yshift=-0.7em]label.south)
{
tensor
}
;
\node
[anchor=center] (rank) at ([yshift=-1.5em]label2.center)
{
(rank=3)
}
;
}
\begin{scope}
[yshift=6.5em,xshift=1em]
\visible
<5->
{
\setcounter
{
mycount1
}{
1
}
\draw
[step=0.5cm,color=orange,thick]
(-1,-1) grid (1,1);
\foreach
\y
in
{
+0.75,+0.25,-0.25,-0.75
}
\foreach
\x
in
{
-0.75,-0.25,0.25,0.75
}{
\node
[fill=orange!20,inner sep=0pt,minimum height=0.49cm,minimum width=0.49cm] at (
\x
,
\y
)
{
\number\value
{
mycount1
}}
;
\addtocounter
{
mycount1
}{
1
}
;
}
}
\end{scope}
\begin{scope}
[yshift=6em,xshift=0.5em]
\visible
<5->
{
\setcounter
{
mycount2
}{
1
}
\draw
[step=0.5cm,color=blue,thick]
(-1,-1) grid (1,1);
\foreach
\y
in
{
+0.75,+0.25,-0.25,-0.75
}
\foreach
\x
in
{
-0.75,-0.25,0.25,0.75
}{
\node
[fill=blue!20,inner sep=0pt,minimum height=0.49cm,minimum width=0.49cm] at (
\x
,
\y
)
{
\number\value
{
mycount2
}}
;
\addtocounter
{
mycount2
}{
1
}
;
}
}
\end{scope}
\begin{scope}
[yshift=5.5em,xshift=0em]
\visible
<5->
{
\setcounter
{
mycount3
}{
1
}
\draw
[step=0.5cm,color=ugreen,thick]
(-1,-1) grid (1,1);
\foreach
\y
in
{
+0.75,+0.25,-0.25,-0.75
}
\foreach
\x
in
{
-0.75,-0.25,0.25,0.75
}{
\node
[fill=green!20,inner sep=0pt,minimum height=0.49cm,minimum width=0.49cm] at (
\x
,
\y
)
{
\number\value
{
mycount3
}}
;
\addtocounter
{
mycount3
}{
1
}
;
}
}
\end{scope}
\begin{scope}
[yshift=5em,xshift=-0.5em]
\visible
<5->
{
\setcounter
{
mycount4
}{
1
}
\draw
[step=0.5cm,color=red,thick]
(-1,-1) grid (1,1);
\foreach
\y
in
{
+0.75,+0.25,-0.25,-0.75
}
\foreach
\x
in
{
-0.75,-0.25,0.25,0.75
}{
\node
[fill=red!20,inner sep=0pt,minimum height=0.49cm,minimum width=0.49cm] at (
\x
,
\y
)
{
\number\value
{
mycount4
}}
;
\addtocounter
{
mycount4
}{
1
}
;
}
}
\end{scope}
\end{scope}
\end{tikzpicture}
\end{center}
\end{frame}
%%%------------------------------------------------------------------------------------------------------------
%%% 张量是一个多维线性函数
\begin{frame}
{
事实上,张量不是简单的多维数组 - 别慌,了解下 :)
}
\begin{itemize}
\item
\textbf
{
非常负责任的说
}
,张量
\alert
{
不是
}
向量和矩阵的简单扩展,甚至说,多维数组
\alert
{
也不是
}
张量所必须的表达形式
\item
<2-> 严格意义上,张量是:
\begin{enumerate}
\item
<2->
\textbf
{
看不懂的定义
}
:由若干坐标系改变时满足一定坐标转化关系的抽象对象,它是一个不随参照系的坐标变换而变化的几何量(几何定义)
\item
<3->
\textbf
{
还是看不懂的定义
}
:若干向量和协向量通过张量乘法定义的量(代数定义)
\item
<4->
\textbf
{
还可以解释的定义
}
:
\alert
{
张量是多重线性函数
}
,是定义在一些向量空间和笛卡儿积上的多重线性映射
\begin{itemize}
\item
这里把张量表示为
$
T
(
v
_
0
,...,v
_
r
)
$
,其中输入的是
$
r
$
个向量
$
\{
v
_
0
,...,v
_
r
\}
$
\item
多重线性是指,对于每个输入,函数都是线性的,比如,对于一个
$
v
_
i
$
,我们有
\vspace
{
-0.3em
}
\begin{displaymath}
T(v
_
0,...,v
_
i+c
\cdot
u,...,v
_
r) = T(v
_
0,...,v
_
i,...,v
_
r) + c
\cdot
T(v
_
0,...,u,...,v
_
r)
\end{displaymath}
其中,
$
c
$
为任意数。这个性质非常重要,它可以推导出前面的其它定义。
\end{itemize}
\end{enumerate}
\end{itemize}
\end{frame}
%%%------------------------------------------------------------------------------------------------------------
%%% 进一步解释一下张量的定义
\begin{frame}
{
张量是一个``量'',不是``矩阵''
}
\begin{itemize}
\item
再理解一下,
\begin{itemize}
\item
如果一个物理量,在物体的某个位置上只是一个单值,它就是标量,比如密度
\item
如果它在同一个位置、从多个的方向上看,有不同的值,而且这个数恰好用矩阵乘观察方向来算出来,就是张量(rank
$
>
$
1),比如应力张量
\end{itemize}
\end{itemize}
\vspace
{
-0.8em
}
\begin{center}
\tdplotsetmaincoords
{
50
}{
140
}
\begin{tikzpicture}
[scale=2,tdplot
_
main
_
coords]
\visible
<3->
{
\draw
[thick,->]
(0,0,0) -- (1,0,0) node[anchor=north east]
{$
a
$}
;
\draw
[thick,->]
(0,0,0) -- (0,1,0) node[anchor=north west]
{$
b
$}
;
\draw
[thick,->]
(0,0,0) -- (0,0,1) node[anchor=south]
{$
c
$}
;
}
\pgfmathsetmacro
{
\ax
}{
2
}
\pgfmathsetmacro
{
\ay
}{
2
}
\pgfmathsetmacro
{
\az
}{
1
}
\tdplotsetrotatedcoords
{
20
}{
40
}{
00
}
\visible
<4->
{
\draw
[thick,color=red,tdplot_rotated_coords,->]
(0,0,0)
-- (.7,0,0) node[anchor=east]
{$
a'
$}
;
\draw
[thick,color=green!50!black,tdplot_rotated_coords,->]
(0,0,0)
-- (0,.7,0) node[anchor=west]
{$
b'
$}
;
\draw
[thick,color=blue,tdplot_rotated_coords,->]
(0,0,0)
-- (0,0,.7) node[anchor=south]
{$
c'
$}
;
}
\tdplottransformmainrot
{
\ax
}{
\ay
}{
\az
}
\visible
<3->
{
\node
[anchor=west,inner sep=2pt] (coord1) at (-0.40in,-0.4in)
{
\footnotesize
{
方向
$
v
=(
a,b,c
)
$}}
;
}
\visible
<4->
{
\node
[anchor=north west,inner sep=2pt] (coord2) at (coord1.south west)
{
\footnotesize
{
方向
$
u
=(
\red
{
a'
}
\black
{
,
}{
\color
{
ugreen
}
b'
}
\black
{
,
}
\blue
{
c'
}
\black
{
)
}$}}
;
}
\begin{scope}
[xshift=0.4in,yshift=0.35in]
\visible
<2->
{
\node
[anchor=west,inner sep = 2pt] (description) at (0,0)
{
\small
{$
T
(
v,u
)
$
是一个三维空间
$
(
x,y,z
)
$
上的
}}
;
\node
[anchor=north west,inner sep = 2pt] (description2) at (description.south west)
{
\small
{
2阶张量,其中
$
v
$
和
$
u
$
是两个向量
}}
;
}
\visible
<5->
{
\node
[anchor=north west,inner sep=2pt] (T) at ([yshift=-2em]description2.south west)
{
\small
{$
T
(
v,u
)=
$}}
;
\node
[anchor=west,inner sep=1pt] (T2) at (T.east)
{
\footnotesize
{$
\begin
{
pmatrix
}
v
_
x
\\
v
_
y
\\
v
_
z
\end
{
pmatrix
}^
T
$}}
;
\node
[anchor=west,inner sep=1pt] (T3) at ([xshift=2pt]T2.east)
{
\footnotesize
{$
\begin
{
pmatrix
}
T
_{
xx
}
&
T
_{
xy
}
&
T
_{
xz
}
\\
T
_{
yx
}
&
T
_{
yy
}
&
T
_{
yz
}
\\
T
_{
zx
}
&
T
_{
zy
}
&
T
_{
zz
}
\end
{
pmatrix
}$}}
;
\node
[anchor=west,inner sep=1pt] (T4) at ([xshift=2pt]T3.east)
{
\footnotesize
{$
\begin
{
pmatrix
}
u
_
x
\\
u
_
y
\\
u
_
z
\end
{
pmatrix
}$}}
;
}
\begin{pgfonlayer}
{
background
}
\visible
<7->
{
\node
[rectangle,inner sep=0pt,fill=red!20,minimum height=3.5em,minimum width=7em] [fit = (T3) ] (TBox)
{}
;
}
\visible
<6->
{
\node
[rectangle,inner sep=0pt,fill=green!20,minimum height=3.5em,minimum width=3em] [fit = (T2) ] (VBox)
{}
;
\node
[rectangle,inner sep=0pt,fill=blue!20,minimum height=3.5em,minimum width=2.5em] [fit = (T4) ] (UBox)
{}
;
}
\end{pgfonlayer}
\visible
<6->
{
\draw
[<-] (VBox.north) -- ([yshift=0.3em]VBox.north);
\node
[anchor=south,align=left] (Vlabel) at ([yshift=0.3em]VBox.north)
{
\scriptsize
{$
v
$
在基向量上的投影
}}
;
\draw
[<-] (UBox.north) -- ([yshift=0.3em]UBox.north);
\node
[anchor=south,align=left] (Ulabel) at ([yshift=0.3em,xshift=-1em]UBox.north)
{
\scriptsize
{$
u
$
在基向量上的投影
}}
;
}
\visible
<7->
{
\draw
[<-] (TBox.south) -- ([yshift=-0.3em]TBox.south);
\node
[anchor=north,align=left] (Vlabel) at ([xshift=-0.5em,yshift=-0.3em]TBox.south)
{
\scriptsize
{
张量在
$
3
\times
3
$
个方向上的分量,恰巧用``矩阵''表示,
}}
;
\node
[anchor=north west,align=left] (Vlabel2) at ([yshift=0.2em]Vlabel.south west)
{
\scriptsize
{
记为
$
[
T
]
$
,想象一下坐标系的旋转
}}
;
}
\end{scope}
\end{tikzpicture}
\end{center}
\end{frame}
%%%------------------------------------------------------------------------------------------------------------
%%% 如何在深度学习中定义一个张量
\begin{frame}
{
``矩阵''是``张量''的扩展:在神经网络中使用张量
}
\begin{itemize}
\item
但是前面的可以忽略 - 在这里,``
\alert
{
张量就是多维数组
}
''
\begin{itemize}
\item
向量、矩阵都可以看做数学上的``张量''的扩展
\end{itemize}
\item
<2-> 张量
$
T
(
1
:
3
)
$
表示一个向量,有三个元素
\\
\vspace
{
0.5em
}
\begin{tikzpicture}
\begin{scope}
\node
[anchor=north east, inner sep=1pt] (label) at (0,0)
{
物理存储:
}
;
\draw
[step=0.5cm,thick]
(0,-0.5) grid (1.5,0);
\setcounter
{
mycount1
}{
1
}
\foreach
\x
in
{
0.25,0.75,1.25
}{
\node
[fill=green!20,inner sep=0pt,minimum height=0.49cm,minimum width=0.49cm] at (
\x
,-0.25)
{
\number\value
{
mycount1
}}
;
\addtocounter
{
mycount1
}{
1
}
;
}
\end{scope}
\end{tikzpicture}
\item
<3-> 张量
$
T
(
1
:
2
,
1
:
3
)
$
表示一个
$
3
\times
2
$
的矩阵
\\
\vspace
{
0.5em
}
\begin{tikzpicture}
\begin{scope}
\node
[anchor=north east, inner sep=1pt] (label) at (0,0)
{
物理存储:
}
;
\draw
[step=0.5cm,thick]
(0,-0.5) grid (3.0,0);
\setcounter
{
mycount2
}{
1
}
\foreach
\x
in
{
0.25,0.75,1.25
}{
\node
[fill=green!20,inner sep=0pt,minimum height=0.49cm,minimum width=0.49cm] at (
\x
,-0.25)
{
\number\value
{
mycount2
}}
;
\addtocounter
{
mycount2
}{
1
}
;
}
\foreach
\x
in
{
1.75,2.25,2.75
}{
\node
[fill=red!20,inner sep=0pt,minimum height=0.49cm,minimum width=0.49cm] at (
\x
,-0.25)
{
\number\value
{
mycount2
}}
;
\addtocounter
{
mycount2
}{
1
}
;
}
\end{scope}
\end{tikzpicture}
\item
<4-> 张量
$
T
(
1
:
2
,
1
:
2
,
1
:
3
)
$
表示一个三阶张量,大小是
$
3
\times
2
\times
2
$
\\
\vspace
{
0.5em
}
\begin{tikzpicture}
\begin{scope}
\node
[anchor=north east, inner sep=1pt] (label) at (0,0)
{
物理存储:
}
;
\draw
[step=0.5cm,thick]
(0,-0.5) grid (6.0,0);
\setcounter
{
mycount3
}{
1
}
\foreach
\x
in
{
0.25,0.75,1.25
}{
\node
[fill=green!20,inner sep=0pt,minimum height=0.49cm,minimum width=0.49cm] at (
\x
,-0.25)
{
\number\value
{
mycount3
}}
;
\addtocounter
{
mycount3
}{
1
}
;
}
\foreach
\x
in
{
1.75,2.25,2.75
}{
\node
[fill=red!20,inner sep=0pt,minimum height=0.49cm,minimum width=0.49cm] at (
\x
,-0.25)
{
\number\value
{
mycount3
}}
;
\addtocounter
{
mycount3
}{
1
}
;
}
\foreach
\x
in
{
3.25,3.75,4.25
}{
\node
[fill=green!20,inner sep=0pt,minimum height=0.49cm,minimum width=0.49cm] at (
\x
,-0.25)
{
\number\value
{
mycount3
}}
;
\addtocounter
{
mycount3
}{
1
}
;
}
\foreach
\x
in
{
4.75,5.25,5.75
}{
\node
[fill=red!20,inner sep=0pt,minimum height=0.49cm,minimum width=0.49cm] at (
\x
,-0.25)
{
\number\value
{
mycount3
}}
;
\addtocounter
{
mycount3
}{
1
}
;
}
\draw
[decorate,thick,decoration={brace,mirror,raise=0.2em}]
(0,-0.50) -- (2.95,-0.50);
\draw
[decorate,thick,decoration={brace,mirror,raise=0.2em}]
(3.05,-0.50) -- (6,-0.50);
\node
[anchor=north] (subtensor1) at (1.5,-0.6)
{
\footnotesize
{$
3
\times
2
$
sub-tensor
}}
;
\node
[anchor=north] (subtensor1) at (4.5,-0.6)
{
\footnotesize
{$
3
\times
2
$
sub-tensor
}}
;
\end{scope}
\end{tikzpicture}
\item
<5-> 高阶张量:数组!数组!数组!
\begin{itemize}
\item
和C++、Python中的多维数组一模一样
\end{itemize}
\end{itemize}
\end{frame}
%%%------------------------------------------------------------------------------------------------------------
%%%------------------------------------------------------------------------------------------------------------
\subsection
{
参数学习 - 反向传播
}
\subsection
{
参数学习 - 反向传播
}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论