假定,你曾经搜集了一个数据集,树立了一个神经网络,并训练了您的模型。
但是,虽然你投入了数小时(有时是数天)的任务来创立这个模型,它还是能失掉50-70%的准确率。这一定不是你所希冀的。
下面是一些提高模型功用目的的策略或技巧,可以大大提升你的准确率。
失掉更多的数据这无疑是最复杂的处置办法,深度学习模型的弱小水平取决于你带来的数据。添加验证准确性的最复杂办法之一是添加更少数据。假设您没有很多训练实例,这将特别有用。
假设您正在处置图像辨认模型,您可以思索经过运用数据增强来添加可用数据集的多样性。这些技术包括从将图像翻转到轴上、添加噪声到缩小图像。假设您是一个弱小的机器学习工程师,您还可以尝试运用GANs停止数据扩大。
请留意,您运用的增强技术会更改图像的整个类。例如,在y轴上翻转的图像没有意义!
添加更多的层向模型中添加更多层可以增强它更深化地学习数据集特性的才能,因此它将可以辨认出作为人类能够没有留意到的纤细差异。
这个技巧图处置的义务的性质。
关于复杂的义务,比如区分猫和狗的种类,添加更多的层次是有意义的,由于您的模型将可以学习区分狮子狗和西施犬的巧妙特征。
关于复杂的义务,比如对猫和狗停止分类,一个只要很少层的复杂模型就可以了。
更多的层->更巧妙的模型
更改图像大小当您对图像停止预处置以停止训练和评价时,需求做很多关于图像大小的实验。
假设您选择的图像尺寸太小,您的模型将无法辨认有助于图像辨认的清楚特征。
相反,假设您的图像太大,则会添加计算机所需的计算资源,并且/或许您的模型能够不够复杂,无法处置它们。
常见的图像大小包括64x64、128x128、28x28 (MNIST)和224x224 (vgg -16)。
请记住,大少数预处置算法不思索图像的高宽比,因此较小尺寸的图像能够会在某个轴上收缩。
从一个大分辨率的图像到一个小尺寸的图像,比如28x28,通常会招致少量的像素化,这往往会对你的模型的功用产生负面影响
添加训练轮次epoch基本上就是你将整个数据集经过神经网络传递的次数。以+25、+100的距离逐渐训练您的模型。
只要当您的数据集中有很少数据时,才有必要添加epoch。但是,你的模型最终将抵达一个点,即添加的epoch将不能提高精度。
此时,您应该思索调整模型的学习速度。这个小超参数决议了你的模型是到达全局最小值(神经网络的最终目的)还是堕入部分最小值。
全局最小是神经网络的最终目的。
增加颜色通道颜色通道反映图像数组的维数。大少数彩色(RGB)图像由三个彩色通道组成,而灰度图像只要一个通道。
颜色通道越复杂,数据集就越复杂,训练模型所需的时间也就越长。
假设颜色在你的模型中不是那么重要的要素,你可以继续将你的彩色图像转换为灰度。
你甚至可以思索其他颜色空间,比如HSV和Lab。
RGB图像由三种颜色通道组成:红、绿、蓝
转移学习迁移学习包括运用预先训练过的模型,如YOLO和ResNet,作为大少数计算机视觉和自然言语处置义务的终点。
预训练的模型是最先进的深度学习模型,它们在数百万个样本上接受训练,通常需求数月时间。这些模型在检测不同图像的纤细差别方面有着惊人的庞大才能。
这些模型可以用作您的模型的基础。大少数模型都很好,所以您不需求添加卷积和池化
迁移学习可以大大提高你的模型的准确性~50%到90%!(来自英伟达的论文)
超参数下面的技巧为你提供了一个优化模型的基础。要真正地调整模型,您需求思索调整模型中触及的各种超参数和函数,如学习率(如上所述)、激活函数、损失函数、甚至批大小等都是十分重要的需求调整的参数。
总结这些技巧是希望大家在不知道如何去做的时分可以快速的找到提高的思绪。
还有有数其他办法可以进一步优化你的深度学习,但是下面描画的这些办法只是深度学习优化部分的基础。
另外C拦畚改动深度学习模型时都要保存模型。这将协助您重用先前的模型配置,假设它提供了更大的准确性。
【编辑引荐】
Java开发中Websocket的技术选型参考
为什么阿里巴巴Java开发手册中强迫要求超大整数制止运用Long类型前往?
写代码、搜成绩,全部都在终端完成!如此编程神器,是时分入手了
Mozilla 方案向扩展顺序开发者提供收费推行效劳
泪奔:作死尝试两天Angular+Sequelize的开发
(责任编辑:admin)