吴恩达神经网络和深度学习-学习笔记-38-使用开源的方案+迁移学习+数据增强data augmentation

使用别人的开源成果

想要用现成的网络,最好在网络上找到开源的实现,这要比从头开始实现快得多。

比如:直接在Google上搜索resnets github,找到合适的后点击下载会得到URL,然后在cmd中输入git clone YOURURL,就能下载到本地硬盘。

迁移学习

如果要做一个计算机视觉应用,相比于随机初始化权重后从头训练权重,下载别人已经训练好的网络结构的权重,通常能进行得更快。用这个作为预训练,然后转换到感兴趣的任务上。

对于一些开源的数据集(ImageNet、MS COCO、Pascal),许多人已经训练过它们的算法(可能花费了几周时间和很多的GPU),经过了非常痛苦的找最优的过程,这就意味着你可以下载别人花了几周甚至几月做出来的开源的权重参数,把它当作一个很好的初始化,用在自己的神经网络上。

简而言之,就是用迁移学习把公共的数据集的知识迁移到自己的问题上

下面是一个迁移学习的例子:
你要对自己两只不同品种的宠物猫分类,为一个三分类问题(1 or 2 or neither)。
由于自己的宠物猫并没有非常多的图片,所以训练集会非常小。

最好的方法是从网上下载一些神经网络开源的实现,同时下载代码和参数。比如ImageNet,有1000个分类,因此网络最后一层有一个Softmax单元。

我们可以删掉它的Softmax单元,创建自己的Softmax单元。
在这里插入图片描述
建议我们冻结(freeze)前面层的参数,只训练新的Softmax层有关的参数。
通过使用其他人预训练的权重,你很可能得到很好的性能,即使只有一个很小的数据集。

幸运的是,大多数深度学习框架都支持这种操作。

另一个技巧是(也许对一些情况有用):
由于前面的层都冻结了,相当于一个固定的函数,不需要改变。
我们要做的就是,取输入图像x,然后把它映射到最后一个固定层的激活函数(图中紫色线所示),(我的理解是整个冻结的网络层视为一个函数,有对应的input和output)。
所以这个能加速训练的技巧就是把冻结网络层的输出结果提前运算(pre-compute),然后储存到硬盘disk里。

详细来说:

  • 预先计算被冻结网络的最后一层(整个被冻结网络,这是一个固定的函数fixed function)的输出(特征或者叫激活值)
  • 然后把它们储存到硬盘里。
  • 用这个特征的向量作为输入,训练Softmax分类器,来做预测。

这样做的优点就是我们不再需要每次遍历训练集,再重新计算这个固定网络的激活值了。

因此如果你的任务只有一个很小的数据集,你可以这样做。

而我们面对一个更大的标定(labeled)的数据集,这种情况下,我们应该冻结更少的层,然后训练后面的层。
在这里插入图片描述
对于后面需要训练的层,可以沿用网络结构,只训练参数;也可以用自己的网络结构来代替。

一个经验是:如果有越多的数据,需要冻结的层数越少,能够训练的层数就越多。

这个理念就是:如果你有一个更大的数据集,也许有足够多的数据,那么不要单单训练一个Softmax单元,而是考虑训练中等大小的网络(后面的层)。
最后,极端情况下,如果你有大量数据,你应该做的就是用开源的网络和它的权重,把整个的当作初始化,然后训练整个网络(当然要改Softmax单元)。

在这里插入图片描述

吴恩达老师:在所有不同的学科中,在所有深度学习不同的应用中,我认为计算机视觉一个你经常用到迁移学习的领域。除非你有非常非常极其大的数据集和非常大的计算量预算,来从头训练你的网络。

数据增强data augmentation

大部分计算机视觉任务会使用很多的数据,所以数据增强是经常使用的一种技巧,来提高计算机视觉系统的表现。

在当下,计算机视觉的主要问题是没有办法得到充足的数据。

这也就意味着,当训练计算机视觉模型的时候,数据增强data augmentation通常会有所帮助。

垂直镜像对称

或许最简单的数据增强方法就是垂直镜像对称。
在这里插入图片描述

随机裁剪

在这里插入图片描述
随即裁剪并不是一个完美的数据增强方法,但在实践中这个方法还是很实用的。随机裁剪构成了很大一部分的真实图片。

其他的数据增强方法

在这里插入图片描述

  • 旋转
  • shearing
  • 局部弯曲

这3个方法尽管可行,但由于太复杂导致在实际中用的很少。

色彩转换 Color shifting

为通道加上不同的失真值。
在这里插入图片描述
这么做的理由是,光线的不同确实可以改变图片的基底色,但标签y还是保持不变的。

色彩转换的好处是:可以使学习算法对照片的颜色变化更鲁棒

训练时实现图片扭曲

在这里插入图片描述
这个地方涉及CPU线程的问题,没有听太懂。
但是主要意思是,可以让图片扭曲和训练同时进行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值