LR_GD_MSE (公式补充)
上篇是先撸了一把梯度下降的代码, 用来优先 LR 中的 MSE. 核心代码是在求解梯度这一步.
# y = wx + b
def step_gradient(b_current, w_current, points, lr):
# 计算误差函数在所有点的导数, 并更新 w, b
b_gradient = 0
w_gradinet = 0
n = len(points) # 样本数
for i in range(n):
# x, y 都是一个数值
x = points[i, 0]
y = points[i, 1]
b_gradient += (n/2) * ((w_current * x + b) - y)
w_gradinet += (n/2) * x * ((w_current * x + b) - y)
# 根据梯度下降法, 更新 w, b
new_w = w_current - (lr * b_gradient)
new_b = b_current - (lr * b_gradient)
return [new_w, new_b]
比较困惑可能是在这两行.
b_gradient += (n/2) * ((w_current * x + b) - y)
w_gradinet += (n/2) * x * ((w_current * x + b) - y)
本来想着, 算了, 这是最基本的, 但还是给做推导了一下GD, 想着即便是写 hello, world, 也是很有意义的.
推过过程


我是用Pad来写的, 贴的图, 凑合着用吧, 能表达清楚大致意思就行, 原理其实就是, 求导数, 求梯度而已, 也没啥新的东西, 都是老古董了, 几百年都没有变过的.
这样再来看这两行代码, 不就立刻秒懂了吗.
b_gradient += (n/2) * ((w_current * x + b) - y)
w_gradinet += (n/2) * x * ((w_current * x + b) - y)
ML 有意思的一点在于, 它跟普通的写代码不一样, 更多的时候, 像是把数学公式, 翻译为代码的过程, 这跟代码逻辑没有太大关系, 跟数学的基本功有关系. 数学这块涉及的其实不难, 大部分都在求解多元函数的偏导数, 导数, 条件极值涉及拉格朗日, 函数优化用泰勒展开等, 都是一些高数的基本概念而已, 几百年来, 都没有变过, 是死的, 相对于, 写代码的业务逻辑, 还是会相对有趣一点, 所以,我也是作为爱好,偶尔写写.
最为享受的一点是, 基于数学模型的完整推导下, 用编程语言, 来将这个过程或者, 推导出来的结论, 进行代码化, 然后进行封装为一个 api, 这样就完成了闭环, 还是很有趣的一件事情.
其实是关于导包, 当然我现在是在开始学习用框架, 导包, 不同在于, 我是自信的, 都是基于, 对数学原理的理解来导包, 很自信, 万一, 导包不好使, 就基于数学公式, 自己慢慢撸代码, 也是能实现的. 反之, 如果不懂数学原理来调包, 那ML则会是变成多么无聊的事情呢.
小结
- ML 就3部分: 数学模型 + 损失函数(目标) + 优化求解参数 (code)
- 梯度是偏导数组成的向量, 向量有大小, 有方向, 衡量大小用模; 导数的本质是衡量 "变化率"
- 梯度是多元函数, 最大方向导数 的方向, 加个 "-" 反方向, 则是函数增长最小的方向, 即极值点的位置
- 梯度下降法, 即沿着梯度反方向求极值点时的模型参数, 类似的还有梯度上升法, 在求解SVM会用到.
LR_GD_MSE (公式补充)的更多相关文章
- openjudge-膨胀的木棍
http://noi.openjudge.cn/ch0111/09/ 总时间限制: 1000ms 内存限制: 65536kB 描述 当长度为L的一根细木棍的温度升高n度,它会膨胀到新的长度L'=(1 ...
- 算法<初级> - 第一章 排序相关问题
算法 - 第一章 时间复杂度: Big O 时间/空间复杂度计算一样,都是跟输入数据源的大小有关 n->∞ O(logn) 每次只使用数据源的一半,logn同理 最优解 先满足时间复杂度的情况最 ...
- 关于pythoh面向过程开发人员三步转面向对象的补充,再加一步,四步走战略。转面向对象也可以有固定公式。
前言: oop非常非常非常重要.搞不懂oop,就玩不了python,就算能写也一定是写代码时候喜欢靠猜瞎猫碰死老鼠写得心很虚.为什么这么说呢,我也是从面向过程编程到死走过来的,一路def到死,一看到有 ...
- 像画笔一样慢慢画出Path的三种方法(补充第四种)
今天大家在群里大家非常热闹的讨论像画笔一样慢慢画出Path的这种效果该如何实现. 北京-LGL 博客号@ligl007发起了这个话题.然后各路高手踊跃发表意见.最后雷叔 上海-雷蒙 博客号@雷蒙之星 ...
- 期权定价公式:BS公式推导——从高数和概率论角度
嗯,自己看了下书.做了点笔记,做了一些相关的基础知识的补充,尽力做到了详细,这样子,应该上过本科的孩子,只要有高数和概率论基础.都能看懂整个BS公式的推导和避开BS随机微分方程求解的方式的证明了.
- ubuntu 安装apache2并配置cgi,搭建mimetex转化公式图片的服务
一.Apache的安装 在终端输入: sudo apt-get install apache2 二.启动.停止Apache服务 Apache的启动和停止文件是:/etc/init.d/apache2 ...
- Excel处理数据用到的一些公式和VBA脚本
最近工作中用到EXCEL统计处理一些数据,正好之前有自学了一段时间的EXCEL,这次正好用上.为了加深印象,以后方便翻阅,就记录下来.这篇会不断补充. IF 多条件判断返回值 IF(logical_t ...
- as3 公式
AS3缓动公式:sprite.x += (targetX - sprite.x) * easing;//easing为缓动系数变量sprite.y += (targetY - sprite.y) * ...
- 偏最小二乘回归分析建模步骤的R实现(康复俱乐部20名成员测试数据)+补充pls回归系数矩阵的算法实现
kf=read.csv('d:/kf.csv') # 读取康复数据kfsl=as.matrix(kf[,1:3]) #生成生理指标矩阵xl=as.matrix(kf[,4:6]) #生成训练指标矩阵x ...
- Andrew Ng机器学习课程笔记--week2(多元线性回归&正规公式)
1. 内容概要 Multivariate Linear Regression(多元线性回归) 多元特征 多元变量的梯度下降 特征缩放 Computing Parameters Analytically ...
随机推荐
- es5经典数组去重
es5经典数组去重 for (var i = 0; i < arr.length; i++) { for (var j = 1; j < arr.length; j++) { if (ar ...
- 当 GPT 告诉我9.11大于9.9的时候:AI 仍需完善的一面
在当今 AI 技术飞速发展的时代,我们对其能力寄予了厚望,期待它们能够准确无误地处理各种任务.然而,最近发生的一件事情让我们意识到,AI 仍然有需要改进和完善的地方. GPT 作为一款备受瞩目的语言模 ...
- 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
2025年2月25日,.NET团队在博客上宣布了.NET 10 Preview 1的正式发布,文章参见:https://devblogs.microsoft.com/dotnet/dotnet-10- ...
- JAVA实现AES加密、解密
一.什么是AES? 高级加密标准(英语:Advanced Encryption Standard,缩写:AES),是一种区块加密标准.这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用. ...
- netcore后台服务慎用BackgroundService
在 .NET Core 开发中,BackgroundService 是一个非常方便的后台任务运行方式,但它并不适用于所有场景. BackgroundService 一时爽,并发火葬场. Backgro ...
- ABAQUS阻尼设置
结构阻尼 瑞利阻尼
- (附体验地址)大模型知识引擎:AI 助手能否助力销售技能提升?
体验地址:https://lke.cloud.tencent.com/webim_exp/#/chat/FAIMcM 腾讯云的大模型知识引擎本身定位于为企业客户及合作伙伴提供服务,因此我在探索如何最佳 ...
- sap 管理--企业解决方案 -设备管理
1.什么是sap 管理 2.设备管理管的是什么 3.设备的几种状态 4.设备bom(物料清单) 5.测量点计数器 1.什么是sap 管理 System Applications and Product ...
- Laravel admin 用户头像显示不出的原因及解决方法
已经使用命令 php artisan storage:link 创建过软链接了,头像仍然不显示. 发现链接显示的是 http://localhost/storage/images/b6f0ad07b9 ...
- 搭建自己的OCR服务,第一步:选择合适的开源OCR项目
一.OCR是什么? 光学字符识别(Optical Character Recognition, OCR)是指对文本资料的图像文件进行分析识别处理,获取文字及版面信息的过程. 亦即将图像中的文字进行识别 ...