百度做app的网站,服务器配置wordpress,晚上偷偷奖励自己的软件,wordpress音乐模版1 线性回归
回归#xff08;regression#xff09;指能为一个或多个自变量与因变量之间的关系进行建模。
1.1 线性模型
线性假设是指目标可以表示为特征的加权和#xff0c;以房价和面积、房龄为例#xff0c;可以有下面的式子#xff1a; w称为权重#xff08;weigh…1 线性回归
回归regression指能为一个或多个自变量与因变量之间的关系进行建模。
1.1 线性模型
线性假设是指目标可以表示为特征的加权和以房价和面积、房龄为例可以有下面的式子 w称为权重weight b称为偏置bias、偏移量offset或截距intercept 给定一个数据集我们的目标是寻找模型的权重和偏置 使得根据模型做出的预测大体符合数据里的真实价格。
1.2 损失函数
在我们开始考虑如何用模型拟合fit数据之前我们需要确定一个拟合程度的度量。损失函数loss function能够量化目标的实际值与预测值之间的差距。 通常我们会选择非负数作为损失且数值越小表示损失越小完美预测时的损失为0。
常用的损失函数
均方误差Mean Squared Error, MSE主要用于回归问题。交叉熵损失Cross-Entropy Loss常用于分类问题。绝对误差Mean Absolute Error, MAE用于回归问题。铰链损失Hinge Loss主要用于最大间隔分类器如支持向量机SVM。指数损失Exponential Loss用于分类问题。Huber 损失Huber Loss结合了 MSE 和 MAE 的优点在误差较小时类似于 MSE误差较大时类似于 MAE。Kullback-Leibler 散度KL Divergence用于衡量两个概率分布之间的差异
1.3解析解
解析解Analytical Solution 是指通过数学公式直接计算得到的最佳拟合参数的方法而不是通过迭代优化算法来逐步逼近最优解。
1.4 随机梯度下降
在我们无法得到解析解的情况下我们用到一种名为梯度下降gradient descent 的方法 这种方法几乎可以优化所有深度学习模型 它通过不断地在损失函数递减的方向上更新参数来降低误差。
简单的用法是计算损失函数关于模型参数的导数但实际中的执行可能会非常慢因此我们通常会在每次需要计算更新的时候随机抽取一小批样本 这种变体叫做小批量随机梯度下降minibatch stochastic gradient descent。
在每次迭代中我们首先随机抽样一个小批量B (batch size) 它是由固定数量的训练样本组成的。,然后我们计算小批量的平均损失关于模型参数的导数也可以称为梯度。 最后我们将梯度乘以一个预先确定的正数n (learning rate)并从当前参数的值中减掉。
算法的步骤如下 1初始化模型参数的值如随机初始化 2从数据集中随机抽取小批量样本且在负梯度的方向上更新参数并不断迭代这一步骤。
事实上更难做到的是找到一组参数这组参数能够在我们从未见过的数据上实现较低的损失 这一挑战被称为泛化generalization。
4.5 用模型进行预测
略
2 矢量化加速
矢量化Vectorization是一种编程技术通过将操作应用于整个数组或矩阵而不是单独的元素从而提高代码的执行效率。
在训练我们的模型时我们经常希望能够同时处理整个小批量的样本。 为了实现这一点需要我们对计算进行矢量化 从而利用线性代数库而不是在Python中编写开销高昂的for循环。
例如使用Numpy模块对计算两个数组的点积
3 正态分布与平方损失
略
4 从线性回归到深度网络
略