@@ -25,12 +25,12 @@ kernelspec:
2525
2626## 概述
2727
28- ** 机器学习** 和** 人工智能** 的主要部分包括
28+ ** 机器学习** 和** 人工智能** 的重要部分包括
2929
3030* 用已知函数来近似未知函数
31- * 从左右变量的数据集中估计已知函数
31+ * 从一组输入-输出数据中估计这个已知函数
3232
33- 本讲座描述了一种广泛用于近似函数$f$的普通** 人工神经网络** (ANN)的结构, 该函数将空间$X$中的 $x$映射到空间$Y$中的 $y$。
33+ 本讲座描述了一种广泛用于近似函数$f$的普通** 人工神经网络** (ANN)的结构。 该函数将空间 $X$ 中的 $x$ 映射到空间 $Y$ 中的 $y$。
3434
3535为了介绍基本概念,我们研究一个$x$和$y$都是标量的例子。
3636
@@ -43,15 +43,15 @@ kernelspec:
4343
4444## 一个深度(但不宽)的人工神经网络
4545
46- 我们描述一个"深度"神经网络, 其"宽度"为一。
46+ 我们描述一个"深度"神经网络, 其"宽度"为一。
4747
48- ** 深度** 意味着网络由组织成图形节点的大量函数组成 。
48+ ** 深度** 指网络由大量函数复合而成,这些函数被组织在图的节点上 。
4949
5050** 宽度** 指的是被近似函数右侧的变量数量。
5151
52- 将"宽度"设为一意味着网络仅组合单变量函数 。
52+ 宽度为一意味着网络仅复合单变量函数 。
5353
54- 设$x \in \mathbb{R}$为一个标量, $y \in \mathbb{R}$为另一个标量。
54+ 设 $x \in \mathbb{R}$ 为一个标量, $y \in \mathbb{R}$ 为另一个标量。
5555
5656我们假设$y$是$x$的一个非线性函数:
5757
6161
6262我们想用另一个递归定义的函数来近似$f(x)$。
6363
64- 对于深度为$N \geq 1$的网络,每个 ** 层** $i =1, \ldots N$包含
64+ 对于深度为 $N \geq 1$ 的网络,每 ** 层** $i =1, \ldots N$ 包含
6565
66- * 一个输入$x_i$
66+ * 一个输入 $x_i$
6767* 一个** 仿射函数** $w_i x_i + bI$,其中 $w_i$ 是施加在输入 $x_i$ 上的标量** 权重** ,$b_i$ 是标量** 偏置**
6868
6969* 一个** 激活函数** $h_i$,它以 $(w_i x_i + b_i)$ 为参数并产生输出 $x_ {i+1}$
8989h(z) = z
9090$$
9191
92- 作为下面的激活函数,我们将对第1层到第N-1层使用sigmoid函数,对第N层使用恒等函数 。
92+ 作为下面的激活函数,我们将对第 $1$ 层到第 $N-1$ 层使用sigmoid函数,对第 $N$ 层使用恒等函数 。
9393
9494为了近似函数 $f(x)$,我们按如下方式构造 $\hat f(x)$。
9595
9999 l_{i}\left(x\right)=w_{i}x+b_{i} .
100100$$
101101
102- 我们通过迭代函数组合 $h_i \circ l_i$ 来构造 $\hat f$:
102+ 我们通过迭代组合函数 $h_i \circ l_i$ 来构造 $\hat f$:
103103
104104$$
105105f(x)\approx\hat{f}(x)=h_{N}\circ l_{N}\circ h_{N-1}\circ l_{1}\circ\cdots\circ h_{1}\circ l_{1}(x)
@@ -112,7 +112,7 @@ $N$ 这个整数越大,神经网络就越"深"。
112112显然,如果我们知道参数 $\{ w_i, b_i\} _ {i=1}^N$,那么对于给定的 $x = \tilde x$,我们可以通过迭代以下递归来计算 $\hat f(x)$:
113113
114114$$
115- x_{i+1} = h_i \circ l_i(x_i) , \quad, i = 1, \ldots N
115+ x_{i+1} = h_i \circ l_i(x_i) , \quad i = 1, \ldots N
116116$$ (eq:recursion)
117117
118118从 $x_1 = \tilde x$ 开始。
@@ -125,8 +125,7 @@ $$ (eq:recursion)
125125
126126设 $\left\{ \left(w_{i},b_{i}\right)\right\} _{i=1}^{N}$ 表示权重和偏置的序列。
127127
128- 如上所述,对于给定的输入 $x_{1}$,我们的近似函数 $\hat f$ 求值
129- 在 $x_1$ 等于我们网络的"输出" $x_{N+1}$ 时,可以通过迭代 $x_{i+1}=h_{i}\left(w_{i}x_{i}+b_{i}\right)$ 来计算。
128+ 如上所述,对于给定的输入 $x_{1}$,我们的近似函数 $\hat f$ 在 $x_1$ 的值等于我们网络的"输出" $x_{N+1}$,其中 $x_{N+1}$ 是通过迭代 $x_{i+1}=h_{i}\left(w_{i}x_{i}+b_{i}\right)$ 来计算。
130129
131130对于给定的**预测值** $\hat{y} (x)$ 和**目标值** $y= f(x)$,考虑损失函数
132131
142141\min_ {\left\{ \left(w_ {i},b_ {i}\right)\right\} _ {i=1}^{N}} \int {\mathcal L}\left(x_ {N+1},y\right)(x) d \mu(x)
143142$$
144143
145- 其中 $\mu(x)$ 是某个测度,用于衡量我们希望得到 $f(x)$ 的良好近似 $\hat f(x)$ 的点 $x \ in \mathbb{R}$。
144+ 其中 $\mu(x)$ 是某个测度,用来衡量哪些点 $x \ in \mathbb{R}$ 需要被良好逼近 。
146145
147146将权重和偏置堆叠成参数向量 $p$:
148147
@@ -157,15 +156,16 @@ p = \begin{bmatrix}
157156 b_N
158157\end{bmatrix}
159158$$
160- 对**随机梯度下降**算法的一个"简化版本"应用于寻找函数的零点,得到以下参数更新规则:
159+
160+ 一个**随机梯度下降**算法的"简化版本"应用于寻找函数的零点,得到以下参数更新规则:
161161
162162$$
163163p_ {k+1}=p_k-\alpha\frac{d \mathcal{L}}{dx_ {N+1}}\frac{dx_ {N+1}}{dp_k}
164164$$ (eq:sgd)
165165
166166其中 $\frac{d {\mathcal L}}{dx_{N+1}}=-\left(x_{N+1}-y\right)$ 且 $\alpha > 0$ 是步长。
167167
168- (参见[这里](https://en.wikipedia.org/wiki/Gradient_descent#Description )和[这里](https://en.wikipedia.org/wiki/Newton%27s_method )以了解随机梯度下降与牛顿法的关系。)
168+ (参见[这里](https://baike.baidu.com/item/%E6%A2%AF%E5%BA%A6%E4%B8%8B%E9%99%8D%E6%B3%95/8641233 )和[这里](https://baike.baidu.com/item/%E7%89%9B%E9%A1%BF%E8%BF%AD%E4%BB%A3%E6%B3%95/10887580 )以了解随机梯度下降与牛顿法的关系。)
169169
170170要实现这个参数更新规则的一个步骤,我们需要导数向量 $\frac{dx_{N+1}}{dp_k}$。
171171
@@ -176,18 +176,13 @@ $$ (eq:sgd)
176176得益于
177177
178178* 微分演算中的链式法则和乘积法则的性质,以及
179-
180179* 下三角矩阵的性质
180+
181181反向传播实际上可以通过以下两步完成:
182182
183183* 求下三角矩阵的逆矩阵,以及
184-
185184* 矩阵乘法
186185
187- (这个想法来自 MIT 的 Alan Edelman 在这个精彩的 YouTube 视频的最后 7 分钟)
188-
189- ```{youtube} rZS2LGiurKY
190- ```
191186
192187下面开始。
193188
@@ -262,7 +257,7 @@ dx_{N+1}/db_{N}
262257\end{array}\right)=e_ {N}\left(I-L\right)^{-1}D.
263258$$
264259
265- 然后我们可以通过对一组输入-输出对$\left\{ \left(x_{1}^{i},y^{i}\right)\right\} _{i=1}^{M}$(我们称之为"训练集")多次应用我们的$p$更新来解决上述问题。
260+ 然后我们可以通过对一组输入-输出对 $\left\{ \left(x_{1}^{i},y^{i}\right)\right\} _{i=1}^{M}$(我们称之为"训练集")多次应用我们的 $p$ 更新来解决上述问题。
266261
267262## 训练集
268263
@@ -410,14 +405,12 @@ update_ad(params, x, y)
410405```
411406## 示例 1
412407
413- 考虑函数
408+ 考虑在区间 $\left[0.5,3\right]$ 上的函数
414409
415410$$
416411f\left(x\right)=-3x+2
417412$$
418413
419- 在区间 $\left[0.5,3\right]$ 上。
420-
421414我们使用200个点的均匀网格,并对网格上的每个点更新参数300次。
422415
423416$h_{i}$ 是除最后一层外所有层的sigmoid激活函数,最后一层使用恒等函数,且 $N=3$。
@@ -472,9 +465,9 @@ Image(fig.to_image(format="png"))
472465
473466思考上述例子中加深神经网络如何影响近似质量是一件很有趣的事
474467
475- * 如果网络太深,你会遇到[梯度消失问题](http ://neuralnetworksanddeeplearning. com/chap5.html )
468+ * 如果网络太深,你会遇到[梯度消失问题](https ://www.zhihu. com/question/645999362/answer/3481844539 )
476469* 在本讲所考虑的情况下,步长和训练轮数等其他参数可能与网络层数一样重要或更重要
477- * 实际上,由于$f$是 $x$的线性函数,使用恒等映射作为激活函数的单层网络可能效果最好。
470+ * 实际上,由于 $f$ 是 $x$ 的线性函数,使用恒等映射作为激活函数的单层网络可能效果最好。
478471
479472
480473
0 commit comments