Deep Learning(吴恩达)-神经网络基础

  • 二元分类

Deep Learning(吴恩达)-神经网络基础

结局变量为一个二元离散分类变量的时候,是一个二元分类问题。比如适用于本专题的图片分类,判定一个图片是否含有猫,则这个结局变量为有/没有。而图片反映在数据上是分辨率上的红绿蓝三通道的像素值大小,如果分辨率为64×64则共有的变量为64×64×3。

在模型识别和机器学习中,代表一个样本(object)常用一个特征向量来表示,为了将以上的例子生成一个特征向量;而这特征向量即为64×64×3=12288维。

Deep Learning(吴恩达)-神经网络基础

当拥有很m个样本(object),做训练的时候则要把这个训练集通过矩阵进行表示出来。值得注意的是在神经网络的训练过程中,常常应该把矩阵表示为以下图片中左边的形式,而不能表示为右边的形式。即训练集中每一列作为一个object,共有m列;nx是自变量有这么多维的信息,本例中是12288维。这样做的原因是利于降低神经网络训练算法的复杂性。

Deep Learning(吴恩达)-神经网络基础

  • Logistic 回归

Logistic回归是常用的进行二元分类(0,1)的模型。Logistic回归的目的是获得结局为1的概率值,并使得预测值和真实值的误差最小。转化为数学语言为如下:

Deep Learning(吴恩达)-神经网络基础

另外,我们想得到的是图片是猫的概率值,所以思路转化为如下:

Deep Learning(吴恩达)-神经网络基础

我们常规使用的方法是做一个普通线性回归方程设置w为自变量的参赛,b为截距项即:

Deep Learning(吴恩达)-神经网络基础

但存在的问题在于这个普通线性回归方程的值范围(-无穷,+无穷)并不是我们想需要的结果,也无法衡量小于0,大于1的值代表什么含义。此时就需要引入一个Simoid函数。这个函数把(-无穷,+无穷)映射到了(0,1)之间;从而很好地简历方程中参数到概率之间的关系。当线性预测值趋向于正无穷大的时候,Simoid函数值趋向于1。Sigmoid Function 如下图:

Deep Learning(吴恩达)-神经网络基础

那问题在于如何求得参数W和b呢,常规的做法是使得误差最小,建立Loss function。常规想到的Loss function如下:

Deep Learning(吴恩达)-神经网络基础

这个Loss function 带来的问题是非凸函数,无法找到全局最优值;则应该换种思路来建立Loss function 使得其最好是凸函数,具有容易找到全局最优值,所以巧妙得建立了如下Loss function。这个Function 采用分段函数的时候,使得概率值最大后最小,而且是凸函数。(问题在于如何判断一个函数为凸函数还是非凸函数?)

Deep Learning(吴恩达)-神经网络基础

Loss function 常备成为损失函数长指的是一个样本的损失函数值作为误差的度量,但对于一个训练集而言,需要使得整个训练集误差更小,需要对各个样本的损失函数值最一个加和平均。这个函数为Cost function,暂且翻译为成本函数。

Deep Learning(吴恩达)-神经网络基础

拥有了cost function,就有了成功获得w,b参数值的第一把钥匙,但是如何求得这些值,还需要梯度下降算法这个“咒语”。

我们先来看只需要涉及到单个参数的,使得cost function 最小的时候,应该怎么求出那个参数值。答案就是随机设定参数值的初始值,然后按学习率大小,以导数(偏导数)的方向和大小进行迭代,直到cost function 收敛。如下图,当w初始值在最优值的右边的时候,导数为正,w减少;当其在左边的时候,导数为负,w增大;不断逼近最优值。关于学习率的设定,得看具体精度如何跟迭代计算时间的要求。

Deep Learning(吴恩达)-神经网络基础Deep Learning(吴恩达)-神经网络基础

另外,在数学符号的书写的时候,导数和偏导数略有不同;以下左边为导数的形式,右边为偏导数的形式。

Deep Learning(吴恩达)-神经网络基础                  Deep Learning(吴恩达)-神经网络基础

  • 导数

导数为函数的斜率,从直线到曲线的导数,从简单直白的原理出发。

Deep Learning(吴恩达)-神经网络基础   Deep Learning(吴恩达)-神经网络基础

  • 前向传播和后向传播

前向传播是求cost function的过程,后向传播是求导数的过程。以一个简单的例子作为讲解:

设以下为某函数的cost funtion:

Deep Learning(吴恩达)-神经网络基础

转成神经元网络,并假设a, b, c为某值(因为梯度下降的时候,任意设定一个初始值);具体前向后向计算图如下:

Deep Learning(吴恩达)-神经网络基础

则以cost funtion 分别对偏回归系数进行求导,过程善用链式法则,具体如下:

Deep Learning(吴恩达)-神经网络基础         Deep Learning(吴恩达)-神经网络基础

那以Logistic Regression为例,如何进行前向后向传播过程。先以单个样本,只有两个自变量时候的Loss function为例:

其基本信息如下:

Deep Learning(吴恩达)-神经网络基础

需要求的是以Loss function 分别对各个自变量进行偏导数求解,策略是按照如下顺序:

Deep Learning(吴恩达)-神经网络基础

Deep Learning(吴恩达)-神经网络基础

Deep Learning(吴恩达)-神经网络基础

得到导数后,以一定的学习速率alpha,则进行以下迭代:

Deep Learning(吴恩达)-神经网络基础

当考虑有m个样本的时候,应该执行的cost funtion; 具体cost funtion值、偏导数等需要加和后求平均;梯度下降的原理采用初始随机回归系数,每一次迭代回归系数都会改变,然后cost function的值会有不同。具体如下:

Deep Learning(吴恩达)-神经网络基础

  • 向量化