\parinterval{\small\sffamily\bfseries{标量}}\index{标量}(Scalar)\index{Scalar}:标量亦称``无向量'',是一种只具有数值大小而没有方向的量,通俗地说,一个标量就是一个单独的数,这里特指实数\footnote{严格意义上,标量可以是复数等其他形式。这里为了方便讨论,仅以实数为对象。}。一般用小写斜体表示标量。比如,对于$ a=5$,$ a $就是一个标量。
\parinterval{\small\sffamily\bfseries{转置}}\index{转置}(Transpose)\index{Transpose}是矩阵的重要操作之一。矩阵的转置可以看作是将矩阵以对角线为镜像进行翻转:假设$\mathbf a $为$ m $行$ n $列的矩阵,第$ i $行、第$ j $ 列的元素是$ a_{ij}$,即:$\mathbf a={(a_{ij})}_{m\times n}$,把$ m\times n $矩阵$\mathbf a $的行换成同序数的列得到一个$ n\times m $矩阵,则得到$\mathbf a $的转置矩阵,记为$\mathbf a^{\rm T}$,其中$ a_{ji}^{\rm T}=a_{ij}$。例如:
\parinterval 矩阵加法又被称作{\small\sffamily\bfseries{按元素加法}}\index{按元素加法}(Element-wise Addition)\index{Element-wise Addition}。它是指两个矩阵把其相对应元素加在一起的运算,通常的矩阵加法被定义在两个形状相同的矩阵上。两个$ m\times n $矩阵$\mathbf a $和$\mathbf b $的和,标记为$\mathbf a +\mathbf b $,它也是个$ m\times n $矩阵,其内的各元素为其相对应元素相加后的值。如果矩阵$\mathbf c =\mathbf a +\mathbf b $,则$ c_{ij}= a_{ij}+ b_{ij}$。公式\ref{eq:5-4}展示了矩阵之间进行加法的计算过程。
\parinterval 矩阵乘法是矩阵运算中最重要的操作之一,为了与矩阵点乘区分,通常也把矩阵乘法叫做矩阵叉乘。假设$\mathbf a $为$ m\times p $的矩阵,$\mathbf b $为$ p\times n $的矩阵,对$\mathbf a $和$\mathbf b $作矩阵乘法的结果是一个$ m\times n $的矩阵$\mathbf c $,其中矩阵$\mathbf c $中第$ i $行、第$ j $列的元素可以表示为:
\parinterval{\small\sffamily\bfseries{线性映射}}\index{线性映射}( Linear Mapping)\index{Linear Mapping}或{\small\sffamily\bfseries{线性变换}}\index{线性变换}(Linear Transformation)\index{Linear Transformation}是从一个向量空间V到另一个向量空间W的映射函数$ f:v\rightarrow w$,且该映射函数保持加法运算和数量乘法运算,即对于空间V中任何两个向量$\mathbf u $ 和$\mathbf v $以及任何标量$ c $,有:
\parinterval 对于神经网络中的某层神经元$\mathbf y=f(\mathbf x\cdot\mathbf w+\mathbf b)$,其中$\mathbf w $是权重矩阵,例如$\begin{pmatrix}1&2\\3&4\end{pmatrix}$,$\mathbf b $ 是偏置向量,例如$(1,3)$。在这里,输入$\mathbf x $和输出$\mathbf y $,可以不是简单的向量或是矩阵形式,而是深度学习中更加通用的数学量\ \dash\ {\small\bfnew{张量}}\index{张量}(Tensor)\index{Tensor},比如下式中的几种情况都可以看作是深度学习中定义数据的张量:
\parinterval 对于一个单层神经网络,$\mathbf y=f(\mathbf x\cdot\mathbf w+\mathbf b)$中的$\mathbf x\cdot\mathbf w $表示对输入$\mathbf x $进行线性变换,其中$\mathbf x $是输入张量,$\mathbf w $是权重矩阵。$\mathbf x\cdot\mathbf w $表示的是矩阵乘法,需要注意的是这里是矩阵乘法而不是张量乘法。
\parinterval 梯度下降法是一种常用的优化方法,非常适用于目标函数可微分的问题。它的基本思想是:给定函数上的第一个点,找到使函数值变化最大的方向,然后前进一``步'',这样模型就可以朝着更大(或更小)的函数值以最快的速度移动\footnote{梯度下降的一种实现是{\scriptsize\bfnew{最速下降}}(Steepest Descent)。该方法的每一步移动都选取合适的步长,进而使目标函数能得到最大程度的增长(或下降)。}。具体来说,梯度下降通过迭代更新参数$\mathbf w $,不断沿着梯度的反方向让参数$\mathbf w $朝着损失函数更小的方向移动:如果$ J(\mathbf w)$对$\mathbf w $可微分,则$\frac{\partial J(\mathbf w)}{\partial\mathbf w}$将指向$ J(\mathbf w)$在$\mathbf w $处变化最大的方向,这里将其称之为梯度方向。$\mathbf w $沿着梯度方向更新,新的$\mathbf w $可以使函数更接近极值,其过程如图\ref{fig:5-43}所示。