不同模型代价函数的梯度下降算法

梯度下降

reprat:θj=θjαJ(θ0,θ1θn)θjforj=0,1,n r e p r a t : θ j = θ j − α ∂ J ( θ 0 , θ 1 ⋯ θ n ) ∂ θ j f o r j = 0 , 1 ⋯ , n

多维情况

对于多维特征的时候,不同特征对应的取值范围可能会相差很大,这个时候对每个特征最好是进行变换,使得各个维度上的取值范围很相似。这时候的梯度下降速度才能得到保证,要不然很能会迭代很多次才能实现收敛。

可视化收敛判断

可以画出代价函数与迭代次数的函数图形
梯度下降收敛图

简单线性回归

模型形式:

hθ(x)=θ0+θ1x h θ ( x ) = θ 0 + θ 1 x

代价函数:
J(θ0,θ1)=12mi=1m(hθ(x(i))y(i))2 J ( θ 0 , θ 1 ) = 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2

梯度下降算法:
repeatj:θ0=θ0α1mi=1m(hθ(x(i))y(i))θ1=θ1αi=1m(hθ(x(i))y(i))x(i)forj=0,1 r e p e a t j : θ 0 = θ 0 − α 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) θ 1 = θ 1 − α ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) x ( i ) f o r j = 0 , 1

多元回归

模型形式:

hθ(x)=θTX=θ0+θ1x1+θ2x2++θnxn h θ ( x ) = θ T X = θ 0 + θ 1 x 1 + θ 2 x 2 + ⋯ + θ n x n

代价函数:
J(θ0,θ1θn)=12mi=1m(hθ(x(i))y(i))2 J ( θ 0 , θ 1 ⋯ θ n ) = 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2

梯度下降算法:
repeatj:θj=θjα1mi=1m(hθ(x(i))y(i))x(i)forj=0,1,n r e p e a t j : θ j = θ j − α 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) x ( i ) f o r j = 0 , 1 ⋯ , n

多元回归参数求解的正则实现

θ=(XTX)1XTY θ = ( X T X ) − 1 X T Y

逻辑回归

模型形式:

hθ(x)=g(θTx)=11+eθTx h θ ( x ) = g ( θ T x ) = 1 1 + e − θ T x

其中函数 g(z) g ( z ) 是sigmoid函数,函数形式:

g(z)=11+ez g ( z ) = 1 1 + e − z

这样不论 z z 的取值如何,函数都会被映射到[0,1]这个区间上。
sigmoid函数
代价函数和前面线性回归模型的代价函数形式一样吗?
逻辑回归的代价函数如果定义为如下的形式:
J(θ)=12mi=1m(hθ(x(i))y(i))2 J ( θ ) = 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2

这对于一般线性模型可行的,但是对于逻辑回归却不行,原因是逻辑回归模型 hθ(x) h θ ( x ) 关于 θ θ 非凸函数,直接导致了代价函数也是非凸函数,直接求解参数的时候得到的是局部最优解,不是全局最优。所以要重新定义逻辑回归的代价函数。

逻辑回归代价函数:
重新定义逻辑回归的代价函数要从逻辑回归的本质来进行定义。首先是逻辑回归解决的是二分类的问题,采用模型预测的结果 hθ(x) h θ ( x ) 很像是归为1类的概率。当 hθ(x(i)) h θ ( x ( i ) ) 越接近于1的时候,我们就认为样本 i i 归为1类的可能性就会越大。样本归为0类的可能性【也就是概率】是1hθ(x(i)),到这里的时候我们就很容易的可以看出这就像是概率论上的伯努利分布。每个样本的分布函数如下:

P=hθ(x(i))y(i)(1hθ(x(i)))1y(i) P = h θ ( x ( i ) ) y ( i ) ( 1 − h θ ( x ( i ) ) ) 1 − y ( i )

下面要做的就是找到这样的参数 θ θ ,使得 P P 最接近于真实分布。这时就把逻辑回归的代价函数转化成了伯努利分布的极大似然估计问题
逻辑回归的代价函数:
J(θ)=1mi=1m[y(i)log(hθ(x(i))+(1y(i))(1hθ(x(i)))]

并且此时的代价函数是凸函数,不会得到局部最优解。
梯度下降算法:
reprat:θj=θjαJ(θ0,θ1θn)θjforj=0,1,n r e p r a t : θ j = θ j − α ∂ J ( θ 0 , θ 1 ⋯ θ n ) ∂ θ j f o r j = 0 , 1 ⋯ , n

下面的任务就是计算 J(θ0,θ1θn)θj ∂ J ( θ 0 , θ 1 ⋯ θ n ) ∂ θ j ,计算过程如下:
这里写图片描述
计算过程中用到了sigmod函数的导数和sigmod函数之间的关系:
g(z)=g(z)(1g(z)) g ′ ( z ) = g ( z ) ( 1 − g ( z ) )

最终的逻辑回归梯度下降算法如下:

reprat:θj=θjα1mi=1m(hθ(x(i))y(i))x(i)jforj=0,1,n r e p r a t : θ j = θ j − α 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) x j ( i ) f o r j = 0 , 1 ⋯ , n

可以看到最终的形式和线性回归的形式是相同的,虽然过程是完全不同的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值