- 博客(217)
- 资源 (7)
- 收藏
- 关注
原创 CBOW模型理解
学到NLP的时候CBOW模型是基础入门的门槛,但好多教程讲的都很复杂,直呼听不懂。B站上有个不错的动画演示版本,但是越往后也听不懂。实际上简化下来的原理很简单,但无奈都讲的不好。这里自己理解记录一下。在CBOW模型之前,计算词与词之间的距离方法已经比较成熟了,但还是有各种痛点。
2024-03-08 16:27:37
767
1
原创 Windows安装yolov8无法使用cuda问题解决办法
6.在训练的时候要设置workers=0如model.train(data=‘./data.yaml’, epochs=3, workers=0),GPT的解释是workers=0使用了单线程数据加载,如果不用这个会卡在加载数据那。但是yolov8的pip安装指令会自动安装一个pytorch版本,就又导致和cuda版本对不上号一直用不起来gpu。5.确认cuda的环境变量都对的(默认应该都对的,不对的话问问GPT怎么设置)4.在cmd里使用conda安装yolov8,这一步很重要,pip装的不行。
2024-01-18 14:58:53
2415
原创 DBSCAN聚类算法
随机从一个点开始,计算一个半径ε的圆范围内有没有另一个数据,如果有,则不断扩散,将其聚为一类。离群的点(距离其他点比较远的点)无法形成规模(可以自行设置规模)的情况下则不组成簇。整个过程就类似于病毒“扩散”的过程,在范围内的被同种病毒传播,不在范围内的就传播不到。在聚类问题中,我们要根据数据的大致形状和我们预期的结果去选择不同的聚类算法。DBSCAN读作:DB Scan,是英语。之后再来理解DBSCAN就容易多了。
2024-01-04 16:50:46
1413
原创 K-means聚类算法
K-means聚类算法是聚类算法中最基础的一个算法,虽然基础,但由于其出色的性能和相对较好的效果,至今依然是主流的聚类算法之一。
2024-01-04 16:04:16
653
原创 拉格朗日乘数法基础原理
在学到拉格朗日乘数法的时候,讲解的都很复杂,很难理解,本篇用最简单的例子来说明拉格朗日乘数法基础原理,方便我们入门理解。
2023-12-29 09:42:30
1200
原创 支持向量机(SVM)
支持向量机(SVM)中最常用的核就是径向基函数(RBF)核,通用性较强,拟合效果好,针对一些线性回归的数据可以使用线性核,其他的核都在极小的领域内有应用。
2023-12-26 08:47:58
132
原创 交叉熵损失函数
我们在线性回归中很好地理解了均方误差的公式。理解了要进行全局误差优化(在线性回归中通常是梯度下降)首先得有一个损失函数来计算单个数据的损失。在多分类问题解决方法Softmax回归模型中,通常使用的损失函数就是交叉熵损失函数,在讲交叉熵损失函数之前,我们先理解了Softmax函数是如何将数据转换为概率的。
2023-12-25 10:55:46
235
原创 Softmax 函数
在上一篇中我们使用逻辑回归OvR策略来解决多分类问题,本篇介绍一下使用Softmax回归模型来解决多分类问题,但由于Softmax回归模型涉及内容过多,本篇先从Softmax函数原理讲起。
2023-12-25 09:50:32
177
原创 逻辑回归OvR策略
逻辑回归本身是为解决二分类问题而设计的,但聪明的前辈们很快就将其应用于多类别分类问题。这种方法被称为一对多(One-vs-Rest, OvR)策略,它通过将多类别问题分解为多个二分类问题来实现。
2023-12-22 14:49:36
1454
原创 Lasso回归、岭回归和弹性网络回归
在一文中,我们详细解释了正则化的原理及作用:当有很多个特征X时,有些特征往往不重要,所以需要降低其的权重。而正则化则是为每个特征修改权重从而提升训练效果。正则化在中也是相同的原理,我们还记得正则化分成了两种:L1正则化和L2正则化,两者的区别就是L1将某些特征的权重设为了0,而L2中则以一个极小的权重保留了特征。(L1)、(L2)和(L1和L2中和)。
2023-12-22 11:31:54
1017
原创 归一化和标准化(Z-Score)
在处理数据过程中,通常会有不同规格的数据,比如年龄的取值范围是0-130,收入的取值范围是0-100000等等,如果不进行归一化或标准化处理,梯度下降每次走过的相对长度就不一样,就导致某个参数很快就找到了最优解,另一个参数还早得很。
2023-12-19 20:13:56
7750
原创 最小二乘法在线性回归中的用法
可以看到最小二乘法在线性回归中和梯度下降起到的作用是非常类似的,都是去找到一条最优的直线来拟合数据。举个例子,有一个三角形,如果用梯度下降去求三角形的面积就是,随机写一个面积,去和三角形比较,然后如果小了就扩大,如果大了就缩小,慢慢去往三角形的面积去靠。当自变量为零时,因变量也为零的情况下,使用上述的方法即可。在线性回归中,最小二乘法适用于寻找最适合数据集的直线或平面时,提供一种计算模型参数的解析解。如下图,使用转置后(右图)的矩阵去和原矩阵点乘,就实现了每一个结果的累加(求和)。的求解值就会发生改变。
2023-12-19 14:32:14
837
原创 逻辑回归代价函数
逻辑回归的代价函数通常使用交叉熵损失来定义。这种损失函数非常适合于二元分类问题。本篇来推导一下逻辑回归的代价函数。首先,我们在之前了解了的定义:逻辑回归模型是一种用于二元分类的模型,其预测值是一个介于0和1之间的概率。模型的形式是一个S形的逻辑函数(sigmoid函数),但是sigmoid函数的参数到底要选哪个,就需要对sigmoid函数的结果进行评判,因此也就需要第二步:损失评估。
2023-12-15 14:36:15
570
原创 多项式回归
多项式的复杂度(即公式中的n)不宜太低(欠拟合)或过高(过拟合)。所以就需要使用一条多项式来模拟曲线回归。在多项式回归中最重要的就是选择多项式的复杂度,
2023-12-14 11:20:36
210
原创 逻辑回归原理及代码
线性回归主要用于预测连续的数值输出,基于线性关系模型,其目标是最小化实际值和预测值之间的差异。逻辑回归主要用于分类问题,尤其是二元分类,它预测属于某一类别的概率,并基于概率输出进行决策,使用的是逻辑(Sigmoid)函数将线性模型的输出转换为概率值。简单说就是:找到一组参数,使得模型对分类结果的预测概率最大化。举个例子:在预测银行贷款这件事上,线性回归可以帮你预测银行能发放的贷款额度是多少,逻辑回归则是尽可能准确地预测银行能否发放贷款(要么0,要么1)。
2023-12-13 14:23:35
403
原创 多变量批量梯度下降python代码
前面几篇分别完成了单变量的处理,其中数据本身范围比较合理以至于损失值没有太离谱。本篇使用的数据集的目标值y和特征X的量级差距过大,因此引入了目标变量的特征归一化处理。注:本文为学习吴恩达版本机器学习教程的代码整理,使用的数据集为。在图片绘制阶段,进行了逆归一化处理。
2023-12-12 14:13:24
249
原创 小批量梯度下降的代码实现
作为线性回归中理论上最佳的梯度下降代码实现,我测试了一下结果,确实和理论结果一样,同迭代次数下小批量梯度下降效果没有批量梯度下降的效果好,但是增加迭代次数后就基本持平了。所以小批量梯度下降应该是线性回归中大中小量级数据最佳的算法。总结:线性回归问题中小批量梯度下降应该是通用的算法了。
2023-12-12 11:16:44
300
原创 单变量线性回归的机器学习代码
将数据集和py代码放到同一目录中,使用Spyder打开运行,代码中整体演示了数据加载处理过程、线性回归损失函数计算方法、批量梯度下降方法、获得结果后的预估方法、线性回归结果函数绘制、模型导出及加载使用方法,其中最后三部分彼此无依赖关系可单独执行。本文为学习吴恩达版本机器学习教程的代码整理,使用的数据集为。
2023-12-11 17:05:41
369
原创 梯度下降(批量梯度下降、随机梯度下降、小批量梯度下降)
在中我们推导了损失函数Jθ2m1∑i1myi−hθxi2的由来,结尾讲到最小化这个损失函数来找到最优的参数θ,通常是使用梯度下降实现的。梯度下降广泛用于机器学习和统计建模中的参数估计,特别是在训练线性回归模型时。它的目标是最小化一个损失函数(目标函数),这个函数量化了模型预测和真实数据之间的误差。梯度下降通过迭代地调整模型的参数来减少成本函数的值。
2023-12-06 14:48:17
601
原创 损失函数(目标函数)
损失函数(目标函数)是用来衡量模型的预测值与实际值之间差异的函数。对于线性回归问题,最常用的损失函数是平方误差损失函数,也称为均方误差(Mean Squared Error, MSE)。这个损失函数的来源是最小二乘法(Least Squares Method),其目标是最小化预测误差的平方和。,使得模型的预测值尽可能地接近实际值,这个过程通常是通过梯度下降来完成的。在实际的线性回归模型训练中,我们通过最小化这个损失函数来找到最优的参数。
2023-12-06 13:28:30
775
原创 似然函数和对数似然
对数似然:由于似然函数是乘法运算,导致运算效率低,通过Log对数运算把乘法运算转换为加法运算能极大提升效率,并且加法运算能解决大量乘法运算的数值下溢问题。)代入其概率密度函数(正态分布的PDF),然后对所有数据点的这些概率进行乘积,从而得到整体数据集在给定参数下出现的可能性。)代入其概率密度函数(正态分布的PDF),然后对所有数据点的这些概率进行乘积,从而得到整体数据集在给定参数下出现的可能性。这个过程等价于最小化误差项的平方和,这是线性回归中常用的最小二乘法。在最大化对数似然函数的过程中,我们寻找能使。
2023-12-06 08:52:22
962
原创 概率密度函数(PDF)正态分布
概率密度函数(PDF)是一个描述连续随机变量取特定值的相对可能性的函数。exp用于计算概率的指数部分,确保了大多数数据点都集中在平均值附近,而远离均值的数据点则呈指数级减少,就是让曲线呈“钟形曲线(高斯分布)”。它的作用是确保概率密度函数(PDF)的积分——也就是函数下整个面积等于1。在数学上,这意味着对于连续概率分布,确保所有概率值的总和为1。均值决定了分布的中心位置,而方差(标准差的平方)决定了分布的离散程度。是一个重要的数学常数(自然对数的底数),约等于2.71828,而exp是。
2023-12-05 15:54:18
2307
原创 线性回归模型标准公式
使得误差项的平方和最小,这也就是最小二乘法的原理。通过这种方式,模型能够尽可能准确地拟合训练数据,同时也能够对新的未见过的数据进行有效的预测。然而,实际情况是,数据会有一些随机性或者是由于模型无法捕捉的因素造成的变异,这就是为什么我们需要。在现实世界中,数据往往不会完美地落在一条直线上,误差项就是用来捕捉这些无法通过模型解释的变异性。相乘并求和时,我们就得到了一个数值,这个数值是响应变量的预测值,或者说是我们期望的。理想情况下,如果模型是完美的,那么。个观察点的响应变量,也就是我们想要预测的目标值。
2023-12-05 13:52:24
666
原创 Three.js设置透明背景
首先我的html结构如下:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title&...
2023-08-18 16:48:54
1256
原创 使用npm创建three.js项目
1. 安装 Node.js 和 npm首先,需要在您的计算机上安装 Node.js 和 npm。Node.js 是一个 JavaScript 运行环境,而 npm 是一个 JavaScript 包管理器。npm 会随 Node.js 一起安装,因此只需要安装 Node.js 即可。从 Node.js 的官方网站(https://nodejs.org)下载并安装适合您操作系统的版本。2. 创建...
2023-07-21 09:40:48
178
原创 Three.js中OutlinePass与后处理冲突问题
需求是鼠标滑过物体的时候物体显示为描边选中状态方案一:OutlinePass首先尝试了官方的OutlinePass来添加外边框选中功能这是没加OutlinePass的效果:这是使用OutlinePass后的,描边是可以了,但是锯齿严重,且模型发黑:深入调研了一下发现是OutlinePass与renderer.outputEncoding = THREE.sRGBEnco...
2023-06-29 10:19:56
1815
原创 CmClientException: The client configuration file "client.conf" contains errors: Root element is m...
对于你遇到的Unity新建项目时报错:"CmClientException: The client configuration file "client.conf" contains errors: Root element is missing."的问题,下面是一些可能的解决方案:尝试在所有GUI关闭的情况下删除client.conf文件,然后重启,它将在下次启动时重新构建。该文件位于隐藏...
2023-06-05 10:20:19
2400
2
原创 Unity TextmeshPro 打包字体中所有中英文及标点符号
在使用TextmeshPro过程中,我们会需要打包字体,而打包字体的时候,就需要设置需要打包的字符。这时候如果用网上的一些txt打包字符集,就会出现一些字符多多少少会有丢失的问题。本文介绍使用Unicode范围来设定打包字符范围,以将全部字符、标点符号打包进去。1.在Unity编辑器的顶部菜单中,选择Window > TextMeshPro > Font Asset Creator...
2023-05-15 14:41:47
1432
原创 每日一学33——Unity点击UGUI按钮后,再按空格键会自动触发按钮
在Unity中,当你点击UGUI(Unity GUI)按钮后,再按空格键会自动触发按钮的原因是默认情况下,Unity将空格键映射为UI按钮的"Submit"(提交)操作。这是因为Unity的事件系统在处理UI交互时,会为每个按钮指定一个默认的"Submit"按钮。"Submit"按钮可以通过鼠标点击或按下"Enter"键来触发。而在某些情况下,Unity还将空格键映射为"Submit"操作,以提...
2023-05-06 16:15:09
1650
2
原创 Unity 仿Orb控制
using UnityEngine;public class CameraOrbitController : MonoBehaviour { public float orbitSpeed = 10f; // 控制相机旋转速度的变量 public float distance = 10f; // 相机到目标的距离 public float minRotationY = ...
2023-03-29 16:26:12
161
原创 Three.js生成一个可拖拽的3D窗口
如下图:源码:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title...
2023-03-29 15:56:52
267
原创 ios Unable to install "My project"
最近在玩ARFoundation的时候发现装了一些插件后,怎么也跑不起来了,编译没报错,就是弹窗说Unable to install "My project"搜了试了很多方法最终发现,需要到Build Phases->Embedded Frameworks中选中所有...
2022-07-28 01:27:20
229
原创 Three.js中getWorldPosition失败
想将子物体的世界坐标输出出来网上大多能搜到:var pos = new THREE.Vector3();object.getWorldPosition( pos );但是有时候又会出现输出的是物体的相对坐标的问题,查了一下是因为场景的矩阵没有更新,需要在调用getWorldPosition之前先更新一下场景矩阵,代码如下:scene.updateMatrixWorld();var pos...
2022-05-31 17:08:02
594
原创 Three.js中的类型转换
Three.js中的object类型没有像Unity里可以通过getcomponent获取物体身上组件,这样在传参过程中就会出现无法通过当前对象直接调用如.geometry等mesh的属性或方法。要实现上述功能可以通过如下方法:if (object instanceof Mesh) { object.geometry.translate(0, 100, 0); }先...
2022-05-30 13:47:39
478
原创 Three.js修改模型中心点
需求中需要修改模型的中心点到其他位置,用于实现一些模型的对齐。本文使用三种方式实现修改模型的中心点:一、通过为模型添加父物体,再移动模型的相对位置,之后的位移旋转等通过父物体来操作。这个方法相对简单,但一方面不是“真正”地修改模型中心点,也会给模型的管理增加难度。二、通过移动模型的顶点实现修改中心点位置这个方法通过矩阵将模型所有顶点的位置全部修改了,同理,需要整体缩放模型顶点位置、角度,...
2022-05-30 13:38:18
8247
1
原创 基于Three.js的光线追踪
最近研究了一下基于webgl的光线追踪中的路径追踪方案,实现了如下链接的效果,目前材质的效果、计算速度、整体运行帧数等等都难以达到商用水平。只能当玩具玩一玩啦~http://eevee.com.cn/Examples/36.PathTracing/index.html...
2022-05-20 17:49:12
1567
2
Project Auditor 0.10.0
2023-04-20
DoozyUI - Complete UI Management System v3.1.0.unitypackage.zip
2021-10-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人