回归用来为一个或多个自变量和因变量建模
基本假设:
因变量和自变量之间的关系是线性的(也就是说,可以表示为中元素的加权和)
噪声较为正常,例如符合正态分布
该式为特征的仿射变换,其特点为通过加权和对特征进行线性变换,然后通过偏置进行平移。
给定一个自变量和因变量构成的数据集,我们的目标是寻找权重和偏置,来使得线性模型最好的通过自变量预测数据集中的因变量(预测目标、也称标签)。
机器学习中,用线性代数表示法对高维数据建模,用表示估计值(也就是预测值),对于单个样本的预测,用普通表示方法表示为,改用线性代数的点积方法表示为(其中,所有特征用表示,权重用表示)。
将数据集中的n个样本作为一个矩阵,每一行是一个样本,每一列是一种特征,用表示预测值的集合,则。
为了找到最适合的模型参数和,需要确定(1)一种度量模型性能好坏的方式,(2)一种能更新模型(找到更好的参数)以提高模型预测质量的方法。
通过损失函数来量化预测值与目标值之间的差距。回归问题中较为常用的损失函数是平方误差函数(对于单个样本)
为了衡量模型在整个训练集上的预测效果,计算在整个训练集上的损失均值,也就是单个样本的损失求和再平均。
训练模型时,我们想找到一组最佳的参数(),这组参数能最小化在所有训练样本上的总损失。
线性回归有解析解,但大部分深度学习面对的问题都不存在解析解。
梯度下降方法不断在损失函数递减的方向上更新模型参数,降低误差。
按照标准的梯度下降方法,需要在每一次更新模型参数前遍历整个训练集,求损失的梯度,但这样做过于耗时,因此改良版的做法是每次更新参数随机抽取一部分样本,计算这些样本的平均损失关于模型参数的梯度,然后在当前参数值中减去一个学习率常数乘以梯度结果。
在统计学中,推断更多表示基于数据估计参数,也就是模型训练的过程。因此用预测更为严谨。
利用python中的线性代数库,而不是写for循环来同时处理小批量样本,计算损失及梯度。
通过生成两个10000维的向量,用for和库的方式进行相加,计算两者耗时。通过实验发现,通过库来算要快的多得多得多。
在高斯噪声的假设下,最小化均方误差等价于对线性模型的极大似然估计。
证明:在高斯噪声假设下,,即
那么通过移项 ,。由于,那么在给定输入和参数的情况下也服从同样的正态分布,即y的概率分布可表示为,恰好,这就是给定的情况下观测到数据。
似然函数的表达式中,条件符号表示我们在给定输入变量和观测数据的条件下,关心的是模型参数的分布。
总的似然函数可以写成各个观测值的概率密度函数的乘积。
取对数后得到对数似然函数
由此,对于线性模型,最小化均方误差等价于极大似然估计。
联系客服