一元线性回归
一元线性回归的表示
样本和训练集的表示
$ m $ 表示训练集中的样本数;
$ x $ 表示输入变量,$ y $ 表示输出变量;
$ (x,y) $ 表示训练集中的样本,$ (x^{(i)},y^{(i)}) $ 表示一个具体的样本;
假设函数
用于拟合的假设函数表示为:
$$ h_{\theta}(x) = \theta_0 + \theta_1 x $$
其中 $ h_{\theta}(x_i) $ 是预测值; $ \theta_i $ 是参数,可以初始化为 0,并在计算过程中逐步逼近最优。
一元线性回归的目标
算法目标
即通过学习算法(LA)找到一个足够好的 $ h_{\theta}(x) $, 当输入新的 $ x $ 时,能准确预测出 $ y $。这个过程可以表示为:
$$ arg \ min_{\theta_0,\theta_1} J(\theta_0,\theta_1) $$
即最小化代价函数的过程。下面研究如何找到这样的 $ h_{\theta}(x) $:
代价函数
可以用代价函数(Cost Function)来评价 $ h_{\theta}(x) $ 的优劣:
$$ J(\theta_0,\theta1) = \dfrac{1}{2m} \sum{i=1}^{m}(h_{\theta}(x^{(i)})-y^{(i)})^2 $$
它是一个均方误差函数(MSE, Mean Squared Error)。代价函数的值越小,说明 $ h_{\theta}(x) $ 就越可靠。
一元线性回归的梯度下降法
计算过程
梯度下降算法(Gradient Descent)的具体过程如下:
- 随机选择一个参数的组合 $ (\theta_0, \theta_1, \cdots, \theta_n) $,也可均初始化为 0;
- 计算代价函数 $ J(\theta_0, \theta_1, \cdots, \theta_n) $;
- 修正 $ (\theta_0, \theta_1, \cdots, \theta_n) $——即通过学习率来改变,使代价函数的值降低;
- 重复 2 – 3 步骤,直至找到一个局部最小值(local minimum)——不同初始参数可能得到不同的局部最小值。
学习率(步长)
在计算过程中,$ \theta $ 的值可以通过规定一个 $ \alpha $,即学习率(learning rate)或步长(step size)来改变:
$$ \theta_j=\theta_j-\alpha \dfrac{\partial}{\partial \theta_j}J(\theta_0,\theta_1) $$
对一元线性回归:
计算过程中,所有的 $ \theta $ 均需改变。
当 $ \alpha $ 过小时,可能收敛很慢;当 $ \alpha $ 过大时,$ J(\theta_0,\theta_1) $ 可能不是朝同一“方向”逐渐降低的,而会在局部最小值附近振荡,无法收敛。为选择合适的 $ \alpha $,可每迭代若干次后,对其进行指数或线性衰减。
多元线性回归
多元线性回归的表示
样本和训练集的表示
大致与一元线性回归相同,且:
$ n $ 表示特征的数量;
$ x^{(i)} $ 表示第 i 个训练样本,$ x_j^{(i)} $ 表示第 i 个训练样本的第 j 个特征。
假设函数
用于拟合的假设函数表示为:
$$ h_{\theta}(x) = \theta_0 x_0 + \theta_1 x_1 + \theta_2 x_2 + … +\theta_n x_n, x_0=1 $$
可将 $ x $ 和 $ \theta $ 用向量表示:
则:
$$ h_{\theta}(x) = \theta^T x $$
多元线性回归的梯度下降法
大致与 1.3.1 相同,$ \theta $ 的更新可表示为:
$$ \theta_j = \thetaj – \alpha \dfrac{1}{m} \sum{i=1}^{m}(h_{\theta}(x^{(i)})-y^{(i)})x_j^{(i)} $$
梯度下降算法调优
特征放缩
可通过特征放缩,将特征数据归一化(尽量使 $ -1\le x_i \le 1 $)。通常有以下几种方法:
简单归一化:
$$ x_i = \dfrac{x_i}{max(x_i)} $$
均值归一化:
$$ x_i = \dfrac{x_i – \mu_i}{std_i} $$
最大最小值归一化:
$$ x_i = \dfrac{x_i – min(x_i)}{max(x_i) – min(x_i)} $$
收敛观测
可通过绘制迭代次数和代价函数的曲线来观测算法何时趋于收敛;也可将代价函数的变化值和某个阈值(如 0.001)相比较,小于该值时停止迭代;还应该合理选择学习率。
多元线性回归的正规方程法
计算过程
将训练集表示为以下矩阵:
则有:
$$ \theta = (X^TX)^{-1}X^Ty $$
即只通过一次运算直接得到各 $ \theta $ 的值。
梯度下降与正规方程的比较
梯度下降需要选择合适的 $ \alpha $,需要多轮迭代;当特征数 n 很大时也能较好地使用;适用于各种类型的模型。
正规方程则不需要 $ \alpha $,只需一次运算;计算 $ (X^TX)^{-1} $ 的时间复杂度为 $ O(n^3) $;只适用于线性模型。
发表回复
要发表评论,您必须先登录。