00_前言

本系列教程前言

本组笔记是将我所写的小册子《神经网络基础》移至线上方便阅读,该小册子是开源下载的,点击进入发布地址,当前线上版本 0.2.6。在线版为纯 Markdown 格式,因此会做一些修改,推荐下载原 PDF 文件阅读。

关于神经网络的教学多如牛毛,在任何涉及机器学习的书中,几乎都会介绍神经网络基础,撰写此小册子也不过多此一举,但在大量实践之后,产生了不少新的理解,还有一些是在初学时就理解错的,因此撰写此书总结对神经网络的认识,也是对教会我机器学习基础的蜥蜴书《机器学习实战-基于 Scikit-Learn、Keras 和 Tensorflow》的作者 Aurélien Géron 的致敬。神经网络原理只是深度学习的基础知识,但真正写本书时,发现其细节之多也难以介绍完全,本小册子的目的就在于阐释笔者对于神经网络的全部理解,几乎是一气呵成。

学习本书,需要具备一定的高数知识,例如链式求导法则,需要熟悉概率论,需要具备一定的线性代数知识,例如在计算方面涉及到矩阵的简单运算,并且建议自行在网络上查找观看神经网络运作机制的视频,有一个大致了解后看本书更有帮助,同时鼓励读者通过其他资料补充学习。

新手通常在学习基本编程的同时学习机器学习,在这种情况下一旦碰到报错,通常只能求助于人或者网络,这又需要很强的信息检索能力,新手提问还需注意提问方法,告知程序环境、报错信息等,也先用截图的方式(切忌手机拍照)告知关键报错是什么,再进行补充,否则可能无人应答,这种情况下也不要气馁,无人应答可能是因为别人不是此领域、没时间或没看懂报错等,这并不尴尬;当然,如果你的问题恰好是别人已经碰到并且解决过的,那么对方大概率会回答你的问题,但不要指望太多:无人应答才是常态,学习者应该尽量尝试自己解决问题。

学习基础和巩固代码能力是很重要的,因为这是培养自己独立理解报错和排查错误能力的关键途径——须知,在学习过程中碰到的报错只会越来越多而不会越来越少。幸运的是 Python 和大部分常用包的报错反馈是比较清晰的。

笔者建议认真阅读 01_单层感知机 及其后面的所有部分的内容,有的地方刚开始不懂,可以跳过,看到后面之后可以再对照翻回来看看。02_神经网络 中会展示如何用现成框架搭建神经网络,也会展示如何自行编写一个简单神经网络,其代码基于笔者完成的简单 BP 神经网络实例

由于笔者能力有限,难免有错误和疏漏,欢迎联系笔者并且指正。