ElitesAI·动手学深度学习PyTorch版(第二次打卡)

• Task03:过拟合、欠拟合及其解决方案;梯度消失、梯度爆炸

知识点

1.训练误差(training error)和泛化误差(generalization error)

训练误差:训练数据集上表现出的误差
泛化误差:模型在测试数据样本上表现出的误差
验证误差:我们可以预留一部分在训练数据集和测试数据集以外的数据代入模型求得得误差。训练数据集和测试数据集以外的数据被称为验证数据集,简称验证集(validation set)

2.过拟合、欠拟合

欠拟合(underfitting):模型无法得到较低的训练误差现象;解决方法是通过增加模型得复杂度。
过拟合(overfitting):模型的训练误差远小于它在测试数据集上的误差现象,解决方法是增加样本数量、构建模型时可以采用权重衰减与丢弃法、或者用K折

3.梯度消失、梯度爆炸

深度模型有关数值稳定性的典型问题是梯度消失(vanishing)和梯度爆炸(explosion)。
K折交叉验证
通常可以用来选择模型设计并调节超参数。

4.考虑环境因素

协变量偏移:输入的分布可能随时间而改变,但是标记函数,即条件分布P(y∣x)不会改变。例如夏季商品推荐出现冬季得商品。
标签偏移:当我们认为导致偏移的是标签P(y)上的边缘分布的变化,但类条件分布是不变的P(x∣y)时,就会出现相反的问题。例如训练数据集,数据很少只包含流感p(y)的样本。而测试数据集有流感p(y)和流感q(y),其中不变的是流感症状p(x|y)。
概念偏移:在概念转换中,即标签本身的定义发生变化的情况。不同地区对某个词的理解存在偏差现象。

5.Kaggle 房价预测实战与项目结合

Kaggle 房价预测实战
https://github.com/d2l-ai/d2l-zh/blob/master/chapter_deep-learning-basics/kaggle-house-price.md

对于我的启示,正好有个城镇土地定级估价的计算问题需要我帮忙解决,需要我从已有的商服、交通、基本、自然、 规划五方面的评分基础上估计土地价格,有商业、居住两种地价。参照上述方案,我正修改了上述代码基本实现了估价任务,后续再附上数据和代码链接。

• Task04:机器翻译及相关技术;注意力机制与Seq2seq模型;Transformer

本人这方面的知识也时首次接触,还需要时间消化,注意力机制之前有再图像分类的实践过程中使用过。
机器翻译是利用计算机将一种自然语言(源语言)转换为另一种自然语言(目标语言)的过程。
机器翻译(MT):将一段文本从一种语言自动翻译为另一种语言,用神经网络解决这个问题通常称为神经机器翻译(NMT)。 主要特征:输出是单词序列而不是单个单词。 输出序列的长度可能与源序列的长度不同。

在神经网络中存在着大量的链接权重,这些权重就是我们要通过数据训练、学习的参数。训练好的神经网络可以将输入的源语言转换为输出的目标语言。查阅相应资料,Google的神经翻译机器(Google Neural Machine Translation,简称GNMT)在很多语言上的翻译表现已经接近了人类翻译的水平。编码解码框架(2014年中期提出)、注意力机制(2014年末提出)、外存(2015年新星)、残差网络(2015年新星)、
其它辅助手段(2016年新技术)。

1.注意力机制(training error)

在这里插入图片描述
在这里插入图片描述

2.注意力机制与Seq2seq模型

在这里插入图片描述
在这里插入图片描述

3.Transformer

下图展示了Transformer模型的架构,与9.7节的seq2seq模型相似,Transformer同样基于编码器-解码器架构,其区别主要在于以下三点:

Transformer blocks:将seq2seq模型重的循环网络替换为了Transformer Blocks,该模块包含一个多头注意力层(Multi-head Attention Layers)以及两个position-wise feed-forward networks(FFN)。对于解码器来说,另一个多头注意力层被用于接受编码器的隐藏状态。
Add and norm:多头注意力层和前馈网络的输出被送到两个“add and norm”层进行处理,该层包含残差结构以及层归一化。
Position encoding:由于自注意力层并没有区分元素的顺序,所以一个位置编码层被用于向序列元素里添加位置信息。
在这里插入图片描述

(上面部分的内容多源于《动手学深度学习》与伯禹教育https://www.boyuai.com/elites/course/cZu18YmweLv10OeV,下面部分主要是自己的感悟和文献的综述)

• Task05:卷积神经网络基础;leNet;卷积神经网络进阶

经过又一次系统的学习了卷积神经网络方面的知识感觉思路更加清晰,对基础知识掌握更清楚,只是做题时太匆忙没在意错了不少。这里不冗述leNet、深度卷积神经网络(AlexNet)、使用重复元素的网络(VGG)、⽹络中的⽹络(NiN)、GoogLeNet以及图神经网络的特点。我想谈谈本人不成熟的思考(昨晚的交流有位老师说的很好,像外行小白一样思考问出一些有趣有意思的问题,像内行一样做出专业的事来解决问题):

1.个人思考的问题

现在已有的深度卷积神经网络的模型结构多种多样,但是它的输入数据都是规整统一的图像块,
1.那么针对于不规整的影像块如何应用这一思想完成分类或者识别功能?例如,面向对象的遥感分类中,一般是将整个影像分割成若干的形状各异的影像对象,然后根据它的光谱特征,指数特征,纹理特征,形态特征属性来进行分类;
2.借助深度卷积神经网络如何针对这些形状大小各异的影像对象进行分类,如何解决模型的构建设计的问题?能否影像块与对象属性都考虑到,这一的融合是否有意义?
3.现实中的需求,2019年至今全国第三次国土资源调查耗费了大量的经费、人力进行图斑的识别,进而掌握土地利用现状等数据,既有已有十年前第二次土地资源调查的成果数据,又有卫星影像,又有实地拍照取证的像片;客观上有这样的需求。

2.基于深度学习的城市场景、街景分类等研究(本人的总结)

深度学习中的CNN(卷积神经网络)可以通过局部感受野、共享权值和下取样的组合处理的方式,从图像中得到有助于分类的重要特征信息;它适合批量自动化处理图片、影像等数据,在高层特征表达、场景理解等方面有着天然的优势。场景分类是基于目标的分类,它将图像中场景当做一个整体进行分类,基于深度学习的场景分类方法通常利用图像中的高层语义信息进行场景分类(李学龙等, 2015)。Eakins 图像语义层次模型自下而上地将图像语义内容分为底层特征层、对象层、语义概念层三个基本层级(Eakins, 2000)。底层特征语义包含包含图像颜色、纹理、形状等原始特征;对象层通常包含了对象的语义、对象的空间关系;语义概念层属于高层语义,它细分为情感语义、行为语义、场景语义,是图像表达出的最接近人类理解的东西(陈金菊, 欧石燕, 2018)。卷积神经网络可以利用卷积核自动提取底层特征,并建立从底层到高层逐级提取特征、由底层特征到高层语义映射的机制(李冠东等, 2019; 彭山珍等, 2018)。2012年以来涌现出了许多能够提取高层语义信息用于场景分类的深度学习网络结构:Alex-Net (Krizhevsky et al., 2012)、VGG (Simonyan and Zisserman, 2014)、ResNet (He et al., 2016)、Inception(Szegedy et al., 2014)、Inception-ResNet (Szegedy et al., 2016) 。

近些年,许多学者在基于遥感数据的场景分类方面做了大量的研究(Zhang et al., 2018; A. et al., 2018; Huang et al., 2018; Flores et al., 2019; Luus et al., 2015; Ma et al., 2019; Nogueira et al., 2017; Othman et al., 2016; Zhang et al., 2016)。Luus等(2015)以多尺度输入的策略来构建多视角拼合的卷积神经网络模型,以此获取尺度效应相关的特征来提高场景分类的精度(F. et al., 2015)。场景学习只能对一整块规则的影像块进行分类处理,而且场景的类型是特定的,并不能很好的应用于城市土地利用类型的研究。一些学者通过patch-based CNN models的思路来提取城市土地利用类型的语义信息:即通过将不规则的大尺寸的地块拆分成若干规则的小影像块,再用卷积神经网络的方法提取出高层级的语义信息,最后再综合起来进行判断。Huang 等(2018)组合了AlexNet与Small DCNN来构建了半迁移的深度卷积神经网络模型,对街区功能类型进行分类。首先,依据街区骨架拆分办法将街区块分割出若干包含多波段影像子块,采用已有的AlexNet模型对影像子块中假彩色三个波段数据进行处理,而Small DCNN处理影像子块的多波段数据,最后将两者结合通过全连接的方式进行街区功能类型的分类学习。该方法在不同城市应用时所得到的分类精度也有显著的差别:香港的土地利用分类实验中总体分类精度达到91.25%,Kappa值达到0.903;在深圳的土地利用分类实验中总体分类精度达到80%,Kappa值达到0.78。Zhang等(2018)通过组合了大、小尺寸的影像块为输入数据的卷积神经网络分类算法,采用迁移学习与集合投票的办法,以此构建基于对象的深度卷积神经网络决策模型,进行城市土地利用类型分类研究,结果表明最佳的分类精度中总体分类精度达到了89.52%,Kappa值为0.88;其中高密度、中密度居住区的分类精度分别为86.43%、90.59%。基于深度学习的场景分类精度虽然取得了很高的分类精度,但是其分类的对象是整张场景图像并非场景图像内的每栋建筑。一张场景图像通常包含了很多栋建筑,城市建筑密度又复杂,直接将场景图像的类型赋给图像内包含的所有建筑是不切实际也不合理的。城市建筑面积一般都小于场景图像,如何利用场景图像判断小粒度的城市建筑的功能类型仍待进一步深入研究。已有的遥感场景分类的数据集为相似的场景分类研究提供了一定的借鉴和参考,目前常用的遥感场景分类的数据集有UC Merced(Yang and Newsam, 2011)、AID(Gui-Song Xia, 2010)、WHU-RS(Hauser and Windshugel, 2016)、NWPU RESISC45(Cheng et al., 2017)等,这些场景图像数据类型数、各类场景图像数量、图像边长与尺寸大小、空间分辨率等方面都存在着较大的差异(李晓斌等, 2019),具体如表1-1所示。表1-1罗列了常用的四个遥感场景分类的数据集的相关参数。
在这里插入图片描述
近年来,采用街景数据参与城市建筑类型分类的研究逐步兴起(Lotte et al., 2018; Kang et al., 2018; Eike Jens Hoffmann, 2019),其主要本质还是将深度学习方法应用于旁视角度的城市建筑立面图像以此识别建筑类型。Kang等(2018)利用Google Street View由街景视角获取独栋建筑的立面图像,采用AlexNet,VGG16,ResNet18、ResNet34等深度卷积神经网络进行对比,将建筑划分为apartment,church,garage,house,industrial,office building,retail and roof等多种类型,结果表明建筑的分类总精度只有60%并不理想(Kang et al., 2018)。Eike Jens Hoffmann等(2019)采用VGG16、Inception3深度学习网络与堆栈集成方法,通过处理航空正射影像、街景图像来识别四种建筑类型:商业、工业、公共、居住建筑。其中,航空正射影像有三张,都是以建筑为中心区分了大、中、小不同距离范围;街景图像只有一张。实验结果表明比只用街景图像有显著提高,最佳的分类精度准确度为0.74,F1为0.73,Kappa为0.62(Eike Jens Hoffmann, 2019)。由于城市建筑密集、街道树木的遮挡、街景数据的缺失等原因,并非所有建筑都能获取完好的立面像片,加之建筑外表并不能体现建筑内部的全部功能类型,例如商住一体的建筑,底部的局部立面图像并不能完整体现建筑内部使用的功能类型,最后此类研究的分类精度并不理想。
深度学习不仅仅只可以对图像进行处理,近年来利用深度学习融合特征属性数据与栅格数据的研究也已经成功地应用在人口流动、交通流量、出租车需求等方面(Ma et al., 2017; Li et al., 2017; Yu et al., 2017; Zhang et al., 2017; Zhang et al., 2016; 段宗涛等, 2018)。Zhang等(2016)构架了考虑天气条件下的时空残差网络来预测城市区域人口的流动变化。首先,将多时段的北京出租车GPS数据栅格化生成时序的人口流动栅格数据,并引入深度残差神经网络进行处理,以相邻几个小时的数据模拟相邻时间的时序的平滑性;以几天内一时刻对应的数据模拟周期性;再以更大时间范围内同一时间点对应的数据模拟趋势性;三者融合后再与相应的天气等外部因素特征合并,最后进行整体模型的训练,进而可以预测特定时段特定天气状况下的城市区域人口流动状况。段宗涛等(2018)构建CNN-LSTM-ResNet的组合模型来预测城市特定区域的出租车需求,以卷积神经网络(CNN)提取城市交通流量的空间特征,引入深度残差神经网络和长短期记忆网络(LSTM)获取出租车GPS栅格数据的临近性、周期性和趋势性,最后与天气、节假日和空气质量指数等外部因素一起融合训练模型,以此预测城市各区域的出租车需求。融合特征属性数据与栅格数据的卷积神经网络的深度学习方法为融合多源数据进行城市建筑分类研究提供了一条崭新的思路。

发布了5 篇原创文章 · 获赞 0 · 访问量 327

猜你喜欢

转载自blog.csdn.net/qingxiuhu/article/details/104400917