梯度下降函数理解

2023-11-19


r(d)可以理解为有d的参数进行约束,或者 D 向量有d个维度。
咱们将楼主的给的凸优化结构细化一点,别搞得那么抽象,不好解释;

min\left\{  \frac{1}{N}\sum_{i=1}^{N}{(y_{i} - f(x_{i} ))^{2}  + r(d)}   \right\} , 其中,
咱们可以令: f(x_{i} ) = w_{0}x_{0} + w_{1} x_{1} + w_{2}x_{2} + w_{3}x_{3} + ..... + w_{n}x_{n}.

ok,这个先介绍到这里,至于f(x)为什么用多项式的方式去模拟?相信也是很多人的疑问,很简单,大家看看高等数学当中的泰勒展开式就行了,任何函数都可以用多项式的方式去趋近,e^{x} ,log x,lnx,\frac{1}{x} 等等都可以去趋近,而不同的函数曲线其实就是这些基础函数的组合,理所当然也可以用多项式去趋近,好了,这个就先解释到这里了。

接下来咱们看一下拟合的基础概念。
首先,用一个例子来理解什么是过拟合,假设我们要根据特征分类{男人X,女人O}。
请看下面三幅图,x1、x2、x3;
<img src="https://pic2.zhimg.com/v2-d88d37f41b60d2eb3cbce6d9771b2eed_b.png" data-rawwidth="958" data-rawheight="272" class="origin_image zh-lightbox-thumb" width="958" data-original="https://pic2.zhimg.com/v2-d88d37f41b60d2eb3cbce6d9771b2eed_r.png">

这三幅图很容易理解:
1、 图x1明显分类的有点欠缺,有很多的“男人”被分类成了“女人”。
2、 图x2虽然有两个点分类错误,但是能够理解,毕竟现实世界有噪音干扰,比如有些人男人留长发、化妆、人妖等等。
3、 图x3分类全部是正确的,但是看着这副图片,明显觉得过了,连人妖都区分的出来,可想而知,学习的时候需要更多的参数项,甚至将生殖器官的形状、喉结的大小、有没有胡须特征等都作为特征取用了,总而言之f(x)多项式的N特别的大,因为需要提供的特征多,或者提供的测试用例中我们使用到的特征非常多(一般而言,机器学习的过程中,很多特征是可以被丢弃掉的)。

好了,总结一下三幅图:
x1我们称之为【欠拟合】
x2我们称之为【分类正拟合】,随便取的名字,反正就是容错情况下刚好的意思。
x3我们称之为【过拟合】,这种情况是我们不希望出现的状况,为什么呢?很简单,它的分类只是适合于自己这个测试用例,对需要分类的真实样本而言,实用性可想而知的低。

恩,知道了过拟合是怎么回事之后,我们来看一下如何去规避这种风险。先不管什么书上说的、老师讲的、经验之说之类的文言文。咱们就站在第一次去接触这种分类模型的角度去看待这个问题,发散一下思维,我们应该如何去防止过拟合?
显而易见,我们应该从【过拟合】出现的特征去判别,才能规避吧?
显而易见,我们应该、而且只能去看【过拟合】的f(x)形式吧?
显而易见,我们从【过拟合】的图形可以看出f(x)的涉及到的特征项一定很多吧,即x_{0},x_{1},x_{2},x_{3}....x_{N} 等等很多吧?
显而易见,N很大的时候,w_{0} ,w_{1} ,w_{2} ,w_{3} ,...w_{N} 是等数量增长的吧?
显而易见,w系数都是学习来的吧?

So,现在知道这些信息之后,如何去防止过拟合,我们首先想到的就是控制N的数量吧,即让N最小化吧,而让N最小化,其实就是让W向量中项的个数最小化吧?
其中,W=(w_{0} ,w_{1} ,w_{2} ,w_{3} ,...w_{N} )

PS: 可能有人会问,为什么是考虑W,而不是考虑X?很简单,你不知道下一个样本想x输入的是什么,所以你怎么知道如何去考虑x呢?相对而言,在下一次输入x^{(k)} ,即第k个样本之前,我们已经根据x^{(1)} ,x^{(2)} ,....x^{(k-1)} 次测试样本的输入,计算(学习)出了W.就是这么个道理,很简单。


ok,any way.回到上面的思维导图的位置,我们再来思考,如何求解“让W向量中项的个数最小化”这个问题,学过数学的人是不是看到这个问题有点感觉?对,没错,这就是0范数的概念!什么是范数,我在这里只是给出个0-2范数定义,不做深究,以后有时间在给大家写点文章去分析范数的有趣玩法;
0范数,向量中非零元素的个数。
1范数,为绝对值之和。
2范数,就是通常意义上的模。

PS,貌似有人又会问,上面不是说求解“让W向量中项的个数最小化”吗?怎么与0范数的定义有点不一样,一句话,向量中0元素,对应的x样本中的项我们是不需要考虑的,可以砍掉。因为0 x_{i} 没有啥意义,说明x_{i} 项没有任何权重。so,一个意思啦。


ok,现在来回答楼主的问题,r(d) = “让W向量中项的个数最小化” = \left| W \right| _{0}

所以为了防止过拟合,咱们除了需要前面的相加项最小,即楼主公式当中的
R_{emp}(f) = \frac{1}{2}W^{T}W+\sum_{i}^{}{l(y_{i},f(x_{i} ) )}   最小,我们还需要让r(d)=\left| W \right| _{0} 最小,所以,为了同时满足两项都最小化,咱们可以求解让R_{emp}(f) 和r(d)之和最小,这样不就同时满足两者了吗?如果r(d) 过大,R_{emp}(f) 再小也没用;相反r(d)再小,R_{emp}(f) 太大也失去了问题的意义。
说到这里我觉得楼主的问题我已经回答了,那就是为什么需要有个r(d)项,为什么r(d)能够防止过拟合原因了。

根据《男人帮》电影大结局的剧情:本来故事已经完成了,为了让大家不至于厌恶课本的正规理论,我们在加上一集内容,用以表达我对机器学习出书者的尊重;

书本中,或者很多机器学习的资料中,为了让全球的机器学习人员有个通用的术语,同时让大家便于死记硬本,给我上一段黑体字的部分的内容加上了一坨定义,例如:
我们管 R_{emp}(f) 叫做 经验风险,管上面我们思维导图的过程叫做 正则化,所以顺其自然的管r(d)叫做 正则化项,然后管 R_{emp}(f) +r(d) 叫做 结构风险,所以顺其自然的 正则化就是我们将 结构风险最小化的过程,它们是等价的。
By the way,各位计算机界的叔叔、阿姨、伯伯、婶婶,经过不懈的努力,发现了这个公式很多有意思的地方,它们发现0范数比较恶心,很难求,求解的难度是个NP完全问题。然后很多脑袋瓜子聪明的叔叔、阿姨、伯伯、婶婶就想啊,0范数难求,咱们就求1范数呗,然后就研究出了下面的等式:
<img src="https://pic1.zhimg.com/v2-6d969121bc4c9b71a9887276194cc4ac_b.png" data-rawwidth="465" data-rawheight="111" class="origin_image zh-lightbox-thumb" width="465" data-original="https://pic1.zhimg.com/v2-6d969121bc4c9b71a9887276194cc4ac_r.png">

一定的条件我就不解释了,这里有一堆算法,例如主成分KPCA等等,例子我就不在举了,还是原话,以后我会尽量多写点这些算法生动点的推到过程,很简单,注重过程,不要死记硬背书本上的结果就好。
上面概括而言就是一句话总结:1范数和0范数可以实现稀疏,1因具有比L0更好的优化求解特性而被广泛应用。然后L2范数,是下面这么理解的,我就直接查别人给的解释好了,反正简单,就不自己动脑子解释了:
L2范数是指向量各元素的平方和然后求平方根。我们让L2范数的正则项||W||2最小,可以使得W的每个元素都很小,都接近于0,但与L1范数不同,它不会让它等于0,而是接近于0,这里是有很大的区别的哦;所以大家比起1范数,更钟爱2范数。
所以我们就看到书籍中,一来就是,r(d)=\frac{\lambda }{2} \left| \left| W \right|  \right| ^{2} 或者r(d)={\lambda }\left| W \right| _{1} 这种结构了,然后在机器学习当中还能看到下面的结构:
min{  \sum_{i}^{N}{(y-W^{T}x )} + \frac{\lambda }{2}  \left| \left| W \right|  \right| _{2} ^{2}  } ,\lambda >=0
都是这么来的啦,万变不离其中。

作者:陶轻松
链接:https://www.zhihu.com/question/20924039/answer/131421690
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

梯度下降函数理解 的相关文章

  • 判断一个IP地址是不是单播地址

    1 组播地址 2 单播地址 1 2
  • C++_生成随机字符串

    include
  • Vite配置跨域代理

    Vite 配置跨域代理 修改vite config js文件 import defineConfig from vite import react from vitejs plugin react https vitejs dev conf
  • Xilinx AXI-memory接口 转 AXI-stream 接口(含源码)

    AXI memory接口 转 AXI stream 接口 AXI memory接口介绍 具体详情可以查看源码 AXI memory接口介绍 从图中我们可以看出memory接口有5个通道 分别是读地址通道 写地址通道 写响应通道 读数据通道
  • 华为OD两轮技术面试

    华为OD面试 1性格测试 选积极向上的选项 注意 性格测试也会挂人 我一个朋友性格测试就没过 2机试 一道变成题目 1h 用例60 通过即可 任给一个数组 元素有20M 1T 300G之类的 其中1T 1000G 1G 1000M 按从小到
  • 数据库事务锁详解

    前言 上篇说到数据库事务中的特性ACID和4个隔离级别 今儿就来看一下事务中的锁 MySQL中的锁 锁是MySQL在服务器层和存储引擎层的并发控制 锁可以保证数据并发访问的一致性 有效性 锁冲突也是影响数据库并发访问性能的一个重要因素 My
  • 并发编程4 - 线程状态、死锁及ReentrantLock

    文章目录 一 再述线程状态转换 二 多把锁与线程活跃性问题 1 多把锁 2 活跃性 三 ReEntrantLock 1 基本用法 2 可重入 3 可打断 4 锁超时 5 公平锁 6 条件变量 一 再述线程状态转换 情况1 New RUNNA
  • JAVA数据结构——利用图的广度优先遍历搜索算法确定无向连通图的连通分量

    分析 如果这个无向图是非连通图的时候 从图的一个顶点没法访问这个图的所有顶点 只能访问包含该顶点的连通分量中的所有顶点 所以从无向图的每个连通分量中的一个顶点开始遍历图 则可求得无向图的所有连同分量 如图则是非连通的无向图 我们只需要从第一
  • (Python笔记)使用Python解析HEX文件的内容

    需要用到binascii库 binascii库中包含了很多在二进制和二进制表示的各种ASCII码之间转换的方法 Code import binascii HEX path r 1 HEX with open HEX path rb as f
  • Python 实现列队

    1 列队定义 队列是项的有序结合 其中添加新项的一端称为队尾 移除项的一端称为队首 当一个元素从队尾进入队列时 一直向队首移动 直到它成为下一个需要移除的元素为止 最近添加的元素必须在队尾等待 集合中存活时间最长的元素在队首 这种排序成为
  • Flutter个推推送Android端,退出应用后收到消息报错

    场景 Android手机 iOS没有测试 1 集成getuiflut 2 返回退出APP 3 发送推送透传消息 报错 Tried to send a platform message to Flutter but FlutterJNI wa
  • (八)nginx反向代理功能

    nginx反向代理概念 反向代理也称reverse proxy 指的就是代理外网用户请求到内部指定web服务器 并将数据返回给用户的一种方式 nginx除了可以在企业提供高性能的web服务之外 另外还可以将本身不具备的请求通过某种预定的协议
  • centos7安装配置fdfs时service fdfs_storaged start启动不成功

    service fdfs storaged start 命令启动后 提示是启动失败 ps ajx grep fdfs 查看不到 fdfs storaged启动信息 解决方法 当时解压缩时 fdfs storaged解压失败 自己当时没注意
  • ERROR:105: Unable to locate a modulefile for 'xxx'

    查看可用的 module module avail 将xxx替换为屏幕输出中已有的模块 转载于 https www cnblogs com zhyantao p 10462141 html
  • cunit单元测试

    一 安装cunit 1 1下载cunit https sourceforge NET projects cunit 下载最新安装包 1 2解压缩安装包 root Ubuntu1610 tar jxvf CUnit 2 1 3 tar bz2
  • HJ103 Redraiment的走法

    Redraiment是走梅花桩的高手 Redraiment可以选择任意一个起点 从前到后 但只能从低处往高处的桩子走 他希望走的步数最多 你能替Redraiment研究他最多走的步数吗 示例 2 5 1 5 4 5 输出 3 说明 6个点的
  • 从零开始的ESP8266探索(07)-使用Arduino for esp8266出现的问题小结

    文章目录 问题一 现象描述 原因分析 解决方法 问题二 现象描述 原因分析 解决方法 问题三 现象描述 原因分析 解决方法 实例应用 问题一 现象描述 使用 WiFi softAP 方法建立网络 有时候很难连接上 改用 WiFi begin
  • Android - Fragment 内嵌 ViewPager ,ViewPager各个页面使用Fragment第二次进入空白界

    直接说解决办法 在activity中创建adapter时fragment管理参数用supportFragmentManager 而在fragment中创建adpater时参数用childFragmentManager分开管理 就可以了 错误
  • 人工智能数学基础--极大似然估计

    极大似然估计 极大似然估计的原理 用一张图片来说明 如下图所示 原理 极大似然估计是建立在极大似然原理的基础上的一个统计方法 是概率论在统计学中的应用 极大似然估计提供了一种给定观察数据来评估模型参数的方法 即 模型已定 参数未知 通过若干

随机推荐

  • 【Linux】--make/makefile--gcc/g++/gdb

    文章目录 make makefile 概念 Makefile make gcc g gdb gcc g 预处理 编译 汇编 链接 静态链接 动态链接 选项操作 gdb 总结 make makefile 概念 make是Linux下的一条指令
  • 【运维实战】1.FastDFS分布式的文件存储系统入门介绍与实践

    本章目录 0x00 基础介绍 0 前言 1 简介 2 特性 3 架构 Tracker Server Storage Server Client 4 存储策略 5 过程剖析 文件上传 Upload 文件下载 Download 文件访问 HTT
  • 一个很好的开源CRM项目

    http www sugarcrm com 还有简体中文包 是个CRM软件 PHP搞的 打算开始研究之
  • centos安装jdk,tomcat,mysql等软件

    环境列表 VMware workstation full 12 1 0 3272444 exe 虚拟机 putty exe 客户端 CentOS 7 x86 64 DVD 1708 iso centos镜像 windows7旗舰版 jdk
  • uniapp打包app后,ios端微信登录报错,login:fail [:-1]未能完成操作。(PGWXAPI错误-1。)

    报错内容 errMsg login fail 1 未能完成操作 PGWXAPI错误 1 errCode 100 code 100 报错原因 在manifest json文件 视图模式里面只有appid和 ios平台通用链接两个配置 需要在m
  • 谁能告诉我war包的作用及使用方法。。。。。。

    链接地址 http zhidao baidu com link url iliyTcmsTKb1K4gHMtWUsRIBaXglyOKIQsWwdrgvydvnaUHLe0KEoHvLVz8tLYCjZmvAebFC3srXZEbhW AV
  • Metap:希望通过利用 AI 功能来改变 Metaverse 游戏生态系统

    元宇宙是一个概念 它只会随着时间的推移和让更多的人了解后而越来越受欢迎 因此 了解元宇宙能够更好地利用这种新技术的某些项目是很重要的 能够做到这一点的 一个特殊领域 游戏世界 元宇宙与游戏的关系 将元宇宙的功能与游戏空间放在一起使用并不是一
  • 硬件接口引脚定义(持续更新)

    英文各类硬件接口定义网站 https pinouts ru conn 1 SATA接口引脚定义 2 mSATA接口引脚定义 3 各类USB接口引脚定义 引脚 功能 接线颜色 备注 1 VCC 红色 电源正极 2 Data DM 白色 数据
  • ubuntu配置环境重要网址

    ping不通百度且报错 ping www baidu com Temporary failure in name resolution 的解决方案 https blog csdn net yulei qq article details 1
  • C语言在线代码运行编译工具推荐

    C语言在线运行编译 是一款可在线编程编辑器 在编辑器上输入C语言代码 点击运行 可在线编译运行C语言 C语言代码在线运行调试 C语言在线编译 可快速在线测试您的C语言代码 在线编译C语言代码发现是否存在错误 如果代码测试通过 将会输出编译后
  • V2017+CMake+DCMTK编译安装帮助文档

    转载自https blog csdn net annjeff article details 80899762 一 前言 最近由于项目需要 开始接触DCMTK库 作为一个小白在网上一顿狂搜 看了几天的CSDN博客 终于有了一点头绪 在这个过
  • rpc、gRPC快速入门,python调用,protobuf协议

    什么是rpc grpc又是什么 什么是RPC 远程过程调用协议RPC Remote Procedure Call Protocol RPC是指远程过程调用 也就是说两台服务器A B 一个应用部署在A服务器上 想要调用B服务器上应用提供的函数
  • JavaScript 记录易错点

    1 判断是否是数组的方法 Array isArray 2 获取数组长度用属性 length 不是 length 3 数组添加或删除元素 arrayObject splice index howmany item1 itemX index 必
  • docker 部署springboot(成功、截图)

    1 新建sringboot工程并打包 2 编写Dockerfile文件 基础镜像使用java FROM openjdk 8 作者 MAINTAINER feng VOLUME 指定了临时文件目录为 tmp 其效果是在主机 var lib d
  • 出行者信息服务器,出行者信息服务系统解析.ppt

    出行者信息服务系统解析 ppt ppt 制作 陈倩 ppt 审查 侯湘怡 讲解人 张怀韧 引言 出行者信息服务系统 一 出行者信息服务系统综述 二 出行者信息系统的系统构成及结构框架 三 出行者信息系统的作用 特点与效果 四 出行者信息系统
  • Databend 存储架构总览

    目的 通过本篇文章带大家理解一下 Databend 的存储结构 Databend 内置的 Table 引擎为 Fuse table engine 也是接下来要花重点篇幅要讲的 另外 Databend 还支持外置的 Hive table 及
  • win10病毒和威胁防护无法重新启动解决方法

    1 检查电脑中是否安装了任何的第三方反病毒软件 例如 360 腾讯电脑管家等 如果有的话 麻烦您将其卸载 卸载完毕后重启设备 再看一下病毒和威胁防护能否正常启动 2 按 Windows 徽标键 X 启动 Windows PowerShell
  • nofollow标签的作用 nofollow标签添加方法

    nofollow标签的作用 nofollow标签添加方法 nofollow标签是seo优化常用的一个标签 它的作用是告诉搜索引擎不要追踪这个链接 也就是阻止搜索引擎向这个网页或链接传递权重 nofollow有两种写法 1 将 nofollo
  • 第三章. Pandas入门—索引设置

    第三章 Pandas入门 3 8 索引设置 1 索引的作用 1 更方便的查询数据 2 使用索引可以提升查询性能 如果索引是唯一的 Pandas会使用哈希表优化 查找数据的时间复杂度为O 1 如果索引不是唯一的 但是有序 Pandas会使用二
  • 梯度下降函数理解

    r d 可以理解为有d的参数进行约束 或者 D 向量有d个维度 咱们将楼主的给的凸优化结构细化一点 别搞得那么抽象 不好解释 其中 咱们可以令 f ok 这个先介绍到这里 至于f x 为什么用多项式的方式去模拟 相信也是很多人的疑问 很简单