机器学习算法(四)逻辑回归续

本文探讨了逻辑回归中梯度下降函数的建立及其优点和局限,介绍了如何通过牛顿法求解,并引入正则化来防止过拟合。通过拉普拉斯和正态分布的例子,解释了如何通过最大似然方法添加正则项进行参数优化。
摘要由CSDN通过智能技术生成

在第(三)部分中,建立了梯度下降函数J(\theta ),可是不知道为什么这么建?有什么好处与不足?还有没有其他方法构建?

J(\theta )=-\frac{1}{m}[\sum_{i=1}^{m}(y_{i}logh_{\theta}(x_{i})+(1-y_{i})log(1-h_{\theta}(x_{i})))]

这个式子是在L式上求平均值,也就平均预测概率达到最大之后取了一个负,导致J取最小值。

在机器学习中叫损失函数的,衡量的是模型预测错误的程度。上面就是取整个数据集上的平均对数似然损失。

在逻辑回归模型中,最大化似然函数最小化损失函数实际上是等价的。

牛顿法

求解逻辑回归的方法有非常多,还有牛顿法。牛顿法的基本思路是,在现有极小点估计值的附近对 f(x) 做二阶泰勒展开,进而找到极小点的下一个估计值。这个方法需要目标函数是二阶连续可微。

假设在\theta _{0}处,为当前的极小值估计值:

\varphi (\theta )=J(\theta_{0} )+J^{'}(\theta_{0} )(\theta -\theta _{0})+\frac{J^{''}(\theta _{0})}{2}(\theta -\theta _{0})^{2}+O(\theta )

\varphi ^{'} (x)=0,得

\varphi ^{'} (x)=J^{'}(\theta _{0})+\theta J^{''}(\theta _{0})-\theta _{0}J^{''}(\theta _{0})=0

\theta =\theta_{0}-\frac{J^{'}(\theta _{0})}{J^{''}(\theta _{0})}

如果初始值为\theta _{0},那么经过一次迭代改为\theta。经过多次迭代达到最优。

正则化

第一次听到这个东西让人无法理解,英语:regularization,意思为:the act of changing a situation or system so that it follows laws or rules, or is based on reason。

就是改变一下前面做的最大化似然函数最小化损失函数。目的就是让它更好地遵守规则。

机器学习,学习什么?就是找到其中的一些规律而已,更直白一点找到合适的参数。

前面的回归,能够找到一些规律,但是多次实验后发现,这些规律会出现一些问题:过拟合。

因为我们用的是误差或者损失最小化,当然误差为0是最好。计算机就不找规律了,直接记住数据就好了。

特别是样本较小时,当你用样本的数据来预测,准确率为100%,当用其它数据来预测,效果就非常差。

为了解决这一个问题。必须另加一项,用于奖惩。当做得好时,就给予奖励;当做得不好时,就给予惩罚。用什么作为奖惩项?学过统计学的同学就想,要不先给参数一个分布。极大似然时,能想到拉普拉斯分布、正态分布。

拉普拉斯分布:

f(x|\mu ,b)=\frac{1}{2b}e^{-\frac{|x-\mu |}{b}}    

 \mu是位置参数, b是尺度参数。

把这项乘到最大化似然函数去。

L(\theta )=\prod_{i=1}^{m}h_{\theta}(x_{i})^{y_{i}}(1-h_{\theta}(x_{i}))^{1-y_{i}}\prod_{j=1}^{d}\frac{1}{2b}e^{-\frac{|\theta-\mu |}{b}}

两边取对数:

-ln(L(\theta))=-[\sum_{i=1}^{m}(y_{i}lnh_{\theta}(x_{i})+(1-y_{i})ln(1-h_{\theta}(x_{i})))]+\frac{1}{2b^{2}}\sum_{j=1}^{d}|\theta-\mu |

再同除以m:

J(\theta)=-\frac{1}{m}ln(L(\theta))=-\frac{1}{m}[\sum_{i=1}^{m}(y_{i}lnh_{\theta}(x_{i})+(1-y_{i})ln(1-h_{\theta}(x_{i})))]+\frac{1}{2mb^{2}}\sum_{j=1}^{d}|\theta-\mu |

代入梯度下降更新:

\theta_{j}:=\theta_{j}-\alpha \frac{\partial }{\partial _{\theta_{j}}}J(\theta)

为了好计算,我假设u=0。

\theta _{j}:=\theta_{j}-\alpha \frac{1}{m}\sum _{i=1}^{m}(h_{\theta}(x_{i})-y_{i})x_{i}^{j}+\frac{\alpha d}{2mb^{2}}

正态分布:

f(x|\mu,\sigma )=\frac{1}{\sqrt {2 \pi} \sigma}e^{-\frac{(x-\mu)^2}{2\sigma^{2}}}

代入

L(\theta )=\prod_{i=1}^{m}h_{\theta}(x_{i})^{y_{i}}(1-h_{\theta}(x_{i}))^{1-y_{i}}\prod_{j=1}^{d}\frac{1}{\sqrt {2 \pi} \sigma}e^{-\frac{(\theta-\mu)^2}{2\sigma^{2}}}

两边取对数,令u=0:

-ln(L(\theta))=-[\sum_{i=1}^{m}(y_{i}lnh_{\theta}(x_{i})+(1-y_{i})ln(1-h_{\theta}(x_{i})))]+\frac{1}{2\sigma^{2}}\theta^{T}\theta

J(\theta)=-\frac{1}{m}ln(L(\theta))=-\frac{1}{m}[\sum_{i=1}^{m}(y_{i}lnh_{\theta}(x_{i})+(1-y_{i})ln(1-h_{\theta}(x_{i})))]+\frac{1}{2m\sigma^{2}}\theta^{T}\theta

代入梯度下降更新:

\theta _{j}:=\theta_{j}-\alpha \frac{1}{m}\sum _{i=1}^{m}(h_{\theta}(x_{i})-y_{i})x_{i}^{j}+\frac{\alpha}{m\sigma^{2}}\theta_{j}

理论完毕,实践待续。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bowen2006

你的鼓励是我的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值