机器学习P2.3~2.7学习记录

本文详细介绍了机器学习中的代价函数和梯度下降法。首先,通过简化讨论,阐述了假设函数、模型参数、代价函数及其目标。接着,探讨了一维和多维模型参数下代价函数的表现,并利用训练集实例解释了代价函数的计算。然后,引入梯度下降法作为寻找代价函数最小值的优化算法,讨论了学习率对收敛速度和稳定性的影响。最后,将梯度下降应用于线性回归,得到梯度下降的线性回归算法,并提到了凹函数与全局最优解的关系。
摘要由CSDN通过智能技术生成

1.代价函数(1)

将下方内容简化讨论:

假设函数:

  \mathit{h_{\theta }\left ( x \right )}= \theta_{0}+ \theta _{1}x

模型参数:

  \theta_{0}, \theta_{1}

代价函数:

  \textup{\textit{J}}\left ( \theta_{0}, \theta_{1} \right )=\frac{1}{2m}\sum_{i=1}^{m}\left ( \mathit{h_{\theta}\left ( x^{i} \right )-y^{i}} \right )^{2}

目标:

  \mathit{minmize}\left ( \theta_{0}, \theta _{1} \right )\textit{J}\left ( \theta_{0}, \theta_{1} \right ) 

将上面简化成为:

假设函数:

  h_{\theta }\left ( x \right )=\theta _{1}x

模型参数:

  \theta _{1}

代价函数:

  J\left ( \theta _{1} \right )=\frac{1}{2m}\sum_{i=1}^{m}\left ( h_{\theta }\left ( x^{i} \right )-y^{i} \right )^{2}

目标:

  \mathit{minimize}\left ( \theta _{1} \right )J\left ( \theta _{1} \right )

由此讨论:

  假设有一个训练集【(1,1),(2,2),(3,3)】

  分别取\theta _{1}的值进行运算,将其带入代价函数来运算,例:\theta _{1}分别取1,0.5,0,得出J\left ( \theta _{1} \right )的值为0,0.58,2.3。将J\left ( \theta _{1} \right )的函数图像画出来,得出\mathit{minimize}\left ( \theta _{1} \right )J\left ( \theta _{1} \right )=0,\theta _{1}=1。

2.代价函数(2)

由一个模型参数引申到两个模型参数的讨论:

  h_{\theta }\left ( x \right )其图像为:

  三维碗状图【曲面高度=J\left ( \theta _{0},\theta _{1} \right )的值】—>(转化)—>等高线图

  我们想要的是一个高效的算法,一个软件高效组成部分,来自动寻找代价函数J最小值(以及对应的\theta _{0},\theta _{1})。我们需要利用软件找到使函数最小的\theta _{0},\theta _{1}

3.梯度下降法(也可应用在更一般的函数上)

  等高线图所反映的“山坡”上有相关的取值点(由取值点向下梯度下降)。

  不同山坡上的点经过梯度下降,可能会得到完全不同的局部最优解。

给出梯度下降的公式:

  \theta _{j}:=\theta _{j}-\alpha \frac{\partial }{\partial \theta _{j}}J\left ( \theta _{0},\theta _{1} \right )\left ( for j=0\; or\; 1 \right )\alpha为学习效率,即每次梯度下降幅度(对应等高线图上下山扩布大小)】

 

要求\theta _{0},\theta _{1}同步更新【更自然】:

  temp_{0}=\theta _{0}-\alpha \frac{\partial }{\partial \theta _{0}}J\left ( \theta_{0}, \theta _{1} \right )

  temp_{1}=\theta _{1}-\alpha \frac{\partial }{\partial \theta _{1}}J\left ( \theta_{1}, \theta _{1} \right )

  \theta _{0}=temp_{0}

  \theta _{1}=temp_{1}

4.梯度下降法的更新规则(现在只针对而讨论J\left ( \theta _{1} \right )\theta _{1}\in R):

  \theta _{1}=\theta _{1}-\alpha \frac{\partial }{\partial \theta _{1}}J\left ( \theta _{1} \right ), 

式子中的导数值可以是正数(正向更新):\theta _{1}=\theta _{1}-\alpha \left ( positive\; number \right )

  \theta _{1}=\theta _{1}-\alpha \frac{\partial }{\partial \theta _{1}}J\left ( \theta _{1} \right )

式子中的导数值可以是负数(负向更新):\theta _{1}=\theta _{1}-\left ( negative\; number \right )

继续利用J\left ( \theta _{1} \right )来讨论\alpha(学习率):

  (1)当\alpha很小,则梯度下降缓慢;

  (2)当\alpha很大,则梯度下降可能超过最小取值,其最终可能会收敛也可能会发散。

  (3)即使在学习率不变的情况下,梯度下降也可以收敛到一个固定的最小值。

  当接近局部最小值时,导数值会自动变得越来越小,所以梯度下降将自动采取较小的幅度,这就是梯度下降的运行方式。

5.梯度下降的线性回归

【将梯度下降算法和线性回归模型相结合,得出梯度下降的线性回归算法】

\frac{\partial }{\partial \theta _{j}}J\left ( \theta_{0}, \theta_{1} \right )=\frac{\partial }{\partial \theta _{j}}\cdot \frac{1}{2m}\sum_{i=1}^{m}\left ( h_{\theta }\left ( x^{i} \right ) -y^{i}\right )^{2}=\frac{\partial }{\partial \theta _{j}}\cdot \frac{1}{2m}\sum_{i=1}^{m}\left (\theta _{0}+\theta _{1}x^{i}-y^{i} \right )^{2}

解得:

\theta _{0}:=\theta _{0}-\alpha \frac{1}{m}\sum_{i=1}^{m}\left (h_{\theta }\left ( x^{i} \right )-y^{i} \right )^{2}

\theta _{1}:=\theta _{1}-\alpha \frac{1}{m}\sum_{i=1}^{m}\left (h_{\theta }\left ( x^{i} \right )-y^{i} \right )^{2}\cdot x^{i}【同步更新\theta _{0},\theta _{1}

6.其他内容

(1)凹函数(形状向下拱):没有局部最优解,它总会收敛到全局最优。

(2)梯度下降也叫做“Batch”梯度下降【Batch(批处理)意为:每一步梯度下降,都遍历了整个训练集样本】

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值