《动手学深度学习》笔记

本笔记主要参考《动手学深度学习》 进行学习记录,不做无意义的书本内容摘抄。

课程网址:https://courses.d2l.ai/zh-v2/

使用深度学习框架为:Pytorch

内容不断更新中\cdots \cdots

2 预备知识

2.1 数据处理

2.2 线性代数

矩阵运算:矩阵点积、向量积、矩阵乘法

向量积非叉积,是矩阵与向量的积。下例可以看做AA的行向量和向量的点积。

A=(a11a1ma21a2man1anm),x=(x1xm)Ax=(a11x1++a1mxman1x1++anmxm)A = \begin{pmatrix} a_{11} & \cdots & a_{1m} \\ a_{21} & \cdots & a_{2m} \\ \vdots & \ddots & \vdots \\ a_{n1} & \cdots & a_{nm} \end{pmatrix} , \overrightarrow x = \begin{pmatrix} x_1 \\ \vdots \\ x_m \end{pmatrix} \\ A\overrightarrow x = \begin{pmatrix} a_{11}x_1 + \cdots + a_{1m}x_m \\ \vdots \\ a_{n1}x_1 + \cdots + a_{nm}x_m \end{pmatrix}

范数:

L1L_1范数是向量绝对值之和。

x1=i=1nxi.\|\mathbf{x}\|_1 = \sum_{i=1}^n \left|x_i \right|.

L2L_2范数是向量元素根的平方和。

x2=i=1nxi2,\|\mathbf{x}\|_2 = \sqrt{\sum_{i=1}^n x_i^2},

LpL_p范数是更一般的范数,公式如下:

xp=(i=1nxip)1/p.\|\mathbf{x}\|_p = \left(\sum_{i=1}^n \left|x_i \right|^p \right)^{1/p}.

2.3 微积分

3 线性神经网络

3.1 线性回归

3.2 Softmax回归

输出的匹配概率(非负,和为1)

y^=softmax(o)其中y^j=exp(oj)kexp(ok)\hat{\mathbf{y}} = \mathrm{softmax}(\mathbf{o})\quad \text{其中}\quad \hat{y}_j = \frac{\exp(o_j)}{\sum_k \exp(o_k)}

我们选择最优可能的类别

argmaxjy^j=argmaxjoj.\mathop {argmax}_j \hat y_j = \mathop {argmax}_j o_j.

损失函数,下式通常称为交叉熵损失。(真实概率中只有一个yiy_i为1,其余全部为0)

l(y,y^)=j=1qyjlogy^j.l(\mathbf{y}, \hat{\mathbf{y}}) = - \sum_{j=1}^q y_j \log \hat{y}_j.

交叉熵通常来衡量两个概率的区别:

H(p,q)=ipilog(qi)H(p, q) = \sum \limits_i - p_i log(q_i)

损失函数的导数

ojl(y,y^)=exp(oj)k=1qexp(ok)yj=softmax(o)jyj.\partial_{o_j} l(\mathbf{y}, \hat{\mathbf{y}}) = \frac{\exp(o_j)}{\sum_{k=1}^q \exp(o_k)} - y_j = \mathrm{softmax}(\mathbf{o})_j - y_j.

3.3 损失函数

  • 均方损失(L2 Loss)

l(y,y)=12(yy)2l(y, y{'}) =\frac{1}{2}(y - y{'})^2

  • 绝对值损失(L1 Loss)

l(y,y)=yyl(y,y{'}) = |y - y{'}|

  • Huber’s Robust Loss 鲁棒损失

l(y,y)={yyifyy>112(yy)2otherwisel(y, y{'}) = \begin{cases} |y - y{'}| & if |y - y{'}| \gt 1 \\ \frac{1}{2}(y - y{'})^2 & otherwise \end{cases}

4 多层感知机

4.1 多层感知机

单层感知机:

  • 回归输出实数
  • 解决二分类问题

单层感知机函数,σ\sigma是激活函数

o=σ(w,x+b)o = \sigma (\langle \mathbf{w} , \mathbf{x} \rangle + b )

多层感知机:

  • 激活函数需要是非线性:如果为线性的话,输出就仍然是线性的,等价于单层感知机

  • 使用隐藏层和激活函数来得到非线性模型

  • 使用Softmax来处理多分类

  • 超参数为隐藏层数和各个隐藏层大小

单隐藏层:

h=W1X+b1o=w2Th+b2\mathbf{h} = \mathbf{W_1X+b_1} \\ o = \mathbf{w_2^T h } + b_2

激活函数:

  • sigmoid函数,将输出投影到(0,1)(0, 1)

sigmoid(x)=11+exsigmoid(x) = \frac{1}{1 + e ^{-x}}

  • Tanh函数,将输出投影到(1,1)(-1, 1)

tanh(x)=1e2x1+e2xtanh(x) = \frac{1 - e^{-2x}}{1 + e ^ {-2x}}

  • ReLU激活函数

ReLU(x)=max(x,0)ReLU(x) = max(x, 0)

4.2 模型选择

训练误差:模型在训练数据集上得到的误差

泛化误差:模型在新数据集上得到的误差


   转载规则


《《动手学深度学习》笔记》 行码棋 采用 知识共享署名 4.0 国际许可协议 进行许可。
 上一篇
组合数学常用公式 组合数学常用公式
组合数学常用公式 二项式定理 二项式系数相关性质: 对称性:Cnm=Cnn−mC_n^m = C_n^{n-m}Cnm​=Cnn−m​ 增减性与最大值:二项式系数前半部分逐渐增大,后半部分逐渐减小,中间取最大值。 最大值max=
2023-02-09 2024-10-01
下一篇 
2022年度总结 2022年度总结
希望2023健康,发论文,比赛拿牌,成功上岸。 今天是2023年1月1日,2022有许多不顺心的事,也有一些值得记忆的事,希望通过下面的片段来回顾这年不易的时光。 能说的尽量说,不能说的你我心领神会。我发现时间让我越来越不想说什么东西
2023-01-01 2024-02-20
  目录