接着上一节的内容继续写。
对于y = f(x) = x^2 + 2 * x + 1这个方程,我们用代码重复计算1000次之后发现x 与-1非常接近,这时y = 0。这个结果与我们的预期非常接近。那么我们怎么判断我们的结论的好坏 (不是正确或错误) 呢?我们可以用我们的预测结果与真实结果之间差距进行衡量,简单来说就是定义一个损失函数:loss function。为什么叫损失函数呢?原因就是预测值与真实值之间多多少少会一定的差距,如果我们把这个预测值作为我们的结果,这就是误差,或者称之为“损失值”。
神经网络很少用来计算一个已知的函数的最小值 (上一节的例子),它一般用来模拟一个 (复杂) 函数。这一节中将例举2个例子:线性回归和逻辑回归。
言归正传,我们常用的损失函数种类不多,大体分为两类:
第一类:均方差损失函数 (MSE),这个损失函数主要用在线性回归上。
例如在y = 2x + 5的直线周围有随机生成的100个点。我们现在要拟合这条直线。这时我们就希望这100个点到y = w * x + b这条直线的距离和最短,或者在此基础上简化一下:任意一个点(x0, y0)中 y0与y1 = w * x0 + b的距离和最小:
达到最小值。但是(y0 - y1)有可能是正数,也可能是负数,为了去除正负带来的影响,我们就采用均方差:MSE =