2018.2.18 基于梯度上升的最优化算法

梯度上升算法求最优参数的数学公式推导

今天在学习《机器学习实战》这本书的时候,对于梯度上升算法求最Logistic回归的最优参数的那部分数学实现一直不明白,今天上午的时间,查阅了很多的资料,然后自己推导了一下数学公式。

首先,需要介绍的是Sigmoid函数,公式如下:

g(x)=11+ex
大致图像如下:

2018.2.18 基于梯度上升的最优化算法

然后我们定义一组向量z=[θ1,θ2,θ3...θn],这一些参数就是最后要求的Logistic回归模型的最佳参数.

然后我们定义一个函数

hθ(x)=g(θTx)=11+eθTx

然后,我们根据sigmoid函数的特性,我们可以得到对于样本的一个概率分布

P(y=1|x:θ)=hθ(x)

P(y=0|x:θ)=1hθ(x)

综合起来是

P(y|x:θ)=hθ(x))y((1hθ(x))1y

符号表示:

x是样本向量组,对应于机器学习实战里面是100*3的矩阵。

θTθ 向量的转置


接下来是见证奇迹的时刻,用已知的样本结果,反推最有可能(最大概率)导致这样结果的参数的值。没错,就是最大似然估计。考研这么多天,第一次感觉数学一还是学的很有用的。

我们定义似然函数

L(θ)=P(Y|X;θ)=p(y(i)|x(i):θ)=(hθ(x(i)))y(i)(1hθ(x(i)))1y(i)

先取对数

l(θ)=logL(θ)=i=1my(i)logh(x(i))+(1y(i))log(1h(x(i)))

考研数学这个时候就可以去进行求导,算极值了。但是实际环境中,函数往往很复杂,就算求出了函数的导数,也很难精确计算出函数的极值。

此时我们就可以用迭代的方法来做,一点一点逼近极值。这个时候应该引入这一章的重点内容了–基础梯度上升的最优化方法

没错,又是考研数学的内容,梯度(gradient)

我们的迭代公式为

θ=θ+αL(θ)

为什么要使用梯度,因为梯度是函数变化最快的方向,具体定义我也不记得了。

。。待续,太困了