![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
李沐【动手深度学习】笔记
文章平均质量分 73
o(╯□╰)o亚比囧囧囧
这个作者很懒,什么都没留下…
展开
-
李沐 损失函数【动手学深度学习v2】
梯度下降时,沿负梯度方向更新参数,导数决定如何更新参数。y'(预测值)与y相差较大时,梯度较大,对参数更新的幅度较大。当越靠近原点,梯度的绝对值越来越小,对参数更新的幅度也越来越小。当预测值和真实值的差的绝对值小于等于1时,是平方误差。:梯度,当y'>0时,导数为1,y'<0时,导数为-1。当预测值和真实值的差的绝对值大于1时,是绝对值误差。:表示损失函数的梯度,一次函数,且穿过原点。:二次函数,y为0时,关于y'的函数。:二次函数,y为0时,关于y'的函数。:高斯分布,似然函数,1^(-l)原创 2024-06-25 21:37:11 · 180 阅读 · 0 评论 -
李沐 图片分类数据集【动手学深度学习v2】
Fashion-MNIST中包含的10个类别,分别为t-shirt(T恤)、trouser(裤子)、pullover(套衫)、dress(连衣裙)、coat(外套)、sandal(凉鞋)、shirt(衬衫)、sneaker(运动鞋)、bag(包)和ankle boot(短靴)。Fashion-MNIST由10个类别的图像组成,每个类别由训练数据集(train dataset)中的6000张图像 和测试数据集(test dataset)中的1000张图像组成。一般来说,要让读取数据的速度大于训练数据的速度。原创 2024-09-09 20:54:42 · 204 阅读 · 0 评论 -
李沐 softmax回归的从零开始实现【动手学深度学习v2】
在实现softmax回归模型之前,先简要回顾一下sum运算符如何沿着张量中的特定维度工作。给定一个矩阵X,我们可以对所有元素求和], 也可以只求同一个轴上的元素,即同一列(轴0)或同一行(轴1)。如果X是一个形状为(2,3)的张量,我们对列进行求和, 则结果将是一个具有形状(3,)的向量。当调用sum运算符时,我们可以指定保持在原始张量的轴数,而不折叠求和的维度。这将产生一个具有形状(1, 3)的二维张量。0是对列求和,得到一个行向量;1是对行求和,得到一个列向量。实现softmax的三个步骤:对。原创 2024-09-11 22:52:33 · 543 阅读 · 0 评论 -
李沐 Softmax 回归 【动手学深度学习v2】
分类问题我们从一个图像分类问题开始。 假设每次输入是一个2×2的灰度图像。 我们可以用一个标量表示每个像素值,每个图像对应四个特征𝑥1,𝑥2,𝑥3,𝑥4。此外,假设每个图像属于类别“猫”“鸡”和“狗”中的一个。接下来,我们要选择如何表示标签。我们有两个明显的选择:最直接的想法是选择𝑦∈{1,2,3}, 其中整数分别代表狗猫鸡{狗,猫,鸡}。 这是在计算机上存储此类信息的有效方法。 如果类别间有一些自然顺序, 比如说我们试图预测婴儿儿童青少年青年人中年人老年人{婴儿,儿童,青少年,青年原创 2024-05-18 21:48:10 · 663 阅读 · 0 评论 -
李沐 线性回归的简洁实现 【动手学深度学习v2】
对于标准深度学习模型,我们可以使用框架的预定义好的层。这使我们只需关注使用哪些层来构造模型,而不必关注层的实现细节。我们首先定义一个模型变量net,它是一个Sequential类的实例。Sequential类将多个层串联在一起。当给定输入数据时,Sequential实例将数据传入到第一层, 然后将第一层的输出作为第二层的输入,以此类推。线性回归就是一个简单的单层的神经网络,因此实际上不需要Sequential。但是由于以后几乎所有的模型都是多层的,在这里使用Sequential会让你熟悉。原创 2024-05-17 23:19:39 · 878 阅读 · 1 评论 -
李沐 线性回归的从0开始实现【动手学深度学习v2】
接下来,我们必须[定义模型,将模型的输入和参数同模型的输出关联起来。计算线性模型的输出——计算输入特征𝑋和模型权重𝑤的矩阵-向量乘法后加上偏置𝑏。注意,上面的Xw是一个向量,而𝑏是一个标量。根据广播机制: 当一个向量加一个标量时,标量会被加到向量的每个分量上。原创 2024-05-17 21:41:46 · 902 阅读 · 1 评论 -
李沐 基础优化算法【动手学深度学习v2】
基础优化算法中最常见的算法为 梯度下降。不断更新w0,使其接近最优解。更新法则为等于上一时刻减去(标量,学习率)与损失函数关于的梯度的乘积。初始时t=1,表示从w0到w1的向量,再与w0相加,就得到了w1的位置。同样,接下来t=2,从w1的位置开始,先计算梯度,再走一步得到w2的位置……学习率为超参数,是需要人为指定的值。不能太小:步长有限,步数较多,计算梯度的成本较高。不能太大:导致一直在震荡,并没有真正地下降。梯度的计算复杂度,与样本的个数线性相关在训练我们的模型时,我们经常希望能够同时处理整个小批量的原创 2024-05-08 11:24:50 · 193 阅读 · 0 评论 -
李沐 线性回归 【动手学深度学习v2】
线性模型可以看做是单层神经网络,是最简单的一种神经网络其中,1/2是为了在求导时方便消去。假设xi(即小x)为列向量,再经过转置,则X(即大X)的每一行就是一个样本。同样,y为列向量,每一行的yi是实数的数值。对于模型,在每一个数据上的损失,求均值,可得到损失函数。公式如下:与X,y,w,b有关其中,1/2来自损失函数,1/n表示求平均。针对每一个样本,用真实值yi减去预测值(<xi,w>+b),也可写成向量版本,再求平方和。目标为找到w和b使得平方中的项的值最小,即最小化损失!w*和b*就是我们的解。解释原创 2024-05-08 11:08:08 · 114 阅读 · 0 评论 -
李沐 自动求导实现【动手学深度学习v2】
中所说,求导是几乎所有深度学习优化算法的关键步骤。虽然求导的计算很简单,只需要一些基本的微积分。但对于复杂的模型,手工进行更新是一件很痛苦的事情(而且经常容易出错)。深度学习框架通过自动计算导数,即自动微分来加快求导。实际中,根据设计好的模型,系统会构建一个计算图, 来跟踪计算是哪些数据通过哪些操作组合起来产生输出。自动微分使系统能够随后反向传播梯度。这里,反向传播意味着跟踪整个计算图,填充关于每个参数的偏导数。原创 2024-05-07 21:51:09 · 660 阅读 · 0 评论 -
李沐 自动求导【动手学深度学习v2】
前向:需要存储所有中间结果反向:从相反方向执行图,可以去除不必要的枝,需要用到中间结果。原创 2024-05-07 20:34:54 · 161 阅读 · 0 评论 -
李沐 矩阵计算【动手学深度学习v2】
将导数拓展到不可微的函数。原创 2024-05-07 19:56:15 · 124 阅读 · 0 评论 -
李沐 线性代数【动手学深度学习v2】
向量全由0。原创 2024-05-07 18:54:02 · 1171 阅读 · 0 评论 -
李沐 数据预处理【动手学深度学习v2】
sec_pandas为了能用深度学习来解决现实世界的问题,我们经常从预处理原始数据开始, 而不是从那些准备好的张量格式数据开始。在Python中常用的数据分析工具中,我们通常使用pandas软件包。像庞大的Python生态系统中的许多其他扩展包一样,pandas可以与张量兼容。本节我们将简要介绍使用pandas预处理原始数据,并将原始数据转换为张量格式的步骤。后面的章节将介绍更多的数据预处理技术。原创 2024-05-06 22:03:54 · 401 阅读 · 0 评论 -
李沐 数据操作实现【动手学深度学习v2】
这个新的张量包含与转换前相同的值,但是它被看成一个3行4列的矩阵。注意,通过改变张量的形状,张量的大小不会改变。对于将两个数组作为输入的函数,按元素运算将二元运算符应用于两个数组中的每对位置对应的元素。在下面的例子中,我们使用逗号来表示一个具有5个元素的元组,其中每个元素都是按元素操作的结果。虽然我们讨论的是矩阵的索引,但这也适用于向量和超过2个维度的张量。在上面的例子中,为了获得一个3行的矩阵,我们手动指定了它有3行和4列。在上面的部分中,我们看到了如何在相同形状的两个张量上执行按元素操作。原创 2024-05-06 21:35:54 · 958 阅读 · 0 评论 -
李沐 数据操作【动手学深度学习v2】
区间为左闭右开,子区域取1,2两行,1:指取1列及向后的所有列。·每个元素的数据类型:例如32位浮点数。·每个元素的值,例如全是0,或者随机数。·形状:例如3x4矩阵。从0行开始,3行一跳。从0列开始,2列一跳。原创 2024-04-29 11:24:07 · 92 阅读 · 0 评论