李宏毅2022ML第三周课程笔记

本文详细介绍了李宏毅2022年机器学习第三周课程中关于卷积神经网络(CNN)的内容。文章阐述了使用CNN的原因,包括如何避免过拟合以及如何利用共享参数检测图像中的特定模式。此外还详细解释了CNN的架构,包括卷积层、池化层的作用及操作方式,并说明了如何将特征映射展平为一维向量以便进一步处理。

目录

李宏毅2022ML第三周课程笔记(三)-- CNN

为什么使用CNN?

卷积

Convolution和fully connected layer的关系。

池化

Flatten


李宏毅2022ML第三周课程笔记(三)-- CNN

为什么使用CNN?

        一张图片是一个三维的tensor,如果使用全连接神经网络架构,由于其参数过多,模型的弹性很大,很容易overfitting,所以可能不需要一个fully-connected。

         同时,我们需要观察的对象往往不需要观察整个图,也有可能一张图内有多个我们需要观察的对象,这时我们可以使用相同的neural和同样的参数可以把同一模块侦测出来。

         接下来介绍CNN的架构:首先input一张image以后,这张image会通过convolution layer,接下来做max pooling这件事,然后再做convolution,再做max pooling这件事。这个process可以反复无数次,反复的次数你觉得够多之后,(但是反复多少次你是要事先决定的,它就是network的架构(就像你的neural有几层一样),你要做几层的convolution,做几层的Max Pooling,你在定neural架构的时候,你要事先决定好)。你做完决定要做的convolution和Max Pooling以后进行flatten,再把flatten的output放入一般的fully connected feedforward network,然后得到影像辨识的结果。

卷积

        Convolution(卷积):类似滤波器,选择一个小的n*n的矩阵和从原输入数据矩阵抽取的同样大小矩阵相乘得到一个值作为输出矩阵的一个元素,按照规定的步进值进行移动获取数据小矩阵,直到遍历完整个数据矩阵大小。

The same pattern will appear the different regions

1.receptive field

2.we allow the neuron share their parameters

Convolution和fully connected layer的关系。

        convolution就是fully connected layer把一些weight拿掉了。

池化

Pooling==Subsampling the pixels will not change the object 池化 可以进行采样

        Pooling 的目的是减少计算量,但可能会造成图片信息的丢失,在计算资源足够的前提下,可以全convolution

Max pooling:

         对于整个输出矩阵,使用一个小矩阵框进行遍历,每次输出矩阵框内的最大值(相当于使用这个数来代表这片范围内的信息)。

Flatten

        是将 feature map的矩阵拉直成为一维向量,方便后续进入fully connected feedforward network进行处理

### 李宏毅 2022 机器学习 HW3 的主要内容 #### 资料概述 李宏毅教授的《2022机器学习》课程中的第三次作业(HW3)主要围绕图像分类展开,涉及模型设计、数据增强以及优化策略等内容。以下是关于该次作业的一些核心要点: 1. **训练数据增强** 数据增强技术被广泛应用于提升模型性能。通过增加样本多样性来减少过拟合现象的发生,在本次作业中,采用数据增强方法后,private leaderboard得分达到了0.760562[^1]。 2. **交叉验证与集成学习 (Cross Validation & Ensemble)** 使用交叉验证和模型集成的方法可以进一步提高预测准确性。这种方法使得private leaderboard上的得分为0.816473[^1]。 3. **测试集数据增强 (Test Dataset Augmentation)** 测试阶段的数据增强同样重要,它能够帮助模型更好地泛化到未见过的数据上。应用此技巧之后,private score上升至0.82458[^1]。 4. **ResNet架构的应用** ResNet作为一种经典的卷积神经网络结构,因其残差连接机制而闻名。在本作业中选用ResNet50作为基础框架,并对其进行了自定义修改以适配特定任务需求。具体实现如下所示: ```python import torch.nn as nn from torchvision import models def ResNet1(): model = models.resnet50(weights=None) model.conv1.in_channels = 3 model.fc = nn.Sequential( nn.Flatten(), nn.Linear(2048, 512), nn.LeakyReLU(0.1), nn.BatchNorm1d(512), nn.Dropout(0.2), nn.Linear(512, 11) ) model.fc.out_features = 11 return model ``` 此外,利用ResNet并调整超参数可使private leaderboard成绩达到0.86555[^1]。 5. **图像标准化处理 (Image Normalization)** 对输入图片进行规范化操作有助于加速收敛过程并改善最终效果。实施这一措施后,private score升至0.87494[^1]。 6. **Batch Size的影响** 批量大小的选择对于梯度估计质量有着直接影响。适当减小batch size可能会带来更优的结果——在此案例下,相应分数为0.895[^1]。 7. **Label Smoothing的作用** Label smoothing是一种正则化手段,旨在缓解因硬标签带来的潜在问题。其引入对整体表现亦有正面贡献。 8. **强基线改进方案 (Strong Baseline Enhancement)** 针对比标准版更强力的基础解决方案而言,除了加深网络层数之外还增加了迭代轮数;与此同时配合Test Time Augmentation(TTA),即分别基于不同转换方式创建多个用于评估的加载器(testloader)并将它们按一定比例加权组合起来共同决定最后输出概率分布向量的形式。经由这些改动后的总评分为0.88247,距离顶级水平已然非常接近但仍需继续探索最佳配置选项[^3]。 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦想的小鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值