好久不上下了点东西发现金币有点少,吓的我赶快发一贴混点金币,虽然本人水平比较低可能有些地方有出入,请大家原谅我将就的看看把。
一.卷积神经网原理
先看看卷积网的定义:
可以处理时序,但处理图像更广泛一点。
1.卷积
卷积操作由三个部分组成:输入,核函数,特征映射。
下面是用一个二维的核去卷积一个二维的图像的公式:
直观来看,当然这种东西一搜一大把:
如果输入是三维的tensor那么,核也是三维的图如下:
卷积运算的动机:
首先是稀疏集交互,神经网的每一个参数都描述了输入与输出的交互关系,当输入量比较大时,运算时间顶不住,而卷积则可以用少量的参数去提取重要的特征具有稀疏交互的特征。其次,参数共享降低了储存的需求。最后平移等变大意指只要存在这个特征不限于其位置,卷积网也能提取到它的特征。
2.池化
典型的卷积网中卷积+激活函数后会跟一个池化操作,深一点的网在卷积+激活中会加一个bn层:
Bn层有如下作用:加快收敛,防止梯度弥散,缓解过拟合(原理大概是相当于引入噪声,是一种正则化操作),下面是bn的公式:
池化操作中常用的有最大池化和平均池化,其作用如下:
它的另一个作用就是降低参数量,有利于高层特征的抽取。
深入的理解卷积和池化,我们可以理解其为引入了一个很强的先验概率分布,学得的卷积函数只包含局部链接关系且对平移具有等变性,而池化函数的先验则是少量平移不变性。
3.步幅(stride),填充(padding),空洞卷积:
步福是指卷积核在移动的过程中,会按一定的步长移动,填充指向输入矩阵的两边填0,空洞卷积指往卷积核中加入间隔,增大感受野。
卷积计算公式如下:
Pytorch中conv2d卷积层函数:
参数说明如下:
一般分类任务中,几个卷积层后会跟全链接层用来分类。
二.经典卷积网分析resnet
卷积网花里胡哨一大堆,但我个人觉得resnet对其发展影响比较大所以简单的剖析一下这个网络。Resnet引入残差结构,使得深层卷积网在分类比赛上大幅度提升识别率,对卷积网影响比较大。其引入的残差块使得网络更容易训练和优化:
下面是一些restnet网络的参数,比如在比赛中我就使用过resnet101作为预训练模型。
首先定义一个残差块函数
它的卷积都是这种卷积+bn+relu激活函数。
然后在forward方法中实现残差块功能
之后在主体函数中定义一个make_layers方法,用来实现中间四个卷积块:
主体函数如下:
整个结构如同模型参数图一一对应,即conv1+4个卷积块+平均池化+全连接层,参数初始化conv2d使用kaiming初始化,bn层使用参数为1偏置为0的初始化。
三.卷积网在比赛中的策略
思路参考“观云识天”分类比赛第五名的解决方案,这个团队实力很强,解决方案很有参考性。
1. 数据处理:
比赛数据分布不均匀,他们团队采用数据增强和过采样扩充数据集
2. 损失函数:
使用标签平滑和多元损失函数,优化器使用Radam+lookahead
3. 模型:
使用了上面提到的resnet101和efficientnet
4. 使用注意力机制:
5. 模型融合+svm替换fc+tta
模型融合使用k-foldstacking,原理如下:
四.卷积网在气象领域的应用
用来预测enso或气温什么的还有风速之类的比较常见
遥感图像分类,这个好像已经用的很普遍了随便一搜一堆
降尺度和数值模式中的参数方案学习等等。
发帖不容易,如果图比较糊的话可以下载附件,感兴趣的话大家可以交流交流,dl在气象领域应用的还是比较广泛的。
参考链接:
https://www.cnblogs.com/Terrypython/p/11147490.html
在气象中应用: