第三周 浅层神经网络:
3.1 神经网络概览
3.2 神经网络表示
loss function L(a,y)
神经网络通过输入层,隐藏层和输出层。
视频中激活函数指的就是sigmoid函数
3.3 计算神经网络的输出
其中,x表示输入特征,a表示每个神经元的输出,w表示特征的权重,上标表示神经网络的层数(隐藏层为1),下标表示该层的第几个神经元。
3.4 多样本向量化
3.5 向量化实现的解释
其中多样本是从单样本进行推广矩阵来的,另外再计算的过程中不要使用For循环的形式,因为这太低效了。
3.6 激活函数
这里除了sigmoid函数外,另外介绍了tanh函数作为激活函数
吴恩达在视频中说,在讨论优化算法时,有一点要说明:我基本已经不用sigmoid激活函数了,tanh函数在所有场合都优于sigmoid函数。不过再二分类问题中因为输出的结果还是0或者1,所以需要使用sigmoid激活函数
这有一些选择激活函数的经验法则:
如果输出是0、1值(二分类问题),则输出层选择sigmoid函数,然后其它的所有单元都选择Relu函数。
快速概括一下不同激活函数的过程和结论:
sigmoid激活函数:除了输出层是一个二分类问题基本不会用它。
tanh激活函数:tanh是非常优秀的,几乎适合所有场合。
ReLu激活函数:最常用的默认函数,,如果不确定用哪个激活函数,就使用ReLu或者Leaky ReLu。
3.7 为什么需要非线性激活函数?
实际上,在我理解,就是如果使用了非线性激活函数,那么中间的很多隐藏层将起不到作用。
因为如果你是用线性激活函数或者叫恒等激励函数,那么神经网络只是把输入线性组合再输出。总而言之,不能在隐藏层用线性激活函数,可以用ReLU或者tanh或者leaky ReLU或者其他的非线性激活函数,唯一可以用线性激活函数的通常就是输出层;
3.8 激活函数的导数
主要是求三个激活函数,sigmoid、tanh和Relu函数的导数。
3.9 神经网络的梯度下降法
3.10 (选修)直观理解反向传播
3.11 随机初始化
参考链接:
深度学习
Andrew-NG
deeplearning-assignment
stanford cs20课程