[DEEPFAKE & Datawhale AI 夏令营] TASK2 笔记

迁移学习

迁移学习是一种机器学习技术,它将已在一个任务上学到的知识(如模型参数、特征表示等)应用到另一个相关任务上。

通常使用在大规模数据集上预训练的模型作为起点,例如在ImageNet数据集上预训练的卷积神经网络(CNN)。在预训练模型的基础上,使用少量标记数据对模型进行微调,以适应新任务。

迁移学习的实现方法

微调(Fine-tuning)是深度学习中一种有效的迁移学习策略,它允许我们利用预训练模型对特定任务进行优化。

其基本原理是,首先在一个大规模的数据集上预训练一个深度学习模型,捕捉通用的特征表示,然后将这个预训练模型作为起点,在目标任务上进行进一步的训练以提升模型的性能。

微调的过程通常开始于选择一个在大型数据集上预训练的模型,这个预训练模型已经学到了丰富的特征表示,这些特征在广泛的领域内都是通用的。接着,我们将这个预训练模型适配到新的目标任务上。适配过程通常涉及以下步骤:

  • 替换模型的输出层,以匹配目标任务的类别数量和类型。

  • 冻结预训练模型中的大部分层,这样可以防止在微调过程中这些层学到的通用特征被破坏。通常情况下,只对模型的最后一部分层进行解冻,这些层负责学习任务特定的特征。

  • 使用目标任务的数据集对模型进行训练。在这个过程中,我们会用梯度下降等优化算法更新模型的权重,从而使模型能够更好地适应新的任务。训练时,可能会使用比预训练时更低的学习率,以避免过度拟合目标数据集

在下面代码中,timm.create_model('resnet18', pretrained=True, num_classes=2)这行代码就是加载了一个预训练的ResNet-18模型,其中pretrained=True表示使用在ImageNet数据集上预训练的权重,num_classes=2表示模型的输出层被修改为有2个类别的输出,以适应二分类任务(例如区分真实和Deepfake图像)。通过model = model.cuda()将模型移动到GPU上进行加速。

import timm
model = timm.create_model('resnet18', pretrained=True, num_classes=2)
model = model.cuda()

 常见的图像分类网络

AlexNet,https://en.wikipedia.org/wiki/AlexNet

 AlexNet在2012年的ImageNet大规模视觉识别挑战赛(ILSVRC)中取得了突破性的成绩,大幅度超越了之前的图像分类技术(非深度学习技术)

AlexNet包含八个层次结构,前五个是卷积层,其中一些后跟最大池化层,最后三个是全连接层。具体结构如下:

  1. 卷积层:AlexNet的前五个层次都是卷积层,每个卷积层后面跟着一个ReLU激活函数,以引入非线性。这些卷积层旨在提取图像的特征。

  2. 局部响应归一化(LRN):在某些卷积层后使用了局部响应归一化,这是一种提高模型泛化能力的正则化方法。(ps.由于其计算成本较高,且在一些情况下被发现效果不如其他正则化技术如Dropout,因此在现代的深度学习实践中,LRN的使用频率已经降低。尽管如此,LRN在某些特定任务和网络结构中仍然可能带来性能提升。)

  3. 最大池化层:在部分卷积层之后使用最大池化层来降低特征的空间维度,减少计算量和过拟合的风险。

  4. 全连接层:网络的最后三个层次是全连接层,其中最后两个全连接层后跟有Dropout(暂退法),以进一步防止过拟合。

  5. 输出层:最后一个全连接层后是线性层,然后是softmax激活函数,输出1000个类别上的概率分布。

ResNet,https://en.wikipedia.org/wiki/Residual_neural_network

ResNet的核心是残差块(residual block),网络通过堆叠这些残差块来构建。一个基本的残差块包含以下几部分:

ResNet的核心是残差块(residual block),网络通过堆叠这些残差块来构建。一个基本的残差块包含以下几部分:​

  1. 跳跃连接(Skip Connections):这是ResNet最关键的创新,通过跳跃连接,输入可以直接绕过一个或多个层传到输出,输出是输入与这些层的输出的加和。这种结构使得网络可以学习输入到输出的残差,而不是直接学习输出,这有助于缓解梯度消失问题。​
  2. 卷积层:残差块内部包含多个卷积层,通常使用小尺寸的卷积核(如3x3),并且通常会有批量归一化(Batch Normalization)和ReLU激活函数。​
  3. 池化层:在某些残差块之间会插入最大池化层来降低特征图的空间维度。​

ResNet有多个变种,包括ResNet-50、ResNet-101、ResNet-152等,数字代表了网络中权重层的数量。

​跳跃连接使得ResNet能够成功训练超过100层的网络,这在之前是不可能实现的。

EfficientNet,https://paperswithcode.com/method/efficientnet

EfficientNet是一种由Google Brain团队开发的高度优化的卷积神经网络(CNN)架构,其主要设计目标是提高模型的效率和性能。EfficientNet的创新点在于它重新思考了模型的缩放方式,提出了复合缩放方法(Compound Scaling),这种方法能够更有效地利用计算资源,同时提高模型的准确度。

 复合缩放方法(Compound Scaling)

传统的模型缩放方法往往只考虑单一维度,例如增加网络的深度或宽度,或者提高输入图像的分辨率。然而,这些方法往往导致模型的效率和性能之间存在权衡。EfficientNet通过同时缩放网络的深度、宽度和输入分辨率,找到了一个最优的平衡点,从而在增加模型复杂度的同时保持效率。

效率与性能的提升

EfficientNet通过复合缩放策略,能够在增加模型大小时显著提升模型的性能。例如,EfficientNet-B7在ImageNet数据集上实现了84.4%的Top-1准确率和97.1%的Top-5准确率,相比于之前的顶级模型,它在准确率相近的情况下,模型大小减少了8.4倍,推理速度提升了6.1倍。

基础网络结构

EfficientNet的基础网络结构是基于MobileNetV2,它采用了倒残差块(Inverted Residual Blocks),这是一种轻量级的卷积模块,其中包含了深度可分离卷积(Depthwise Separable Convolutions)。这种模块设计能够大幅度减少模型的参数数量和计算复杂度。

自动模型搜索

EfficientNet的另一个特点是使用了神经架构搜索(Neural Architecture Search,NAS)技术来寻找最佳的网络结构。通过自动化的过程,EfficientNet能够找到在给定计算资源限制下的最优模型结构。

Datawhale AI夏令营是由国内AI领域最大的开源学习组织Datawhale发起的一项暑期学习活动,旨在帮助在校大学生和在职工作者深入学习和掌握AI技术,并将其应用于实际的学习和工作中[^1]。该夏令营不仅为参与者提供了丰富的学习资源和实践机会,还通过各种竞赛和项目实践,提升参与者的实际操作能力和团队协作能力。 ### 官方介绍 Datawhale AI夏令营每年暑期都会开展,活动内容丰富多样,涵盖了AI领域的多个热门方向,如大模型微调、机器翻译、AIGC(生成式人工智能)等[^1]。通过这些活动,参与者可以接触到最新的AI技术和应用场景,同时还能结识一群志同道合的学习伙伴,共同进步和成长。 ### 报名条件 Datawhale AI夏令营面向所有对AI技术感兴趣的人士开放,无论是在校大学生还是在职工作者,只要对AI技术有热情,都可以报名参加[^1]。参与者需要具备一定的编程基础和对AI技术的基本了解,以便更好地参与到夏令营的各项活动中。 ### 活动内容 Datawhale AI夏令营的活动内容非常丰富,主要包括以下几个方面: 1. **竞赛挑战**:例如讯飞机器翻译挑战赛,参与者可以通过竞赛的形式提升自己的技术水平,同时还能获得宝贵的实践经验[^2]。 2. **大模型微调**:如第四期夏令营中提到的从零入门大模型微调,参与者可以学习到如何对大模型进行微调,以适应特定的应用场景[^3]。 3. **AIGC方向**:包括图像生成、文本生成等多个方向,参与者可以学习到如何利用生成式AI技术创造出新的内容[^5]。 4. **环境配置与代码实践**:夏令营期间,参与者需要配置相应的开发环境,并通过实际的代码实践来加深对所学知识的理解。例如,使用Git LFS安装和克隆数据集,进行项目开发[^4]。 此外,夏令营还会提供一系列的学习资源和支持,包括详细的教程、在线答疑等,确保参与者能够顺利完成各项任务并有所收获。 ### 示例代码 以下是一个简单的示例代码,展示了如何使用Git LFS安装和克隆数据集: ```bash git lfs install git clone https://www.modelscope.cn/datasets/Datawhale/AISumerCamp_picture_generation_fight.git ``` 通过这些活动,参与者不仅可以提升自己的技术能力,还有机会获得实习证明和证书,为未来的职业发展打下坚实的基础。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值