1.二分分类
计算机存储图片,是分别获取图片的RGB值,例如下图:
然后把这些值合并成一个特征向量:
如果图片是6464的,那么特征向量x的维度=64643=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;
经过每次迭代后,根据梯度下降算法,和都进行更新:
这样经过次迭代后,整个梯度下降算法就完成了。
在深度学习中,样本数量通常很大,使用循环会让神经网络程序运行得很慢。所以,我们应该尽量避免使用循环操作,而使用矩阵运算,能够大大提高程序运行速度。