吴恩达深度学习--神经网络与深度学习

计算图

吴恩达老师用计算图形象的说明的链式求导的问题。链式求导是反向传播算法(BP算法)的核心依据。

举个例子,如果,f是关于z的函数,z又是关于x的函数,则链式求导就是:

向量化

在深度学习中,数据的处理量往往是巨大的。为了加快运算,可以采用并行运算的方法节约运算时间,增加效率。向量化的方法就是将神经网络间的运算表示为矩阵运算的形式,从而进行并行计算;而不是使用for循环。在python中可以使用numpy库进行矩阵运算。

激活函数

神经网络需要使用非线性激活函数,否则整个神经网络就可以用一层的线性结构来代替。

常用的非线性激活函数有ReLU、sigmoid、tanh等。

sigmoid函数并不是很常用,因为在原理零点的时候,sigmoid函数导数很小,训练网络时容易产生梯度消失。所以sigmoid函数大多数只作为二元分类的最后一层的激活函数。在大多数应用场景中,它的效果不如tanh函数。

ReLU函数的优点是执行速度快。有一种改进的ReLU函数叫做leaky ReLU,它在负半轴有一个很小的正斜率。

前向传播和反向传播

前向传播和反向传播的大概结构和原理如下图所示。

BP

反向传播算法运用于训练神经网络模型,更新学习参数以得到最小的loss值。反向传播的核心思想就是利用链式求导求出每一层参数w和b的误差dw和db,按照学习率更新参数w和b。

参数和超参数

参数指的是在神经网络中可以通过训练进行改变和优化的参数,比如网络中的权值。

超参数指的是训练之前预先设定好的参数。比如学习率,迭代次数,隐藏层层数,每层的神经元个数,选择的激活函数等。