摘自——吴恩达深度学习视频
此算法适用于二分类问题
一、logistic回归的输出函数
其中, sigmoid函数的公式 如下:
二、logistic回归的代价函数
已知:logistic回归的输出函数:
上标(i)表示第i个训练样本。
单个样本的损失函数:
在学习logistic回归的参数时,为了保证优化目标是凸优化,不会采用线性回归中的均方误差来表示损失函数。而是定义如下:
m个样本的代价函数:
三、logistic回归的梯度下降法
1.单个样本的情况
单个样本的 损失函数 如下:
参数W和b的更新如下:
不断迭代,直至找到最优解或接近最优解。
计算图 如下:
①首先,反向计算出损失函数L(a,y)关于a的导数:
②损失函数L(a,y)关于Z的导数如下:
其中,sigmoid函数的导数如下:
所以,损失函数L(a,y)关于Z的导数为:
③损失函数L(a,y)关于W和b的导数如下:
④更新参数:
2.m个样本的情况
已知:代价函数J(W,b)如下:
四、logistic回归的向量化形式
目标: 实现logistic回归的向量化计算,从而不用for循环就能实现对于整个数据集梯度下降算法的优化。
定义一个 矩阵X 作为训练输入,维数为(nx,m):
从而得到 Z 如下:
在python中代码如下:
进而可以 一次性计算所有a:
五、logistic回归梯度下降法的向量化形式
注意:要确保等式两边的维数一致,这可以帮助我们确定等式是否正确,而不用太纠结于其中的数学原理。