logistic是一个用于二元分类的算法,所谓二元分类就是该预测结果只有两种类别。比如:预测图片中的是不是cat,只存在是或者不是。1代表cat,0代表non cat。如下图片:
假如cat的照片的width和height都是64x64,由于图像是一张彩色图所以是三通道的颜色值(红,绿,蓝)。所以该图像所有的颜色强度值为:64x64x3=12288即x,输入向量x的维度n.我们的目的是训练出一个分类器,它以图片的特征向量x作为输入,预测输出的结果标签y,是1还是0.
下图所示是sigmoid函数图形:
具有如下特性: 1.sigmoid(z)的值在0-1范围内。 2.当z是一个很大的数值时,sigmod的值为1. 3.当z时一个很小的数值时,simoid的值为0. 4.z=0,sigmoid(z)=0.5 Logistic Regression模型通用的是结构是:
y=w^Tx+b
我们通过训练集找到了w和b,训练出来的预测值希望更接近于实际的值。那么如何衡量预测值和实际值?我们引入Loss Function和Cost Function。
依据上面的代价函数,我们通过随机梯度下降算法来找到一个w,b使得代价函数最小化。需要清除的是,现在x是训练数据集是已知的,我们对w,b是未知的。此时你可以为理解为w,b是自变量,J是因变量。刚开始时,w,b都是随机取得数值,一般都取值为0. 我们来看一下如下图所示:
在研究多元变量函数极值问题中,可以采用研究一元函数极值问题。我们假定b固定,来看一下w的变化:
为了计算 下面是前向传播的示意图:
我们做的就是来变换w1,w2和b的值使得,损失函数最低。 如果我们想计算L的导数,那么首先计算L关于a的偏导数即da,那么我们需要继续求得关于dz的导数,最后在求出dw1。 下面我们看看在多样本情况下即m个样本情况下如何计算的?
我们通过cost function看到是基于loss function的平均,由于知道之前loss function的导数把他们应用在所有样本集即可。如下图所示: