[吴恩达Coursea机器学习] 笔记006 代价函数(1):用什么函数计算代价
模型假设函数
问:假设函数中参数\(\theta\)起什么作用 ?
答:参数θ的改变,得到不同的直线
先看几个例子
例-:$h_\theta(x) = 1.5 + 0*x $
例二:$h_\theta(x) = 0.5*x $
例三:$h_\theta(x) = 1 + 0.5 * x $
问:如何选择参数\(\theta\)才能使直线更好的拟合数据集?下图中蓝色的直线明显更好些
答:一个想法是,选择参数\(\theta\),使我们的预测值\(h_\theta(x)\)与样本值y尽可能的接近。
问:尽可能的接近怎么表示?
答:平方误差 \((h_\theta(x) - y)^2\),预测值与真实值差的平方
正式定义:
目标:得到最小化的参数\(\theta\),即 \(\mathop{minimize}\limits_{\theta_0,\theta_1}\)
对于一个样本:\((h_\theta(x^{(i)}) - y^{(i)})^2\),这一项尽可能的小
对所有样本,求平方差和:\(\sum\limits_{i=1}^m (h_\theta(x^{(i)}) - y^{(i)})^2\)
最终得到:$\mathop{minimize}\limits_{\theta_0,\theta_1} \sum\limits_{i=1}^m (h_\theta(x^{(i)}) - y{(i)})2 $
做一下数学上的处理,方便计算,变形如下(对求\(\theta\)没有影响):
\[\mathop{minimize}\limits_{\theta_0,\theta_1} \sum\limits_{i=1}^m \frac{1}{2m} (h_\theta(x^{(i)}) - y^{(i)})^2
\]
1/2主要是为了求导,除以m,求的是平均误差
更正式的,我们定义代价函数\(J(\theta)\):
选择不同的参数\(\theta\),得到不同的直线组合,这个函数也称作平方误差函数,或者均方误差函数
问:\(J(\theta)\)的最小值是多少?\(J(\theta)\)的取值范围是多少?
答:0,也就是存在一条直线,所有的数据点都在这条直线上;取值范围大于等于0
问:还有其他的代价函数吗?
答:有,但是平方误差函数是解决回归问题最常用的手段。