代价函数
模型函数
模型函数是用已知的信息去推算想要预测的信息的一个函数。
假设我们想用房子占地面积预测房价,则可以假设$h_\theta(x) = \theta_0+\theta_1x$,其中$\theta_0$和$\theta_1$都是参数,也是我们后续想要调整的东西。
什么是代价函数
代价函数,也称为损失函数,是用于调整参数的一个重要指标,假设预测值是100,但收集到的数值是150,则我们的预测有了50的偏差,代价函数就是用于衡量这些偏差的函数,我们可以通过取代价函数的全局最小值来使我们的模型拥有最小的误差。
最小二乘法
$$
\Large J(\theta)=\frac{1}{2}\sum_{i=0}^m(h_\theta(x_i)-y_i)^2
$$
想要比较两个模型之间的差,很自然的我们会想到把每一个点上的预测值$h_\theta(x)$和实际值$y$之间的差相加,取两者的差有可能出现负数,因此我们有两个方案:取绝对值和平方,由于绝对值函数是不好求导的,因此我们选择平方。
那为什么要有1/2呢?其实本质上没有区别,只是因为加上后求导后会不带常数,看着舒服罢了。
极大似然估计法
极大似然估计法是在最小二乘法的基础上进行改进的一种方法,在最小二乘法中,我们定义$h_\theta(x)$是一个多项式函数,但在极大似然估计法中,我们定义
$$
\Large h_\theta(x)=\frac{1}{1+e^{-\theta^Tx}}
$$
在这个基础上用最小二乘法的公式代入,我们不难发现这个代价函数不是一个凸函数,也就是说这个函数会有许多个局部最小值,如此一来找到全局最小值就是一个相当艰巨的任务,因此我们可以定义
$$
\begin{gather}
\large Cost(h_\theta(x), y)=
\begin{cases}
-log(1-h_\theta(x))\quad y=0\
-log(h_\theta(x))\quad y=1
\end{cases}\\
\large J(\theta)=\frac{1}{2}\sum_{i=0}^mCost(h_\theta(x_i), y_i)
\end{gather}
$$