课程链接:
https://www.coursera.org/learn/machine-learning/home/week/1
今天学习1个重要概念,代价函数(Cost Function)。
之前学习了线性回归(Linear Regression)。在单变量的情况下,可以通过房屋的面积,预测房子的价格。把房屋面积看作x,房子价格看作y,建立函数关系即可。下图表示了监督式学习中的一般性解决问题的流程:
Training set指的是一系列已知的房屋面积和房价的数据,通过Learning algorithm,建立合适的算法模型(model),就可以预测房价。这里仅涉及了房屋面积这一因变量。
实际应用中,模型建立得好不好,主要看预测是否准确。准确度,是要用数学来衡量的。概率统计中学过方差(variance)。方差可用于评价2组平均值相等的数据的优劣,方差越小,表示数据的波动小,数据更好。
代价函数
机器学习中有类似于方差的概念,即代价函数(Cost Function)。代价函数形式,与方差表达式,极为接近。
如果学习过方差,这个方程不难理解。这里的hθ(xi)即为构建的算法模型。
hθ(xi)=θ0 + θ1*xi;
如之前学习的房价例子,这里的xi是某一组数据房屋面积,yi为对应的房屋面积,而hθ(xi)是算法模型中的预测值。这里的算法模型是线性的,因此θ0和θ1也就比较好理解。
有了代价函数J(θ0, θ1),不同的研究者对同一问题提出的算法模型就可以进行PK了,J越小,表示算法模型越精确。
下面来看,如何求J。为了简化问题,可以令θ0=0。
图的右边的版本即为简化后的代价函数。
先举一个理想化的例子,即所有的预测值和实际值相等。
如果例子都这么愉快,建模就毫无必要性啦。下面来看一个有偏差的例子。
该例中的4个数据,一个都不准(这种算法程序员是要被炒的),求得的J也就比较大。
如果有多组数据集,可以得到不同的J(θ1),可以PK一下,J最小的胜出。
图中的J(θ1)有最小值,在θ1=1处是取得。