- VisualStudio2022插件的安装及使用-编程手把手系列文章
- pprof-在现网场景怎么用
- C#实现的下拉多选框,下拉多选树,多级节点
- 【学习笔记】基础数据结构:猫树
微积分运算在机器学习领域扮演着至关重要的角色, 它不仅是许多基础算法和模型的核心,还深刻影响着模型的优化、性能评估以及新算法的开发.
掌握微积分,不仅让我们多会一种计算方式,也有助于理解各种机器学习算法和模型是如何寻找最优参数的.
也许有些人会觉得微积分很难,这大概是因为我们平时基本都是在计算固定的东西(用加减乘除就够了)。 比如:
而对于不断变化的事物,我们发现用传统的计算方式很难精确的描述, 比如:
微积分本质上就是一种运算方式(类似加减乘除,指数,对数等等运算), 与其他运算方式相比,它的优势在于可以精确的描述事物的变化.
微积分其实包括微分和积分两种运算,它们互为逆运算,就像加法与减法,乘法与除法.
微分研究函数在某一点附近的变化率,而积分研究函数在某一区间上的累积效应。 平时我使用较多的是微分,也被称为求导数.
微积分的诞生还有一段“斗争”,当年,牛顿和莱布尼茨都宣称自己先发明了微积分,虽然最终牛顿胜出,但二位都是非常伟大的科学家。 由此也可见当时欧洲的科技已经发展到相当的程度,才会在科研中迫切的需要微积分这种新的运算方式.
下面通过一个速度与时间关系的示例来看看最终微积分如何帮助我们精确计算变化的。 首先,对于两个匀速运动的物体, 。
时间(\(t\)) | 速度(\(v_1\)) | 速度(\(v_2\)) |
---|---|---|
0 | 5 | 8 |
1 | 5 | 8 |
3 | 5 | 8 |
5 | 5 | 8 |
10 | 5 | 8 |
匀速的情况下,速度不变,一眼就能看出谁快谁慢,并不需要微积分.
接下来,看看匀变速的情况:
时间(\(t\)) | 速度(\(v_1\)) | 速度(\(v_2\)) |
---|---|---|
0 | 0 | 0 |
1 | 2 | 3 |
3 | 6 | 9 |
5 | 10 | 15 |
10 | 20 | 30 |
其中\(v_1=2t\),\(v_2=3t\)。 在这种情况下,我们依然可以看出两个物体谁快谁慢,也可以计算出它们的加速度分别为2和3,不需要微积分.
最后,看看非匀变速的情况,这也是最接近实际的情况。 如果你有实际驾驶的经验就能理解,行驶过程中几乎不可能保持匀速或匀变速,影响车速的因素各种各样,你能控制的油门仅仅是其中之一。 模拟两个非匀变速的情况:
时间(\(t\)) | 速度(\(v_1\)) | 速度(\(v_2\)) |
---|---|---|
0 | 0 | 0 |
1 | 10 | 1 |
3 | 90 | 27 |
5 | 250 | 125 |
其中\(v_1=10t^2\),\(v_2=t^3\)。 这下,没那么容易看出哪个速度增加的快了吧?这两个物体在某一时刻的加速度也不是那么容易计算了吧? 从图中虽然可以看出,10秒之前,\(v_1\)比\(v_2\)快,10秒之后,\(v_2\)比\(v_1\)快。 但是\(v_1\)和\(v_2\)哪个增长的快?即使从上面的图中也不是那么容易看出。 这时,通过微积分就能看出谁变化的快了。 微分的计算规则下一节介绍,这里先看下微分的结果:\(v_1^{'} = 20t\);\(v_2^{'}=3t^2\)。 对速度微分的结果就是速度变化的情况: 微分之后,就能精确的看出2个速度的变化情况:
从上例可以看出,对于复杂的变化情况(非均匀变化), 通过微分可以快速找出变化的规律,从而可以精确的计算每个时间点的实际数值.
微分的计算虽然没有加减乘除那么直观,但是也不复杂。 对于多项式,微分的规律如下:其中\(a\)是常数;\(n\)是变量\(x\)的指数.
其他特殊的函数(比如三角函数,对数函数等等)可以参考维基百科的微分表: https://en.wikipedia.org/wiki/Differentiation_rules 。
微分运算法则中,有一个很有用的特性,称为链式法则。 当需要计算嵌套函数的微分时,这个法则非常有用,比如: 一种方式是将\(y\)的多项式代入\(f\)函数中:
另一种方式就是链式法则, 函数\(f\)对\(x\)求导,可以转换为\(f\)对\(y\)求导与\(y\)对\(x\)求导的积。由此可得:
两种方式的计算结果是一样的, 不过,如果函数\(f\)和\(y\)都非常复杂的话,运用链式法则,可以极大的简化微分运算.
在机器学习的算法中,公式中不可能只有一个变量\(f(x)\),基本都是多个变量\(f(x_0,x_1,...,x_n)\)的情况。 在这种情况下,怎么计算函数\(f\)中各个变量的变化趋势呢?
这就用到了偏微分(也称为偏导数),也就是函数\(f\)对其中一个变量求导数.
了解了微分的计算方法,那么偏微分的计算就很简单了。比如一个含有两个变量的函数: 那么,对\(x_0\)和 \(x_1\)分别求导数的结果如下: 简单来说,对\(x_0\)求导数时,把\(x_1\)当成常数看待;对\(x_1\)求导数时,把\(x_0\)当成常数看待.
通过偏微分计算,我们就能发现哪个变量变化时对函数\(f\)的结果影响最大。 对应的场景就是机器模型(\(f\))中,哪个属性(\(x_0, x_1\))对模型的结果影响最大.
对于偏微分,也可以从图像上来看,不过超过3个维度的图像无法绘制,所以只能绘制带有2个参数的函数。 绘制上面示例中函数:\(f(x_0,x_1)=x_0^{2}+2x_0x_1+3\) 。
然后分别对\(x_0,x_1\)求偏微分,对\(x_0\)的偏微分为:\(f^{'}(x_0)=2x_0+2x_1\) \(x_1\)取不同的值时,偏微分的图像为: 从图中可以看出,偏微分\(f^{'}(x_0)\)的变化率是线性增长的,\(x_1\)只是影响它的起始值。 如果把\(f(x_0,x_1)=x_0^{2}+2x_0x_1+3\)看成一个机器学习模型, 那么随着属性\(x_0\)的增大,\(x_0\)对模型的影响越来越大.
对\(x_1\)的偏微分为:\(f^{'}(x_1)=2x_0\),\(x_0\)取不同的值时,偏微分的图像为: 从图中可以看出,偏微分\(f^{'}(x_1)\)的变化率是固定的,\(x_0\)决定它的变化率是多少。 如果把\(f(x_0,x_1)=x_0^{2}+2x_0x_1+3\)看成一个机器学习模型, 那么随着属性\(x_1\)对模型影响的大小是稳定的,影响多大取决于\(x_0\)的取值.
我平时接触的机器学习算法中,微分使用的比较多,所以这里只介绍了微分的相关运算,积分是微分的逆运算,这里不再赘述。 对于复杂函数的积分,也有积分表可以查询(https://en.wikipedia.org/wiki/Lists_of_integrals).
最后,总结下在哪些机器学习算法中会遇到微积分的运算.
PCA
)和线性判别分析(LDA
),微积分被用于计算数据的协方差矩阵、特征值、特征向量等,从而帮助识别出最重要的特征或降低数据的维度。最后此篇关于机器学习的数学基础--微积分的文章就讲到这里了,如果你想了解更多关于机器学习的数学基础--微积分的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
PyCaret是一个开源、低代码Python机器学习库,能够自动化机器学习工作流程。它是一个端到端的机器学习和模型管理工具,极大地加快了实验周期,提高了工作效率。PyCaret本质上是围绕几个机器学习
在我的研究进展中,我现在已经将寄生虫从图像中分离出来。寄生虫看起来像蠕虫。我希望 MATLAB 读取所有输入图像,查找类似深紫色图像的蠕虫,如果检测到,则给出检测到的答复。我尝试使用直方图比较,但我认
目前我正在尝试了解机器学习算法的工作方式,但我没有真正了解的一件事是预测标签的计算准确度与视觉混淆矩阵之间的明显差异。我会尽量解释清楚。 这是数据集的片段(这里你可以看到 9 个样本(在真实数据集中大
第一章 绪论 机器学习 : 致力于研究如何通过计算的手段,利用经验来改善系统自身的性能。在计算机系统中, “经验” 通常以“数据“形式存在,因此,机器学习所研究的主要内容,是关于在计算
1. 算法原理(K-Nearest Neighbor) 本质是通过距离判断两个样本是否相似,如果距离够近就认为他们足够相似属于同一类别 找到离其最近的 k 个样本,并将这些样本称
前言 K-means是一种经典的无监督学习算法,用于对数据进行聚类。K-means算法将数据集视为具有n个特征的n维空间,并尝试通过最小化簇内平方误差的总和来将数据点划分为簇。本文将介绍K-m
目录 前言 介绍LightGBM LightGBM的背景和起源 L
前言 可以说掌握了机器学习,你就具备了与机器对话,充分利用机器为人类服务的能力。在人工智能时代,这将成为一项必备技能,就好比十年前你是编程大牛,二十年前你英语超好一样。因此,无论你是什么专业的
几个贯穿始终的概念 当我们把人类学习简单事物的过程抽象为几个阶段,再将这些阶段通过不同的方法具体化为代码,依靠通过计算机的基础能力-- 计算 。我们就可以让机器能够“学会”一些简单的事物。
1、选题背景 人脸识别技术是模式识别和计算机视觉领域最富挑战性的研究课题之一,也是近年来的研究热点,人脸性别识别作为人脸识别技术
每当我们在公有云或者私有云发布训练好的大数据模型,为了方便大家辨识、理解和运用,参照huggingface所制定的标准制作一个Model Card展示页,是种非常好的模型展示和组织形式。 下面就是一
2. 支持向量机 对偶优化 拉格朗日乘数法可用于解决带条件优化问题,其基本形式为: \[\begin{gather} \min_w f(w),\\ \mathrm{s.t.} \quad
我正在尝试运行以下代码: https://github.com/opencv/opencv/blob/master/samples/dnn/classification.cpp 我在这里找到所有经过预
我是机器学习新手。当我使用 scikit-learn 模块中的波士顿数据集练习具有默认参数的决策树回归模型时。 在此链接解决方案( How to Build a Decision tree Regre
我有用于训练的数据。当我将其输入神经网络时,该数据出现 3% 的错误。 我知道这些数据有一定的过度代表性 - 例如,第 5 类的示例大约是其他类的十分之一。 我的作业指出,我可以通过偏置训练数据(即删
我在 Python 的多类分类中使用 SVM 时遇到问题。事实上,问题在于性别分类(来自图像),其中训练数据集仅包含“y=1”或“ y=-1”作为类标签(二进制)。但是,在预测中,如果是男性,我必须预
以防万一你们不知道,对抗性图像是属于某个类别的图像,但随后被扭曲,而人眼没有任何视觉感知差异,但网络错误地将其识别为完全不同的类别。 有关此内容的更多信息,请参见此处: http://karpathy
我正在进行一个 ML 语言识别项目 (Python),该项目需要具有高维特征输入的多类分类模型。 目前,我所能做的就是通过反复试验来提高准确性。无意识地结合可用的特征提取算法和可用的机器学习模型,看看
import numpy as np def sigmoid(x): return 1.0/(1+np.asmatrix(np.exp(-x))) def graD(X,y,alpha,s0,
所以我有多个列表: ['disney','england','france'] ['disney','japan'] ['england', 'london'] ['disney', 'france'
我是一名优秀的程序员,十分优秀!