从机器学习的角度着手分析。
1、先来个小例子
给定一组data:1,2,3,4,5,?
猜测5后面的数是多少?
想必,我们会猜测是6
具体思路是这样的:
我们假定这组data服从一个规律,
f
f
f,满足
f
(
1
)
=
1
,
f
(
2
)
=
2
,
f
(
3
)
=
3
,
f
(
4
)
=
4
,
f
(
5
)
=
5
f(1)=1,f(2)=2,f(3)=3,f(4)=4,f(5)=5
f(1)=1,f(2)=2,f(3)=3,f(4)=4,f(5)=5
这时,从最简单的角度出发,猜测规律
f
f
f为:
f
(
x
)
=
x
f(x)=x
f(x)=x,从而推断
f
(
6
)
=
6
f(6)=6
f(6)=6。
总结: 以上算是一个特别简单的数据拟合问题,即回归问题。
2、回归问题
给定N组对应关系的符号表示: ( x 1 , y 1 ) , . . . , ( x N , y N ) (x_1,y_1),...,(x_N,y_N) (x1,y1),...,(xN,yN),其中 x i ∈ R n , y i ∈ R x_i\in R^n,y_i\in R xi∈Rn,yi∈R。
x i ∈ R n x_i\in R^n xi∈Rn,表示 x i x_i xi为 n n n维向量。
y i ∈ R y_i\in R yi∈R,表示 y i y_i yi为一个实数。
每一组
(
x
i
,
y
i
)
(x_i,y_i)
(xi,yi)都有
x
i
➡
y
i
x_i➡y_i
xi➡yi的对应关系。
从函数的角度,要想整体描述
x
x
x和
y
y
y的关系,则目标是:
找到这样一个函数
f
f
f,满足:
y
i
≈
f
(
x
i
)
y_i≈f(x_i)
yi≈f(xi),即
(
y
1
⋮
y
N
)
≈
(
f
(
x
1
)
⋮
f
(
x
N
)
)
\left( \begin{matrix} y_1\\ \vdots \\ y_N \end{matrix} \right)≈\left( \begin{matrix} f(x_1)\\ \vdots \\ f(x_N) \end{matrix} \right)
⎝⎜⎛y1⋮yN⎠⎟⎞≈⎝⎜⎛f(x1)⋮f(xN)⎠⎟⎞
显然,这是一个数据拟合,即回归问题。
这时,要让左右两边向量尽可能近。
向量,可以理解为高维空间中的点。
高维空间中点的距离,最简单的定义是2-范数的平方。
范数:某个向量空间中每个向量的长度或大小。
2-范数是常用范数,表达式为: ∣ ∣ x ∣ ∣ 2 = ( x 1 2 + ⋯ + x n 2 ) 1 / 2 ||x||_2=(x_1^2+\cdots+x_n^2)^{1/2} ∣∣x∣∣2=(x12+⋯+xn2)1/2,其中下角标2常省略。
因此,向量之间的距离表示为: ∣ ∣ a − b ∣ ∣ 2 = ∑ i = 1 n ( a i − b i ) 2 ||a-b||^2=\displaystyle\sum_{i=1}^n(a_i-b_i)^2 ∣∣a−b∣∣2=i=1∑n(ai−bi)2,该距离也称为欧氏距离。
左右两边向量的距离 d = ∑ i = 1 n ( y i − f ( x i ) ) 2 d=\displaystyle\sum_{i=1}^n(y_i-f(x_i))^2 d=i=1∑n(yi−f(xi))2,表示对函数 f f f契合度的度量,要使 d d d尽可能小。
找 f f f时,假设 f f f是最简单的线性函数, f ( x ) = a t x + b f(x)=a^tx+b f(x)=atx+b,其中 a ∈ R n , b ∈ R a\in R^n,b\in R a∈Rn,b∈R。
a , b a,b a,b为函数的参数,也称为模型的参数。
a a a默认为是一个列向量, a t a^t at表示 a a a的转置。
eg:
a = ( 1 2 3 ) a=\left( \begin{matrix} 1\\ 2\\ 3 \end{matrix} \right) a=⎝⎛123⎠⎞,则 a t = ( 1 , 2 , 3 ) a^t=(1,2,3) at=(1,2,3)a t x = < a , x > = ∑ i = 1 n a i x i a^tx=<a,x>=\displaystyle\sum_{i=1}^na_ix_i atx=<a,x>=i=1∑naixi, < a , x > <a,x> <a,x>为 a , x a,x a,x的内积。
因此,问题转化为了这样一个优化问题:
m
i
n
i
m
i
z
e
minimize
minimize
d
d
d,求参数
a
,
b
a,b
a,b
即
m
i
n
i
m
i
z
e
(
a
,
b
)
\underset{(a,b)}{minimize}
(a,b)minimize
∑
i
=
1
n
(
y
i
−
a
t
x
i
−
b
)
2
\displaystyle\sum_{i=1}^n(y_i-a^tx_i-b)^2
i=1∑n(yi−atxi−b)2
一旦求解了这个优化问题,那么
a
,
b
a,b
a,b就可以找到了。、
将
m
i
n
(
a
,
b
)
\underset{(a,b)}{min}
(a,b)min
∑
i
=
1
n
(
y
i
−
a
t
x
i
−
b
)
2
\displaystyle\sum_{i=1}^n(y_i-a^tx_i-b)^2
i=1∑n(yi−atxi−b)2记作
g
(
a
,
b
)
g(a,b)
g(a,b),即:
g
(
a
,
b
)
=
m
i
n
(
a
,
b
)
g(a,b)=\underset{(a,b)}{min}
g(a,b)=(a,b)min
∑
i
=
1
n
(
y
i
−
a
t
x
i
−
b
)
2
\displaystyle\sum_{i=1}^n(y_i-a^tx_i-b)^2
i=1∑n(yi−atxi−b)2,
后续课程会涉及到
g
(
a
,
b
)
g(a,b)
g(a,b)是一个凸函数,在最小值点
⇒
\Rightarrow
⇒
∂
a
g
=
0
\partial_{a}g=0
∂ag=0➡
n
n
n个方程
∂
b
g
=
0
\partial_{b}g=0
∂bg=0➡1个方程
共
n
+
1
n+1
n+1个方程,解出
n
+
1
n+1
n+1个变量,从而得出
a
,
b
a,b
a,b的值。
∂ \partial ∂ 偏导数,也是偏微分
3、总结
3.1、做科研时,总是要去解决一个具体的问题,可以分为以下这么几步:
idea➡math(数学推演)➡optimization(优化问题)➡algo
3.2、在回归问题中,涉及到多元微积分,多元微积分是优化的基础,微积分与优化的关系如下:
一元微积分
⇒
\Rightarrow
⇒多元微积分
⇒
\Rightarrow
⇒优化
⇒
\Rightarrow
⇒凸优化
前者均为后者的基础,无论是微积分还是优化,都是服务于机器学习的,机器学习中的很多算法,就是一个优化问题。