1.二分分类

计算机存储图片,是分别获取图片的RGB值,例如下图:

深度学习笔记(二)——神经网络和深度学习(神经网络基础一)

然后把这些值合并成一个特征向量:

深度学习笔记(二)——神经网络和深度学习(神经网络基础一)

 如果图片是64深度学习笔记(二)——神经网络和深度学习(神经网络基础一)64的,那么特征向量x的维度深度学习笔记(二)——神经网络和深度学习(神经网络基础一)=64深度学习笔记(二)——神经网络和深度学习(神经网络基础一)64深度学习笔记(二)——神经网络和深度学习(神经网络基础一)3=12288。

二分分类的目的是训练出一个分类器,以图片的特征向量x作为输入,预测输出的结果标签y是1or0。

2.logistic回归及其损失函数

深度学习笔记(二)——神经网络和深度学习(神经网络基础一)

深度学习笔记(二)——神经网络和深度学习(神经网络基础一)

深度学习笔记(二)——神经网络和深度学习(神经网络基础一)

 

 损失函数:

深度学习笔记(二)——神经网络和深度学习(神经网络基础一)

成本函数:

深度学习笔记(二)——神经网络和深度学习(神经网络基础一)

我们需要找到最合适的w和b,使成本函数最小。

3.梯度下降法

成本函数深度学习笔记(二)——神经网络和深度学习(神经网络基础一)函数是一个凸函数,如下图:

深度学习笔记(二)——神经网络和深度学习(神经网络基础一)

总是具有一个最优解,因此我们可以根据下面两个公式,选定一个初始状态,进行迭代,使得深度学习笔记(二)——神经网络和深度学习(神经网络基础一)深度学习笔记(二)——神经网络和深度学习(神经网络基础一)逐渐接近最优解,最终取得最优解或者最接近最优解。

深度学习笔记(二)——神经网络和深度学习(神经网络基础一)深度学习笔记(二)——神经网络和深度学习(神经网络基础一)深度学习笔记(二)——神经网络和深度学习(神经网络基础一)为学习率)

4.logistic回归的梯度下降法

对单个样本而言,逻辑回归Loss function表达式如下:

深度学习笔记(二)——神经网络和深度学习(神经网络基础一)

该逻辑回归的正向传播过程非常简单。根据上述公式,例如输入样本深度学习笔记(二)——神经网络和深度学习(神经网络基础一)有两个特征深度学习笔记(二)——神经网络和深度学习(神经网络基础一),相应的权重深度学习笔记(二)——神经网络和深度学习(神经网络基础一)维度也是2,即深度学习笔记(二)——神经网络和深度学习(神经网络基础一)。则深度学习笔记(二)——神经网络和深度学习(神经网络基础一),最后的Loss function如下所示:

深度学习笔记(二)——神经网络和深度学习(神经网络基础一)

然后,计算该逻辑回归的反向传播过程,即由Loss function计算参数深度学习笔记(二)——神经网络和深度学习(神经网络基础一)深度学习笔记(二)——神经网络和深度学习(神经网络基础一)的偏导数。推导过程如下: 

深度学习笔记(二)——神经网络和深度学习(神经网络基础一)

知道了深度学习笔记(二)——神经网络和深度学习(神经网络基础一)之后,就可以直接对深度学习笔记(二)——神经网络和深度学习(神经网络基础一)深度学习笔记(二)——神经网络和深度学习(神经网络基础一)进行求导了。

深度学习笔记(二)——神经网络和深度学习(神经网络基础一)

则梯度下降算法可表示为:

深度学习笔记(二)——神经网络和深度学习(神经网络基础一)

深度学习笔记(二)——神经网络和深度学习(神经网络基础一)

如果有深度学习笔记(二)——神经网络和深度学习(神经网络基础一)个样本,其Cost function表达式如下:

深度学习笔记(二)——神经网络和深度学习(神经网络基础一)

Cost function关于深度学习笔记(二)——神经网络和深度学习(神经网络基础一)深度学习笔记(二)——神经网络和深度学习(神经网络基础一)的偏导数可以写成和平均的形式:

深度学习笔记(二)——神经网络和深度学习(神经网络基础一)

这样,每次迭代中深度学习笔记(二)——神经网络和深度学习(神经网络基础一)深度学习笔记(二)——神经网络和深度学习(神经网络基础一)的梯度由深度学习笔记(二)——神经网络和深度学习(神经网络基础一)个训练样本计算平均值得到。其算法流程图如下所示:

J=0; dw1=0; dw2=0; db=0;
for i = 1 to m
    z(i) = wx(i)+b;
    a(i) = sigmoid(z(i));
    J += -[y(i)log(a(i))+(1-y(i))log(1-a(i));
    dz(i) = a(i)-y(i);
    dw1 += x1(i)dz(i);
    dw2 += x2(i)dz(i);
    db += dz(i);
J /= m;
dw1 /= m;
dw2 /= m;
db /= m;

经过每次迭代后,根据梯度下降算法,深度学习笔记(二)——神经网络和深度学习(神经网络基础一)深度学习笔记(二)——神经网络和深度学习(神经网络基础一)都进行更新:

深度学习笔记(二)——神经网络和深度学习(神经网络基础一)

这样经过深度学习笔记(二)——神经网络和深度学习(神经网络基础一)次迭代后,整个梯度下降算法就完成了。

在深度学习中,样本数量深度学习笔记(二)——神经网络和深度学习(神经网络基础一)通常很大,使用深度学习笔记(二)——神经网络和深度学习(神经网络基础一)循环会让神经网络程序运行得很慢。所以,我们应该尽量避免使用深度学习笔记(二)——神经网络和深度学习(神经网络基础一)循环操作,而使用矩阵运算,能够大大提高程序运行速度。

相关文章: