4个可提高深度学习模型的性能的小技巧

概述

深度学习是一个广阔的领域,但我们大多数人在构建模型时都面临着一些共同的挑战
在这里,我们讨论4个这样的挑战和技巧,以提高您的深度学习模型的性能
这是一篇以代码为中心的实践文章,因此准备好 Python IDE 并改进您的深度学习模型!

介绍

在过去的两年里,我大部分时间都只在深度学习领域工作。这是一个相当的经验 - 工作在多个项目,包括图像和视频数据相关的项目。

在那之前,我一直徘徊在深度学习概念的边缘,如物体检测和人脸识别一直到2017年末才深入探讨。在这段时间里,我遇到了各种各样的挑战。我想谈谈最深入的学习实践者和爱好者在旅途中面对的四个非常常见的一个。

file

如果你以前在一个深度学习项目中工作过,你将会与我们后面所提到的困难产生共鸣。好消息是,克服这些困难并不像你想象的那么困难!
在本文中,我们将采取非常实际的方法。首先,我们将确定我上面提到的四个共同挑战。然后,我们将直接深入到Python代码中,学习关键的技巧和技巧来应对和克服这些挑战。这里有很多东西要拆,让我们开始吧!

目录

  • 深度学习模式的共同挑战
  • 车辆分类案例研究概述
  • 了解每一个挑战以及如何克服这些挑战以提高深度学习模型的性能
  • 案例研究:改进我们的车辆分类模型的性能

深度学习模式的共同挑战

深度学习模型通常在大多数类型的数据上都有很好的表现。尤其是在图像数据方面,深度学习模型,特别是卷积神经网络(CNNs)的性能几乎优于所有其他模型。

这种方法很有效,但也有CNN或其他深度学习模型无法执行的情况。我遇到过好几次,数据很好,模型的架构也没有问题,损失函数和优化器也设置好了,但是模型一直没有达到我的预期。

这是我们大多数人在使用深度学习模式时面临的共同挑战:

  • 可用于培训的数据不足(Paucity of Data available for training)
  • 过度拟合(Overfitting)
  • 欠拟合(Underfitting)
  • 高训练时间(High training time)
深度学习挑战1:可用于培训我们模型的数据不足

深度学习模型通常需要大量的数据进行训练。一般来说,数据越多,模型的性能就越好。缺乏数据的问题是,我们的深度学习模型可能无法从数据中学习模式或函数,因此它可能无法在看不见的数据上提供良好的性能。
如果你看看车辆分类的案例研究,我们只有大约1650幅图像,因此模型无法在验证集上很好地执行。在使用计算机视觉和深度学习模型时,数据较少的挑战非常普遍。
正如您所想象的,手动收集数据是一项繁琐且耗时的任务。因此,我们可以使用数据增强技术,而不是花费数天时间来收集数据。

对于图像数据有多种数据增强技术,您可以参考这篇文章。 常用的增强技术有旋转、剪切、翻转等。
这是一个非常广泛的话题,这篇文章中介绍了这些技术及其在PyTorch中的实现。

深度学习挑战2:模型过度拟合

我相信你以前听说过过拟合。这是有抱负的数据科学家在刚接触机器学习时所面临的最常见的挑战(和错误)之一。但这个问题实际上超越了领域——它也适用于深度学习。
例如,假设我们有一个培训和一个验证集。我们利用训练数据对模型进行训练,并在训练集和验证集上检查其性能(评估指标是准确性)。训练准确率为95%,验证准确率为62%。听起来很熟悉?
由于验证精度远低于训练精度,我们可以推断该模型是过度拟合的。下图将使您更好地了解什么是过度拟合:


file

由于训练误差很小,测试误差很大,所以上图中蓝色部分为过拟合模型。过度拟合的原因是该模型从训练数据中学习不必要的信息,因此在训练集上表现得非常好。
但当引入新数据时,它就无法执行。我们可以在模型的体系结构中引入dropout来解决这个过拟合的问题。
使用dropout,我们需要关闭神经网络中的一些神经元。假设我们在一个原本有20个神经元的层上加上一个0.5的脱落。因此,这20个神经元中的10个将被移除,我们最终得到一个不那么复杂的结构。
因此,模型不会学习复杂的模式,我们可以避免过度拟合。如果你想了解更多关于辍学的信息,请阅读本文

深度学习挑战3:模型拟合不足

深度学习模式也可能会欠拟合,尽管听起来不太可能。
欠拟合是指模型不能从训练数据中学习模式,因而训练集的性能较低。
这可能是由于多个原因造成的,例如没有足够的数据进行训练,架构过于简单,模型的训练周期较少等。
为了克服欠拟合,您可以尝试以下解决方案:

  • 增加训练数据
  • 做一个复杂的模型
  • 增加训练时间

因此对于我们来说欠拟合并不是一个大问题,因此我们将前进到下一个方法来改善一个深度学习模型的性能。

深度学习挑战4:训练时间太长

有时你可能会发现你的神经网络需要很长时间才能收敛。这背后的主要原因是神经网络各层输入分布的变化。
在训练过程中,神经网络各层的权重都发生了变化,从而激活函数也发生了变化。现在,这些激活函数是下一层的输入,因此分布随每个连续迭代而变化。由于分布的这种变化,每一层都必须适应变化的输入——这就是为什么训练时间增加的原因。

为了解决这个问题,我们可以应用批标准化(batch normalization),其中我们规范化隐藏层的激活函数,并尝试使其分布相同。您可以在参考这篇文中有关批处理规范化的更多信息。

尾注

在本文中,我们研究了使用CNNs等深度学习模型时可能面临的不同挑战。我们还学习了所有这些挑战的解决方案。以下是一些你可以尝试的东西:

  • 调整 dropout 率
  • 增加或减少卷积层数
  • 增加或减少密集层的数量
  • 调整隐藏层中的神经元数量等。

欢迎关注【数据小盐罐儿】一个很“咸”的数据科学公众号,不定期分享有趣好玩的项目以及大量的学习资源

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,937评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,503评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,712评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,668评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,677评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,601评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,975评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,637评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,881评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,621评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,710评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,387评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,971评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,947评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,189评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,805评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,449评论 2 342

推荐阅读更多精彩内容