李宏毅深度学习笔记(六)逻辑回归

设置函数

我们可以找到一个函数 P w , b ( C 1 x ) P_{w,b}(C_1|x) ,如果 P w , b ( C 1 x ) 0.5 P_{w,b}(C_1|x)\ge0.5 则输出 C 1 C_1 ,否则输出 C 2 C_2
逻辑回归的模型如下:
P w , b ( C 1 x ) = σ ( z ) P_{w,b}(C_1|x)=\sigma(z)

z = w x + b = i = 1 n w i x i + b z=wx+b=\sum_{i=1}^nw_ix_i+b

σ ( z ) = 1 1 + e x p ( z ) \sigma(z)=\frac{1}{1+exp(-z)}
在这里插入图片描述
所以我们设置函数为:
在这里插入图片描述

判断函数的好坏

假设我们有下面的一组数据:
在这里插入图片描述
我们假定数据是依据函数 f w , b ( x ) = P w , b ( C 1 x ) f_{w,b}(x)=P_{w,b}(C_1|x) 生成的,那么接下来我们就要求取参数 w w b b 了。
我们定义:
在这里插入图片描述
最有可能让训练集呈现上面的样子的是使 L ( w , b ) L(w,b) 最大的 w w^* b b^* ,即:
在这里插入图片描述
为了简化计算,我们对上式进行一下转换:
在这里插入图片描述
这时候原本的乘法就变成了加法:
在这里插入图片描述
又(这里用到了交叉熵.),我们定义 l n L ( w , b ) -lnL(w,b) 为交叉熵损失函数
在这里插入图片描述在这里插入图片描述

找一个最好的函数

交叉熵损失函数对 w i w_i 求偏导(这里用到了求导的链式法则)
在这里插入图片描述
进行化简得:
在这里插入图片描述

逻辑回归和线性回归的对比

在这里插入图片描述

为什么逻辑回归不用平方损失函数

如果我们在逻辑回归中用了平方损失函数的话:
在这里插入图片描述
我们可以看到,如果目标值 y ^ n = 1 \hat y^n=1 ,当 f w , b ( x n ) = 1 f_{w,b}(x^n)=1 时,偏导数为0,也就是说因为我们计算出来的值跟目标值是一样的所以不需要更新,这是正确的。但当 f w , b ( x n ) = 0 f_{w,b}(x^n)=0 的时候,平方损失函数的偏导数为0,也就是说不需要更新,但事实上我们的计算值离实际值很远。
同样的情况会出现在 y ^ n = 0 \hat y^n=0 中。
在这里插入图片描述

发布了26 篇原创文章 · 获赞 11 · 访问量 1531

猜你喜欢

转载自blog.csdn.net/comli_cn/article/details/102995257