zoukankan      html  css  js  c++  java
  • 机器学习公开课笔记第二周,线性回归的梯度下降法

    一,梯度下降法Gradient Decent

    当我们以线性回归的模型来拟合我们的数据集时,我们如何来确定假设函数的参数值呢?

    首先我们以两个参数为例,即Hθ(x) = θ0 + θ1X,也就是一个一次函数,而代价函数,我们为了尽量拟合数据集,也就是选择合适的θ0(截距) θ1(斜率)使代价函数J(θ0,θ1)最小,

    • 那我们该如何计算θ0, θ1

    假设θ0=0,代价函数J就转变为关于θ1的二次函数,因为开平方,所以二次项的系数一定是正数(高中数学),所以代价函数J一定有最小值

    此时我们可以画出J(θ1)的一种可能的二次函数分布图

    由图可知,当θ1=1时,J最小

    • 那我们如何得到使J最小的θ1值呢?

    我们可以任取曲线上的一个θ,让它往最小值的方向移动,那我们怎么知道该往左移还是右移?

    我们观察曲线发现,最低点(最小值)的斜率为0,最低点的左侧斜率小于0,右侧大于0,只需让θ减去该点的斜率就可以让它往最低点移动,当斜率为0时它就停在了最低点,也就是收敛于1

    • 如果θ0一开始不设为0呢?

    那我们可以画出关于代价函数J(θ12)的三维图

    我们同样选取任意一点(θ12),通过减去他们各自的在该点的斜率来到打最低点

    数学上称这种求自求点斜率的方法为偏导,这种通过减去斜率的方法称为梯度下降法(Gradient Decent)

     

    那我们如何确定向最低点移动的速度呢?

    一方面是由该点的斜率来决定,另外由一个系数α学习速率决定,

    1,α不能设太大,太大有时会越过最低点,不能使θj收敛于最低点使结果发散

    2,α太小会使程序运行速度太慢

    3,随着θ越来越接近最小值,偏导数越来越小,所以没有必要逐渐随着迭代次数的增加减小学习速率α

      对每次的移动必须同时进行,并和成各个方向上的位移,即每一次减偏导必须对每个θj同时进行

     两个参数的线性回归求完偏导数之后每次迭代的公式

     多个参数的线性回归求完偏导数之后每次迭代的公式

    梯度下降法会到达局部最低点(由起点决定,即θ1θ2的初始值决定),不一定会到达全局最优点

    二,梯度下降法的优化方法

    1,特征缩放(Feature Scaling)

    当不同的特征值大小范围不一致时,算法运行效率会很低,我们一般把它缩放到-1<=x<=1或,-0.5<=x<=0.5,通过(x-mean)/range公式,

     2,学习速率α

    如何确定学习速率并不是一件简单的事

    一种方式是绘制一张横坐标是迭代次数,纵坐标是代价函数的函数图,看是否单调递减,如不是需要减小学习速率α

    总的来说,学习速率太小,代价函数收敛太慢,程序云星很慢,学习太大,代价函数没有单调递减,甚至可能会发散,也就到不了最小值

    3,特征和多项式回归(Features and Polynomial Regression)

    当我们拿到数据集先可以进行预处理,使机器学习的结果更好

    1)我们有时可以根据各个特征之间关系来合并特征,比如说房子的长度和宽度,我们可以让他们相乘合成一个新的特征面积

    2) 我们之前线性回归的假设函数都是多元一次函数,如果我们的想要多元多次的假设函数呢?Hθ(x) = θ0 + θ1X2, 我们可以用新的特征来表示X'来表示X2,一样能转化为多元一次表示假设函数Hθ(x) = θ0 + θ1X',

      不过需要注意的事,X的范围也随着新的特征放大了,要进行特征缩放

    4,正规方程(Normal Equation)

    还有一种在线性代数中叫做正规方程的数学方法求θ

     

    梯度下降法和正规方程各有各的优点,以下是他们的区别,总的来说,

    1,梯度下降法需要选择学习速率,正规方程不需要

    2,梯度下降法需要迭代,正规方程不需要

    3,梯度下降法时间复杂度是(KN2),正规方程时间复杂度是O(N3)

    当特征少于10000时,使用正规方程,否则使用梯度下降法

     

  • 相关阅读:
    1.12学习总结:分区
    1.11学习总结:持久化
    1.10学习总结:RDD的行动操作
    1.9学习总结:RDD的转换操作
    1.8学习总结:RDD创建
    1.7学习总结:pyspark实例WordCount
    1.6学习总结:Spark集群的高可用配置
    1.5学习总结:安装Spark
    毕业设计第四周第七天完成情况汇总
    毕业设计第四周第五天完成情况汇总
  • 原文地址:https://www.cnblogs.com/xchaos/p/6540888.html
Copyright © 2011-2022 走看看