先举两个简单的例子,看上面的图片。
线性回归主要功能是拟合数据。
逻辑回归主要功能是区分数据,找到决策边界。
线性回归的代价函数常用平方误差函数。
逻辑回归的代价函数常用交叉熵。
参数优化的方法都是常用梯度下降。
1 线性回归(Linear Regression)
1.1 建立问题
举个例子,你有一组面积&房价的数据。
现在你有个朋友想要卖房子,他的房子是1250平方英尺,大概能卖多少钱?
我们可以根据这组数据,建立一个模型,然后用这组数据集去拟合模型。拟合完毕后,输入1250,它就会告诉你朋友能卖多少钱。
看起来这组数据似乎分布在一条直线附近:
好,只要找到这条直线的方程,你就能根据面积来预测房价了。(在这个例子里,直线方程就是我们要拟合的模型)
如何找到直线方程?方法就是,线性回归。
补充讲一下,这是一个属于监督学习(Supervised Learning)的问题:每个例子都有一个 “正确答案”,我们知道每一个面积对对应一个确定的房价。
而且这还是一个回归问题(Regression Problem)。回归问题指的是,我们预测一个具体的数值输出,也就是房价。
另外再讲一下,监督学习中还有一种被称为分类问题(Classification Problem),我们用它来预测离散值输出。比如观察肿瘤的大小,来判断是良性还是恶性的,输出只有2种:[0]良性,[1]恶性。
然后,这是你的数据集:
1.2 建立模型
现在有一个假设函数 h h h,它的英文名叫 hypothesis。至于为什么叫 hypothesis,这是一个历史问题,反正机器学习里面都这样叫的。
我们要做的是,通过训练集+机器学习算法,学习到这个函数,即 y = h ( x ) y=h(x) y=h(x)。并且输入和输出的值满足上面的数据集表格。
函数 h h h 应该长什么样子?在这个例子里它是这样的: h θ ( x ) = θ 0 + θ 1 x (1) h_{\bm{\theta}}(x)=\theta_0 + \theta_1 x \tag{1} hθ(x)=θ0+θ1x(1)下标 θ \bm{\theta} θ 的意思是,函数 h h h 的参数是 θ \bm{\theta} θ(在这个例子里 θ \bm{\theta} θ 包括 θ 0 \theta_0 θ0 和 θ 1 \theta_1 θ1,是两个常数)。
显而易见它是一个直线方程:
有时候 θ \bm{\theta} θ 不止 2 个,例如 h θ ( x ) = θ 0 + θ 1 x + θ 2 x 2 + θ 3 x 3 . . . h_{\bm{\theta}}(x)=\theta_0 + \theta_1 x + \theta_2 x^2 + \theta_3 x^3 ... hθ(x)=θ0+θ1x+θ2x2+θ3x3... 但是在这个例子里不需要这么复杂的函数。
它是一条简单的直线,不包含非线性项( x x x的平方、 x x x的三次方之类的)。(所以也叫线性回归?)
而且只有一个输入变量 x x x,又叫做单变量线性回归。
现在数据也有了,模型也有了,我们要做的事情就是利用已知数据找到这两个参数: θ 0 \theta_0 θ0 和 θ 1 \theta_1 θ1。
1.3 代价函数
我们知道,选择不同的 θ 0 \theta_0 θ0 和 θ 1 \theta_1 θ1 的组合,会得到不同的直线:
这几条直线都不是我们想要的,我们要找的直线应该像这样:
假设每个数据点到直线的距离为 d i d_i di,把所有距离加起来: ∑ d i \sum d_i ∑di 。
调整直线,重新计算 ∑ d i \sum d_i ∑di,当直线处于某个位置时,算到的 ∑ d i \sum d_i ∑di 最小,这条直线就对了。
假设有 i i i 个样本,每个样本用 ( x i , y i ) (x^i,y^i) (xi,yi) 表示。则: d i = ( h θ ( x i ) − y i ) 2 d_i = \left( \; h_{\bm{\theta}}\left(x^i\right)- y^i \;\right)^2 di=(hθ(xi)−yi)2
之所以取平方,是因为我们要的距离应该是正数,而直接相减可能有正有负。
(取绝对值也可以,不过取平方方便后面计算。)
(这看起来很像最小二乘法)
把所有样本加起来: ∑ i = 1 m d i = ∑ i = 1 m ( h θ ( x i ) − y i ) 2 \sum^{m}_{i=1} d_i= \sum^{m}_{i=1} \left( \; h_{\bm{\theta}}\left(x^i\right)- y^i \;\right)^2 i=1∑mdi=i=1∑m(hθ(xi)−yi)2其中 m m m 表示我们有 m m m 个样本。
所以我们的任务是:找到一组合适的 θ 0 \theta_0 θ0 和 θ 1 \theta_1 θ1 ,使上面求和的结果最小。
再改变一下写法: J ( θ 0 , θ 1 ) = 1 2 m ∑ i = 1 m ( h θ ( x i ) − y i ) 2 (2) \color{red}{J(\theta_0, \theta_1)=\frac{1}{2m} \sum^{m}_{i=1} \left( \; h_{\bm{\theta}}\left(x^i\right)- y^i \;\right)^2 }\tag{2} J(θ0,θ1)=2m1i=1∑m(hθ(xi)−yi)2(2)
意思也是一样,要找一组 θ 0 \theta_0 θ0 和 θ 1 \theta_1 θ