自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(50)
  • 问答 (1)
  • 收藏
  • 关注

原创 DAY 50 神经网络调参指南

本文介绍了神经网络调参的几个关键方面:首先强调了随机种子的重要性,通过设置全局随机种子确保实验可重复性。其次阐述了参数初始化的必要性,指出初始值应保持差异以避免神经元对称性,并建议采用接近0的小范围值或特定分布。文章还详细说明了神经网络调参的顺序和方法,包括参数初始化、batch size选择、学习率调整、激活函数和损失函数选择等。最后提醒调参过程中要监控训练过程,优先让模型过拟合后再考虑正则化。文章提供了实用的调参指南和技巧,适合神经网络实践者参考。

2025-07-07 21:33:35 441

原创 DAY 49 预训练模型+CBAM模块

摘要:本文探讨了在预训练ResNet18模型中插入CBAM注意力模块的优化方法。首先解析了ResNet18结构,重点介绍了残差块(BasicBlock)的设计原理。针对模型修改问题,提出将CBAM模块插入每个残差块输出端,利用其初始状态接近"直通"的特性避免破坏预训练权重。文章设计了三阶段微调策略:1)仅训练分类头和CBAM模块;2)解冻高层卷积层;3)全局微调所有层,并配合差异化学习率。实验在CIFAR-10数据集上进行,结果显示该方法有效提升了模型性能,最终测试准确率持续上升

2025-07-06 22:14:05 847

原创 DAY 48 CBAM注意力

CBAM(Convolutional Block Attention Module)是一种轻量级的注意力模块,可集成到任何CNN架构中。它包含通道注意力和空间注意力两个子模块:通道注意力通过全局池化和全连接层学习通道间关系;空间注意力通过池化和卷积定位关键空间位置。实验在CIFAR-10数据集上验证,带CBAM的CNN模型(3个卷积块+CBAM模块)经过50轮训练,最终测试准确率达XX%(具体数值需运行代码后显示)。该模块具有即插即用特性,仅增加少量计算量,能同时提升通道和空间维度的特征表达能力。

2025-07-05 22:19:12 514

原创 DAY 47 随机函数与广播机制

本文介绍了PyTorch中两个重要知识点:随机张量生成和广播机制。1. 随机张量生成:重点讲解了torch.randn()函数,该函数生成符合标准正态分布的随机张量,可用于权重初始化等场景。还介绍了其他随机函数如torch.rand()、torch.randint()等。通过示例展示了不同维度张量的生成方法。2. 广播机制:详细解释了PyTorch的广播规则,包括维度扩展条件和运算限制。通过加法、乘法等实例演示了不同形状张量间的运算过程,并说明了广播后的维度变化和内存优化特点。

2025-07-04 23:31:19 895

原创 DAY 46 注意力热图可视化

===================== 新增:通道注意力模块(SE模块) ====================="""通道注意力模块(Squeeze-and-Excitation)""""""参数:in_channels: 输入特征图的通道数reduction_ratio: 降维比例,用于减少参数量"""# 全局平均池化 - 将空间维度压缩为1x1,保留通道信息# 全连接层 + 激活函数,用于学习通道间的依赖关系# 降维:压缩通道数,减少计算量# 升维:恢复原始通道数。

2025-07-03 23:14:01 900

原创 DAY 45 通道注意力(SE注意力)

之前复试班强化部分的transformer框架那节课已经介绍过注意力机制的由来,本质从onehot-elmo-selfattention-encoder-bert这就是一条不断提取特征的路。各有各的特点,也可以说由弱到强。其中注意力机制是一种让模型学会「选择性关注重要信息」的特征提取器,就像人类视觉会自动忽略背景,聚焦于图片中的主体(如猫、汽车)。transformer中的叫做自注意力机制,他是一种自己学习自己的机制,他可以自动学习到图片中的主体,并忽略背景。

2025-07-02 21:13:44 951

原创 DAY 44 Tensorboard使用介绍

知识点回顾:tensorboard的发展历史和原理tensorboard的常见操作tensorboard在cifar上的实战:MLP和CNN模型现在介绍下tensorboard这个可视化工具,他可以很方便的很多可视化的功能,尤其是他可以在运行过程中实时渲染,方便我们根据图来动态调整训练策略,而不是训练完了才知道好不好。

2025-07-01 20:16:51 1119

原创 DAY 43 预训练模型

首先阐述了预训练的核心思想:通过在大规模数据集上训练模型获取通用特征提取能力,再迁移到新任务进行微调。文章详细梳理了CNN架构的演进历程,从LeNet到ResNet、MobileNet等里程碑模型,比较了不同模型的参数规模、创新点及适用场景。在实践部分,展示了如何使用预训练的ResNet18模型在CIFAR10数据集上进行迁移学习,包括冻结参数、调整全连接层等关键技术。实验结果表明,预训练模型能显著提升小数据集的训练效率和最终准确率,验证了迁移学习的有效性。

2025-06-30 21:16:10 870

原创 DAY 42 Grad-CAM与Hook函数

本文介绍了深度学习中PyTorch的Hook机制及其在模型可解释性中的应用。Hook函数允许在不修改模型结构的情况下获取或修改中间层信息,包括模块钩子(前向/反向)和张量钩子。文章详细讲解了回调函数和lambda函数的基础知识,并通过实例演示了Hook在特征可视化和梯度分析中的使用。重点介绍了Grad-CAM算法,该技术通过梯度加权激活映射可视化CNN决策过程。实验部分展示了如何利用Hook获取卷积层输出并生成类激活热力图,直观呈现模型关注区域。这些技术为深度学习模型的可解释性研究提供了重要工具。

2025-06-29 20:54:08 1037

原创 DAY 41 简单CNN

摘要:本文介绍了卷积神经网络(CNN)在图像分类任务中的应用,重点探讨了数据增强、CNN模型构建和训练优化策略。首先通过数据增强技术(随机裁剪、翻转、颜色抖动等)提升模型泛化能力;然后构建了一个包含3层卷积块(卷积、批归一化、激活函数和池化)和全连接层的CNN模型,详细解释了每层的作用和参数设置;最后采用Adam优化器和ReduceLROnPlateau学习率调度器进行训练优化。实验在CIFAR-10数据集上对比了MLP和CNN的性能,CNN凭借局部特征提取能力获得了显著更高的准确率(70-80%)。

2025-06-27 17:43:58 884

原创 DAY 40 训练和测试的规范写法

本文介绍了在PyTorch中处理图像数据的规范流程,重点对比了灰度与彩色图片的处理方法。主要内容包括: 数据处理规范 使用DataLoader进行分批处理 灰度图像(MNIST)与彩色图像(CIFAR-10)的数据预处理 图像展平处理(保留batch维度) 模型训练要点 训练/测试阶段的不同模式(dropout的启用与关闭) 损失函数和准确率的计算方式 训练过程的监控与可视化(单Batch损失曲线)

2025-06-26 17:21:58 1152

原创 DAY 39 图像数据与显存

本文介绍了图像数据的基本概念及其在神经网络中的应用。首先对比了图像数据(灰度/彩色)与结构化数据的差异,重点说明了MNIST和CIFAR-10数据集的特征维度(通道数×高度×宽度)。随后详细解析了图像处理神经网络的结构定义,包括输入展平、全连接层设计等关键环节,并给出了参数计算方法。最后深入探讨了显存占用问题,从模型参数、梯度、优化器状态、数据批量和中间变量四个维度分析显存使用情况,并提供了batch_size选择策略建议。通过理论分析和代码示例,为读者构建了完整的图像神经网络处理框架。

2025-06-25 21:32:09 826

原创 DAY 38 Dataset和Dataloader类

PyTorch数据处理核心机制解析 摘要:PyTorch通过Dataset和DataLoader类实现高效数据加载。Dataset作为抽象基类,要求实现__len__和__getitem__两个核心方法,分别返回数据集大小和指定索引的样本数据。MNIST数据集加载示例展示了transform预处理管道的典型应用。DataLoader则负责将Dataset数据分批加载,支持batch_size设置和数据shuffle。两者分工明确:Dataset处理单个样本的读取和预处理("厨师"角色),

2025-06-24 17:35:31 1106

原创 DAY 37 早停策略和模型权重的保存

本文总结了深度学习模型训练过程中的三个关键技术点:1. 过拟合监控:通过同步记录训练集和测试集的损失曲线,可以直观判断模型是否过拟合(测试集损失上升而训练集损失下降)。2. 模型保存策略:包括仅保存权重(推荐)、保存完整模型结构和保存训练状态(checkpoint)三种方式,分别适用于不同场景。3. 早停机制:当测试集性能连续patience轮次未改善时终止训练,避免过拟合,并保存最佳模型参数。文中以鸢尾花分类任务为例,展示了如何在PyTorch中实现这些技术,包括损失曲线可视化、模型保存/加载以及早停策略

2025-06-23 17:55:37 1071

原创 DAY 36 复习日

【代码】DAY 36 复习日。

2025-06-22 21:32:29 395

原创 DAY 35 模型可视化与推理

知识点回顾:三种不同的模型可视化方法:推荐torchinfo打印summary+权重分布可视化进度条功能:手动和自动写法,让打印结果更加美观推理的写法:评估模式。

2025-06-20 20:27:39 556

原创 DAY 34 GPU训练和call方法

本文总结了机器学习中CPU和GPU性能评估的关键指标,并对比了二者在神经网络训练中的表现差异。主要内容包括:1. CPU性能评估方法;2. GPU性能评估标准;3. GPU训练实践:展示了将数据和模型迁移至GPU的方法,并指出小规模任务中GPU可能因数据传输等额外开销而慢于CPU;4. 优化策略:减少GPU到CPU的数据传输频率可显著提升小任务训练速度;5. PyTorch实现细节:解释了通过__call__方法实现类实例函数式调用的机制。表明,合理使用GPU需考虑数据规模和计算复杂度,发挥其并行计算优势。

2025-06-19 21:43:15 1082

原创 DAY 33 MLP神经网络的训练

本文介绍了PyTorch深度学习框架的安装配置及简单神经网络实现流程。主要内容包括:1) CUDA和PyTorch的安装方法,强调GPU版本需匹配显卡驱动;2) 数据预处理要点,如分类任务需将标签转为long类型;3) 神经网络模型定义方法,继承nn.Module并实现前向传播;4) 训练流程详解,包含损失函数、优化器设置和训练循环;5) 训练过程可视化。通过鸢尾花数据集示例,展示了从数据准备到模型训练的全流程,特别说明了CPU/GPU版本的使用差异和关键注意事项。

2025-06-18 22:16:14 1029

原创 DAY 32 官方文档的阅读

本文以鸢尾花三分类项目为例,演示如何通过官方文档快速掌握pdpbox库的使用方法。重点介绍了:1)官方文档检索的三种途径;2)TargetPlot类的使用流程,包括实例化参数(init)和plot方法解析;3)返回值处理技巧,揭示其返回(fig,axes,summary_df)三元组结构。通过具体案例展示了如何根据文档提示调整可视化参数,包括图表尺寸、标题位置等属性设置。最后强调使用新库时需要重点关注:类初始化参数格式、方法返回值类型以及底层绘图引擎调用方式,为机器学习模型的可解释性分析提供了实用指导。

2025-06-17 20:48:28 1162

原创 day 31 文件的规范拆分和写法

ML项目文件拆分要点: 按功能模块拆分文件,提升代码可读性和复用性 推荐的项目组织结构: src/存放核心代码,细分为data/、models/、utils/等子目录 config/集中管理配置文件 notebooks/存放探索性代码 data/和models/分别存储数据和训练好的模型 关键注意事项: 使用if __name__ == "__main__"区分程序入口 明确编码格式声明 采用类型注解提高代码可维护性拆分原则:先按工作流程分离功能,再提取通用工具函数,最后集中配置参数。

2025-06-16 21:11:03 766

原创 DAY 30 模块和库的导入

本文介绍了Python中导入库和模块的核心知识,主要包括三种官方库导入方式:标准导入(import math)、特定项导入(from math import pi)和非标准导入(from math import *)。重点讲解了模块(.py文件)和包(带__init__.py的目录)的定义与使用,通过计算圆面积的案例演示了不同目录结构下的导入方法。特别强调要理解Python解释器的目录查找逻辑,可通过sys.path查看和修改搜索路径。对于无法查看源码的第三方库(如OpenCV),建议通过官方文档学习。

2025-06-15 09:00:00 1090

原创 DAY 29 复习日:类的装饰器

本文主要探讨了Python装饰器的核心概念和应用,重点分析了类装饰器的实现方式及其与函数装饰器的区别。文章指出装饰器本质上是通过外部方式动态修改类或函数而不改变原代码,其中类装饰器接收类对象并返回修改后的类。通过日志功能的实现示例,展示了如何为类添加新方法和替换原有方法。同时对比了类内部定义方法和外部赋值定义方法的不同特点,强调装饰器通常采用外部赋值方式以实现动态修改。最后通过三个几何图形类的编程练习,巩固了类定义、方法实现和工厂模式的应用。文章帮助读者深入理解装饰器的动态修改本质及其在代码复用中的价值。

2025-06-14 09:00:00 717

原创 DAY 28 类的定义和方法

本文介绍了Python面向对象编程中的核心概念。主要内容包括:1. 类的定义与pass占位语句的使用,解释如何避免空代码块的语法错误;2. 类的初始化方法(init)和普通方法的区别与应用,强调self参数的重要性;3. 类的继承机制,说明子类如何继承父类属性和方法,并演示方法重写的两种方式(完全重写和使用super()保留父类逻辑)。文章通过Teacher类的实例,展示了类的创建、方法调用及继承的实现过程,为深度学习等领域的类应用提供了基础指导。

2025-06-13 09:00:00 791

原创 DAY 27 函数专题2 装饰器

Python装饰器是一种高阶函数,用于在不修改原函数代码的前提下扩展功能。它通过接收函数作为参数,并返回一个包含新功能的函数(通常命名为wrapper)来实现。装饰器常用于计时、日志等场景,遵循DRY原则,提高代码复用性。当被装饰函数有参数时,装饰器需要使用*args和**kwargs接收任意参数,并保持原函数的返回值。示例展示了基本装饰器、带参数装饰器的写法,以及一个打印函数执行日志的作业实现。装饰器使代码逻辑更清晰,功能扩展更灵活。

2025-06-12 09:00:00 966

原创 DAY 26 函数专题1 函数定义与参数

"""Docstring: 描述函数的功能、参数和返回值 (可选但强烈推荐)"""# 函数体: 实现功能的代码# ...return value # 可选,用于返回结果def: 关键字,表示开始定义一个函数。function_name: 函数的名称,应遵循Python的命名约定(通常是小写字母和下划线,例如 calculate_area,用英文单词含义和下划线来作为函数名)。parameter1, parameter2, ...: 函数的参数(也叫形参),是函数在被调用时接收的输入值。

2025-06-11 09:00:00 1001

原创 DAY 25 异常处理机制

Python的异常处理机制为程序提供了强大的容错能力 (fault tolerance)。当程序在运行时遇到意外情况(即异常),它不会直接崩溃,而是可以被设计成优雅地处理这些错误,并可能继续执行后续逻辑(如果设计允许)或以可控的方式结束。当异常发生时,Python会创建一个异常对象(exception object)(通常是 Exception 类的子类实例)。如果这段可能出错的代码位于 try 语句块中,程序流程会寻找并跳转到匹配的 except 语句块(如果存在)来处理这个异常。

2025-06-10 09:00:00 1056

原创 DAY 24 元组和OS模块

1.,可以重复,这一点和列表一样。2.,这一点非常重要,深度学习场景中很多参数、形状定义好了确保后续不能被修改。很多流行的 ML/DL 库(如 TensorFlow, PyTorch, NumPy)在其 API 中都广泛使用了元组来表示形状、配置等。可以看到,元组最重要的功能是在列表之上,增加了不可修改这个需求。

2025-06-09 09:00:00 879

原创 DAY 23 机器学习管道 pipeline

(ColumnTransformer的核心)# --- 定义不同列的类型和它们对应的预处理步骤 ---# 这些定义是基于原始数据 X 的列类型来确定的# 识别原始的 object 列 (对应预处理前的 discrete_features)# 识别原始的非 object 列(通常是数值列)# 有序分类特征(对应之前的标签编码)# 注意:OrdinalEncoder 默认编码为0, 1, 2... 对应之前字典里手动定义的1, 2, 3... 需要在模型解释时注意。

2025-06-08 09:00:00 848

原创 DAY 22 复习日

结合4个图像,选择局部最优的点,选择 8 比较合适。在降维的基础上进行聚类。

2025-06-07 08:00:00 380

原创 DAY 21 常见降维算法

本文探讨了多种特征降维方法对信贷违约预测模型的影响。首先对原始数据进行了预处理,随后比较了无监督降维(PCA、t-SNE)和有监督降维(LDA)方法的效果。PCA降维保留了95%方差时需26个主成分,降至10维后模型性能变化不大但耗时增加;t-SNE适合可视化但计算成本高,降至2维后分类效果有所下降;LDA因二分类问题限制只能降至1维,其有监督特性使其更关注类别区分。实验表明,降维方法的选择需结合数据特性和任务需求,PCA适合通用降维,LDA更有利于分类任务,而t-SNE主要用用于可视化探索。

2025-06-06 08:00:00 1371

原创 DAY 20 奇异值分解

摘要:本文系统介绍了奇异值分解(SVD)的原理及其在降维中的应用。首先阐述了SVD的数学基础。随后详细解析了SVD的三个输出矩阵(U、Σ、V^T)的物理意义和作用机制。通过Python案例展示了SVD在矩阵降维中的实际应用,保留前k个奇异值即可实现5%以内的误差率。最后针对机器学习场景,重点探讨了训练集和测试集的特征维度不一致问题,提出必须对测试集应用相同的V^T矩阵进行投影变换,并提供了完整的代码实现和标准化处理建议。全文结合理论与实例,为SVD的实际应用提供了清晰指导。

2025-06-05 09:00:00 1067

原创 DAY 19 特征筛选算法

过去电脑性能比较差,特征数目太多计算起来很慢。同时特征中可能存在很多冗余特征干扰解释性、存在噪声特征干扰精度。所以在面对高维特征的时候常常需要引入特征降维,我们之前课程中的项目的特征也就小几十个,不太需要做降维,对于某些特征较多的数据,如基因数据、微生物数据、传感器数据等,特征较多,所以会考虑特征降维。

2025-06-04 09:00:00 949

原创 DAY 18 推测聚类后各个簇的含义

摘要:本文基于KMeans聚类算法对客户信用数据进行分组分析。首先对数据进行预处理,包括特征编码、缺失值处理和标准化。通过肘部法则和轮廓系数确定最优聚类数k=3,并使用PCA降维可视化聚类结果。为解释聚类含义,采用随机森林和SHAP方法识别关键特征(债务合并、破产记录等),并分析各簇特征分布。最终将客户分为三类:1)优质信用稳健财务型(占比69%);2)较稳健但信用有分化型(占比18%);3)高风险财务困境型(占比12%)。该聚类特征可进一步用于信用风险预测模型的优化。

2025-06-03 09:00:00 1191

原创 DAY 17 聚类算法

本文介绍了无监督学习中的KMeans聚类算法及其评价指标。首先阐述了三种常用聚类评估指标:轮廓系数、CH指数和DB指数,分别衡量聚类质量和簇的分离与紧凑程度。然后详细讲解KMeans算法原理,包括肘部法确定最优k值的方法,并分析了算法的优缺点。在实现部分,通过标准化数据后,测试k=2-10时的各项指标,综合评估后选择k=6进行聚类,并用PCA降维可视化结果。最后指出聚类生成的新特征需要进一步分析其实际含义,并提及DB-SCAN和层次聚类等其他方法。

2025-06-02 10:32:39 817

原创 DAY 16 numpy数组与shap深入理解

本文系统介绍了NumPy数组的基础知识及其在深度学习中的应用。主要内容包括:1.数组维度概念及与Tensor的关系,强调NumPy是深度学习框架的基础;2.一维、二维及多维数组的结构特点与创建方法;3.随机数组生成的四种方法对比及其适用场景;4.数组运算(加减乘除、矩阵运算)和索引操作(包括切片和高级索引);5.结合实例演示了SHAP值在模型特征重要性分析中的应用,通过随机森林分类器展示了SHAP的可解释性分析流程。全文通过代码示例强化了对NumPy核心功能的实践理解,为后续深度学习打下基础。

2025-05-31 18:00:10 1141

原创 DAY 15 复习日

尝试找到一个kaggle或者其他地方的结构化数据集,用之前的内容完成一个全新的项目,这样你也是独立完成了一个专属于自己的项目。

2025-05-30 20:48:45 873

原创 DAY 14 SHAP库的绘制

SHAP是一种基于博弈论的可解释机器学习方法,通过计算特征对模型输出的边际贡献来解释"黑盒模型"。其核心是Shapley值,公平分配每个特征对预测结果的贡献。SHAP具有加性特征,所有特征的SHAP值与基准值之和等于模型预测值。在分类任务中,SHAP值数组结构为(样本数×特征数×类别数),可分析各特征对每个类别的影响。实战部分展示了SHAP的三种可视化方法:特征重要性条形图、蜂巢图和依赖性图,用于揭示关键特征及其对预测的影响模式。

2025-05-29 21:01:41 1167

原创 DAY 13 不平衡数据处理

本文介绍了处理类别不平衡数据集的三种方法:数据过采样(随机过采样和SMOTE)和算法层面的权重调整。首先通过数据预处理准备数据集,然后比较了随机过采样和SMOTE在随机森林模型上的效果,两者均能提升少数类识别能力但差异不大。接着详细讨论了修改类别权重的方法,包括使用class_weight='balanced'自动调整权重,并通过交叉验证评估模型性能。实验结果显示,权重调整能提高少数类召回率,但需权衡准确率。最后对比了不同方法的优缺点,建议根据实际需求选择合适策略或组合使用。

2025-05-28 20:13:29 1176

原创 DAY 12 启发式算法

本文介绍了三种启发式优化算法及其实现逻辑。启发式算法通过经验规则寻找近似解,适用于NP难问题。遗传算法(GA)模拟生物进化,通过选择、交叉、变异操作迭代优化,示例代码展示了种群初始化、适应度评估和选择过程。粒子群优化(PSO)模仿鸟群觅食,每个粒子记录个体和全局最优位置调整搜索方向。模拟退火(SA)借鉴金属退火,允许概率性接受较差解以跳出局部最优。这三种算法不依赖精确梯度信息,相比传统梯度下降法具有更好的全局搜索能力,但计算成本较高。

2025-05-27 16:06:20 948

原创 DAY 11 常见调参方式

如果不做交叉验证,就需要划分验证集和测试集,但是很多调参方法中都默认有交叉验证,所以实际中可以省去划分验证集和测试集的步骤。每个模型都有自己的超参数,每个超参数都有一定的意义。为了精度和科研只需要用好调参工具即可。数据预处理例:划分训练集、验证集和测试集可以看出,训练集:验证集:测试集的大小是8:1:1。

2025-05-26 18:14:50 1235

day 31 文件的规范拆分和写法

机器学习项目文件划分规范

2025-06-16

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除