首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

“loss值”指导你的人工智能不那么“智障”的关键指标

同样的算法,同样的数据,为什么别人的神经网络叫人工智能,而你的只能叫“人工智障”?其实神经网络的训练过程充满了不确定性。现在的神经网络虽然是经过数学严格推导出来的,但其实践过程还是有一些类似老中医看病的地方:很多非常有用的“黑科技”都是排列组合试出来的。

训练神经网络往往是一个很漫长的过程。一方面,训练一个网络需要海量的训练数据,比如ImageNet数据集有1500多万张图片,训练用的ISLVRC 2012数据集也包含125万个样本。另一方面,神经网络需要调节的参数规模非常庞大。例如,经典的图片识别模型VGG-16一共有1.38亿个参数需要调节,可以想象,每次迭代需要的计算量和参数更新复杂度有多大。

在这个漫长的过程中,程序员一般会阶段性地评估当前模型的水平。其中一个最重要的指标就是损失函数的值,也叫Loss值。我们知道,训练神经网络就是让Loss值不断变小的过程。如果输出的Loss值在变大,则说明模型算法或者数据是错的,需要调一下Bug。如果Loss值在下降,但是降得很慢,就说明调节的参数不对,需要把模型调得更激进一点,参数更新的步子迈得大一点儿。只要Loss值一直在下降,就说明我们的训练大方向是对的。

那模型的性能到底如何呢?我们之前讲过,在训练开始时,我们会把数据划分为训练集、验证集和测试集。在训练的过程中,我们会不断用验证集来验证我们的模型准确性(或其他性能指标)。

这样我们就可以画出一条曲线,横坐标是训练的次数,纵坐标是准确度。可以看出,正常情况下,随着训练次数的增加,验证集的准确度一直在提升。那么,测试集的情况怎么样呢?我们也可以每隔一段时间测试一下测试集的准确度。正常的话,这条曲线也在不断提升,并且按道理来说,因为验证集的数据更接近训练集,所以它的准确率应该一直比测试集高。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200325A0CAUS00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券