机器学习入门(第二天)

本文介绍了梯度下降算法及其在多维特征和线性回归中的应用,探讨了批量梯度下降、特征缩放(包括归一化方法)以及学习率对算法收敛的影响。同时强调了特征工程在特征选择和转换中的关键作用,以及多项式回归作为非线性拟合的实例。
摘要由CSDN通过智能技术生成

3 梯度下降

我们要找出一个w和b的值使J最小,事实证明可以使用一中称为梯度下降的算法来做到这一点。梯度下降不仅用在线性回归模型上,还会用在深度学习上。梯度下降背后的思想是:开始时我们随机选择一个参数的组合来计算代价函数,然后我们寻找下一个能让代价函数值下降最多的参数组合。我们持续这么做直到到到一个局部最小值(local minimum),因为我们并没有尝试完所有的参数组合,所以不能确定我们得到的局部最小值是否便是全局最小值(global minimum),选择不同的初始参数组合,可能会找到不同的局部最小值。

批量梯度下降(batch gradient descent)算法的公式为:

其中是\alpha学习率(learning rate),它决定了我们沿着能让代价函数下降程度最大的方向向下迈出的步子有多大,在批量梯度下降中,我们每一次都同时让所有的参数减去学习速率乘以代价函数的导数。一般情况下会将学习率设为0.01,如果学习率设置的过大,那么我们一步迈的步子就太大了,可能会错过局部最小值无法收敛甚至发散,而学习率设置太小了,梯度下降算法会起作用但是耗时耗力。

批量梯度下降”,指的是在梯度下降的每一步中,我们都用到了所有的训练样本,在梯度下降中,在计算微分求导项时,我们需要进行求和运算,所以,在每一个单独的梯度下降中,我们最终都要计算这样一个东西,这个项需要对所有m个训练样本求和。

4 多维特征

        原始版本的线性回归中只有一个特征,但是多种特征会提供给我们更多的信息来进行预测,此时我们的函数f_{w,b}(x)=w_{1}x_{1}+b就变成了f_{w,b}(x)=w_{1}x_{1}w_{2}x_{2}w_{3}x_{3}w_{4}x_{4}+...+b,这里可以得到两个行向量\vec{w}\vec{x}。简化上面的函数可以得到f_{\vec{w},b}(\vec{x})=\vec{w}\vec{x}+b。此时我们一般会使用numpy的功能进行向量的内积,f=np.dot(w,x)+b加速代码的运行,因为numpy函数可以使用并行硬件,并行计算是向量化学习算法让算法高效运行的关键。还有一种正规方程法也可以替代梯度下降法来计算仅线性回归类问题。

此时我们的梯度下降算法的过程如下:

5 特征缩放

        当这个数据中有不同的特征,他们的取值范围非常不同时可能会导致梯度下降运行缓慢,所以我们可以重新缩放不同的特征使他们都具有可比较的取值范围。

f_{w,b}(x)=w_{1}x_{1}w_{2}x_{2}+b

第一种归一化方式,除以最大值得到0-1的范围

第二种归一化方式叫做“均值归一化”,首先找到x1的平均值M1,用x1-M1/最大值-最小值,如下图所示。

第三种归一化方式叫做“z-score归一化”,首先要计算每一个特征的标准差\delta1,再根据图中式子进行归一化

特征缩放的意义在于将两个特征放在同一量级进行比较,可以更好地进行梯度下降,所以最后缩放的特征在-3-3或者0-3、-2-0都没有问题,当然重新缩放也没有问题。但是如果特征在0-100或者0-0.001就需要重新缩放了。

6 梯度下降是否收敛

梯度下降的工作是希望找到最小化代价cost的参数w和b,在梯度下降的每一次迭代更新w和b后绘制j的位置,那么我们可能得到这样一条学习曲线,此时梯度下降就是收敛的,并且每一次梯度下降的迭代后j值都会下降。

梯度下降能否良好运行还有一个重要参数:学习率\alpha,如果\alpha取的太小了他会运行地很慢,如果\alpha太大了那么可能不会收敛。如果绘制学习曲线时有时上升有时下降,此时梯度下降运行出错可能是\alpha太大了;可以动态调参进行学习率的选择,如0.001,0.01,0.1,1等。

对于很多实际应用而言,选择或输入正确的特征是使算法良好运行的关键。创建一个新特征是所谓特征工程的一个例子,可以根据自己的知识来设计新特征,通常是通过转换或组合问题的原始特征来使学习算法更容易做出准确的预测。例如房屋的面积比长和宽两个特征更加有效。特征工程不仅可以让我们拟合直线,还可以拟合曲线、非线性函数来拟合数据。

接下来让我们采用多元线性回归和特征工程的思想提出一种称为多项式回归的新算法,这个新算法可以将曲线、非线性函数拟合到数据中。如图所示就是多项式回归的示例,选择了特征x并将其提升为2次3次幂,在这里要说明一下,如果特征工程创建的特征是原始特征的二次方三次方,那么特征的缩放就变得更加重要。

  • 36
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值