最优化问题和回归分析
一、什么是最优化问题?
1. 最优化问题的定义
最优化问题无处不在,无论是在工程设计、经济管理,还是在日常生活中。简而言之,最优化问题是指在一定的约束条件下,寻找一个或一组最佳的决策变量,使得目标函数达到最优值(通常是最大或最小)。
2. 最优化问题的数学表达
最优化问题通常可以用以下的数学形式来表示:
- 目标函数: f ( x ) f(x) f(x),这是我们希望最大化或最小化的函数。
- 决策变量: x x x,这些是我们控制的变量,通过调整它们来找到最优解。
- 约束条件:通常是一些等式或不等式约束,限制了解的空间。例如, g i ( x ) = 0 g_i(x) = 0 gi(x)=0 和 h j ( x ) ≤ 0 h_j(x) \leq 0 hj(x)≤0。
数学形式为:
minimize/maximize f ( x ) subject to g i ( x ) = 0 , i = 1 , 2 , … , m subject to h j ( x ) ≤ 0 , j = 1 , 2 , … , n \begin{aligned} & \text{minimize/maximize} \quad f(x) \\ & \text{subject to} \quad g_i(x) = 0, \quad i = 1, 2, \ldots, m \\ & \hphantom{\text{subject to}} h_j(x) \leq 0, \quad j = 1, 2, \ldots, n \end{aligned} minimize/maximizef(x)subject togi(x)=0,i=1,2,…,msubject tohj(x)≤0,j=1,2,…,n
其中, x x x 是决策变量向量, f ( x ) f(x) f(x) 是目标函数, g i ( x ) g_i(x) gi(x) 和 h j ( x ) h_j(x) hj(x) 是约束条件。
3. 最优化问题的分类
最优化问题可以按不同的方式分类:
- 按目标函数的类型:线性最优化和非线性最优化。
- 按约束类型:无约束最优化和有约束最优化。
- 按变量类型:连续最优化、离散最优化和混合变量最优化。
二、什么是回归分析?
1. 回归分析的定义
回归分析是一种预测性的建模技术,主要用于研究因变量(目标)和一个或多个自变量(预测器)之间的关系。其目的是通过建立模型来预测因变量的值。
2. 回归分析的类型
回归分析根据不同的特点可以分为以下几类:
- 按涉及的自变量数量:一元回归和多元回归。
- 按因变量的数量:简单回归分析和多重回归分析。
- 按自变量和因变量的关系类型:线性回归分析和非线性回归分析。
常见的回归技术包括:
- 线性回归:用于建模因变量和一个或多个自变量之间的线性关系。
- 逻辑回归:用于处理因变量是二元(例如0或1)的情况。
- 多项式回归:用于建模因变量和自变量之间的非线性关系。
- 逐步回归:自动选择自变量的过程中完成回归分析。
- 岭回归:适用于自变量存在多重共线性的情况,通过添加惩罚项来减少误差。
- Lasso回归:类似于岭回归,但使用的是L1正则化,可以导致一些系数恰好为零,从而选择重要的特征。
- ElasticNet回归:结合了岭回归和Lasso回归的技术,特别适用于高维数据处理。
3. 回归分析的应用
回归分析广泛应用于各个科学和工程领域,包括但不限于:
- 经济学:估计销售额、经济增长等。
- 医学:药物反应与剂量关系的研究。
- 工程:结构设计和性能预测。
- 社会科学:行为模式和趋势的分析。
三、最优化问题和回归分析的结合
1. 最优化问题在回归分析中的应用
回归分析本质上是一个最优化问题。在回归分析中,我们通常会定义一个目标函数(如最小二乘法中的残差平方和),然后通过最优化方法来求解这个目标函数,以找到最佳拟合的模型参数。具体步骤如下:
- 定义目标函数:例如,在线性回归中,目标是最小化残差平方和(RSS)。
- 选择最优化方法:使用梯度下降、牛顿法等方法来求解目标函数。
- 满足约束条件:在实际应用中,可能会有一些约束条件,如正则化项来防止过拟合。
例如,在线性回归中,目标函数可能是:
R S S = ∑ i = 1 n ( y i − ( β 0 + β 1 x i 1 + β 2 x i 2 + … + β m x i m ) ) 2 RSS = \sum_{i=1}^{n} (y_i - (\beta_0 + \beta_1 x_{i1} + \beta_2 x_{i2} + \ldots + \beta_m x_{im}))^2 RSS=i=1∑n(yi−(β0+β1xi1+β2xi2+…+βmxim))2
我们需要找到合适的 β 0 , β 1 , … , β m \beta_0, \beta_1, \ldots, \beta_m β0,β1,…,βm 来最小化这个 R S S RSS RSS。
2. 回归分析如何帮助解决最优化问题
在很多实际问题中,最优化问题和回归分析相互交织。例如,在机器学习中,训练模型的过程可以看作是一个最优化问题,而模型的预测过程则是回归分析的应用。通过回归分析,我们可以对复杂系统进行建模和预测,从而为最优化问题提供有价值的信息。
2. 1 一元线性回归
下图给出了两个变量 x 、 y x、y x、y的数据以及它们的散点图。
名称 | x x x | y y y |
---|---|---|
1 | x 1 x1 x1 | y 1 y_1 y1 |
2 | x 2 x_2 x2 | y 2 y_2 y2 |
3 | x 3 x_3 x3 | y 3 y_3 y3 |
… | … | … |
n | x n x_n xn | y n y_n yn |
-
一元线性回归分析是用一条直线近似地表示散点图上的点列,通过该直线的方程来考察两个变量之间的关系。
- 这条近似地表示点列的直线称为回归直线。
- 这条回归直线用一次关系式表示为: y = p x + q y = p x + q y=px+q (其中 p , q ∈ R p, q \in \mathbb{R} p,q∈R)
- 这个式子称为回归方程。
-
x 、 y x、y x、y 是为了将构成数据的各个值代入而设定的变量,右边的 x x x 称为自变量,左边的 y y y 称为因变量。常数 p 、 q p、q p、q 是这个回归分析模型的参数,由给出的数据来决定。
p p p 称为回归系数, q q q 称为截距。
2.2 多元线性回归
如果我们有更多的自变量(特征变量),那么多元线性回归模型可以表示为:
y = θ 0 + θ 1 x 1 + θ 2 x 2 + . . . + θ n x n y = \theta_0 + \theta_1 x_1 + \theta_2 x_2 + ... + \theta_n x_n y=θ0+θ1x1+θ2x2+...+θnxn
其中, x 1 , x 2 , . . . , x n x_1, x_2, ..., x_n x1,x2,...,xn 是多个特征变量, θ 0 , θ 1 , . . . , θ n \theta_0, \theta_1, ..., \theta_n θ0,θ1,...,θn 是模型参数。多元线性回归可以更准确地捕捉复杂关系,但也需要更多的数据来估计参数。
四、 实践回归分析
假设我们有一组关于青少年身高和体重的数据,我们希望建立一个模型来通过身高预测体重。
编 号 | 身高 x x x | 体重 y y y |
---|---|---|
1 | 153.3 | 45.5 |
2 | 164.9 | 56.0 |
3 | 168.1 | 55.0 |
4 | 151.5 | 52.8 |
5 | 157.8 | 55.6 |
6 | 156.7 | 50.8 |
7 | 161.1 | 56.4 |
- 设所求的回归方程: y = p x + q y = p x + q y=px+q
- 将第k个学生的身高记为 x k x_k xk,体重记为 y k y_k yk,可以求得第k个学生的回归分析预测的值(称为预测值),如下所示。
- p x k + q p x_k + q \quad pxk+q
- 我们将这些预测值加以汇总,如下表所示。
编 号 | 身高 x x x | 体重 y y y | 预测值 p x + q px + q px+q |
---|---|---|---|
1 | 153.3 | 45.5 | 153.3 p + q 153.3p + q 153.3p+q |
2 | 164.9 | 56.0 | 164.9 p + q 164.9p + q 164.9p+q |
3 | 168.1 | 55.0 | 168.1 p + q 168.1p + q 168.1p+q |
4 | 151.5 | 52.8 | 151.5 p + q 151.5p + q 151.5p+q |
5 | 157.8 | 55.6 | 157.8 p + q 157.8p + q 157.8p+q |
6 | 156.7 | 50.8 | 156.7 p + q 156.7p + q 156.7p+q |
7 | 161.1 | 56.4 | 161.1 p + q 161.1p + q 161.1p+q |
-
y y y的实测值和预测值。
-
在考虑数学上的最优化问题时,理解实测值和预测值的差异是十分重要的。如下算出实际的体重 y k y_k yk与预测值的误差 e k e_k ek。
- e k = y k − ( p x k + q ) e_{k} = y_{k} - (p x_{k} + q) \quad ek=yk−(pxk+q)
-
-
这些 e k e_k ek的值既可以为正也可以为负。接下来我们来考虑下面的值 C k C_k Ck,这个值称为平方误差。
- C k = 1 2 ( e k ) 2 = 1 2 { y k − ( p x k + q ) } 2 C_{k} = \frac{1}{2}(e_{k})^{2} = \frac{1}{2}\{y_{k} - (p x_{k} + q)\}^{2} \quad Ck=21(ek)2=21{yk−(pxk+q)}2
- 注:系数 1 2 \frac{1}{2} 21是为了方便进行之后的处理,这个值对结论没有影响。
- C k = 1 2 ( e k ) 2 = 1 2 { y k − ( p x k + q ) } 2 C_{k} = \frac{1}{2}(e_{k})^{2} = \frac{1}{2}\{y_{k} - (p x_{k} + q)\}^{2} \quad Ck=21(ek)2=21{yk−(pxk+q)}2
-
遍历全体数据,将它们的平方误差加起来,假设得到的值为 C T C_{\mathrm{T}} CT。
- C T = C 1 + C 2 + ⋯ + C 7 C_{\mathrm{T}}=C_{1}+C_{2}+\cdots+C_{7} CT=C1+C2+⋯+C7
-
根据之前的表以及上式,用 p 、 q p、q p、q的式子表示误差总和 C T C_{\mathrm{T}} CT,如下所示。
C T = 1 2 { 45.5 − ( 153.3 p + q ) } 2 + 1 2 { 56.0 − ( 164.9 p + q ) } 2 + ⋯ + 1 2 { 50.8 − ( 156.7 p + q ) } 2 + 1 2 { 56.4 − ( 161.1 p + q ) } 2 \begin{array}{l l l} {C_{\scriptscriptstyle\mathsf{T}}=\frac{1}{2}\{45.5-(153.3p+q)\}^{2}+\frac{1}{2}\{56.0-(164.9p+q)\}^{2}}&{}&{}&{}\\ {\displaystyle}&{}&{}&{}&{}&{}\\ {+\cdots+\frac{1}{2}\{50.8-(156.7p+q)\}^{2}+\frac{1}{2}\{56.4-(161.1p+q)\}^{2}}&{}&{}&{}\end{array} CT=21{45.5−(153.3p+q)}2+21{56.0−(164.9p+q)}2+⋯+21{50.8−(156.7p+q)}2+21{56.4−(161.1p+q)}2- 我们的目标是确定常数 p 、 q p、q p、q的值。
- 回归分析认为, p 、 q p、q p、q的正确解应该使误差总和 C T C_{\mathrm{T}} CT最小。
- 我们的目标是确定常数 p 、 q p、q p、q的值。
-
知道这个解的思路后,后面就简单了。参见Day9,我们利用以下的最小值条件即可:
∂ C T ∂ p = 0 , ∂ C T ∂ q = 0 \frac{\partial C_{\mathrm{T}}}{\partial p} = 0 , \frac{\partial C_{\mathrm{T}}}{\partial q} = 0 ∂p∂CT=0,∂q∂CT=0
∂ C T ∂ p = − 153.3 { 45.5 − ( 153.3 p + q ) } − 164.9 { 56.0 − ( 164.9 p + q ) } − ⋯ − 156.7 { 50.8 − ( 156.7 p + q ) } − 161.1 { 56.4 − ( 161.1 p + q ) } = 0 \begin{array}{r} {\frac{\partial C_{\mathrm{T}}}{\partial p}=-153.3\{45.5-(153.3p+q)\}-164.9\{56.0-(164.9p+q)\}-}\\ {\cdots-156.7\{50.8-(156.7p+q)\}-161.1\{56.4-(161.1p+q)\}=0} \end{array} ∂p∂CT=−153.3{45.5−(153.3p+q)}−164.9{56.0−(164.9p+q)}−⋯−156.7{50.8−(156.7p+q)}−161.1{56.4−(161.1p+q)}=0
∂ C r ∂ q = − { 45.4 − ( 153.3 p + q ) } − { 56.0 − ( 164.9 p + q ) } − ⋯ − { 50.8 − ( 156.7 p + q ) } − { 56.4 − ( 161.1 p + q ) } = 0 \frac{\partial C_{\mathrm{r}}}{\partial q}=-\{45.4-(153.3p+q)\}-\{56.0-(164.9p+q)\}-\\ \cdots-\{50.8-(156.7p+q)\}-\{56.4-(161.1p+q)\}=0 ∂q∂Cr=−{45.4−(153.3p+q)}−{56.0−(164.9p+q)}−⋯−{50.8−(156.7p+q)}−{56.4−(161.1p+q)}=0
-
整理后得到下式。
1113.4 p + 7 q = 372.1 , 177 312 p + 1113.4 q = 59 274 1113.4p + 7q = 372.1~,~~177~312p + 1113.4q = 59~274 1113.4p+7q=372.1 , 177 312p+1113.4q=59 274-
解这个联立方程,可得
p = 0.41 , q = − 12.06 p = 0.41~,~~q = -~12.06 p=0.41 , q=− 12.06-
从而求得目标回归方程,如下所示。
y = 0.41 x − 12.06 y = 0.41x - 12.06 y=0.41x−12.06- 此时 C T = 27.86 C_{\mathrm{T}} = 27.86 CT=27.86。
-
-
以上的重点是理解最优化问题的求解思路,这种最优化方法在后面的神经网络的计算中也可以直接使用:
- 定义目标函数:选择适当的损失函数,如均方误差。
- 选择特征和模型:选择身高、体重作为自变量,建立线性或非线性回归模型。
- 求解最优化问题:通过最小化损失函数来求得最佳模型参数。
五、代价函数
代价函数(Cost Function),也叫损失函数(Loss Function),是衡量模型预测值与真实值之间差异的一个指标。在线性回归中,最常用的代价函数是均方误差(Mean Squared Error, MSE):
C T ( θ ) = 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 C_T(\theta) = \frac{1}{2m} \sum_{i=1}^{m} (h_\theta(x^{(i)}) - y^{(i)})^2 CT(θ)=2m1i=1∑m(hθ(x(i))−y(i))2
其中, m m m 是样本数量, h θ ( x ( i ) ) h_\theta(x^{(i)}) hθ(x(i)) 是模型对第 i i i 个样本的预测值, y ( i ) y^{(i)} y(i) 是第 i i i 个样本的真实值。
代价函数的值越小,说明模型的预测值与真实值的差距越小,模型的性能就越好。因此,我们的目标是通过调整模型参数 θ \theta θ,使得代价函数的值最小化。
1、之所以不使用误差函数(error function)、损失函数(loss function)的叫法,是因为它们的首字母容易与神经网络中用到的熵(entropy)、层(layer)的首字母混淆。
2、除了这里所考察的平方误差的总和 C T C_{\mathrm{T}} CT之外,根据不同的思路,代价函数还存在其他多种形式。利用平方误差的总和 C T C_{\mathrm{T}} CT进行最优化的方法称为最小二乘法。
六、模型参数的个数
在线性回归模型中,参数的个数直接影响到模型的复杂度。对于简单线性回归,模型有一个截距参数和一个斜率参数,共两个参数。对于多元线性回归,每增加一个特征变量,就会增加一个参数。
过多的参数可能导致过拟合(Overfitting),即模型在训练数据上表现很好,但在未见过的新数据上表现不佳。而过少的参数则可能导致欠拟合(Underfitting),即模型无法很好地捕捉数据的关系。因此,选择合适的参数个数需要在模型复杂度和泛化能力之间做出权衡。
我们再来看看本Day的实例,模型有 2 个参数 p、q,而已知的条件(数据的规模)有 7 个。也就是说,模型的参数的个数(2 个)小于条件的个数(7 个)。反过来说,回归方程是根据大量的条件所得到的折中结果。这里所说的“折中”是指,理想中应该取值 0 的代价函数式 只能取最小值。因此,模型与数据的误差 C T C_T CT不为 0 也无须担心。不过,只要误差接近 0,就可以说这是合乎数据的模型。此外,模型的参数个数大于数据规模时又如何呢?当然,这时参数就不确定了。因此,要确定模型,就必须准备好规模大于参数个数的数据。
番外一:为什么叫"回归"?
“回归”这个词最早由弗朗西斯·高尔顿(Francis Galton)提出。他在研究父母身高与子女身高的关系时发现,尽管父母的身高会影响子女的身高,但子女的身高并不会完全继承父母的高度,而是趋向于回归到一个平均值。这种现象被称为**“回归效应”**。后来,统计学家将这种趋势应用于数据分析领域,形成了我们现在所说的“回归分析”。
回归分析的核心思想是通过建立一个数学模型来描述变量之间的关系,并利用这个模型进行预测。这种方法不仅适用于生物学中的遗传学研究,还可以广泛应用于经济学、社会科学、医学等多个领域,帮助人们理解和解释各种现象。
番外二:常数和变量?
- 在回归方程中, x 、 y x、y x、y 分别称为自变量、因变量, p 、 q p、q p、q 为常数。不过,在代价函数式中, p 、 q p、q p、q 是被作为变量来处理的。
- 像这样,根据不同的角度,常数、变量是变幻不定的。
- 从数据的角度来看,回归方程的 x 、 y x、y x、y 为变量,从代价函数的角度来看, p 、 q p、q p、q为变量。
- 像这样,根据不同的角度,常数、变量是变幻不定的。
通过建立一个数学模型来描述变量之间的关系,并利用这个模型进行预测。这种方法不仅适用于生物学中的遗传学研究,还可以广泛应用于经济学、社会科学、医学等多个领域,帮助人们理解和解释各种现象。