【深度学习】3-从模型到学习的思路整理

简介: 【深度学习】3-从模型到学习的思路整理

1. 模型


神经网络的模型可以就看作为一个函数,模型学习(训练)的过程,就可以看成是给函数寻找合适的参数的过程。比如,下面就是一个简单的模型,它所表示的函数就是 y = w 1 x 1 + w 2 x 2 y = w1x1+w2x2y=w1x1+w2x2


这个函数在两个侧面的投影,就是 y = w 1 x 1 y=w1x1y=w1x1 和 y = w 2 x 2 y=w2x2y=w2x2。学习一个多元函数,可以看成是分别学习多个一元的函数。


image.png

2. 损失


损失,也就是模型和数据的不贴合程度。

衡量损失常用的一个函数是均方损失函数:l o s s = ∑ i = 1 n ( y i ^ − y i ) 2 loss=\displaystyle\sum_{i=1}^n(\hat{y_{i}}-y_{i})^2loss=

i=1

n


(

y

i


^


−y

i


)

2

,其中 n 为数据点数量。

函数也可以写成 l o s s = ∑ i = 1 n ( W X i − y i ) 2 loss=\displaystyle\sum_{i=1}^n(WX_{i}-y_{i})^2loss=

i=1

n


(WX

i


−y

i


)

2

,其中 W 为模型的所有权值,X i X_{i}X

i


 为第 i 个数据点的所有自变量。


既然衡量损失有了一个确定的函数,那训练模型的过程就可以变成一个最小化损失的过程,方法就是不断地改变权值W,使函数关于所有这些数据点的损失(或者说平均损失)不断变小。


image.png


3. 损失loss关于权值W的梯度


通常来说,应该函数的权值 W 是固定的,而数据的特征 X 作为自变量。但我们是要通过一个固有的数据集,来优化权值W,所以在优化过程中,我们要把损失函数l o s s lossloss中的W看作自变量。


然后我们求 l o s s lossloss 关于 W WW 的梯度,遵循着梯度的指引来改变 W WW。


如果某个权值的梯度是正的,说明随着权值w ww的增大,损失l o s s lossloss也会增大。那我们为了让损失变小,就要减小w ww的值。

同样,如果梯度是负的,我们就要增大对应的权值。


image.png


W WW 中的每个 w ww 的移动,可以看成是相对独立、互不干扰的。更新一个有很多权值的复杂模型,就成了很多重复的这样更新单个权值的操作。


4. 求梯度——数值梯度


在具体求梯度的过程中,计算机本身是不会公式演算的。但我们并不需要对损失函数求出梯度的表达式,而只需求函数在每个 权值w ww处的梯度值。


数值梯度的方法,就人为地设置了一个确定的微小值 h hh,比如 1 0 − 5 10^{-5}10

−5

(具体根据实际需要)。

l o s s g = l o s s ( w + h ) − l o s s ( w − h ) 2 h loss_ g = {loss(w+h)-loss(w-h) \over 2h}

loss

g


=

2h

loss(w+h)−loss(w−h)



因此,我们更新 w ww 的方式,就像是先试探着往一个方向走一小步,如果发现合适,就再往那个方向走一大步;否则,就往反方向走。


5. 梯度下降中的小批量


小批量随机梯度下降法是机器学习中一种常用的方法,为什么要用到小批量?


前面每次计算损失,都是计算模型函数关于整个样本数据集的损失。那么在样本数据很大时,比如十万、百万的数据量时,这样计算资源的消耗就太大了,而且是不必要的。


使用小批量,就是起到部分代表整体的作用。我们假装一个小批量,就体现着整个数据集的特征。然而这难免有些片面性,通过小批量所指引的 w ww 前进的方向,有可能从整个的数据集中来看并不是恰当的方向。因此,我们把一个数据集划分成许多个小批量后,每个小批量都会使用,且会进行多轮(多个周期)的训练,以将整个数据集的特征都充分展现出来。

image.png

相关文章
|
1月前
|
机器学习/深度学习 数据采集 算法
构建高效图像分类模型:深度学习在处理大规模视觉数据中的应用
随着数字化时代的到来,海量的图像数据被不断产生。深度学习技术因其在处理高维度、非线性和大规模数据集上的卓越性能,已成为图像分类任务的核心方法。本文将详细探讨如何构建一个高效的深度学习模型用于图像分类,包括数据预处理、选择合适的网络架构、训练技巧以及模型优化策略。我们将重点分析卷积神经网络(CNN)在图像识别中的运用,并提出一种改进的训练流程,旨在提升模型的泛化能力和计算效率。通过实验验证,我们的模型能够在保持较低计算成本的同时,达到较高的准确率,为大规模图像数据的自动分类和识别提供了一种有效的解决方案。
|
1月前
|
机器学习/深度学习 数据采集 PyTorch
使用PyTorch解决多分类问题:构建、训练和评估深度学习模型
使用PyTorch解决多分类问题:构建、训练和评估深度学习模型
使用PyTorch解决多分类问题:构建、训练和评估深度学习模型
|
9天前
|
机器学习/深度学习 API 算法框架/工具
R语言深度学习:用keras神经网络回归模型预测时间序列数据
R语言深度学习:用keras神经网络回归模型预测时间序列数据
18 0
|
9天前
|
机器学习/深度学习 并行计算 算法
R语言深度学习不同模型对比分析案例
R语言深度学习不同模型对比分析案例
26 0
|
11天前
|
机器学习/深度学习 人工智能 分布式计算
R和Python机器学习:广义线性回归glm,样条glm,梯度增强,随机森林和深度学习模型分析
R和Python机器学习:广义线性回归glm,样条glm,梯度增强,随机森林和深度学习模型分析
16 0
|
13天前
|
机器学习/深度学习 自然语言处理 算法
探索深度学习中的序列建模新范式:Mamba模型的突破与挑战
【4月更文挑战第13天】Mamba模型,一种新型序列建模架构,通过选择性状态空间提高处理长序列数据的效率,实现线性时间复杂度。在语言、音频和DNA序列建模中展现优秀性能,尤其在大规模预训练中超越Transformer。然而,面对连续信号数据时可能不及LTI模型,且模型参数优化及硬件实现具有挑战性。
47 6
探索深度学习中的序列建模新范式:Mamba模型的突破与挑战
|
15天前
|
机器学习/深度学习 人工智能 自然语言处理
|
1月前
|
机器学习/深度学习 数据可视化 Linux
深度学习模型可视化工具——Netron使用介绍
深度学习模型可视化工具——Netron使用介绍
45 2
|
1月前
|
机器学习/深度学习 资源调度 算法
深度学习模型数值稳定性——梯度衰减和梯度爆炸的说明
深度学习模型数值稳定性——梯度衰减和梯度爆炸的说明
19 0
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
从零开始学习深度学习:入门指南与实践建议
本文将引导读者进入深度学习领域的大门,从基础概念到实际应用,为初学者提供全面的学习指南和实践建议。通过系统化的学习路径规划和案例实践,帮助读者快速掌握深度学习的核心知识和技能,迈出在人工智能领域的第一步。