Make Your Own Neural Network

前言:这篇文章介绍一本小书,《Make your own neural network》,书籍讲解了神经网络的原理以及使用python实现神经网络。文章记录核心知识,对书中的公式再进行推导。整体而言书籍讲解比较通俗,不足之处在于体系比较散、没有说清反向传播与梯度下降的关系。

Chapter 1 How They Work
英里与千米的转化
Again withoutgetting toodistracted by exactwaysof workingout c,and to remainfocussedon thisidea of successivelyrefining it,we could suggest thatthe correctionis a fractionof the error. That'sintuitivelyright - a big errormeans a bigger correction is needed,and a tiny error means we need theteeniest ofnudges to c.

Key Points:
- All useful computer systems have an inpit, and an output,with some kind ofcalculation in between. Neyralnetworks are no different.
- When we don'tknow exactly how something works we can try to estimate it with a model which includesparameters which we can adjust. If we didn't knowhow to convert kilometres to miles, we might use a linearfunction as a model, withan adjustable gradient.
- A good way ofrefining these models is to adjustthe parametersbased on how wrongthe model is compared to known true examples.
训练简单的分类器



三层神经网络
A、前向传播计算

B、反向传播解释

C、权重更新

引:梯度下降是一种优化算法,为了求损失函数的极值。反向传播算法是一种更适用于多层神经网络结构特的梯度下降法(使用反向传播算法更容易求解梯度)。
总结:
整体下来书籍阅读比较顺畅,有些需要计算的地方值得停下来耐心算一算。书籍第一章围绕神经网络的理论进行讲解,通过简单的千米与英里转化作为例子导入,以毛虫与瓢虫的分类器讲解前向传播,而后通过具体讲解三层神经网络的反向传播算法,讲清楚了神经网络训练的具体原理。
第二章围绕使用Python如何构建神经网络进行阐述,书籍中也包含源码。此外还发现一些值得参考的视频,也简单整理如下: