最小二乘法
在阅读西瓜书时,一开始很疑惑为什么可以用最小二乘法去求解线性模型的最优参数解,后来通过学习Andrew Y. Ng的机器学习课程终于明白了最小二乘法求参的缘由,并分享给大家我的理解。
由于涉及数学理论的知识,总离不开大量的公式。为了不过于枯燥,我尽量让本文显得通俗易懂些。但其实更希望朋友们能静下心来,细细推导每一个公式的由来,欣赏其中的数学之美。
背景概述
我们知道在机器学习中有这样一类模型,它叫做线性模型,它的主要表现形式如下所示:
f ( x i ) = θ T x i + b ( 1 ) f(x^i)=\theta^T x^i+ b \qquad(1) f(xi)=θTxi+b(1)
这里简单介绍一下每个符号的意思:
-
x i x^i xi 表示第 i i i 个样本,需要注意的是 x i x^i xi 并不是一个实数,而是一个拥有 n n n 个属性的列向量,用公式直观地表示为: ( x i ) T = { x 1 i , x 2 i , . . . , x n i } {(x^i)}^T = \{x_1^i, x_2^i,...,x_n^i\} (xi)T={ x1i,x2i,...,xni} ,其中 x 1 i x_1^i x1i 则代表第 i i i 个样本的第1个属性,依次类推。
-
θ T = { θ 1 , θ 2 , . . . , θ n } \theta^T = \{ \theta_1, \theta_2,...,\theta_n\} θT={ θ1,θ2,...,θn} 可以看到 θ \theta θ 同样是一个 n n n 行列向量,其中每一行的值,如 θ 1 \theta_1 θ1 就代表着第一个属性在这个线性分类器的权重。可以发现 θ T x i = θ 1 x 1 i + θ 2 x 2 i + . . . + θ n x n i \theta^T x^i = \theta_1 x_1^i + \theta_2 x_2^i +...+\theta_n x_n^i θTxi=θ1x1i+θ2x2i+...+θnxni 相当于每个属性和其对应的权重相乘,也就是线性模型称号的由来。
-
b b b 很好理解,类似于一元函数 y = a x + b y = ax + b y=ax+b 中的 b b b,就是线性模型的一个偏移量。
-
f ( x i ) f(x^i) f(xi) 就是我们的线性回归函数,对于输入的一个样本 x i x^i xi ,线性回归函数都会对应地给予一个预测值,即 f ( x i ) f(x^i) f(xi) 。
所以求解线性模型的关键就在于求得 θ \theta θ 和 b b b ,为了求解方便,我们适当对之前的公式进行一些调整:
-
令 θ T = { θ 1 , θ 2 , . . . , θ n , b } \theta^T = \{\theta_1, \theta_2,...,\theta_n, b\} θT={ θ1,θ2,...,θn,b} ,即在原先 θ \theta θ 的基础上在加一行,并且使得该行值等于 b b b , θ ∈ R n + 1 \theta \in \Bbb R^{n + 1} θ∈Rn+1 。
-
令 ( x i ) T = { x 1 i , x 2 i , . . . , x n i , 1 } {(x^i)}^T = \{x_1^i, x_2^i, ... , x_n^i, 1\} (xi)T={ x1i,x2i,...,xni,1} , 即 x i ∈ R n + 1 x^i \in \Bbb R^{n+1} xi∈