线性回归
线性回归通过一个或者多个自变量与因变量之间进行建模的回归分析。其中特点为一个或多个称为回归系数的模型参数的线性组合。
线性回归方程:
损失函数:
损失函数推理过程:
1.公式转换:
2.误差公式:
3.转化为Θ求解:
y=e^(-x), 误差 越小,y越大,
越大。
在一个标准差内的概率大于在一个标准差到两个标准差的概率 。
在高斯分布中, 越靠近0的位置, 产生的偏差越小, 出现的概率就越大; 越远离0的位置, 产生的偏差越 大, 出现的概率就越小。(最大似然估计就是从此处的概率得出, 此处越接近0, 概率p越大)
4.似然函数求
似然函数: 似然函数是根据样本去估计参数的值的一个函数, 即是由数据去计算参数的大小为多大时, 参数和我们的数据组合后更接近真实值。(总而言之, 似然函数就是为了求解参数的函数)
对数似然: 对数似然相对于似然函数的有点在于运算方便。似然函数求取的方法是迭乘, 数字较大时会很不方便;对数似然求取的方法是迭加。(相比于似然函数而言, 对数似然较为实用)
对数似然:
在这里我们不用去关心log后的值会改变,因为我们不是要去求极值,而是要去求极值点θ。
5.损失函数
求使J最小的θ
6.梯度下降
7.批量梯度下降BGD(Batch Gradient Descent)
比如对一个线性回归(Linear Logistics)模型,假设下面的h(x)是要拟合的预测函数,J(theta)为损失函数,theta是参数,要迭代求解的值,theta求解出来了那最终要拟合的函数h(theta)就出来了。
其中m是训练集的样本个数,n是特征的个数。
对于批量梯度下降法,样本个数m,x为n维向量,一次迭代需要把m个样本全部带入计算,迭代一次计算量为m*n2。
8.随机梯度下降:SGD(stochastic gradient descent)
随机梯度下降每次迭代只使用一个样本,迭代一次计算量为n2,当样本个数m很大的时候,随机梯度下降迭代一次的速度要远高于批量梯度下降方法。两者的关系可以这样理解:随机梯度下降方法以损失很小的一部分精确度和增加一定数量的迭代次数为代价,换取了总体的优化效率的提升。增加的迭代次数远远小于样本的数量。
对批量梯度下降法和随机梯度下降法的总结:
批量梯度下降---最小化所有训练样本的损失函数,使得最终求解的是全局的最优解,即求解的参数是使得风险函数最小,但是对于大规模样本问题效率低下。
随机梯度下降---最小化每条样本的损失函数,虽然不是每次迭代得到的损失函数都向着全局最优方向, 但是大的整体的方向是向全局最优解的,最终的结果往往是在全局最优解附近,适用于大规模训练样本情况。
9.mini-batch小批量梯度下降MBGD(Mini-Batch Gradient Descent)
案例
如果任务的训练数据规模十分庞大,随机梯度下降法无论在分类问题还是回归问题上都表现得很高效,在不损失过多性能的前提下,极大地节省计算时间。sklearn官网建议,训练数据规模超过10万,推荐使用随机梯度法估计参数模型。
七、 正规方程求θ。
引入J函数,这就是常说的最小二乘法的意思了。也就是线性回归的目标函数了。
(1)求偏导。公式实在是太难打了,我们为了能让J函数最小,就是找到θ使得J函数最小,偏导的意义就是通常情况下当偏导等于0时函数有极值(也可以联系到函数的凸凹性)。求出的偏导如下
(2)令偏导等于0 求出θ,X为输入数据,Y为真实值,θ就能直接求出来了。
(3)以上是最小二乘法或者叫正规方程来直接求出θ,但是很多情况下,θ不容易求出,所以机器学习中,常用的是通过不断的梯度下降来找到函数的极值点,从而找到对应的θ(或者w)。