最近在学吴恩达的《深度学习专项》(Deep Learning Specialization)。为了让学习更有效率(顺便有一些博文上的产出),我准备写一些学习笔记。笔记的内容比较简单,没有什么原创性的内容,主要是对课堂的知识进行梳理(这些文章的标题虽然叫”笔记“,但根据我之前的分类,这些文章由于原创性较低,被划分在”知识记录“里)。如果读者也在学这门课的话,可以对照我总结出来的知识,查缺补漏。之后几节课有课后作业,我会在笔记里讲解我的编程思路,给读者一些编程上的启发。
文章中的正文主要是对课堂内容的总结。引用里的内容和每篇笔记的总结是我个人的观点或评论。
什么是神经网络
我们把一个有输入有输出的计算单元叫做“神经元”。神经元可以简单地理解成一个线性函数。比如要预测房价和房屋面积的关系,我们可以近似地用一个线性函数去拟合。这个函数就是一个神经元。
事实上,一个神经元不仅包含一个线性函数,还包括一个激活函数。这里提到了激活函数 ReLU 的概念,其具体内容应该会在后面介绍。
神经元的堆叠,构成了神经网络,如下图所示。
在用一个神经元来表示房价和房屋面积的关系时,神经元的输入是房屋面积,输出是房价。而用多层神经元时,每个神经元的意义可能都不一样。比如中间的神经元可能会根据输入的邮政编码、地址特征,输出一个表示房屋地段的中间特征。在神经网络中,这些特征都是自动生成的(意味着我们只需