Python 机器学习入门之牛顿法

news2024/11/19 2:16:58

系列文章目录

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

梯度下降法

  • 系列文章目录
  • 前言
  • 一、牛顿法
    • 1.牛顿法简介
    • 2.基本原理
  • 总结

前言

上一篇文章里面说到了梯度下降法,它是使用泰勒近似定理保留一阶梯度并舍弃高阶梯度,那如果保留二阶梯度呢?这就是牛顿法的核心思想

一、牛顿法

1.牛顿法简介

用目标函数的二阶泰勒展开近似该目标函数,通过求解函数的极小值来求解凸优化的搜索方向;举个例子如果当前有个小球处于山谷中,想要最快地到达谷底,梯度下降法每次移动会找到坡度最大的方向,而牛顿法则不仅会考虑坡度是否够大,还会考虑你走了一步之后,坡度是否会变得更大;

根据wiki上的解释,从几何上说,牛顿法就是用一个二次曲面去拟合你当前所处位置的局部曲面,而梯度下降法是用一个平面去拟合当前的局部曲面,通常情况下,二次曲面的拟合会比平面更好,所以牛顿法选择的下降路径会更符合真实的最优下降路径;

下图是两种方法到达谷底的路径图,可以明显看出牛顿法相比梯度下降法更快到达谷底,主要原因就是梯度下降法只考虑局部的最优解,而牛顿法往往从全局出发。
在这里插入图片描述

2.基本原理

我们还是用线性回归模型举例子,它的模型函数为
在这里插入图片描述

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

先对上述损失函数进行二阶泰勒展开,其中的g(𝜃_𝑛 )又称雅克比矩阵,H(𝜃_𝑛 )又称海森矩阵
在这里插入图片描述

牛顿法的关键思想就在于它希望下一步就是最优解或者极值,也是说𝐽(𝜃_(𝑛+1) )等于极小值,那想要满足这种情况需要以下两个条件
在这里插入图片描述

条件一g(𝜃_(𝑛+1) )=0 就是我们推导牛顿法式子的关键所在,我们知道想要满足如果下一步损失函数值为极值的条件,它所在位置的一阶梯度应该为0,注意这是一个必要条件,它不能确保下一步一定能到达极值点,但如果没有它就不可能到达极值点,因此我们对二阶泰勒展开式子两边进行求导得出下列解
在这里插入图片描述

模型参数𝜃就沿着该方向移动到达下一位置即可,而该方向又被成为牛顿方向,牛顿法是没有步长这一概念的,因为它每一步都是当前状态下所能走出的最大步长,不需要我们人为设置;


我们再来说说条件二,从条件一我们知道每步移动的方向,但是什么时候能找到极小值或者最小值呢,我们就需要条件二了,将上述泰勒公式转为矩阵形式如下
在这里插入图片描述

已知g(𝜃_(𝑛+1) )=0,𝐽((𝜃_1 ) ⃗+ (∆𝜃) ⃗ )和𝐽( (𝜃_1 ) ⃗ )的差值就由下式决定,它本质就是判断H(𝜃_1)是否是正定矩阵,相关知识可以搜索线代正定矩阵
在这里插入图片描述

我们可以得出以下结论
在这里插入图片描述

如果满足条件二,函数只需一步就可以得到极值,相比梯度下降法会快很多;然而大多数情况下,我们往往遇到的都是第三种不确定的情况,这就要需要新的优化方法来解决,也就是拟牛顿法,该方法我们下次再讲。

总结

上述文章内容如果存在错误,欢迎大家批评指正!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1081896.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

第18篇ESP32platformio-arduino框架-ili9488-3.5lcd显示时间天气

第18篇ESP32platformio-arduino框架-ili9488-lcd显示时间天气 第18篇esp32ili9488lcd显示时间天气 连接方法: 修改WIFI: 关键代码 void setup() {Serial.begin(115200);WiFi.mode(WIFI_STA);WiFi.begin(ssid,password);Serial.print("\r\nConnect…

codesys【软PLC】

软plc一般安装在工控机里。或者笔记本等小型电脑内。 电视盒子需要:刷个armbain 软件下载地址: CODESYS商城-商品列表 A:是实时系统 B:非实时 C:这个不能单独运行,需要在B的基础上。开启了多核线程…

国际教材概念基础

各种区别 缩写 A-LEVEL(大学预科):General Certificate of Education Advanced Level AP:Advanced Placement(美国地区:美高AP) GCSE:General Certificate of Secondary Educati…

下载调试器 JTAG和SWD

下载调试器 JTAG和SWD 作为嵌入式工程师,下载调试器 JTAG和SWD是经常使用的,但你真正了解其SWD 和 JTAG接口的含义和区别吗? 一、什么是下载调试器? 下载调试器是将PC(例如通过USB协议)发送的命令转换为…

数组的reduce和reduceRight方法

1.reduce方法可用接收两个参数: 第一个参数:为一个回调函数,此回调函数又可以有四个参数 第1个参数:为上一次回调函数return的结果,首次默认为第二个参数值,如果没有第二个参数值,则默认当前数…

[Mono Depth/3DOD]单目3D检测基础

1.数据增强 图像放缩和裁剪后,相机内参要做相应变化 import random def random_scale(image, calib, scale_range(0.8, 1.2)):scale random.uniform(*scale_range)width, height image.sizeimage image.resize((int(width * scale), int(height * scale)))cali…

4.03 用户中心-订单管理功能开发

用户中心-订单管理功能开发: (1)包含用户订单的查询根据订单并进行分页 (2)订单的确定和交易关闭订单删除 详细内容,查询地址:http://www.gxcode.top/code 页面下载地址:

【C++】神奇字符串(力扣481)

神奇字符串的规律: 神奇字符串 s 仅由 ‘1’ 和 ‘2’ 组成,并需要遵守下面的规则: 神奇字符串 s 的神奇之处在于,串联字符串中 1 和 2 的连续出现次数可以生成该字符串。 s 的前几个元素是 s “1221121221221121122……” 。如果…

项目管理过程组

项目管理有2条主线,一条是技术,一条是管理。项目过程由项目团队实施。一般术语以下两大类之一:一类是项目管理过程。另一类是面向产品的过程。在大多数情况下,大多数项目都有共同的项目管理过程。它们通过有目的的实施而互相联系起…

界面组件DevExtreme v23.2新功能预览 - 增强Material主题功能

界面组件DevExtreme v23.2即将在几个月之后交付,本文将带大家预览一波新功能。 DevExtreme拥有高性能的HTML5 / JavaScript小部件集合,使您可以利用现代Web开发堆栈(包括React,Angular,ASP.NET Core,jQuer…

IOday3作业

#include <head.h> int get_filePerrmison(mode_t mode)//获取文件权限 {char per[] "rwx";for(int i0;i<9;i){if((mode&(0400>>i))0){putchar(-);continue;}putchar(per[i%3]);}} int get_fileType(mode_t m) //获取文件类型 {switch(m&S_IF…

蓝桥杯每日一题2023.10.11

子串分值和 - 蓝桥云课 (lanqiao.cn) 题目描述 题目分析 以下为50分方法&#xff08;暴力枚举&#xff09; 第一层循环枚举其长度&#xff0c;第二层循环枚举其左端点&#xff0c;k代表右端点&#xff0c;&#xff08;将每一种子串一一枚举出来&#xff09;算出从左端点到右…

关于Vuex的基础使用存值及异步

目录 一.概述 二.取值 2.1.安装 2.2.菜单栏 2.3.模块 2.4.引用 三.改值 四.异步&后台请求 好啦今天就到这里了希望能帮到你哦&#xff01;&#xff01;&#xff01; 一.概述 Vuex 是一个用于 Vue.js 应用程序的状态管理库。它主要用于集中管理应用程序中的共享状态&a…

kafka详解(三)

2.2 Kafka命令行操作 2.2.1 主题命令行操作 1&#xff09;查看操作主题命令参数 [aahadoop102 kafka]$ bin/kafka-topics.sh2&#xff09;查看当前服务器中的所有topic (配置了环境变量不需要写bin/) [aahadoop102 kafka]$ bin/kafka-topics.sh --bootstrap-server hadoop10…

vue3组件的通信方式

一、vue3组件通信方式 通信仓库地址:vue3_communication: 当前仓库为贾成豪老师使用组件通信案例 不管是vue2还是vue3,组件通信方式很重要,不管是项目还是面试都是经常用到的知识点。 比如:vue2组件通信方式 props:可以实现父子组件、子父组件、甚至兄弟组件通信 自定义事件:可…

【visionOS】从零开始创建第一个visionOS程序

前言&#xff1a;本來是看BonjourWeb的&#xff0c;但不自觉被apple visionOS吸引&#xff0c;因为这个概念的产品真的太前沿新颖了。 说不定到时候我会冲一冲~~~先简单学习下嘿嘿 为Apple Vision Pro创建一个新的应用程序和游戏世界。 介绍visionOS visionOS是苹果Vision Pr…

Linux基本指令(1)

Linux基本指令&#xff08;1&#xff09; 1.ls指令1.1ls的用法 2. pwd指令3.cd指令3.1 cd3.2补充内容3.3 cd - 指令3.4 cd ~ 指令 4. touch指令4.1stat指令 5.mkdir 指令6.rmdir/rm指令6.1补充内容 7.man指令8.nano 指令9.cat指令10 cp指令11 mv指令12 echo指令12.1 > 输出重…

二叉搜索树--验证二叉搜索树

验证二叉搜索树-力扣 98 题 解题思路&#xff1a;利用二叉树中序遍历的特性&#xff1a;遍历出来的结果是升序的即符合二叉搜索树 对于二叉树中序遍历不是太理解的&#xff0c;作者推荐的小白书&#xff1a;二叉树的初步认识_加瓦不加班的博客-CSDN博客 中序非递归实现 // 解…

抖音小店创业攻略,快速了解这些适合新手经营的类目

抖音小店是抖音平台上的一种新型电商形态&#xff0c;它允许用户在抖音上开设自己的小店&#xff0c;销售自己的商品。抖音小店的开设门槛低&#xff0c;成本也不高&#xff0c;因此很受新手创业者的青睐。那么&#xff0c;下面不若与众将介绍抖音小店中有哪些适合新手创业者经…

卫星影像-航拍影像-数据叠加到AutoCAD

卫星影像-航拍影像-数据叠加到AutoCAD 发布时间&#xff1a;2018-01-17 版权&#xff1a; 同步视频教程&#xff1a;卫星地图_高清卫星地图_卫星地图视频_卫星图像应用到AutoCAD工程设计&#xff08;套合、叠加、配准&#xff09; 视频教程&#xff1a;如何选择中央子午线或者…