学习了机器学习,以及tensorflow,想将这个重点思想回顾,复习——基于吴恩达的机器学习。
代价函数
代价函数(Cost Function )是定义在整个训练集上的,是所有样本误差的平均,也就是损失函数的平均。
例如,在上述例子中,有6个数据,我们简称数据集,我们应该如何找到一个合适的函数来拟合这6个数据呢?
即h=kx+b,我们应该怎么找到表示k和b最合适的数据,使得训练集中的数据更加准确?
即,在我们训练集中,使得预测值h与实际值y,之间的差异最小,即h-y最小,此时数据最拟合。
所以,如下所示的公式最小:
m
∑(h(x(i))-y(i))²
i=1
所以,上述式子为:m(样本个数)个h-y的平方的和。我们应该尽量让这个值小。
所以上述例子即为最小二乘法:
——————m
min=1/2m * ∑(h(x(i))-y(i))²
——————i=1
所以代价函数为:
——————m
J(k,b)=1/2m * ∑(h(x(i))-y(i))²
——————i=1
这个就是代价函数的最基本的理解,平方误差函数(萌新理解法),下面为代价函数常规写法:
例如:
可以看出,我们这个3个数据中,产生的函数为y=θ1 *x
那么损失函数为
——————m
J(θ1)=1/2m * ∑(y(x(i))-y(i))²
——————i=1
J(θ1)=(1-1)²+(2-2)²+(3-3)²=0
所以损失函数的值为0,即拟合此数据
上述中θ1=0.5,那么损失函数J(θ1)=0.68,同理θ1=0时,那么损失函数J(θ1)=2.3…等等,所以,最后损失函数的图像为:
他有一个最佳点。θ1=1,所以如果数据变多,如下时:
我们h=kx+b时,k和b如何求最佳值呢?
上述图中h(x)=θ1x+θ0,我们如何求出最佳值?,此时他不是一个简单的图形了,它显示如下:
一个立体三维的图形,但是我们依旧能够找到他的最佳值,我们将其变成二维:
如图,红点数据,即为h(x)的图像,在图中,越靠近中间,他的图像越拟合。
上述即为代价函数的理解。
如有错误可以联系我:626529441,一起交流学习,谢谢。