人工智能教程 - 1.2.3 神经网络如何判断自己预测得是否准确

朋友们,如需转载请标明出处:http://blog.csdn.net/jiangjunshow

总目录(新手请点击总目录从序言看起,否则你可能看不懂本篇文章)

在上一篇文章中,大家学习到了神经网络可以通过逻辑回归之类的算法来对输入进行预测。那么神经网络自己如何判断预测结果是否准确呢?这一步是非常重要的,因为只有知道自己预测结果是否准确,才能够对自身进行调整,好让结果越来越准确,这就是学习的过程。 我们人类学习也应该遵循这个道理,如果一个人一直不停的学,但是不验证自己的学习成果,那么有可能学的方向或学习方法都是错的,不停地学但是结果却都白学了。
这里写图片描述
所以要验证学习成果,要判断预测结果是否准确,本篇文章介绍的损失函数(loss function)就是干这事的。
这里写图片描述

我们先回顾一下上一篇文章中学到的预测算法,如上图。ŷ是预测的结果。上面的i角标指代某一个训练样本(本系列教程都会这样来指代某一个训练样本),例如,ŷ(i) 是对于训练样本x(i)的预测结果。

这里写图片描述

现在,让我们看看可以用什么损失函数来衡量我们的预测算法做得怎么样——预测的精准度高不高,损失函数运算后得出的结果越大,那么预测就与实际结果的偏差越大,即预测精度越不高。理论上你可以用上面的公式作为损失函数——预测结果ŷ与实际结果y的平方差再乘以二分之一。但是在实践中人们通常不会用它,具体为什么,后面的文章再给大家讲解,现在讲了你们也理解不了。 实践中我们使用的损失函数的公式如下。

这里写图片描述

前面的平方差公式比较直接,就是ŷ越接近y,那么运算得出的结果就越小,那么就说明预测越准确,即损失越小。努力使损失函数的值越小就是努力让预测的结果越准确。其实这个新的损失函数的作用是一样的。具体数学上面的细节我就不讲解了,因为文章的目的是让大家明白人工智能的原理,学会如何实现人工智能。实现一个原理的具体数学公式是很多的,就像做菜,你明白了它的基本原理后,你可以用各种手段把菜做出来,你可以按照网上的教程做,你也可以自己创造新的做法。对于一些数学当前不好的同学,完全不用怕,因为这些算法都是公开的,而且都有现成的代码可以直接用。后面会给大家展示。

上面对单个训练样本我们定义了损失函数。下面的公式用于衡量预测算法对整个训练集的预测精度。其实就是对每个样本的“损失”进行累加,然后求平均值。这种针对于整个训练集的损失函数我们称它为成本函数(cost function)。它的计算结果越大,说明成本越大,即预测越不准确。

这里写图片描述

新的文章将改为在公众号上发布,请大家加我的微信,之后会用微信向大家公布测试题答案和一些通知,以及统一回答大家遇到的常见问题,有项目也可以招集大家一起做。加我时请注明“人工智能”。
这里写图片描述

猜你喜欢

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