选自TowardsDataScience,作者:James Loy,机器之心编译。
这是一份用于理解深度学习内部运作方式的初学者指南。作者根据自己从零开始学习用 Python 构建神经网络的经验,编写了一份攻略。内容涵盖神经网络定义、损失函数、前向传播、反向传播、梯度下降算法,对于想要了解深度学习运作原理的各位来说,内容精彩不可错过。
动机:为了深入了解深度学习,我决定从零开始构建神经网络,并且不使用类似 Tensorflow 的深度学习库。我相信,对于任何有理想的数据科学家而言,理解神经网络内部的运作方式都非常重要。
本文涵盖了我学到的所有东西,希望你也能从中获益!
什么是神经网络?
许多有关神经网络的介绍资料会将神经网络与大脑进行类比。但我发现,将神经网络简单地描述为一个从输入映射到输出的数学函数理解起来更容易。
神经网络由以下部分组成:
- 一个输入层,x
- 任意数量的隐藏层
- 一个输出层,ŷ
- 每两层之间都有一组权重和偏置,W 和 b
- 每个隐藏层都要选择一个激活函数 σ。在本文中,我们选用 Sigmoid 激活函数。
下图展示了 2 层神经网络的结构(请注意,在计算神经网络层数的时候&#