线性回归
线性回归预测函数:
h_{\theta}(x)=\theta^{T}x
逻辑回归预测函数:
h_{\theta}^{(x)}=\frac{1}{1+e^{-\theta^{T}x}}
线性回归损失函数:
J(\theta)=\frac{1}{2m}\sum_{i=1}^m(h(\theta^{(i)}-y^i))^2+\frac{\lambda}{2m}\sum_{j=1}^m\theta_j^2
逻辑回归损失函数:
MSE直接应用到LR中会导致损失函数变成非凸函数,所以我们加入log让损失函数变成了凸函数
极大似然(二项分布中):
非二项分布:
(特定采样结果出现的概率累乘)
由于小数连乘操作可能造成下溢,一般会采用极大对数似然进行计算
极大对数似然(二项分布中):
非二项分布:
损失函数(经验损失+结构损失):
J(\theta)=-\frac{1}{2m}\sum_{i=1}^m(y^ilog{h_\theta(x^i)}+(1-y^i)log(1-h_\theta x^{(i)})^2+\frac{\lambda}{2m}\sum_{j=1}^m\theta_j^2
两者损失函数求导后,除了假设函数不一样,表示形式是一样的:
损失函数中参数倍数变化并不会影响最优值的最终结果
h_{\theta}^{(x)}=\frac{1}{1+e^{-\theta^{T}x}}
其中\theta是收敛之后得到的结果
根据sigmoid曲线,h_{\theta}≥0时,置为1;否则置为0
当我们把线性回归的代价函数放到逻辑回归上使用时,会发现代价函数J由凸函数(convex)变成了有很多局部最大值的非凸函数,导致寻找最小值变得困难,所有我们选择了另一种能使LR变成凸函数的代价函数。
而对数函数log的曲线,能让代价函数变为凸函数的方程吗?
分析
化简
得到如下结果,使用了==极大似然法==(能够在统计学中能为不同模型快速寻找参数),并且结果是凸函数
\begin{align} J(\theta) & = \frac{1}{m}\sum_{i=1}^mCost(h_{\theta}(x^{(i)},y^{(i)}))\\ & = -\frac{1}{m}[\sum_{i=1}^my^{(i)}logh_\theta(x^{(i)})+(1-y^{(i)})log(1-h_\theta(x^{(i)}))] \end{align}
参数梯度下降:
==可以发现,求导后线性回归和逻辑回归的公式是一样的,但是他们的假设函数h(θ)是不同的,所以两个函数梯度下降公式是不同的==
求导sigmiod得到\partial_{sigmoid}=sigmoid[1-sigmoid]
实现比梯度下降法复杂很多,但是基本上都有封装好的库,如python中的scipy.optimize.fmin_bfgs
训练多个逻辑回归分类器,然后将输入放到各分类器中,将输入归类为得分值最大的类别即可
加入惩罚项后,会降低高维参数的值,让他们趋于0(也就是==简化假设模型,限制模型参数,保持参数尽量小==),这样能让假设h函数变得更加的平滑
我们不知道哪些参数是高维的,该去降低哪些参数的维度,在代价函数中加入正则化惩罚项,对每个参数进行限制
公式:
==简化假设模型,限制模型参数,保持参数尽量小==,\lambda作用是控制两个不同目标之间的取舍,设置合适的\lambda参数防止模型欠拟合或者无明显作用
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有