深度学习优化背后包含哪些数学知识?

人工智能算法- 优化算法 <br /> <br /> <br />文/腾讯soso林世飞<br /> <br />    优化算法通常用来处理问题最优解的求解--这个问题有多个变量共同决定的,举一个例子比如有这样一张人员关系表,需要绘制一张SOSO华尔兹(一种socialnetwork,http://tag.soso.com/),比如:<br /><br />    绘制方法有很多种,我们希望能够最终展现给用户的绘制是比较好阅读的,比如交叉线比较少,每个人的点排的比较开等等。<br />    我们利用以下一个数据格式来描述最终的一 阅读详情

转载:机器之心

深度学习中的优化是一项极度复杂的任务,本文是一份基础指南,旨在从数学的角度深入解读优化器。

深度学习中的优化是一项极度复杂的任务,本文是一份基础指南,旨在从数学的角度深入解读优化器。

9acc6aa6a8cde7acec6d25a08351a823.png

一般而言,神经网络的整体性能取决于几个因素。通常最受关注的是网络架构,但这只是众多重要元素之一。还有一个常常被忽略的元素,就是用来拟合模型的优化器。

为了说明优化的复杂性,此处以 ResNet 为例。ResNet18 有 11,689,512 个参数。寻找最佳参数配置,也就是在 11,689,512 维的空间中定位一个点。如果暴力搜索的话,可以把这个空间分割成网格。假设将每个维度分成十格,那么就要检查 10^11689512(10 的 11689512 次方)组可能的配置,对每一组配置都要计算损失函数,并找出损失最小的配置。

10 的 11689512 次方是一个什么概念?已知宇宙中的原子才只有 10^83 个,宇宙的年龄只有 4.32 x 10^17 秒(约 137 亿年)。如果从大爆炸开始,每秒检查 10^83 个原子,我们现在才检查了 4.32*10^1411 个,远远小于上述网格可能的配置数。

所以优化器非常重要。它们就是用来处理这种难以理解的复杂性的。有了它,你就可以将训练网络的时间压缩在几天内,而不是数十亿年间。下文将从数学角度深入研究优化器,并了解它们是如何完成这一看似不可能的任务的。

优化的基础

我们从简单的地方开始。假设要最大化单变量函数。(在机器学习中,通常以最小化损失函数为目标,不过最小化就等同于最大化函数的负值。)

定义:

ffd1066d2a9fda6eecf1652dddfd5a7d.png

对函数作图:

aedca7e4ebe0a8696f73c318043fee7c.png

最直观的方法是将这条线划分成网格,检查每个点的值,然后选择函数值最大的点。正如引言中所说,这是不可扩展的,因此要找其他解决方案。将这条线想象成一座要爬到顶峰的山。假设位于红点处:

d50a482bc047cdb8dadf751ee2cfa25e.png

如果要到达山峰,该往哪个方向走?当然,应该向斜率增加的地方前进。这个概念对应的是函数的导数。在数学上,导数定义为:

544cb734084c7a7127b5aec54ceb385f.png

乍看之下,导数非常神秘,但它的几何意义非常简单。仔细看一下求导的点:

fb4d489452dc6de91d2bde7fdeba28b1.png

对任何 x 和 y,通过 f(x) 和 f(y) 的这条线定义为:

02808b2e4c4436c579b3d34bd04aecf9.png

一般而言,如果用 at+b 定义一条直线,那称 a 为这条线的斜率。这个值既可以是正值也可以是负值,斜率为正,直线向上走;斜率为负,直线向下走。绝对值越大,直线越陡。如果像导数定义中一样,让 y 越来越接近 x,那么这条线就会成为 x 处的切线。

11a6517399f9661f95d1f65400fb11ed.png

(图注)在 x=-2.0 时,f(x)的切线和逼近线。

切线为:

3de7fe339a9e08de9c690662d4b2d941.png

切线方向记为向量(1,f’(x))。

如果从 x_0=-2.0 的位置开始登山,应该沿切线上升的方向前进。如果切线的斜率较大,可以大步迈进;如果斜率接近零,应该小步小步往上爬,以免越过峰值。如果用数学语言表示,我们应该用下面这种方式定义下一个点:

a40493bc248d46cafc574853b6bb122e.png

式中 λ 是个参数,设置前进的步长。这就是所谓的学习率。通常,后续步骤定义为:

b74dd8826ea37c918b0a92ada2458387.png

正导数意味着斜率在增加,所以可以前进;而负导数意味着斜率在减少,所以要后退。可视化这个过程:

24d883f6cc295016a80c9d9c28eda9e0.png

如你所见,这个简单的算法成功地找到了峰值。但如图所示,这并非函数的全局最大值。在所有的优化算法中,这都是一个潜在的问题,但还是有解决办法的。

在这个简单的例子中,我们只最大化了单变量函数。这样虽然可以有效地说明这个概念,但在现实生活中,可能存在数百万变量,神经网络中就是如此。下一部分将会介绍,如何将这样简单的算法泛化到多维函数的优化。

多维优化

在单变量函数中,可以将导数视为切线的斜率。但遇到多个变量,则不能如此。先来看个具体的例子。定义函数:

ca4a76a3500ca58816b631cebf3d3188.png

这个函数将是这部分的 toy example 。

ed57747b740bcb614c6cd43a52da13c5.png

对 f(x,y)作图。

这是一个有两个变量的函数,图像是一个曲面。马上可以发现,这样很难定义切线的概念,因为与曲面上一个点相切的线有很多。事实上,可以做一个完整的平面。这就是切平面。

308d2b1059d87990d7d51878b7cd729a.png

f(x,y)在点 (0,0) 处的切平面。

但切平面有两个非常特别的方向。以点 (0,0) 处的切平面为例。对每一个多变量函数来说,先固定所有变量只取一个能动的变量,这样这个函数基本上就变成单变量函数了。示例函数变为:

51d864c641d0a673f40177625844f40e.png

和:

354b5e087329fd98f44e10b4cec9909b.png

可以用垂直于坐标轴的平面分割曲面,来可视化上面这两个函数。平面和曲面相交处就是 f(x,0) 或 f(0,y),这取决于你用哪个平面。

05e05705d65edee475338d28dcb9e84f.png

用垂直的平面切割曲面,可视化 f(0,x)。

对这些函数,就可以像上文一样定义导数了。这就是所谓的偏导数。要泛化之前发现峰值的算法,偏导数起着至关重要的作用。用数学语言定义:

4e794a4cf5b2d884cd4f132fd33b2f9b.png

每个偏导数表示切平面上的一个方向。

2df10d261c4e83c036469fc0085c740a.png

切平面上偏导数的方向。

偏导数的值是特殊切线的斜率。最陡的方向根据梯度确定,定义为:

5de8bd48f8a1790d452ce32e7031616d.png

注意,梯度是参数空间中的方向。可以轻松在二维平面中绘制出梯度,如下图所示:

0a926c48bf1690b74fb673ff746342db.png

f(x,y)的梯度。

综上所述,发现峰值的算法现在成为:

afd297fedd50746cf0abeee60dea1cf3.png

这就是所谓的梯度上升(gradient ascent)。如果要求函数最小值,就要沿负梯度的方向迈出一步,也就是下降最陡的方向:

26268c905eec37d33733565ef304f881.png

这就是所谓的梯度下降(gradient descent),你可能会很频繁地看到它,因为在机器学习中,实际上是要最小化损失。

为什么梯度指向最陡的上升方向?

在这种情况下,要知道为什么梯度给出的是最陡峭的上升方向。为了给出精确的解释,还要做一些数学计算。除了用垂直于 x 轴或 y 轴的垂直平面切割曲面外,还可以用 (a,b) 任意方向的垂直平面切割曲面。对于偏导数,有:

e165f41d76a8de951aee479497e4da66.png

可以将它们视为 f(x,y) 沿 (1,0) 和(0,1)方向的导数。尽管这些方向特别重要,但也可以任意规定这些方向。也就是说,假设方向为:

4d5304715d1f5045b71e658a922e13e8.png

这个方向的导数定义为:

c0ab6a72d56dc59923badba0152b8a6e.png

注意,最后一个等式就是方向向量和梯度的点积,这可能和高中几何课堂上遇到的点积是相同的。所以:

问题是,哪个方向的方向导数最大?答案是上升程度最陡峭的方向,所以如果要优化,得先知道这个特定的方向。这个方向就是之前提过的梯度,点积可以写作:

0eb099130089603dbb0ce7ec18ab6f1e.png

e795c9bf6d1c8ef7ac4e4858c2cf5338.png

式中的 |.| 表示向量长度,α是两向量间的夹角(这在任意维数上都是成立的,不只是二维)。显而易见,当 cosα=1,即 α=0 时,表达式取最大值。这就意味着这两个向量是平行的,所以 e 的方向和梯度方向是相同的。

训练神经网络

现在要从理论转战实践了,了解如何训练神经网络。假设任务是将有 n 维特征向量的图像分成 c 类。从数学角度看,神经网络代表将 n 维特征空间映射到 c 维空间的函数 f:

d7a36a8cb7918c24d534bc25c7547474.png

神经网络本身是参数化的函数。方便起见,将参数标记为 m 维向量:

418dc8bb605d31a9b9ad71d3634053bf.png

为了表现出对参数的依赖,习惯记为:

40952e6e0d4d3944ddc86fce473e3ba9.png

将神经网络的参数空间映射为实数。损失函数记为:

a6a774e36120fc2b3d21695b206f3d8d.png

式中的8f9a877666f2cf8cede24465cf584131.png是观测值为e0c761cdbe2e6ff697e4c3f974d917e0.png的第 i 个数据点

L 是损失函数项。例如,如果 J 是交叉熵损失,则:

613fa005147b64b710fb3fbf49631a1c.png

式中

403a2bdf4514146569acf29673dd5fac.png

这看似简单,但难以计算。在真实世界中有数百万个数据点 N,更别说参数 m 的数量了。所以,一共有数百万项,因此要计算数百万个导数来求最小值。那么在实践中该如何解决这一问题?

随机梯度下降

要用梯度下降,得先计算:

fc1bc1659536c1b97e0df1a4b221b952.png

如果 N 很大,那么计算量就很大,而一般都希望 N 大一点(因为想要尽量多的数据)。可以化简吗?一种方式是忽略一部分。尽管这看起来像个不靠谱的方案,但却有坚实的理论基础。要理解这一点,首先注意 J 其实可以写成期望值:

c01ed7693770371175c10f744ad4bf0d.png

式中的6ed27e25f76946ef7beff191b8d54eea.png是训练数据给出的(经验)概率分布。可以将序列写成:

7c5b5a09c9ae92023318549ad2243b20.png

这样就成了独立同分布的随机变量。根据大数定律:

deea357f13a829e0c0f24072178019bd.png

式中f179cc25ba41ea01095b2ff51bda4174.png是真正的总体分布(这是未知的)。再详细点说,因为增加了训练数据,损失函数收敛到真实损失。因此,如果对数据二次采样,并计算梯度:

5321a1517f3966fbab4ff9b1c219c35b.png

对某些 i,如果计算足够,仍然可以得到合理的估计。这就是所谓的随机梯度下降,记为 SGD (Stochastic Gradient Descent)。

我认为,研究人员和数据科学家能有效训练深度神经网络依赖于三个基础发展:将 GPU 作为通用的计算工具、反向传播还有随机梯度下降。可以肯定地说,如果没有 SGD,就无法广泛应用深度学习。

与几乎所有新方法一样,SGD 也引入了一堆新问题。最明显的是,二次采样的样本量要有多大?太小可能会造成梯度估计有噪声,太大则会造成收益递减。选择子样本也需要谨慎。例如如果所有子样本都属于一类,估计值可能会相差甚远。但在实践中,这些问题都可以通过实验和适当随机化数据来解决。

改善梯度下降

梯度下降(以及 SGD 变体)存在一些问题,因此这些方法在某些情况下可能会无效。例如,学习率控制着梯度方向上前进的步长。在这个参数上一般会犯两个错误。第一,步长太大,以至于损失无法收敛,甚至可能分散;第二,步长太小,可能因为前进太慢,永远都无法到达局部最小值。为了阐明这个问题,以 f(x)=x+sin x 函数为例进行研究:

4183ab59834944aded592104625bb407.png

假设从 x_0=2.5 开始进行梯度下降,学习率 α 分别为 1、0.1 和 0.01。

15e83348350114a2cc432cbb5d118ab7.png

理解起来可能不够直观,所以对每个学习率的 x-s 绘图:

5ba53c084d1b939d52d65fad30f58340.png

当 α=1 时,图像在两点间震荡,无法收敛到局部最小值;当 α=0.01 时,收敛得似乎很慢。在本例中,α=0.1 似乎是合适的。那在一般情况下该如何确定这个值呢?这里的中心思想是,学习率不一定是恒定的。同理,如果梯度幅度很大,就应该降低学习率,避免跳得太远。另一方面,如果梯度幅度较小,那可能意味着接近局部最优值了,所以要避免超调(overshooting)的话,学习率绝对不能再增加了。动态改变学习率的算法也就是所谓的自适应算法。

最流行的自适应算法之一是 AdaGrad。它会累积存储梯度幅度和大小,并根据记录调整学习率。AdaGrad 定义了累积变量 r_0=0 并根据规则进行更新:

5de9a85e448a72d1ffdb44bcebc211d1.png

式中的

317516c70cc776a43537b15534bf7192.png

表示两个向量的分量乘积。将其用于度量学习率:

218c419d33be754a679732f06827dfe9.png

式中的 δ 是为了保持数据稳定的数值,平方根是根据分量取的。首先,当梯度大时,累积变量会很快地增长,学习率会下降。当参数接近局部最小值时,梯度会变小,学习率会停止下降。

当然,AdaGrad 是一种可能的解决方案。每一年都会有越来越多先进的优化算法,来解决梯度下降相关的问题。但即便是最先进的方法,使用并调整学习率,都是很有好处的。

另一个关于梯度下降的问题是要确定全局最优值或与之接近的局部最优值。看前面的例子,梯度下降通常会陷入局部最优值。为了更好地了解这一问题和更好的解决办法,建议您阅读 Ian Goodfellow、Yoshua Bengio 和 Aaron Courville 所著的《深度学习》(Deep Learning)第八章(https://www.deeplearningbook.org/)。

深度神经网络的损失函数什么样?

前面的例子只可视化了非常简单的玩具示例,比如 f(x)=25sin x-x^2。这是有原因的:绘制超过两个变量的函数图像很难。考虑到固有的局限性,我们最多只能在三个维度上进行观察和思考。但为了了解神经网络中的损失函数,可以采取一些技巧。Hao Li 等人发表的论文《Visualizing the Loss Landscape of Neural Nets》(https://arxiv.org/pdf/1712.09913.pdf)就是有关这个的,他们选择两个随机方向,对二变量函数绘图,从而可视化损失函数。

50ff94a47e57602bd3fc9314f436e13a.png

(为了避免因尺度不变而引起的失真,他们还在随机方向中引入了一些归一化因素。)他们的研究揭示了在 ResNet 架构中,残差连接是如何影响损失,让优化变得更容易的。

0722af2eab5f84a6347d82f2d30322b8.png

图像来源:Hao Li 等人所著《Visualizing the Loss Landscape of Neural Nets》(https://arxiv.org/pdf/1712.09913.pdf)。

无论残差连接做出了多显著的改善,我在这里主要是想说明多维优化的难度。在图中的第一部分可以看出,有多个局部最小值、峰值和平稳值等。好的架构可以让优化变得更容易,但完善的优化实践,可以处理更复杂的损失情况。架构和优化器是相辅相成的。

总结

我们在前文中已经了解了梯度背后的直观理解,并从数学角度以精确的方式定义了梯度。可以看出,对于任何可微函数,无论变量数量如何,梯度总是指向最陡的方向。从概念上来讲非常简单,但当应用在有数百万变量的函数上时,存在着很大的计算困难。随机梯度下降可以缓解这个问题,但还存在陷入局部最优、选择学习率等诸多问题。因此,优化问题还是很困难的,需要研究人员和从业人员多加关注。事实上,有一个非常活跃的社区在不断地进行改善,并取得了非常惊人的成绩!

觉得还不错就给我一个小小的鼓励吧!
从TensorFlow到DL4J——主流深度学习框架对比分析 从TensorFlow到DL4J——主流深度学习框架对比分析 2022年2月22日 极链AI云 官网地址 点击注册 更多AI小知识,关注《极链AI云》公众号 文章目录从TensorFlow到DL4J——主流深度学习框架对比分析一、深度学习框架概述与深度学习技术的四大阵营二、主流开源深度学习框架的来龙去脉2.1 TensorFlow2.2 Keras2.3 Pytorch2.4 Theano2.4 Caffe2.5 Caffe22.6 Torch2.7 FastAI2.8 MXNet2.9 Gluon 阅读详情

相关推荐

深度学习如何入门?

序言人工智能现在这么火,很多人都想转行,跃跃欲试,但是如果方法不对,就会走很多弯路比如:有的人就非要系统学习数学知识、然后再系统学习Python、然后再学习机器学习,最后才学深度学习,其实如果想尽快入门并且入职,完全没必要,你可以直接学习深度学习,大量练习项目,再回头研究算法机理。这样你就更加容易理解算法。企业面试也是重点考察你的代码能力,所以先务实代码基础,再回头深挖算法机理。这样的的学习效率最...

u012298038的博客 1万+

优化背后的数学基础

选自medium作者:Tivadar Danka机器之心编译参与:李诗萌、张倩深度学习中的优化是一项极度复杂的任务,本文是一份基础指南,旨在从数学的角度深入解读优化器。一般而言,神经网络...

zandaoguang的博客 553

人工智能面试总结-优化函数

说说优化函数的作用?说说梯度下降法的作用?说说梯度下降法算法步骤?说说你知道的优化函数?展开说说梯度下降、批次梯度下降、随机梯度下降?说说Batch的影响?说说批量梯度下降与随机梯度下降区别?说说哪些方法对梯度引入动量进行改进?说说哪些方法对学习率引入动量进行改进?说说各优化器在优化什么以及大致优化步骤?说说SGD和Adam的对比?说说Adam的二阶矩原理? 说说优化函数的作用?  损失函数是用来度量模型预测值和真实值间的偏差,偏差越小,模型越好,所以需要最小化损失函数。如何求最小值呢?我们知道对于凸

啥都生的博客 2399

人工智能-数学基础-函数与优化

一.最优化问题 1.一元方程最优化问题 求解函数极小值 f(x)=x2+x−1 f(x) = x^2 + x -1 f(x)=x2+x−1 1.1 传统求解 先求导,使导数为0: f′(x)=2x+1=0 f\prime(x) = 2x+ 1=0 f′(x)=2x+1=0 x=−0.5x = -0.5 x=−0.5 但是大多数情况下,函数很难直接计算导数为0,并且计算机无法跟人脑似的解方程,所以大多数情况下需要依靠数值求解。 1.2 随机过程求解,类似“模拟退火” 依靠不断地尝试求解: """ 一元二次方程

纯洁的小魔鬼 1826

【深度学习】利用Java DL4J 训练金融投资组合模型

深度学习是机器学习的一个分支领域,它通过构建具有多个层次的神经网络模型来自动学习数据的特征表示。在本案例中,我们将使用多层感知机(MLP)神经网络。多层感知机是一种前馈神经网络,它由输入层多个隐藏层和输出层组成。选择 MLP 的原因在于它具有强大的函数逼近能力,能够处理复杂的非线性关系。在金融投资组合优化问题中,资产价格与各种影响因素之间的关系往往是非线性的,MLP可以有效地学习这些复杂关系并进行预测。

在技术的广袤天地里,本博客如精准罗盘。剖析前沿科技,深掘代码奥秘,以精炼笔触,带您穿越复杂技术迷宫,速达知识彼岸。 7539

SQL Server 2025在Windows 11上的安装避坑指南

SQL Server 是微软主流关系型数据库管理系统,其安装与Windows操作系统深度耦合;Windows 11作为新一代桌面平台,强化了基于虚拟化的安全(HVCI)、驱动签名强制策略(WDAC)及内核隔离机制,导致传统数据库部署流程失效。理解二者底层交互原理,是解决服务启动失败、配置管理器无法打开、远程连接被拒等高频问题的技术前提。本文聚焦SQL Server 2025与Windows 11的兼容性挑战,覆盖系统预配置、安装节点诊断、防火墙与服务权限调优等工程实践环节,适用于高校教学、电赛备赛、中小企业

weixin_28741413的博客 323

人工智能面试总结(4)—— 优化函数

该面总结了春招/秋招各厂高频面试八股,除开围绕简历扣项目细节,公司最喜欢问的还是这些经典算法中涉及的知识点。

SmallPink0713的博客 809

tree_sitter多语言解析器配置实战指南

本文是一份详细的Tree-sitter多语言解析器配置实战指南。文章从零开始,手把手指导如何搭建Python环境、安装指定版本的tree-sitter库、下载并编译多种语言的语法规则,最终构建一个统一的解析器库。通过实战代码演示了如何初始化解析器、解析代码并遍历语法树,旨在帮助开发者高效处理多语言代码分析任务,并分享了高级技巧与常见问题排坑经验。

weixin_29245767的博客 268

【深度学习】深度学习优化背后包含哪些数学知识?

转载:机器之心深度学习中的优化是一项极度复杂的任务,本文是一份基础指南,旨在从数学的角度深入解读优化器。深度学习中的优化是一项极度复杂的任务,本文是一份基础指南,旨在从数学的角度深入解读优化器。一般而言,神经网络的整体性能取决于几个因素。通常最受关注的是网络架构,但这只是众多重要元素之一。还有一个常常被忽略的元素,就是用来拟合模型的优化器。为了说明优化的复杂性,此处以 ResNet 为例。ResN...

fengdu78的博客 177

unity人物刚体移动_Unity3D实现2D人物移动-总结篇

背景最近研究Unity3d,2d寻路的实现。所以又一次涉及到了角色坐标位移的问题。系统的对于角色鼠标点击移动这个简单问题进行整理和总结。本来就是一个简单的几何问题,结果发现已经有两个小坑,顺便填上,这里做下总结。实现需求:通过鼠标点击,控制2d角色移动,就是点哪里,角色向移动到哪里问题分解:按照时间进行动画分解,鼠标输入(动画开始)、平移(动画进行)、移动结束(动画结束)前提:这里前面的文章基本解...

weixin_39610366的博客 1277

USB2.0物理层实战:手把手教你用示波器抓取D+/D-信号(附波形分析)

本文是一份针对硬件工程师的USB2.0物理层信号调试实战指南。文章详细讲解了如何使用示波器捕获和分析D+/D-差分信号,从基础设置、核心信号状态解读,到信号完整性分析与常见问题排查,手把手教你定位USB通信故障。内容涵盖USB2.0协议物理层关键概念,并附有基础解码思路,旨在提升工程师的底层调试能力。

s8t9u0v1w的博客 456

深度学习——你应该掌握的数学知识

深度学习——你应该掌握的数学知识 2.1 线性变换和非线性变换 2.1.1 线性变化的定义 线性变换是指具有如下性质的函数TTT: 对于向量u⃗&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;nbsp;u→\vec{u}和v⃗&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;nbsp;v→\vec{v

GUANGZHAN的专栏 1万+

一、数学建模层次分析法(AHP)【清风数学建模个人笔记】

层次分析法: 层次分析法主要用于解决评价类问题(例如:选择哪种方案更好、哪位员工、运动员等表现得更优秀) 评价类问题: 分析问题得出评判问题的子标,分别给不同子标赋予权重(权重和要为1) ...

m0_58882109的博客 1万+

入门深度学习的必备数学知识

作者:徐洲更中科院在读遗传学博士。出于对计算机科学的兴趣,蜻蜓点水式自学了大量编程相关知识,现在对深度学习很感兴趣,正在恶补相关知识。此外,还负责帮忙管理生信媛,一个热衷于分享生物信息学知...

图灵教育 667

《UDS协议从入门到精通》系列——图解0x34:请求下载

上传下载类服务之0x34-请求下载,图解请求+响应格式,直观易懂,快速上手!!

车载系统攻城狮 4931

Multica 自托管部署与使用入门:从上线到让 AI Agent 真正干活

Multica是一个将AI Agent作为团队成员的任务协作平台,支持自托管部署。本文介绍了完整的单机部署流程: 核心架构包括前端界面、后端服务、PostgreSQL数据库和Runtime执行机器 推荐使用Docker Compose部署,需配置数据持久化目录 提供详细的docker-compose.yml和.env配置文件说明 重点注意事项:数据库密码和JWT密钥必须修改,生产环境配置必须设为production 需正确配置前端访问地址和WebSocket连接 部署完成后,用户可创建AI Agent并将其

q742971636的博客 1733

开源亮点:DL-Text 深度学习文本预处理库

开源亮点:DL-Text 深度学习文本预处理库 在这个信息爆炸的时代,深度学习在自然语言处理(NLP)领域中的应用愈发重要,而数据的预处理作为整个流程的第一步,其质量和效率直接影响着最终模型的表现和结果。今天要向大家介绍的是一个强大的开源项目——DL-Text。 一、项目简介 DL-Text是一个专注于深度学习场景下文本预处理的Python库,它不仅提供了全面的数据清洗和特征提取功能,还包含了训练...

gitblog_00020的博客 1127

YOLO26升级:CVPR2026 WDAM小波方向注意力+C2PSA,频域高频引导低频暗区复原,小目标检测精度跃升!

将 WDAM 引入 YOLO 的 C2PSA 模块,核心优势在于用极低的计算开销,为模型装上了一个“结构感知”的增强器,尤其适合处理密集小目标与边缘部署场景。

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 377

AI 背后的数学引擎:掌握这些数学知识,你也能玩转人工智能!(一)

人工智能的快速发展离不开坚实的数学基础,数学为机器学习、深度学习等领域的算法设计与优化提供了理论支撑。无论是构建神经网络、训练模型,还是分析数据分布、优化参数,都需要掌握一系列核心数学工具。微积分是理解梯度下降、反向传播等关键概念的基础,线性代数为处理高维数据与矩阵运算提供了框架,概率论与统计学帮助建模不确定性并进行推断,最优化理论则指导如何高效调整模型参数以达到预期目标。这些数学分支相互交织,共同构成了人工智能技术的底层逻辑。

遇见,获得,失去,成长,释怀,完结。我与旧事归于尽,来年依旧迎花开。 1917

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

SVM优化技巧和背后的数学知识

SVM优化技巧和背后的数学知识

Eva_Hua的专栏 787

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

DL-FWI培训Day4

本贴基于闵帆老师对于2025届新生进行的DL-FWI培训第四天进行心得总结。

perfect458的博客 802

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

学习人工智能所需的数学知识及路线规划,非常详细,从入门到精通,看这一篇就够了

人工智能(AI)作为当代科技的热点领域,其背后离不开坚实的数学基础。本文旨在探讨学习人工智能所需的数学知识及其相应的路线规划,帮助初学者系统地掌握这一领域的核心技能。一、数学基础知识的重要性数学是人工智能发展的基石,它不仅为算法设计提供了理论基础,还直接决定了模型的准确性和效率。因此,掌握必要的数学知识是学习人工智能的先决条件。二、必要的数学知识线性代数线性代数是人工智能领域最基础的数学工具之一。

m0_71745484的博客 983

如何优化深度学习模型

https://www.toutiao.com/a6684869494898164232/ 2019-04-28 17:07:47 大数据文摘出品 来源:nanonets 编译:刘佳玮、张秋玥、毅航、夏雅薇 看过了各式各样的教程之后,你现在已经了解了神经网络的工作原理,并且也搭建了猫狗识别器。你尝试做了了一个不错的字符级RNN。你离建立终端只差一个pip...

喜欢打酱油的老鸟 5982
上一篇: pandas 文本处理大全(附代码)
下一篇: 因为爬虫失控,CTO 和程序员双双被判刑
Wang_AI
博客等级 码龄12年 997粉丝 162原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值