diff --git a/TODO1/how-to-build-your-own-neural-network-from-scratch-in-python.md b/TODO1/how-to-build-your-own-neural-network-from-scratch-in-python.md index a0713e973b7..b359410bd72 100644 --- a/TODO1/how-to-build-your-own-neural-network-from-scratch-in-python.md +++ b/TODO1/how-to-build-your-own-neural-network-from-scratch-in-python.md @@ -7,7 +7,7 @@ # 如何用 Python 从零开始构建你自己的神经网络 -> 一个帮助初学者理解深度学习内部工作原理的指南 +> 一个帮助初学者理解深度神经网络内部工作机制的指南 **写作动机:** 为了使我自己可以更好地理解深度学习,我决定在没有像 TensorFlow 这样的深度学习库的情况下,从零开始构建一个神经网络。我相信,理解神经网络的内部工作原理对任何有追求的数据科学家来说都很重要。 @@ -62,9 +62,9 @@ class NeuralNetwork: ![](https://cdn-images-1.medium.com/max/1600/1*CEtt0h8Rss_qPu7CyqMTdQ.png) -### 前馈 +### 前馈过程 -正如我们在上面的序列图中看到的,前馈只是一个简单的计算,对于一个基本的 2 层神经网络,它的输出是: +正如我们在上面的序列图中看到的,前馈只是一个简单的计算过程,对于一个基本的 2 层神经网络,它的输出是: ![](https://cdn-images-1.medium.com/max/1600/1*E1_l8PGamc2xTNS87XGNcA.png) @@ -96,7 +96,7 @@ class NeuralNetwork: **训练的目标是找到能使损失函数最小化的一组最优的权值和偏差。** -### 反向传播 +### 反向传播过程 现在我们已经得出了预测的误差(损失),我们还需要找到一种方法将误差**传播**回来,并更新我们的权重和偏差。 @@ -114,7 +114,7 @@ class NeuralNetwork: ![](https://cdn-images-1.medium.com/max/1600/1*7zxb2lfWWKaVxnmq2o69Mw.png) -用于计算损失函数对于权重的导数的链式法则。注意,为了简单起见,我们只展示了假设为 1 层的神经网络的偏导数。 +为了更新权重使用链式法则求解函数的导数。注意,为了简单起见,我们只展示了假设为 1 层的神经网络的偏导数。 哦!这真难看,但它让我们得到了我们需要的东西 —— 损失函数对于权重的导数(斜率),这样我们就可以相应地调整权重。 @@ -153,7 +153,7 @@ class NeuralNetwork: ![](https://cdn-images-1.medium.com/max/1600/1*HaC4iILh2t0oOKi6S6FwtA.png) -我们的神经网络应该通过学习得出一组理想的权重来表示这个函数。请注意,仅仅通过查看数据来得出权重对我们来说也并不简单。 +我们的神经网络应该通过学习得出一组理想的权重来表示这个函数。请注意,仅仅是求解权重的过程对我们来说也并不简单。 让我们对神经网络进行 1500 次训练迭代,看看会发生什么。观察下图中每次迭代的损失变化,我们可以清楚地看到损失**单调递减至最小值**。这与我们前面讨论的梯度下降算法是一致的。