回归是指拟合函数的模型、图像等。与分类不同,回归一般是在函数可微的情况下进行的。因为分类它就那么几类,如果把类别看做函数值的话,分类的函数值是离散的,而回归的函数值通常是连续且可微的。所以回归可以通过梯度下降法来进行。
比如对于函数$y =b + wx$,$x$是输入变量,$w$和$b$是参数。可以使用训练集输入一组$x$和$y$来进行对$w$和$b$的训练。
下面举多项式回归为例,也就是选择多项式为模型的假设空间,训练多项式的系数。
多项式回归
由泰勒公式我们可以知道,多项式可以拟合任何函数。不论是一维的还是多维的,所以如果使用多项式来进行回归,我们可以提升它的次数来更精细地拟合。多维泰勒公式(因变量$X$是m维向量,在$X = P$处展开):
$f(X) = f(P) + sumlimits_{i=1}^m (X_i - P_i)f'_{i}(X) + frac{1}{2!} sumlimits_{i,j=1}^{m} (X_i - P_i)(X_j - P_j)f''_{ij}(X) + O(X^2)$
将各次都提取到一块儿,得到如下:
$f(X) = b + sumlimits^{m} w_i^{(1)}X_i + sumlimits^{m} w_{i,j}^{(2)}X_iX_j + sumlimits^{m} w_{i,j,k}^{(3)}X_iX_jX_k + ...$
因此对于$y = b + w_1x + w_2x^2 + w_3x^3 +...$其中的$x$是多维向量,$x^2$就是$x$所有元素相乘后的矩阵,就是二次,相应的$x^3$是$x^2$系数矩阵中所有元素与$x$所有元素相乘后的立方阵,就是三次,然后一直推广到$x^n$(n次,也就是nD张量)。其中的$w_n$则是$x^n$对应规模的阵子,$w_nx^n$就是它们对应元素相乘后之和。
如果再加上正则项(用于防止参数w过大),则对于使用多项式的回归来说,需要人工设置的超参数就是:
1、函数的次数(函数的次数和函数的输入变量的维数,决定了整个函数需要优化的参数的数量)。
2、正则项的参数$lambda$等。
如果需要回归的函数的多项展开式是无穷级的,如三角函数,那么如果只使用多项式来回归的话是永远也不可能完全拟合的。所以一般还会加上别的函数来拟合。比如在深度学习中,由于有各个神经元之间的连接有阈值,就能理论上拟合任意的函数。
另外,上面的高次幂可以通过增加维度来降幂计算,比如将$w_{i,j}^{(2)}X_iX_j$转化为新的输入维度$w_{i,j}^{(2)}X_{m + k}$(因为转化之前$X$是m维的,转化后在m维后面再加维度)但是这并不会减少模型优化的复杂度,它只是看起来好像从高次模型转化为了线性模型来进行回归,因为需要优化的参数依然是不变的。