判定标准是可以改变的

最近发现有些读者通过将我的教程进行二次出售来获取暴利,我在此对其表示强烈的谴责

总目录(请点击总目录从前言看起获取整套教程,否则你可能会看不懂本篇文章)

我们已经知道,通过验证集、测试集、成本函数、优化指标、满足指标等等,可以判断出哪个网络更优秀。但有时候这些判定标准与实际环境并不相符。也就是说,判定标准觉得网络A更好,但在实际环境中的应用结果却表明网络B更好。这种情况下,我们就必须要想办法改变那些判定标准,使他们与实际环境相符合。下面我举一些例子来帮助大家理解上面的描述。

假设我们要构建一个人工智能程序来从图库中识别美女。我们有两个网络,网络a和网络b。经过迭代训练后,我们的判定标准指明网络a更优秀,例如网络a的准确率为97%,网络b的准确率只有95%。但是当我们把两个网络发布出去,应用在实际环境中后,发现网络a把很多裸照也识别成了美女(网络b这种情况却不多)。当然,裸照也是美女,但是对于大公司来说,他们必须要扫黄。例如你在百度图片中搜索美女,你现在是看不到裸照的,之前是可以看到的,后来政府要求扫黄,所以把那些裸照都屏蔽了。那么对于这个实际环境来说,网络b就是更优秀的了,因为它没有把裸照识别成美女。既然判定标准已经与实际环境不符了,那么我们就应该改变判定标准。具体该怎么改,要根据实际情况而定。例如在本例中,我们可以尝试将那些裸照标注出来,然后相应的更改成本函数,增加裸照的成本,就也就是说,当神经网络错误地将裸照预测成美女时,会使成本大幅上涨。这样一来,如果神经网络将很多的裸照预测成美女,那么这个网络的整体成本就会很高。在这新的判定标准下,本例中的网络a就会比网络b要差,与实际环境正好相符。

再给大家举一个替换验证集测试集的例子。假设我们要开发一个程序来分析一个AV里面有百分之多少是进入正题的部分。有些AV一开始就进入正题,有些AV是有很多前奏和剧情的。一般来说欧美的都是赤裸裸的开门进山,从他们的广告语就可以体现出来——just do it——直接干就得了;而亚洲的一般伴随着很多的剧情,而且还要半推半就老长时间,然后再进入正题。在这个项目中,你的验证集和测试集里面使用的都是正版的高清AV。经过长时间的训练之后,判定标准指明程序已经非常优秀了,但是把程序发布出去后,用户反馈程序分析的一点都不准。因为用户一般都是用手机看一些非高清的盗版的小AV。程序对高清的识别率很高,但是对于这种非高清的识别率却很差。这时就是判定标准与实际应用环境不符。那么我们改变判定标准。本例中我们可以往验证集和测试集中添加更多的非高清的AV。

一开始就想找到一个完美的判定标准是很难的。有些团队会进入到另一个误区,因为他们怕判定标准不准确,所以在开始项目之前,花很多时间去研究制定判定标准。这并不是我推荐的。因为最开始大家对一个新项目都不了解,即使你们花了很多时间去制定判定标准,也依然有可能得不到完美的标准。所以我的建议是,先建立一套判定标准,用这套标准快速的迭代训练神经网络,途中如果发现判定标准与实际应用环境不符,那么就想办法调整判定标准。人生也是一样的,我们对于未来并不了解,我们无法定出完美的人生计划和目标。我们只能先定出一个计划和目标,然后快速的朝着它前进,中途不断摸索和试错,然后不断的调整和优化计划和目标。不要准备太多,因为世事难料,干就得了(just do it),见招拆招,随机应变。

猜你喜欢

转载自blog.csdn.net/jiangjunshow/article/details/87904573