zoukankan      html  css  js  c++  java
  • 机器学习笔记二:监督学习应用:梯度下降

    机器学习笔记二:监督学习应用:梯度下降


    • 例子:视频:算法学习司机驾驶实现自动驾驶

    • 例子:房价预测

    面积 价格
    2104 400
    1416 232
    1534 315
    852 178
    1940 240

    引入符号:

    • m:表示训练样本个数
    • x:输入变量(特征)
    • y:输出变量(目标变量)
    • (x,y):训练样本
    • 第i个训练样本:(Xi,Yi)

      一般解决过程:

      Created with Raphaël 2.1.0训练集学习算法假设End
    • 如何表示假设,这里选择线性表示:h(x)=θ0+θ1x

      注意,一般的,对于 有n个特征的假设公式:h(x)=ni=0θixi

    • 评估参数选取:
      J(θ)=12i=1m[hθ(xi)yi]2

      目标即是通过不断改变参数使得取得一个最小的值:minθJ(θ)

      • 初始参数选择对梯度下降的影响:Matlab PPT例子:导致收敛于局部最优解

      • 梯度下降法更新参数策略:迭代法更新

        θi:=θiθiJ(θ)

        • 例子:针对仅有一个特征参数的情况

        θiJ(θ)=θi12(hθ(x)y)2=(hθ(x)y)θi[hθ(x)y]=(hθ(x)y)θi[θ0x0+...+θixi+...+θnxny]=(hθ(x)y)xi

        更新:θi:=θiα(hθ(x)y)xi

        这里α 代表学习率,手动设置。

      • 批梯度下降(batch gradient descent)

        θi:=θiαj=1m(hθ(xjyj))xji

        算法不足:对大批量的训练集,下降需要的计算次数太多

      • 随机梯度下降(stochastic gradient descent):一次下降选择部分特征而非全部特征(x1,x2,...,xi,...,xm)

        即:重复ξ ,取j=1toξ 更新θi:=θiα(hθ(xj)yj)xji

      • 最小化问题的代数解法

    • 求解问题的数学表达

      θ=Jθ0...JθnRn+1

      θ:=θαθJ

    • 几个先导知识点:矩阵迹 的运算性质

      • 迹的定义:对于一个方阵,设主对角元素Aiii=1,...,n ,则迹trA=i=1nAii
      • 性质一:trABC=trCAB=trBCA
      • 性质二:AtrAB=BT
      • 性质三:trA=trAT
      • 性质四:tra=a,ifaR
      • 性质五:AtrABATC=CAB+CTABT
    • 代数法的推导:

      Xθ=x(1)Tθ...x(m)Tθ=hθ(x(1))...hθ(x(m))

      y⃗ =y(1)...y(m)

      Xθy=h(x(1))y(1)...h(x(m))y(m)

      12(Xθy)T(Xθy)=12i=1m(h(xiyi))2=J(θ)

      为了求解最小值,可以通过极值来求解:

      θJ(θ)=0⃗ 

      θ12(Xθy)T(Xθy)=12[θtrθθTXTXθtr.yTXθθyTXθ]=0⃗ 

      θJ(θ)=XTXθXTy=o⃗ XTXθ=XTyθ=(XTX)1XTy

  • 相关阅读:
    Django: ModelForm中Meta的fields等成员介绍
    python的random函数
    设置mysql隔离级别
    ubantu 下 修改mysql 默认编码
    jdbc 模板 连接
    sql 注入 与解决
    jdbc 简单连接
    动态代理 例子
    自定义的一个数据输入类
    类加载器 读取配置文件
  • 原文地址:https://www.cnblogs.com/yczha/p/13160256.html
Copyright © 2011-2022 走看看