第四五周都是神经网络,或者可以称为多层感知机,由多层多分类逻辑回归单元堆叠起来的。
神经网络表示部分中,介绍了非线性假设、神经网络的逐步计算和向量化计算。
神经网络学习部分中,介绍了神经网络的代价方程,和神经网络的反向传播算法。
Neural Networks:Representation
4.1 Motivations
非线性假设 Non-linear Hypotheses

之前的分类问题,基本上都是基于线性分割,但事实上并不是所有分类问题都是线性可分的。

面对这些非线性的问题,我们就需要神经网络了。
4.2 Neural Networks
逐层逐个计算 Model Representation I
大脑中神经是由一个个神经细胞组成,每个神经细胞有轴突、树突、细胞体。
那么机器学习中的神经网络,一个个神经元就由逻辑单元来扮演。逻辑单元如之前所讲,由许多输入、激活函数(这里用sigmoid函数)和逻辑输出。
神经网络是有许多层的,每一层也有许多神经节点。
那么如上我们就构造了一个简单的神经网络,三个输入节点,三个隐藏层节点,一个输出节点。
下图展示了如何通过输入节点一步步推导到最终的输出假设。
向量化计算 Model Representation II
上一节解释了怎样用公式来推导计算神经网络的假设,那么将介绍如何通过向量化的方法进行高效地计算。
通过向量化计算,我们可以一次性求解出每一层所有节点的值,而不是一一求解。
4.3 Applications
逻辑运算 Examples and Intuitions I
这一节通过神经网络对两个0和1特征进行学习,使模型达到逻辑运算的效果。
Examples and Intuitions II


多分类 Multiclass Classification
神经网络中中间层可以有多个节点,最后输出层当然也可以有多个节点,我们可以直接构造多个分类器。

Neural Networks:Learning
5.1 Cost Function
Cost Function
之前我们学习了分类问题的代价方程,但那只有一个输出节点。
将多分类作为多个二分类处理,我们把每个二分类的代价单独计算再相加,就得到了总共的代价方程。
Backpropagation Algorithm
这一节讲述了如何在神经网络中优化代价方程,具体来说如何使用反向传播算法。
对于上一节我们定义的神经网络代价方程,我们需要优化它,那么就需要计算代价和它的各参数偏导数。
首先让我们来看看什么是前向传播算法。
前向传播就是通过输入节点一步步计算得到输出,再得到代价的过程。
计算出代价之后,我们再按照之前的反顺序,从代价求输出层的误差,再从输出层不断求前一层的误差,除了输入层。
最后得到完整的反向传播算法。
Backpropagation Intuition
上一节我们粗略的介绍了BP算法,这一节进行了更加细节的讲解。
但我觉得讲得仍然不是很好,建议去看计算机视觉深度学习课程中的BP部分,讲的更为生动。
5.2 Backpropagation in Practice
这一大节主要讲作业中怎么去实现BP。
5.3 Application of Neural Networks
介绍了一个神经网络用于自动驾驶的应用。


