码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • python机器学习之梯度下降法


    系列文章目录

    第一章 Python 机器学习入门之线性回归
    第一章 Python 机器学习入门之梯度下降法

    梯度下降法

    • 系列文章目录
    • 前言
    • 一、梯度下降法
      • 1.梯度下降法简介
      • 2.基本原理
    • 梯度下降函数效果展示

    前言

    上一篇文章里面说到了用梯度下降法来对最小化代价函数和模型参数进行求解,那究竟是为什么呢?

    一、梯度下降法

    1.梯度下降法简介


    梯度下降百科的定义:
    梯度下降法(Gradient descent)是一个一阶最优化算法,是迭代法的一种,用于求解最小二乘问题

    这上面的说法更像是阐述了梯度下降法的性质和作用,博主偏私人的理解是该算法是指在求解最小化代价函数和模型参数的过程中沿着梯度下降的方向来一步步迭代求解的算法,听起来好像还是有点问题,什么是梯度?

    梯度百科定义:梯度的本意是一个向量(矢量),表示某一函数在该点处的方向导数沿着该方向取得最大值,即函数在该点处沿着该方向(此梯度的方向)变化最快,变化率最大(为该梯度的模)

    这个其实比较好理解了,我们高中时就学过导数这一概念,导数是判断函数变化程度的函数,往往用在寻找函数的极大值和极小值上,这通常用于二维平面上;而梯度就是寻找函数变化程度最大的某个方向,属于三维立体方向。
    那梯度下降法就是在此基础上寻找函数的局部最小值或全局最小值,由此也可以推导出梯度上升法,是在此基础上寻找函数的局部最大值或全局最大值,这里就不过多阐述了。

    2.基本原理

    从最简单的线性回归模型来说,它的模型函数为
    在这里插入图片描述

    损失函数如下,h(x)为模型预测值,y为实际值,计算二者误差平方用来判断损失
    在这里插入图片描述

    而梯度下降函数形式为,意为接下来的模型参数θ_(n+1)等于当前的模型参数θ_(n)减去学习率a乘以损失函数对当前模型参数求偏导
    在这里插入图片描述

    到这一步是不是有点懵,接下来我们就来推导一下;首先我们使用泰勒近似定理的一阶展开式子(下面的倒三角标识梯度)
    在这里插入图片描述

    因为我们的目的是让损失函数最小化,易知
    在这里插入图片描述

    因此推导出
    在这里插入图片描述

    而我们希望上面这个式子越小越好,这样我们每次迭代的变化量就会很大,更快地找到最小化损失函数;我们注意到θ_(n+1)和∇J(θ)均为向量,根据向量相乘定理,当向量夹角为180度时,二者最小,因此推导出
    在这里插入图片描述
    上式意为沿着∇J(θ)相反方向的一个向量,k代表变化程度,属于一个未知变量,k右边的式子代表单位向量,因此将它们化简得出
    在这里插入图片描述

    梯度下降函数效果展示

    在这里插入图片描述

  • 相关阅读:
    超宽带uwb精准定位,厘米级室内定位技术,实时高精度方案应用
    服务器之间传递数据脚本
    FIFO有名管道
    R语言data.table导入数据实战:data.table数据列名称的重命名(rename)
    【47C++STL-常用算法----5、常用算术生成算法
    电子学会C++编程等级考试2023年05月(一级)真题解析
    微服务项目,请求从发出到后端处理器的历程
    CI /CD学习
    二十七、CANdelaStudio深入-编辑技巧(一致性检查)
    C选择结构程序设计
  • 原文地址:https://blog.csdn.net/weixin_43575792/article/details/133613887
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号