1. 解释线性回归中使用误差平方和作为目标函数的原因。
答:因为随机误差服从正态分布(高斯分布),可以由最大似然估计来推出目标函数的形式。从直观的角度也可以得知:有的误差为正,有的误差为负数,简单相加会被抵消的,平方就不会了。
2. 请描述BGD和SGD的区别,并指出SGD的优势有哪些?
答:先解释BGD,SGD和MSGD的区别。
首先梯度下降的损失函数都是均方误差损失函数:
C
=
1
2
m
∑
i
=
1
m
(
Y
i
−
h
w
(
X
i
)
)
2
h
(
w
)
=
∑
i
=
0
n
w
i
x
i
C=\frac{1}{2m}\sum_{i=1}^m{\left( Y_i-h_w\left( X_i \right) \right) ^2} \\ h(w)=\sum_{i=0}^n{w_i}x_i
C=2m1i=1∑m(Yi−hw(Xi))2h(w)=i=0∑nwixi
批量梯度下降 BGD(Batch Gradient Descent)是指的在求解梯度时一次性的将整个数据集进行迭代,从而计算出平均的梯度用于参数的更新:
w
i
+
1
=
w
−
η
1
m
∑
j
=
0
m
∂
C
∂
w
j
w_{i+1}=w-\eta \frac{1}{m}\sum_{j=0}^m{\frac{\partial C}{\partial w_j}}
wi+1=w−ηm1j=0∑m∂wj∂C
其中m为数据集的数据量数。
优点:每一次的迭代都会朝着最优解的方向进行,不会出现迭代中的震荡
缺点:穿越整个数据集所消耗的时间与空间巨大,而使得优化过程不经济
随机梯度下降 SGD(Stochastic Gradient Descent)是指的在每次求解梯度时仅从数据集中随机的选取一个数据点进行梯度计算,从而更新参数:
w
i
+
1
=
w
−
η
∂
C
∂
w
w_{i+1}=w-\eta \frac{\partial C}{\partial w}
wi+1=w−η∂w∂C
其中每次用于更新的数据量为1
优点:优化的速度很快。
缺点:数据中会存在噪音,使得优化朝着并不是最优的方向而迭代。同时还会使得训练的准确率降低。
小批量梯度下降 MBGD(Mini-Batch Gradient Descent)将BGD和SGD求一个折中的办法,每次从数据集中选取一小部分的数据进行计算梯度,这样既能加快梯度下降的迭代速度又可以降低数据集中单一噪音数据点对优化的影响。
3. 特征选择后如果得到共线特征,应该如果处理?
- 移除共线的两个变量其中一个
- 我们可以计算方差膨胀因子VIF(variance inflation factor)来检查存在的多重共线性并采取相应的措施
- 移除相关变量可能会导致信息的丢失,为了保留这些变量,我们可以使用岭回归(ridge)或lasso等回归方法对模型进行惩罚。