
深度学习
Morning的呀
Keep Hungry,Keep,Foolish
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Class31微调
如果目标数据集中的数据类型与源数据集数据相符,那么源数据集就相当于预训练,可以直接拿来用,但是最后一层的标号需要更改为与目标数据集一致。越靠近底层,学习的内容越基础,越靠近上层,学习的内容越贴近标号。第一层到倒数第二层都相当于在做特征抽取。原创 2025-08-07 12:18:16 · 149 阅读 · 0 评论 -
Class30代码实现
”“用多GPU进行小批量训练”“”# 计算当前batch的预测准确数。# 计算当前batch的总损失。# 把数据移到第一个GPU上。# 将数据分发给所有GPU。# 判断是否为多个GPU。原创 2025-08-06 22:06:48 · 131 阅读 · 0 评论 -
Class30数据增广
改变色调,饱和度,明亮度(e.g.[0.5,1.5])随机高宽比(e.g.[3/4,4/3])增加一个已有数据集,使得有更多的多样性。随机大小(e.g.[8%,100%])从图片中切割一块,然后变形到固定形状。在语言里加入各种不同的背景噪音。在图片里改变图片的颜色和形状。原创 2025-08-06 18:55:52 · 127 阅读 · 0 评论 -
Class29代码实现
【代码】Class29代码实现。原创 2025-08-06 15:11:38 · 35 阅读 · 0 评论 -
Class28批量归一化的简洁实现
【代码】Class28批量归一化的简洁实现。原创 2025-08-01 18:16:18 · 91 阅读 · 0 评论 -
Class28批量归一化的从零开始实现
【代码】Class28批量归一化的从零开始实现。原创 2025-08-01 18:15:20 · 86 阅读 · 0 评论 -
Class28批量归一化
批量归一化(Batch Normalization,简称BN)是一种用于加速神经网络训练、稳定训练过程并提高模型性能的技术。它最早由Ioffe和Szegedy在 2015 年提出,在深度学习中非常常见。计算当前小批量(Batch)中输入。,同时加上 ε 保证数值稳定。:通常放在线性层和激活函数之间。:通常放在卷积层和激活函数之间。学习变慢,需要精细调整学习率。BN要求在每一层的输入上进行。,从而缓解内部协变量偏移。原创 2025-08-01 16:42:04 · 544 阅读 · 0 评论 -
Class27代码实现
【代码】【无标题】原创 2025-07-30 19:40:21 · 112 阅读 · 0 评论 -
Class26代码实现
【代码】Class26代码实现。原创 2025-07-30 17:36:38 · 444 阅读 · 0 评论 -
Class25代码实现
【代码】Class25代码实现。原创 2025-07-30 17:34:47 · 72 阅读 · 0 评论 -
Class27GoogLeNet
GoogLeNet是 Google在2014年ILSVRC(ImageNet Large Scale Visual Recognition Challenge)比赛中提出的一种深度卷积神经网络,它在保持较低计算复杂度的同时取得了极好的性能。GoogLeNet 的核心是 Inception Module,它通过并行的不同尺寸卷积和池化操作提取特征,捕捉不同感受野的信息,最后将它们在通道维度上拼接。3×3 max pooling 后再用 1×1 卷积(降低信息损失)3×3 卷积(中等感受野)原创 2025-07-30 17:32:51 · 485 阅读 · 0 评论 -
Class26NiN
NiN是在 2013 年提出的一种改进型卷积神经网络架构,主要思想是提升模型的表达能力和非线性建模能力。NiN 的提出主要是对传统卷积神经网络中卷积层的限制进行突破和扩展。,即对一个局部感受野做加权求和,得到一个特征值,接着加上偏置再通过激活函数。)卷积层堆叠在一起来替代一个普通卷积层,实现更复杂的特征抽象。结构固定、没有太多变种形式,灵活性不如 ResNet、DenseNet。)来代替传统的线性卷积核。1.增强网络的非线性建模能力;减少全连接层参数,提升泛化能力。更强的非线性建模能力。原创 2025-07-30 15:35:53 · 231 阅读 · 0 评论 -
Class25VGG
VGG 是由牛津大学视觉几何组的研究人员提出的,其中最著名的是 VGG16和VGG19两个版本,分别有16层和19层含有可学习参数的层。使用了多个小卷积核(3×3)堆叠 来代替大卷积核(如7×7),提升了网络深度和非线性表达能力,同时降低了参数量。两个 3×3 卷积核的感受野 ≈ 一个 5×5;三个 3×3 卷积核的感受野 ≈ 一个 7×7;三个 3×3 卷积核:3×9C² = 27C²。卷积核统一用 3×3,很适合现代硬件优化。参数非常多(VGG16大约138M参数)一个 7×7 卷积核:49C²。原创 2025-07-30 13:38:12 · 185 阅读 · 0 评论 -
Class24AlexNet
AlexNet于2012年ImageNet 图像识别挑战赛(ILSVRC-2012)中以 top-5 错误率15.3%获得冠军,远远领先第二名。AlexNet 是第一个在训练时使用 GPU 加速的深度网络。当时使用了 2 个 GPU 并行处理,每个 GPU 处理一半神经元,跨 GPU 只在某些层通信。用于增强激活的竞争机制,虽然在后来的网络(如 VGG、ResNet)中被弃用。池化窗口之间存在重叠(如池化核 3×3,步幅 2),有助于减小信息损失。5.LRN 局部响应归一化。3×3 卷积是主流标准,原创 2025-07-29 20:31:42 · 570 阅读 · 0 评论 -
Class23LeNet
LeNet 是深度学习中最早的卷积神经网络(CNN)之一,主要用于 手写数字识别(如 MNIST 数据集)。它是现代 CNN 架构的鼻祖,奠定了卷积神经网络中一些重要的设计原则。原创 2025-07-29 12:11:07 · 815 阅读 · 0 评论 -
Class21卷积层的多输入通道和多输出通道
比如彩色图片是 RGB 的,就有三个通道(R, G, B),输入张量大小是 (C_in, H, W),其中 C_in 是输入通道数。1×1 卷积并不是“看 1 个像素”,虽然它在空间上(宽度 × 高度)只看一个位置,但它会同时操作所有输入通道。1×1 卷积就是在“每个像素”位置上,把多个通道的值做一个加权混合,变成新的通道表示。其中卷积核的作用为:它只看当前像素的两个通道的值,然后“加权融合”。我们对同一个输入通道,使用不同的卷积核,产生不同的输出通道。每个通道都有一个卷积核,结果是所有通道卷积结果的和。原创 2025-07-25 21:26:22 · 240 阅读 · 0 评论 -
Class20代码实现
【代码】Class20代码实现。原创 2025-07-25 20:30:52 · 110 阅读 · 0 评论 -
Class18卷积层的填充和步幅
填充就是在输入周围添加额外的行/列。nk,nw:指的是原始矩阵的高和宽。nk,nw:指的是原始矩阵的高和宽。ph,pw:指的是填充大小。ph,pw:指的是填充大小。sh,sw:指的是步幅大小。kh,kw:指的是卷积核。步幅是指行/列滑动的步长。kh,kw:指的是卷积核。原创 2025-07-25 18:55:06 · 307 阅读 · 0 评论 -
Class17代码
【代码】Class17代码。原创 2025-07-25 18:25:17 · 132 阅读 · 0 评论 -
Class17卷积层
的形式”,从而看清它与卷积/局部连接层之间的关系:把输入、输出都当成 2D 的“图像”(高 H、宽 W),再把原先巨大的权重矩阵重排成 4-D 张量。全连接层,是神经网络中最基本的一类层,它的作用是将输入的每一个神经元都与输出的每一个神经元相连接,因此被称为“全连接”。把卷积核𝐾叠到输入𝑋的 (𝑖,𝑗)位置,对应元素逐个相乘后求和,结果就是输出𝑌的 (𝑖,𝑗)元素。一句话概括:每个输出位置(𝑖,𝑗)与所有输入位置 (𝑘,𝑙)相连,输出是输入的加权总和。卷积操作只关注输入图像中的局部区域原创 2025-07-25 14:49:01 · 505 阅读 · 0 评论 -
Class16读写文件
【代码】Class16读写文件。原创 2025-07-23 20:48:45 · 95 阅读 · 0 评论 -
Class15自定义层
【代码】Class14自定义层。原创 2025-07-23 20:46:37 · 125 阅读 · 0 评论 -
Class14参数管理
【代码】Class14参数管理。原创 2025-07-23 20:45:17 · 162 阅读 · 0 评论 -
Class13模型构造
【代码】Class13模型构造。原创 2025-07-23 20:43:04 · 104 阅读 · 0 评论 -
Class13预测房价代码
【代码】Class13预测房价代码。原创 2025-07-22 21:14:25 · 121 阅读 · 0 评论 -
Class12模型初始化+激活函数
让神经网络每一层的输出和反向传播时的梯度在传递过程中方差保持一致,防止梯度消失或爆炸。让每层的方差是一个常数,将每层的输出和梯度都看作随机变量,并保持它们的方差和均值一致。Sigmoid 函数 是一个 S 形曲线函数,经常用于神经网络中激活函数的选择。用一个函数在某个点的导数值,构造出一个多项式来近似这个函数。输入𝑥是均值为 0,方差为Var(𝑥)的随机变量;将任意实数𝑥映射到(0,1)区间的函数。每层输入为𝑥,输出为𝑦,权重为𝑊,则。我们希望输出𝑦的方差也为常数。3.合理的权重初始和激活函数原创 2025-07-22 16:08:53 · 593 阅读 · 0 评论 -
Class11数值稳定性
因为靠近输出层的参数接收到的梯度还没来得及变小,更新还算正常,但是越往底层,梯度被乘得越小,甚至趋于 0。当你连续乘很多个矩阵,而这些矩阵中有些值略小于1,那么整体乘积会随着层数增多而近似等于0,导致梯度消失。当你连续乘很多个矩阵,而这些矩阵中有些值略大于1,那么整体乘积会随着层数增多呈指数增长,导致梯度爆炸。反向传播时,梯度越来越小,最后小到接近 0,导致参数更新停滞,网络无法有效学习。这里的ℓ是损失函数,也就是每一层的损失函数作用于原始的X。加上损失函数,神经网络才有一个标准,指导什么是好的结果。原创 2025-07-22 14:25:20 · 410 阅读 · 0 评论 -
Class10简洁实现
【代码】Class10简洁实现。原创 2025-07-22 13:02:36 · 289 阅读 · 0 评论 -
Class10代码实现
【代码】Class10代码实现。原创 2025-07-22 13:01:28 · 119 阅读 · 0 评论 -
Class10丢弃法
深度学习中,模型容量很大,容易在训练集上取得极低的误差,但在测试集上表现不佳 —— 即。来保持输出期望一致(或称“倒置Dropout”,inverted dropout)。这是因为模型学到了太多训练集的“细节”或“噪声”,失去了对未知数据的泛化能力。Dropout 是一种通过“随机删除神经元”来减少模型过拟合的正则化方法。测试时:不屏蔽,使用全部神经元,但对输出进行缩放。训练时:以一定概率随机“屏蔽”一部分神经元。由于期望保持不变,所以前后的E[xi]相等。Dropout 会随机将部分神经元设为 0。原创 2025-07-15 11:28:23 · 261 阅读 · 0 评论 -
Class9简洁实现
【代码】Class8简洁实现。原创 2025-07-14 21:15:36 · 406 阅读 · 0 评论 -
Class9代码实现
【代码】Class8代码实现。原创 2025-07-14 21:14:08 · 142 阅读 · 0 评论 -
Class9权重衰退
(Weight Decay),又称为 L2 正则化(L2 Regularization),是深度学习中最常用的一种正则化手段,主要作用是防止模型过拟合。新最优解:是损失等高线和正则圆交点中最低的那个,通常位于原始最优解与原点之间。正则项:形如一个圆形惩罚边界(∥𝑤∥²=常数),鼓励模型权重接近原点。,这相当于在每一步训练中,都把权重向 0 拉了一点点。原始最优解:是损失函数 𝐿(𝑤)的最低点。本质是在损失最小化的同时,施加了一个“可以看到权重更新时多了一项。”的力,促使模型的解既要。,形成一个“折中解原创 2025-07-14 17:44:15 · 131 阅读 · 0 评论 -
Class8代码实现
【代码】Class8代码实现。原创 2025-07-14 16:54:58 · 208 阅读 · 0 评论 -
Class8过拟合和欠拟合
对于一个分类模型,VC维等于一个最大的数据集大小,不管如何给定标号,都存在一个模型对它进行完美分类。在模型的训练中,我们一般要先提升模型的容量,保证容量足够的大,然后再尽可能的减少泛化误差。提供一个模型很好的理论依据(可以衡量训练误差和泛化误差之间的间隔)容量大的模型像“记忆超强的人”,可以背下所有训练数据甚至噪声。容量小的模型像“记忆力一般的人”,只能记住大致的趋势。给定一个模型种类,比较模型容量主要有以下2个因素。估计模型容量难以在不同种类的算法之间进行比较。能够任意的分类三个点,但无法分类4个点。原创 2025-07-14 14:03:35 · 313 阅读 · 0 评论 -
Class7模型选择
如果“穿蓝衬衫”与某一群体(比如某个行业制服)高度相关,那么模型就会对该群体产生 系统性偏见(bias),这是 算法歧视(algorithmic discrimination) 的体现。当银行想知道“为什么模型拒绝贷款给这个客户”时,如果回答是“他穿蓝色衬衫”,这个模型显然不可信、不可用。但在同时你发现这五个没偿还的人在贷款时都穿了蓝色衬衫,模型也发现了这个信号,这会产生什么问题?:一旦正式考试换了题型,他就不会做了,因为他没有学会知识,只是记住了训练集的内容。学生B理解知识点、掌握解题方法,也取得高分。原创 2025-07-14 12:25:18 · 845 阅读 · 0 评论 -
Class6多层感知机的从零开始实现
【代码】Class5多层感知机的从零开始实现。原创 2025-07-04 18:57:30 · 239 阅读 · 0 评论 -
Class6多层感知机
XOR问题就是单一分类问题无法解决的,它属于一种二元逻辑运算。引入非线性,使网络能够表示复杂的函数;输入层→隐藏层1→隐藏层2→⋯→输出层。激活函数是神经网络中每个神经元的“”,它决定了网络是否具有学习。有些还能增强梯度传播效果。提供更强的表达能力;原创 2025-07-04 18:54:45 · 664 阅读 · 0 评论 -
Class5感知机
只要训练数据是线性可分的,感知机算法一定可以在有限步内找到一个将训练数据完全分类的线性分类器。如果一个点被错分(如正类点被分类成负类),感知机就根据该点调整权重 w 和偏置 b。“纠正”权重方向,使得下一次 w·xi 的方向更倾向于 yi,更可能正确分类。只要样本线性可分,算法总会有一轮,所有点都不会被误分。⟨w, x⟩:内积,代表模型对样本的预测分数。如果 ≤ 0,说明分类错误,需要调整模型。不断迭代数据,直至所有样本都分类正确。调整偏置,也朝着正确分类的方向移动。损失为正数,越错得离谱,惩罚越大。原创 2025-07-04 16:48:01 · 816 阅读 · 0 评论 -
Class4Softmax从零开始实现
【代码】Class4Softmax从零开始实现。原创 2025-07-04 15:06:25 · 230 阅读 · 0 评论