《神经网络与深度学习》附录部分内容学习: 代数, 微积分

范数

范数(Norm)是一个表示向量“长度”的函数,为向量空间内的所有向量赋 予非零的正长度或大小。对于一个𝑁 维向量𝒗,一个常见的范数函数为l_{p} 范数,

l_{p}(v)\equiv \left \| v_{p} \right \|= \left ( \sum_{n=1}^{N} \left | v_{n} \right |^{p}\right )^{1/p}

其中𝑝 ≥ 0为一个标量的参数.常用的𝑝的取值有1,2,∞等.

ℓ1 范数   为向量的各个元素的绝对值之和.

\left \| v \right \|_{1}=\sum_{n=1}^{N}\left | v_{n} \right |

ℓ2 范数  为向量的各个元素的平方和再开平方.

\left \| v \right \|_{2}=\sqrt{\sum_{n=1}^{N}v_{n}^{2}}=\sqrt{v^{T}v}

ℓ2 范数又称为Euclidean 范数或者Frobenius 范数.从几何角度,向量也可 以表示为从原点出发的一个带箭头的有向线段,其ℓ2 范数为线段的长度,也常称 为向量的模.

ℓ∞ 范数  为向量的各个元素的最大绝对值,

\left \| v \right \|_{\infty }=max\left \{ v_{1},v_{2},...,v_{N} \right \}

无穷范数的理解:当p趋于无穷大时,向量v中最大的元素的v_{max}^{p}会远大于其它其它元素的p次方,即v_{max}^{p}为其它元素的高阶无穷大项,因此范数公式趋近于\sqrt[p]{v_{max}^{p}},于是得到上述公式。

矩阵范数  矩阵的范数有很多种形式,其中常用的ℓ𝑝 范数定义为

\left \| A \right \|_{p} = \left (\sum_{m=1}^{M} \sum_{n-1}^{N} \left | a_{mn} \right |^{p} \right )^{1/p}

后面用到的向量范数也可以从这个定义得出。

向量函数的导数

对于一个向量x={x1, x2, ... xk},有

\frac{\partial x}{\partial x}=I

证明:

\frac{\partial x}{\partial x}=\begin{pmatrix} \frac{\partial x_{i}}{\partial x_{j}} \end{pmatrix}_{k\times k} ,当i=j时,有\frac{\partial x_{i}}{\partial x_{i}}=1,当i\neq j时,有\frac{\partial x_{i}}{\partial x_{j}}=0,因此\begin{pmatrix} \frac{\partial x_{i}}{\partial x_{j}} \end{pmatrix}_{k\times k}为单位矩阵I

 \frac{\partial \left \| x \right \|^{2}}{\partial x}=2x

证明:

向量x的2范数为:\sqrt[2]{\sum x_{j}^{2}},因此

\frac{\partial \left \| x \right \|^{2}}{\partial x}=\frac{\partial \sum x_{j}^{2}}{\partial x}=\begin{pmatrix} \frac{\partial \sum x_{j}^{2}}{\partial x_{1}} \\ \frac{\partial \sum x_{j}^{2}}{\partial x_{2}} \\ \cdots \\ \frac{\partial \sum x_{j}^{2}}{\partial x_{k}} \end{pmatrix}=\begin{pmatrix} \frac{\partial x_{1}^{2}}{\partial x_{1}} \\ \frac{\partial x_{2}^{2}}{\partial x_{2}} \\ \cdots \\ \frac{\partial x_{k}^{2}}{\partial x_{k}} \end{pmatrix}=\begin{pmatrix} 2x_{1} \\ 2x_{2}\\ \cdots \\ 2x_{k} \end{pmatrix}=2x

 \frac{\partial Ax}{\partial x}=A^{T}

证明:

Ax=\sum a_{ij}x_{j},j=1,2,...k,因此

 \frac{\partial Ax}{\partial x}=\begin{pmatrix} \frac{\partial \sum a_{1j}x_{j}}{\partial x_{1}} &\frac{\partial \sum a_{2j}x_{j}}{\partial x_{1}} &\cdots &\frac{\partial \sum a_{kj}x_{j}}{\partial x_{1}} \\ \frac{\partial \sum a_{1j}x_{j}}{\partial x_{2}} &\frac{\partial \sum a_{2j}x_{j}}{\partial x_{2}} &\cdots &\frac{\partial \sum a_{kj}x_{j}}{\partial x_{2}} \\ \cdots &\cdots &\cdots &\cdots \\ \frac{\partial \sum a_{1j}x_{j}}{\partial x_{k}} &\frac{\partial \sum a_{2j}x_{j}}{\partial x_{k}} &\cdots &\frac{\partial \sum a_{kj}x_{j}}{\partial x_{k}} \end{pmatrix}

         =\begin{pmatrix} a_{11} &a_{21} &\cdots &a_{k1} \\ a_{12} &a_{22} &\cdots &a_{k2} \\ \cdots &\cdots &\cdots &\cdots \\ a_{1k} &a_{2k} &\cdots &a_{kk} \end{pmatrix} = A^{T}

 \frac{\partial x^{T}A}{\partial x}=A

证明:和上面类似,略。

对于一般的向量函数f(x),x={x1, x2, ... xk},f(x) = {f(x1), f(x2), ... f(xk)}, f(x)的导数为一个对角矩阵

\frac{\partial f(x)}{\partial x}=\begin{pmatrix} \frac{\partial f(x_{j})}{\partial x_{i}} \end{pmatrix}_{K\times K}

          =\begin{pmatrix} f^{'}(x_{1}) &0 &\cdots &0 \\ 0 &f^{'}(x_{2}) &\cdots &0 \\ \vdots &\vdots &\ddots &\vdots \\ 0 &0 &\cdots &f^{'}(x_{K}) \end{pmatrix}=diag(f^{'}(\mathbf{x}))

Logistic函数

Logistic 函数是一种常用的 S 型函数,是比利时数学家 Pierre François Verhulst在1844年~1845年研究种群数量的增长模型时提出命名的,最初作为一种生态学模型.

Logistic函数定义为

logistic(x)=\frac{L}{1+exp(-K(x-x_{0}))}

其中 exp(⋅) 函数表示自然对数,𝑥0 是中心点,𝐿 是最大值,𝐾 是曲线的倾斜度.下图给出了几种不同参数的 Logistic 函数曲线.当 𝑥 趋向于 −∞ 时,logistic(𝑥) 接近于0;当𝑥趋向于+∞时,logistic(𝑥)接近于𝐿。

当参数为(𝑘 = 1, 𝑥0 = 0, 𝐿 = 1)时,Logistic函数称为标准Logistic函数,记为𝜎(𝑥).

\sigma (x)=\frac{1}{1+exp(-x)}

标准Logistic函数在机器学习中使用得非常广泛,经常用来将一个实数空间 的数映射到(0, 1)区间. 标准Logistic函数的导数为

𝜎 ′ (𝑥) = 𝜎(𝑥)(1 − 𝜎(𝑥)).

证明:
\left ( \frac{1}{1+e^{-x}} \right )^{'}=-(\frac{1}{\left (1+e^{-x} \right )^{2}})\left ( 1+e^{-x} \right )^{'}=\frac{e^{-x}}{\left ( 1+e^{-x} \right )^{2}}

\frac{1}{1+e^{-x}}\left ( 1- \frac{1}{1+e^{-x}}\right )=\frac{1}{1+e^{-x}}\frac{e^{-x}}{1+e^{-x}}=\frac{e^{-x}}{\left (1+e^{-x} \right )^{2}}

因此,左边=右边,等式得证。

当输入为𝐾 维向量𝒙 = [𝑥1 , ⋯ , 𝑥𝐾] T 时,其导数为

𝜎 ′ (𝒙) = diag (𝜎(𝒙) ⊙ (1 − 𝜎(𝒙))). 

其中⊙表示逐点乘积。

Softmax函数

Softmax函数可以将多个标量映射为一个概率分布.对于K个标量𝑥1 , ⋯ , 𝑥K, Softmax函数定义为

z_{k}=softmax(x_{k})=\frac{e^{x_{k}}}{\sum_{i=1}^{K}e^{x_{i}}}

这样,我们可以将𝐾 个标量𝑥1 , ⋯ , 𝑥𝐾 转换为一个分布:𝑧1 , ⋯ , 𝑧𝐾,满足

\sum_{k=1}^{K}z_{k}=1

写成向量形式,有

\mathbf{z}=softmax(\mathbf{x})=\frac{1}{\sum_{k=1}^{K}e^{x_{k}}}\begin{bmatrix} e^{x_{1}}\\ \vdots \\ e^{x_{K}} \end{bmatrix} =\frac{e^{\mathbf{x}}}{\sum_{k=1}^{K}e^{x_{k}}} =\frac{e^{\mathbf{x}}}{1_{K}^{T}e^{\mathbf{x}}}

其中,1𝐾 = [1, ⋯ , 1]𝐾×1 是𝐾 维的全1向量。

Softmax函数的导数为

上述过程用到了两条函数求导法则:

乘法法则:(f(x)g(x))' = f(x)g'(x) + f'(x)g(x)

链式法则:y=g(x), z=f(y),则z'(x) = (f(g(x)))' = g'(x)(f'(y)),其中f'(y)表示把y当成自变量,对y求导

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值