自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

一个专注于机器学习基础与实战的技术博客,内容涵盖算法推导、模型实现、数学原理与代码实践。用通俗的语言解析复杂概念,记录学习过程中的思考与总结,适合机器学习爱好者和从业者参考。

本博客系统记录机器学习领域的学习与实践内容,涵盖算法原理推导、数学基础、实战案例、工具库使用教程、模型问题排查以及学习笔记,通过代码与公式结合的方式提供可复现的实践方案,注重从理论到落地的技术细节,服务于机器学习开发者与爱好者的实际需求。

  • 博客(192)
  • 资源 (5)
  • 收藏
  • 关注

原创 Torch 自动求导

文章围绕 Torch 自动求导展开,全面介绍了相关知识,从链式求导法则基础,到传统求导方法对比,再深入自动求导原理与实践。

2025-02-15 19:03:16 917

原创 Python 多项式拟合

文章聚焦于 Python 中的多项式拟合,通过代码示例与理论阐述,全面介绍了相关内容。开篇引入多项式拟合主题,并给出 numpy 库实现的代码,展示如何利用该库生成原始数据、拟合曲线并绘制图像,直观呈现拟合效果。随后介绍 Torch 实现,涵盖数据准备、模型定义、损失函数与优化器设置以及模型训练的全过程,最后输出训练后的权重和偏置。接着深入探讨拟合程度,通过代码展示不同拟合情况的图像,包括过拟合与欠拟合,同时详细阐述了过拟合和欠拟合的概念、产生原因及解决方法.

2025-02-15 19:01:25 1073

原创 DeepSeek 部署过程中的问题

使用它生成内容时,会发现CPU被严重占用,这里我是使用 wsl 布置的 docker 容器,并且在容器中运行大模型。因此,ollama 其默认并没有使用 GPU 来运行 Deepseek,其是使用 CPU,来运行。这可能是因为 ollama 模型本身的问题:ollama 的速度还不错,但受限于本地硬件配置。中,我们使用Windows直接部署ollama,当然我们也可以使用docker来进行ollama的部署。发现 CPU 被调用了 82% ,但是 GPU 被调用了,但是调用的不多,虽然才 31%。

2025-02-06 22:32:38 3201

原创 Windows 中 利用 ollama 来搭建 deepseek R1

近年来,大模型凭借其强大的语言理解和生成能力,在自然语言处理、计算机视觉等领域取得了突破性进展。从GPT系列到国内的,文心一言、[Qwen]、,大模型已成为推动人工智能发展的核心力量。ollama作为新兴的大模型搭建工具,以其开源、高效、易于部署的特点,在人工智能开发者社区中崭露头角,为大模型的搭建和应用提供了新的解决方案。在当今数字化浪潮中,人工智能的发展可谓日新月异,而大模型作为其核心驱动力,正重塑着各个行业的格局。

2025-02-06 15:37:08 1901

原创 Python 梯度下降法(七):Summary

以降低算法的复杂度、资源占用率,并提升其在实际应用中的性能。批量梯度下降(BGD):使用全部数据计算梯度,稳定性高但计算开销大。随机梯度下降(SGD):每次迭代使用单个样本计算梯度,计算速度快但收敛不稳定。小批量梯度下降(Mini-batch GD):结合 BGD 和 SGD 的优点,使用小批量数据计算梯度。动量法(Momentum):引入动量项,加速收敛并减少震荡。自适应学习率方法:如AdaGradRMSPropAdadeltaAdam和NAdam,动态调整学习率,适合处理稀疏数据和非凸优化问题。

2025-02-01 17:52:12 1185 5

原创 Python 梯度下降法(六):Nadam Optimize

Nadam(Nesterov-accelerated Adaptive Moment Estimation)优化算法是 Adam 优化算法的改进版本,结合了 Nesterov 动量(Nesterov Momentum)和 Adam 算法的优点。Nadam 在 Adam 算法的基础上引入了 Nesterov 动量的思想。Adam 算法通过计算梯度的一阶矩估计(均值)和二阶矩估计(未中心化的方差)来自适应地调整每个参数的学习率。

2025-02-01 14:30:46 1106

原创 Python 梯度下降法(五):Adam Optimize

Adam 算法结合了Adagrad和RMSProp算法的优点。Adagrad 算法会根据每个参数的历史梯度信息来调整学习率,对于出现频率较低的参数会给予较大的学习率,而对于出现频率较高的参数则给予较小的学习率。RMSProp 算法则是对 Adagrad 算法的改进,它通过使用移动平均的方式来计算梯度的平方,从而避免了 Adagrad 算法中学习率单调下降的问题。

2025-01-31 22:36:27 1634

原创 Python 梯度下降法(四):Adadelta Optimize

Adadelta 是一种自适应学习率的优化算法,它是对 Adagrad 算法的改进,旨在解决 Adagrad 学习率单调递减过快的问题。Adagrad 算法会累积所有历史梯度的平方和,随着迭代次数的增加,学习率会不断减小,最终可能变得非常小,导致参数更新极其缓慢甚至停滞。Adadelta 算法通过引入梯度平方的指数加权移动平均,只关注近期的梯度信息,避免了学习率的过度衰减。同时,Adadelta 不需要手动设置全局学习率,它通过使用参数更新量的指数加权移动平均来自适应地调整学习率。

2025-01-31 08:58:21 839

原创 Python 梯度下降法(三):Adagrad Optimize

Adagrad(Adaptive Gradient Algorithm)是一种自适应学习率的优化算法,常用于机器学习中模型参数的优化,能根据每个参数的历史梯度信息自适应地调整学习率。符号意义θ\thetaθ模型待优化的参数向量(n×1n\times 1n×1JθJ(\theta)Jθ模型的损失函数gt∇θJθtgt​∇θ​Jθt​模型在第ttt次迭代时的梯度(n×1n\times 1n×1η\etaη全局学习率,控制整体学习的步长ϵ。

2025-01-30 17:52:08 1006 2

原创 Python 梯度下降法(二):RMSProp Optimize

RMSProp(Root Mean Square Propagation)是一种自适应学习率优化算法,广泛用于深度学习中的梯度下降优化。它通过调整每个参数的学习率来解决传统梯度下降法中学习率固定的问题,从而加速收敛并提高性能。RMSProp 的核心思想是对每个参数的学习率进行自适应调整。起到了归一化梯度的作用,使得学习率可以更具梯度的尺寸进行自适应的调整。可以理解为对梯度平方的一个平滑估计,它更关注近期的梯度信息,可以发现,其对于损失值的下降性能也较好,损失率也较为稳定。,以及收敛判断,减少计算资源。

2025-01-30 16:20:10 966

原创 Python 梯度下降法(一):Gradient Descent

其核心思想是在每次迭代时,使用训练数据集中的所有样本计算目标函数的梯度,然后沿着梯度的反方向更新模型参数,逐步使目标函数达到最小值。例如,在经过大量的迭代后,模型会逐渐 “学习” 到数据的整体分布特征,就像不断打磨一个雕塑,每次只做一点修改,但最终能塑造出理想的形状。在合适的学习率下,损失函数在梯度下降法的作用下,损失值会趋于收敛,但是拟合结果的稳定性不是很好,损失值会有微小波动,会产生误差。,来进行模型的训练。的图像上,梯度向量是与其等高线(使得函数值为常数的曲线)垂直的向量,并且指向函数值增大的方向。

2025-01-29 23:19:07 1486 1

原创 特征缩放:数据归一化

看本文之前,最好先看拟合损失函数-优快云博客在数据预处理中,数据的归一化和标准化是极为关键的特征缩放方法。实际应用里,不同评价指标常常带有不同的量纲与量纲单位,这会干扰数据分析的结果。为了消除这些指标间的量纲差异,让数据具有可比性,进行数据归一化或标准化处理就显得尤为重要。经过处理后,原始数据中的各个指标被调整到同一数量级,这为后续的综合对比评价提供了有利条件,能够更准确、有效地挖掘数据价值,助力数据分析与决策。

2025-01-29 00:33:53 338

原创 拟合损失函数

使用最小二乘法进行线性拟合,即,hθxθ0θ1xhθ​xθ0​θ1​x其中,θ0\theta_{0}θ0​和θ1\theta_{1}θ1​是参数,需要通过已经给出的数据进行拟合,这里不进行具体的计算.Jθ0θ112m∑i1mhθxi−yi2Jθ0​θ1​2m1​i1∑m​hθ​xi−yi2即线性拟合的目的即是达到minθJθ0θ1min。

2025-01-27 20:13:22 761

原创 Python最小二乘法

如果数据{(xi​yi​i12⋯m含有误差或噪声,如果数据无法同时满足某个特定函数,那么只有要求逼近函数φx尽量靠近数据点,即向量Zφx1​φx2​⋯φxm​))与Yy1​y2​⋯ym​的误差或距离最小。按Z与Y之间误差最小的原则构造的逼近函数φx成为拟合函数。向量Z与Y之间的误差或距离有各种不同的定义方式。如,各种向量范数​Z−Y​​1​∑i1m​∣φxi​−yi​∣。

2025-01-21 13:20:30 1062

原创 Python矩阵运算

若主元为或绝对值很小,就需要在该列中寻找绝对值较大的元素所在行,通过构建置换矩阵来交换行,以确保主元非零且尽可能大,提高分解的稳定性和准确性。即所用坐标法进行矩阵元素的索引,矩阵的索引从0开始,可以使用行、列的索引来访问特定元素。SVD 是将矩阵分解为三个矩阵:左奇异矩阵、对角矩阵(奇异值)、右奇异矩阵。通过指定多个索引来访问矩阵中的特定元素。布尔索引允许通过条件筛选矩阵中的元素,返回满足条件的元素。LU 分解将矩阵分解为一个下三角矩阵和一个上三角矩阵。QR 分解将矩阵分解为正交矩阵和上三角矩阵。

2025-01-20 20:38:41 1379

原创 zotcard 模板

zotero of zotcard card 模板分享,自用

2024-12-27 09:23:56 571

原创 接单日记(四)验证码图片生成

编写程序,绘制一个验证码图片,要求图片的背景为白色,同时该验证码有随机四位字母或者数字组成,在图片上还需要有干扰线,可以不需要干扰点。此为一个实验报告,故遵守实验报告的格式。

2023-05-15 12:49:54 674

原创 接单日记(三)文本处理之词云生成

在QQ邮箱获取smtp服务器密钥,完成自动发送邮件的程序,要求:需要用到装饰器来进行smtp服务器的登录。此为一个实验报告,故遵守实验报告的格式。

2023-05-10 12:01:44 512

原创 接单日记(二)SMTP发送邮件

在QQ邮箱获取smtp服务器密钥,完成自动发送邮件的程序,要求:需要用到装饰器来进行smtp服务器的登录。此为一个实验报告,故遵守实验报告的格式。

2023-04-27 17:51:00 836

原创 接单日记(一):理解浮点数运算的误差

用Python程序判断0.3 – 0.2的值是否为0.1,如果不是0.1,那么,如何让这个值是0.1呢?此为一个实验报告,故遵守实验报告的格式。

2023-04-26 13:02:14 623

原创 数学建模(三):模拟退火算法(SA)

模拟退火算法(simulated annealing,SA)来源于固体退火原理,是一种基于概率的算法。模拟退火算法(SA)来源于固体退火原理,是一种基于概率的算法。将固体加温至充分高的温度,再让其徐徐冷却,加温时,固体内部粒子随温升变为无序状,内能增大,分子和原子越不稳定。而徐徐冷却时粒子渐趋有序,能量减少,原子越稳定。在冷却(降温)过程中,固体在每个温度都达到平衡态,最后在常温时达到基态,内能减为最小。

2023-04-04 12:40:15 3565

原创 数学建模(二):遗传算法(GA)

神经网络(Neural Network,NN);模糊逻辑(Fuzzy Logic,FL);遗传算法蚁群优化算法(Ant Colony Optimization,ACO);粒子群优化算法(Particle Swarm Op);免疫算法(Immune Algorithm,IA);分布估计算法(Estimation of Distribution Algorithm,EDA);Memetic算法(Memetic Algorithm,MA);

2023-03-31 21:21:44 3689

原创 Vue 核心(二)

2、 style九、 条件渲染1、 渲染指令2、 使用示例十、 列表渲染1、 基本语法2、 key原理使用 作为时:使用 这个唯一标识时:key 的内部原理:比较规则:如果使用 index 作为 key 可能会引发的问题:开发中如何选择 key?4、 列表排序5、 数组更新检测Vue 将被侦听的数组的变更方法进行了包裹,所以它们也将会触发视图更新。这些被包裹过的方法包括:替换数组:变更方法,顾名思义,会变更调用了这些方法的原始数组。相比之下,也有非变更方法,例如

2023-03-27 19:40:23 835

原创 Vue 核心(一)

Vue是一套用于构建用户界面的渐进式JavaScript 框架。渐进式:Vue 可以自底向上逐层的应用。简单应用:只需一个轻量小巧的核心库复杂应用:可以引入各式各样的 Vue 插件如果说是JQuery是手工作坊,那么Vue.js就像是一座工厂,虽然Vue.js做的任何事情JQuery都可以做,但无论是代码量还是流程规范性都是前者较优。采用组件化模式,提供代码复用率、且让代码更好维护声明式编码,让编码人员无需操作 DOM,提高开发效率使用虚拟 DOM+ 优秀的Diff 算法。

2023-03-23 19:15:20 1352 2

原创 数学建模(一):LP 问题

在人们的生产实践中,经常会遇到如何利用现有资源来安排生产,以取得最大经济效益的问题。自从1947年G.B.Dantzig提出求解线性规划的单纯形方法以来,线性规划在理论上趋向成熟,在实用中日益广泛与深入。特别是在计算机能处理成千上万个约束条件和决策变量的线性规划问题之后,线性规划的适用领域更为广泛了,已成为现代管理中经常采用的基本方法之一。其中 c 和 x 为 n 维列向量,A、Aeq为适当维数的矩阵,b、beq为适当维数的列向量。当然,我们也可以使用 lingo 来求解线性规划的问题。

2023-03-04 10:52:28 1168

原创 局域网实现PC、Pad、Android互联

在我们使用多设备时,往往会因为多设备的文件不能同步而造成很多麻烦(QQ等软件不能传输大文件)。这里我们使用计算机网络的知识来实现多设备的互联,使得多设备的文件更方便传输。在我们的 Windows 设置完成之后,我们就可以使用 Pad 文件管理里面的网络邻居来连接我们的电脑了。注意,手机中的文件管理器如果有创建 FTP 服务器的功能,也可以使用那种方式创建。设置完后,我们要对需要共享的文件夹开启共享的功能,使得该文件夹可以在网络中发现。:我们可以使用蓝牙连接来传输文件,不过使用蓝牙连接的传输速度较慢。

2023-02-26 21:28:36 7632 1

原创 Obsidian 插件(二):Advanced_Slides 的使用

Advanced Slides 是 Obsidian 的开源插件,允许您在 Obsidian 中创建基于eveal.js的演示文稿。使用此工具,任何能够在 Obsidian 中创建笔记的人也可以创建漂亮的演示文稿。其遵循以下理念,这意味着在大多数情况下,只需使用Obsidian Markdown 语法编写一个 Slide 就足够了。

2023-02-06 19:44:41 8418

原创 ES6 简介(二)

ES6 之前,不能直接为函数的参数指定默认值,只能采用变通的方法。如果参数 y 赋值了,但是对应的布尔值为 false ,则该赋值不起作用。就像上面代码的最后一行,参数 y 等于空字符,结果被改为默认值。ES6 允许为函数的参数设置默认值,即直接写在参数定义的后面。阅读代码的人,可以立刻意识到哪些参数是可以省略的,不用查看函数体或文档;有利于将来的代码优化,即使未来的版本在对外接口中,彻底拿掉这个参数,也不会导致以前的代码无法运行。

2023-02-05 19:13:32 563

原创 ES6 简介(一)

ECMAScript 6(ES6) 目前基本成为业界标准,它的普及速度比 ES5 要快很多,主要原因是现代浏览器对 ES6 的支持相当迅速,尤其是 Chrome 和 Firefox 浏览器,已经支持 ES6 中绝大多数的特性。ES6经过持续几年的磨砺,它已成为JS。

2023-02-03 19:41:54 3696

原创 Ubuntu 终端美化(oh-my-zsh)

然后,我们把文件下载到指定文件夹内之后,我们就可以把插件名字添加在 plugins 变量里面了。这个美化教程适合于大多数的 Linux 系统,其实可以通用的。记得在中途把默认的 bash 修改为 zsh。custom 文件夹存放的是我们的第三方文件。安装 Git,以及对 Git 进行相关配置。大家可以在里面查找官方自带的插件,然后修改。查看 oh-my-zsh 中的主题,修改。就可以实现第三方插件的导入了。设置完之后,我们需要运行。来刷新 zsh 的配置。

2023-01-21 21:22:45 4151 1

原创 Ubuntu22.04 安装 ssh

安装完之后,我们就可以使用远程连接工具进行连接了,这里使用的与远程连接工具是 SmarTTY。最后,我们成功进入我们的 Linux 系统。然后,我们使用根据 ip 地址进行连接。获取到我们的 ip 地址。将那行注释取消掉,然后。

2023-01-21 17:42:49 2979

原创 Obsidian 插件(一):DataView 的使用

Dataview 是一个在你的知识库中生成数据的动态视图的高级查询引擎/索引。你可以通过使用任意和页面相关联的值,如标签(tag),文件夹(folder), 内容(content),或者字段(field)来生成视图。我们可以使用来生成 dataview 的数据或者,这些信息放在 frontmatter,如:那我们查询的话,

2023-01-20 16:47:18 13218 2

原创 PowerShell 美化(oh-my-posh)

然后回到Windows terminal新建一个powershell,即可看到以下内容。第一次会显示找不到该文件,选择创建新文件,然后输入并保存。这个路径后面还可以添加一些启动参数:可以使用。同时,在这个项的内部再新建一个项,命名为。theme_name:就是当前的主题名。user_name:就是当前的用户名。默认的数据修改为我们刚才复制的路径。来查看所有的主题,也可以通过。然后将里面的所有字体复制到。目录下,它会自动进行安装。

2023-01-20 09:24:36 2493

原创 uwsgi 快速入门

WSGI(Web Server Gateway Interface),定义了web服务器(nginx、apache、iis等)和 web应用(或者将web框架,flask、django等)之间的接口规范。也就是说,只要 web服务器和 web应用都遵守WSGI协议,那么 web服务器和 web应用就可以随意的组合。uwsgi的启动可以把参数加载命令行中,也可以是配置文件 .ini, .xml, .yaml 配置文件中,个人用的比较多得是 .ini 文件。通过。

2023-01-12 19:30:42 809

原创 Nginx 高级篇

负载均衡(Load Balance),它在网络现有结构之上可以提供一种廉价、有效、透明的方法来扩展网络设备和服器的带宽,并可以在一定程度上增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性等。用官网说,它充当着网络流中“交通指挥官”的角色,“站在”服务器前处理所有服务器端和客户端之间的请求,从而最大度地提高响应速率和容量利用率,同时确保任何服务器都没有超负荷工作。如果单个服务器出现故障,负载均衡方法会将流量重定向到其余的集群服务器,以保证服务的稳定性。

2023-01-12 15:54:56 1731 1

原创 Nginx 进阶篇

上网去搜搜索访问资源对于我们并不陌生,通过浏览器发送一个HTTP请求实现从客户端发送请求到服务器端获取所需要的内容后并把内容回显展示在页面的一个过程。这个时候,我们所请求的内容分为两种类型:一类是静态资源,一类是动态资源。静态资源即指在服务器端真实存在并且能够拿来展示的一些文件,比如常见的html,css,js,image,video等动态资源即指在服务端真实存在但是要想获得需要经过一定的业务逻辑处理,根据不同的条件展示在页面不同的内容,比如说报表数据展示,根据当前登录用户展示相关具体数据等资源。

2023-01-11 17:58:35 1061

原创 LaTeX 进阶语法

控制页边距的参数由图 5.1 里给出的各种长度变量控制。可以用 \setlength 命令修改这些长度变量,以达到调节页面尺寸和边距的作用;反之也可以利用这些长度变量来决定排版内容的尺寸,如在 tabularx 环境或 \includegraphics 命令的参数里,设置图片或表格的宽度为0.8\textwidth。页边距等比较直观的参数则必须间接设置。geometry 宏包提供了设置页边距等参数的简便方法,能够帮我们完成背后繁杂的计算。name:需要定义的命令名称。

2023-01-06 19:21:08 5490

原创 LaTeX快速入门

TeX 是由Donald Knuth创造的基于底层编程语言的电子排版系统(TEX是Honeywell公司在1980年为其Text Executive文本处理系统注册的商标,它与 TeX是两回事)。使用TeX可以对版面做精细的操作,生成精美的文档。TeX提供版面编辑的底层命令,但是使用时操作复杂,工作效率不高. TeX允许用这些底层命令定义出可以执行复杂操作的扩展命令. LaTex是由Leslie Lamport开发的的TeX扩展命令集合[5]。LaTexj通过整合常用的版面设置操作,降低排版的工作量和难度。

2022-12-31 17:41:47 5184

原创 Python中itertools详解

itertools是python内置的模块,使用简单且功能强大itertools模块标准化了一个快速、高效利用内存的核心工具集,这些工具本身或组合都很有用。它们一起形成了“迭代器代数”,这使得在纯Python中有可能创建简洁又高效的专用工具。同时,itertools模块是python的内置库,我们可以直接使用,不需要进行额外的安装这里讲解一些常用的函数,其余函数请到官方文档查看学习。函数介绍:chain可以把一组迭代对象串联起来,形成一个更大的迭代器。

2022-12-28 12:12:23 2519

原创 Python中String模块

String模块中,有一个Formatter类,其可以对字符串进行格式化。该类中有一个format()方法,和方法使用方式类似,同时该类的主要作用就是使用format()方法,对字符串进行格式化输出。

2022-12-18 20:12:11 2650

对朋友生日的祝福以及生日蛋糕,带有GUI界面

里面封装了对朋友生日的祝福以及画一个生日蛋糕

2022-04-24

贪吃蛇小游戏可视化界面的封装

这是一个附带登录界面的小程序,里面有源码,和打包出来的EXE文件。同时,里面封装了接口,可以添加自己的小游戏。使用面向对象编程思想编写,有较多的注释。里面也含有界面设计的原ui文件

2022-04-22

使用前端编写的简单的贪吃蛇

这里面存储了使用js+css+html编写的贪吃蛇软件,使用面向对象的思想以及一些jQuery语法,编写的贪吃蛇程序

2022-04-18

基于Java开发的ATM系统

基于Java开发的ATM系统,适用于初学者掌握基础语法

2022-03-27

爬取淘宝商品数据项目的源代码

爬取淘宝商品数据项目的源代码

2022-03-05

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除