<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[m0_62080681的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/m0_62080681</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; m0_62080681]]></copyright><item><title><![CDATA[day55_2025-08-28]]></title><link>https://blog.youkuaiyun.com/m0_62080681/article/details/150964984</link><guid>https://blog.youkuaiyun.com/m0_62080681/article/details/150964984</guid><author>m0_62080681</author><pubDate>Thu, 28 Aug 2025 22:57:45 +0800</pubDate><description><![CDATA[昨天说了数据的检验，需要做自相关性检验、平稳性检验、季节性检验。我们用了三种核心的诊断工具：自相关性检验 (ACF/PACF图)：检查数据点之间是否存在内在的、延迟的关联。平稳性检验 (ADF检验)：判断数据的统计特性（如均值、方差）是否随时间改变。季节性检验 (肉眼观察或季节性分解)：识别数据中是否存在固定的周期性波动。那么如果数据存在某些特性需要如何处理呢？我们的核心目标是让数据变得平稳。为什么平稳性如此重要？]]></description><category></category></item><item><title><![CDATA[day 54_2025-08-27]]></title><link>https://blog.youkuaiyun.com/m0_62080681/article/details/150937060</link><guid>https://blog.youkuaiyun.com/m0_62080681/article/details/150937060</guid><author>m0_62080681</author><pubDate>Wed, 27 Aug 2025 22:46:09 +0800</pubDate><description><![CDATA[在时序预测中，这种要求会更加苛刻，你设想一下，你可以制造一个随机的序列，然后让模型来学习，这注定也是不可能实现的。例如，一个不考虑季节性的模型在预测12月份的零售额时，可能会基于11月份的数据给出一个平稳的预测，完全错过圣诞节带来的销售高峰。因此，检验序列的平稳性，是时序分析中至关重要的一步。之前的结构化预测（样本独立无关）的机器学习模型，他在预测的时候，如果数据本身就没价值，比如特征和样本毫无关系，你生成一些随机数作为特征，再随机一些数成标签，一样可以训练，但是模型注定也学不到什么东西。]]></description><category></category></item><item><title><![CDATA[day53_2025-08-26]]></title><link>https://blog.youkuaiyun.com/m0_62080681/article/details/150873737</link><guid>https://blog.youkuaiyun.com/m0_62080681/article/details/150873737</guid><author>m0_62080681</author><pubDate>Tue, 26 Aug 2025 22:57:48 +0800</pubDate><description><![CDATA[在进入rnn相关变体的内容前，我们必须要搞懂序列任务的前生今世，这是我当初自学的时候非常迷茫和痛苦的，只有理解了序列任务，才知道模型为什么这么选择，数据为什么这么处理一、序列预测任务介绍1.1 序列预测是什么？我们之前接触到的结构化数据，它本身不具备顺序，我们认为每个样本之间独立无关，样本之间即使调换顺序，仍然不影响模型的训练。但是日常中很多数据是存在先后关系的，而他们对应的任务是预测下一步的值，我们把这个任务称之为序列预测。举个例子，比如有过去30天的股票价格，我们希望预测第31天的价格。]]></description><category></category></item><item><title><![CDATA[day52_2025-08-25]]></title><link>https://blog.youkuaiyun.com/m0_62080681/article/details/150772393</link><guid>https://blog.youkuaiyun.com/m0_62080681/article/details/150772393</guid><author>m0_62080681</author><pubDate>Mon, 25 Aug 2025 16:11:32 +0800</pubDate><description><![CDATA[它的核心设计理念是 “并行的多尺度融合”，通过在同一层网络中使用多个不同大小的卷积核（如 1x1、3x3、5x5）以及池化操作，从不同尺度提取图像特征，然后将这些特征进行融合，从而在不增加过多计算量的情况下，获得更丰富的特征表达。所以不同的设计，其实是为了不同的任务，比如你虽然可以捕捉不同尺度的信息，但是对于图像分类这个任务来说没用，我的核心是整个图像的类别，如果你是目标检测，对于小目标的检测中小尺度的设计就很有用。卷积也是有很多变体的，除了我们之前说过的基础的卷积，还有空洞卷积、幻影卷积等等变体。]]></description><category></category></item><item><title><![CDATA[day51_2025-08-24]]></title><link>https://blog.youkuaiyun.com/m0_62080681/article/details/150705088</link><guid>https://blog.youkuaiyun.com/m0_62080681/article/details/150705088</guid><author>m0_62080681</author><pubDate>Sun, 24 Aug 2025 17:40:09 +0800</pubDate><description><![CDATA[然后我随机初始化这个造假币的a，我每次给他随机的输入，他会生成不同的假币，每一张假币都会让警察来判断，警察能够分别出真假，如果说你是假的，那么造假币的就要更新参数，如果是真的，那么造假币的参数就不用更新，警察要更新参数。为了让警察能分辨真币，我需要给他看真币的样子，也就是先训练警察知道什么是真币，但是只给他一个真币他也没法训练，我中间得掺杂一些无意义的噪声图片，无意义的肯定不可能是真币，所以他大概可以训练好。判别器的损失定义在先，生成器的损失定义基于判别器的反馈。]]></description><category></category></item><item><title><![CDATA[day50_2025-08-23]]></title><link>https://blog.youkuaiyun.com/m0_62080681/article/details/150638187</link><guid>https://blog.youkuaiyun.com/m0_62080681/article/details/150638187</guid><author>m0_62080681</author><pubDate>Sat, 23 Aug 2025 11:19:41 +0800</pubDate><description><![CDATA[大部分时候，由于光是固定超参数的情况下，训练完模型就已经很耗时了，所以正常而言，基本不会采用传统机器学习的那些超参数方法，网格、贝叶斯、optuna之类的，看到一些博主用这些写文案啥的，感觉这些人都是脑子有问题的，估计也没学过机器学习直接就学深度学习了，搞混了二者的关系。预训练参数是最好的参数初始化方法，在训练前先找找类似的论文有无预训练参数，其次是Xavir，尤其是小数据集的场景，多找论文找到预训练模型是最好的做法。关于预训练参数，我们介绍过了，优先动深层的参数，因为浅层是通用的；]]></description><category></category></item><item><title><![CDATA[day49_2025-08-22]]></title><link>https://blog.youkuaiyun.com/m0_62080681/article/details/150604881</link><guid>https://blog.youkuaiyun.com/m0_62080681/article/details/150604881</guid><author>m0_62080681</author><pubDate>Fri, 22 Aug 2025 10:52:55 +0800</pubDate><description><![CDATA[在更理想的情况下，如果能让 attention 图的值都趋近于 sigmoid 函数的反函数中对应输出为1的值，那么CBAM就近似于一个“直通车”(x * 1 = x)，网络可以选择“忽略”它。给专家（预训练层） 设置一个极低的学习率（比如1e-5），告诉他们：“你们基本保持现状，只需要根据实习生的表现做一些微小的调整即可。但是你要注意，最后的卷积形式是 卷积–激活–池化–全连接，如果你放置前全连接前的话，cbam中的空间注意力会完全失效，因为此时空间维度不存在了，失去了寻找空间相关性的能力。]]></description><category></category></item><item><title><![CDATA[DAY48_2025-08-22]]></title><link>https://blog.youkuaiyun.com/m0_62080681/article/details/150593813</link><guid>https://blog.youkuaiyun.com/m0_62080681/article/details/150593813</guid><author>m0_62080681</author><pubDate>Fri, 22 Aug 2025 00:07:16 +0800</pubDate><description><![CDATA[CBAM 的突破： 通道注意力（Channel Attention）：分析 “哪些通道的特征更关键”（如图像中的颜色、纹理通道）。它的核心目标是通过学习的方式，自动获取特征图在通道和空间维度上的重要性，进而对特征图进行自适应调整，增强重要特征，抑制不重要特征，提升模型的特征表达能力和性能。CBAM 由两个主要部分组成：通道注意力模块（Channel Attention Module）和空间注意力模块（Spatial Attention Module）。这两个模块顺序连接，共同作用于输入的特征图。]]></description><category></category></item><item><title><![CDATA[day47_2025-08-20]]></title><link>https://blog.youkuaiyun.com/m0_62080681/article/details/150563376</link><guid>https://blog.youkuaiyun.com/m0_62080681/article/details/150563376</guid><author>m0_62080681</author><pubDate>Wed, 20 Aug 2025 22:23:30 +0800</pubDate><description><![CDATA[在 PyTorch 中，torch.randn()是一个常用的随机张量生成函数，它可以创建一个由标准正态分布（均值为 0，标准差为 1）随机数填充的张量。PyTorch 的广播机制（Broadcasting）是一种强大的张量运算特性，允许在不同形状的张量之间进行算术运算，而无需显式地扩展张量维度或复制数据。在深度学习中经常需要随机生成一些张量，比如权重的初始化，或者计算输入纬度经过模块后输出的维度，都可以用一个随机函数来实现需要的张量格式，而无需像之前一样必须加载一张真实的图片。]]></description><category></category></item><item><title><![CDATA[day 45_2025-08-19]]></title><link>https://blog.youkuaiyun.com/m0_62080681/article/details/150529993</link><guid>https://blog.youkuaiyun.com/m0_62080681/article/details/150529993</guid><author>m0_62080681</author><pubDate>Tue, 19 Aug 2025 17:02:54 +0800</pubDate><description><![CDATA[我们现在说的很多模块，比如通道注意力、空间注意力、通道注意力等等，都是基于自注意力机制的。特征图本质就是不同的卷积核的输出，浅层指的是离输入图近的卷积层，浅层卷积层的特征图通常较大，而深层特征图会经过多次下采样，尺寸显著缩小，尺寸差异过大时，小尺寸特征图在视觉上会显得模糊或丢失细节。在同一个数据集上，对同一个模型进行模块的增加和减少，这种实验我们称之为消融实验。可以看到测试集一定程度上收敛了，在85%左右（还可以继续训练的），我们后续和加了通道注意力的该模型作对比，这也意味着我们进入到了消融实验的部分了。]]></description><category></category></item><item><title><![CDATA[day44_2025-08-18]]></title><link>https://blog.youkuaiyun.com/m0_62080681/article/details/150504013</link><guid>https://blog.youkuaiyun.com/m0_62080681/article/details/150504013</guid><author>m0_62080681</author><pubDate>Mon, 18 Aug 2025 23:35:10 +0800</pubDate><description><![CDATA[你可以用它直观看到训练过程中的数据变化（比如损失值、准确率）、模型结构、数据分布等，不用盯着一堆枯燥的数字看，对新手非常友好。TensorBoard 的核心原理就是在训练过程中，把训练过程中的数据（比如损失、准确率、图片等）先记录到日志文件里，再通过工具把这些日志文件可视化成图表，这样就不用自己手动打印数据或者用其他工具画图。之前的内容中，我们在神经网络训练中，为了帮助自己理解，借用了很多的组件，比如训练进度条、可视化的loss下降曲线、权重分布图，运行结束后还可以查看单张图的推理效果。]]></description><category></category></item><item><title><![CDATA[day43_2025-08-17]]></title><link>https://blog.youkuaiyun.com/m0_62080681/article/details/150474319</link><guid>https://blog.youkuaiyun.com/m0_62080681/article/details/150474319</guid><author>m0_62080681</author><pubDate>Sun, 17 Aug 2025 22:53:23 +0800</pubDate><description><![CDATA[所以预训练模型一般就挺强的。这里给大家介绍一个常常用来做预训练的数据集，ImageNet，ImageNet 1000 个类别，有 1.2 亿张图像，尺寸 224x224，数据集大小 1.4G，下载地址：http://www.image-net.org/。所以很自然的想到，如果最开始能有比较好的参数，即可能导致未来训练次数少，也可能导致未来训练避免陷入局部最优解的问题。如果别人在某些和我们目标数据类似的大规模数据集上做过训练，我们可以用他的训练参数来初始化我们的模型，这样我们的模型就比较容易收敛。]]></description><category></category></item><item><title><![CDATA[day42_2025-08-16]]></title><link>https://blog.youkuaiyun.com/m0_62080681/article/details/150454130</link><guid>https://blog.youkuaiyun.com/m0_62080681/article/details/150454130</guid><author>m0_62080681</author><pubDate>Sat, 16 Aug 2025 23:53:15 +0800</pubDate><description><![CDATA[作业：kaggle找到一个图像数据集，用cnn网络进行训练并且用grad-cam做可视化。对于图片数量较少的类别，比如冰川，需要用数据增强平衡数据集。含有6类自然场景：建筑、森林、冰川、山、海洋、街道。注意数据集下载时的结构，需要去掉一层文件。已经分好了train和test。进阶：并拆分成多个文件。]]></description><category></category></item><item><title><![CDATA[day 41_2025-08-15]]></title><link>https://blog.youkuaiyun.com/m0_62080681/article/details/150432471</link><guid>https://blog.youkuaiyun.com/m0_62080681/article/details/150432471</guid><author>m0_62080681</author><pubDate>Fri, 15 Aug 2025 23:39:20 +0800</pubDate><description><![CDATA[这种形式很简约，只需要一行就可以定义一个函数，lambda 的核心价值在于用极简语法快速定义临时函数，避免为一次性使用的简单逻辑单独命名函数，从而减少代码冗余，提升开发效率。Hook 函数是一种回调函数，它可以在不干扰模型正常计算流程的情况下，插入到模型的特定位置，以便获取或修改中间层的输出或梯度。回调函数核心是将处理逻辑（回调）作为参数传递给计算函数，控制流：计算函数 → 回调函数，适合一次性或动态的处理需求（控制流指的是程序执行时各代码块的执行顺序）这个函数可以访问模块的输入和输出，但不能修改它们。]]></description><category></category></item><item><title><![CDATA[day 40_2025-08-14]]></title><link>https://blog.youkuaiyun.com/m0_62080681/article/details/150401428</link><guid>https://blog.youkuaiyun.com/m0_62080681/article/details/150401428</guid><author>m0_62080681</author><pubDate>Thu, 14 Aug 2025 21:38:01 +0800</pubDate><description><![CDATA[就好比你在学新知识，知识体系的基础一直在变，你就得不断重新适应，模型训练也是如此，这就导致训练变得困难，这就是内部协变量偏移问题。该策略通常不改变单次训练的样本总数，而是通过对现有图像进行多样化变换，使每次训练输入的样本呈现更丰富的形态差异，从而有效扩展模型训练的样本空间多样性。Batch Normalization：一般用于图像数据，因为图像数据通常是批量处理，有相对固定的 Batch Size ，能利用 Batch 内数据计算稳定的统计量（均值、方差 ）来做归一化。-----深度学习可解释性。]]></description><category></category></item><item><title><![CDATA[day39_2025-08-13]]></title><link>https://blog.youkuaiyun.com/m0_62080681/article/details/150353392</link><guid>https://blog.youkuaiyun.com/m0_62080681/article/details/150353392</guid><author>m0_62080681</author><pubDate>Wed, 13 Aug 2025 19:06:04 +0800</pubDate><description><![CDATA[测试函数和绘图函数均被封装在了train函数中，但是test和绘图函数在定义train函数之后，这是因为在 Python 中，函数定义的顺序不影响调用，只要在调用前已经完成定义即可。作业：仔细学习下测试和训练代码的逻辑，这是基础，这个代码框架后续会一直沿用，后续的重点慢慢就是转向模型定义阶段了。动态维度指定：使用-1让PyTorch自动计算该维度的大小，但需确保其他维度的指定合理，避免形状不匹配错误。结果：展平为两个维度，保留batch_size，第二个维度自动计算为3×28×28=2352。]]></description><category></category></item><item><title><![CDATA[day38_2025-08-12]]></title><link>https://blog.youkuaiyun.com/m0_62080681/article/details/150285446</link><guid>https://blog.youkuaiyun.com/m0_62080681/article/details/150285446</guid><author>m0_62080681</author><pubDate>Tue, 12 Aug 2025 20:38:42 +0800</pubDate><description><![CDATA[昨天我们介绍了minist这个经典的手写数据集，作为图像数据，相较于结构化数据（表格数据）他的特点在于他每个样本的的形状并不是(特征数，)，而是(宽，高，通道数)从这里开始我们进入到了图像数据相关的部分，也是默认你有之前复试班计算机视觉相关的知识，但是一些基础的概念我仍然会提。考虑课程内容的推进，今日的内容只提定义，不涉及训练和测试过程。二、 图像相关的神经网络的定义。2.1 黑白图像模型的定义。2.2 彩色图像模型的定义。一、 图像数据的介绍。]]></description><category></category></item><item><title><![CDATA[day37_2025-08-11]]></title><link>https://blog.youkuaiyun.com/m0_62080681/article/details/150217717</link><guid>https://blog.youkuaiyun.com/m0_62080681/article/details/150217717</guid><author>m0_62080681</author><pubDate>Mon, 11 Aug 2025 15:49:16 +0800</pubDate><description><![CDATA[这里很难理解，为什么train_dataset[sample_idx]可以获取到图片和标签，是因为 datasets.MNIST这个类继承了torch.utils.data.Dataset类，这个类中有一个方法__getitem__，这个方法会返回一个tuple，tuple中第一个元素是图片，第二个元素是标签。在 Python 中，getitem__和__len 是类的特殊方法（也叫魔术方法 ），它们不是像普通函数那样直接使用，而是需要在自定义类中进行定义，来赋予类特定的行为。]]></description><category></category></item><item><title><![CDATA[day 36_2025-08-09]]></title><link>https://blog.youkuaiyun.com/m0_62080681/article/details/150107841</link><guid>https://blog.youkuaiyun.com/m0_62080681/article/details/150107841</guid><author>m0_62080681</author><pubDate>Sat, 09 Aug 2025 13:28:22 +0800</pubDate><description><![CDATA[实际上，在早停策略中，保存 checkpoint（检查点） 是更优选择，因为它不仅保存了模型参数，还记录了训练状态（如优化器参数、轮次、损失值等），一但出现了过拟合，方便后续继续训练。同时每隔固定的训练轮次都会保存模型参数，下次可以接着这里训练，缩小训练的范围。深度学习中模型的保存与加载主要涉及参数（权重）和整个模型结构的存储，同时需兼顾训练状态（如优化器参数、轮次等）以支持断点续训。原理：保存模型参数、优化器状态（学习率、动量）、训练轮次、损失值等完整训练状态，用于中断后继续训练。]]></description><category></category></item><item><title><![CDATA[day 35_2025-08-09]]></title><link>https://blog.youkuaiyun.com/m0_62080681/article/details/150107769</link><guid>https://blog.youkuaiyun.com/m0_62080681/article/details/150107769</guid><author>m0_62080681</author><pubDate>Sat, 09 Aug 2025 13:23:12 +0800</pubDate><description><![CDATA[例如，如果发现权重标准差过大导致训练不稳定，可以尝试调整学习率，使权重更新更平稳；对比 fc1.weight 和 fc2.weight 的统计信息 ，可以发现它们的均值、标准差、最值等存在差异。这反映了不同层在模型中的作用不同。测试这个词在大模型领域叫做推理（inference），意味着把数据输入到训练好的模型的过程。模型的评估模式简单来说就是评估阶段会关闭一些训练相关的操作和策略 ，比如更新参数 正则化等操作，确保模型输出结果的稳定性和一致性。为了了解参数总量，我们需要知道层设计，以及每一层参数的数量。]]></description><category></category></item></channel></rss>