机器学习第1天线性回归

线性回归

生僻词语

分类:明确的类别(能不能贷款);

回归:具体的数字/或者取值范围(能够贷多少钱);

拟合:使用数学模型不断逼近真实数据的过程;

机器学习:给机器一堆数据并且给一个目标,机器通过学习得出参数算出目标;

PDF(probability density function )概率密度函数:概率密度函数的积分等于概率。

案例

背景:某银行给用户放贷款,现有用户的工资和年龄(两个特征),来训练模型预测银行会给用户贷款额度。

思路:工资和年龄都会影响最终银行贷款的结果,那么它们各自由多大影响呢(参数)

用户工资(X1)年龄(X2)

X0

额度(Y)
1400025120000
2800030170000
3500028135000
4750033150000
51200040185000

假设\theta_1是年龄的参数,\theta_2是工资的参数,\theta_0是偏置项

拟合的平面:h_{\theta}(x) = \theta_0+\theta_1x_1+\theta_2x_2

新加一列(x_0=1)h_{\theta}(x) = \theta_0x_0+\theta_1x_1+\theta_2x_2

整合:h_{\theta}(x) = \sum_{i=0}^{n}\theta_ix_i=\theta^Tx

真实值和预测值之间肯定要存在差异(用\epsilon来表示该误差)

对于每个样本:y^{(i)} = \theta^Tx^{(i)}+\epsilon^{(i)}

高斯分布

高斯分布,也被称为正态分布(Normal Distribution),是一个在统计学中非常重要的概率分布。

正态分布是一类连续概率分布,其形状呈现为对称的钟形曲线,这种曲线被称为高斯函数或高斯钟形曲线。高斯分布的数学表达式可以表示为:

f(x|\mu,\sigma^2) = \frac{1}{\sqrt{2\pi\sigma^2}} e^{-\frac{(x-\mu)^2}{2\sigma^2}}

正态分布有两个参数:均值\mu和方差\sigma^2,它们决定了分布的形状和位置。均值决定了分布的中心位置,标准差决定了分布的离散程度,即数据集中或分散的程度。标准差越大,分布越宽;标准差越小,分布越窄。

正态分布在自然科学和社会科学中十分常见,许多随机变量的分布都近似是正态分布,特别是当独立随机变量的总和趋于无限时,根据中心极限定理,其分布接近正态分布。

标准正态分布是当正态分布的均值( \mu = 0 )且标准差 ( \sigma = 1 )时的特殊情况,标准正态分布表达式如下:

f(x|0,1) = \frac{1}{\sqrt{2\pi}} e^{-\frac{x^2}{2}}

标准正态分布是正态分布的一个标准化形式,通常用于简化问题的求解过程,在统计分析中具有重要应用。任何正态分布都可以通过标准化过程(即从每个数据点中减去均值并除以标准差)转换为标准正态分布。这个过程称为标准化或归一化。

总结来说,所有的标准正态分布都是正态分布,但不是所有的正态分布都是标准正态分布。标准正态分布是正态分布中的一个特例。

误差

误差项\epsilon^{(i)}是独立并且具有相同的分布,并且服从均值为0方差为\sigma^2的正态分布。

独立:不同误差项之间没有联系(张三、李四一起贷款,他俩没有关系);

同分布:误差项的均值和方差一样(他俩都来假定的这家银行);

正态分布:银行可能会给的多也可能会给的少,但是绝大多数情况下这个浮动不会太大,极小情况下浮动比较大,属于正常情况。

p(y^{(i)}|x^{(i)};\theta):意思是在 x^{(i)} 和 \theta 下 y 的概率。

预测值与误差:y^{(i)} = \theta^Tx^{(i)}+\epsilon^{(i)}

由于误差服从高斯分布:p(\epsilon^{(i)}) = \frac{1}{\sqrt{2\pi\sigma^2}} e^{({-\frac{(\epsilon^{(i)}-0)^2}{2\sigma^2}})}

将(1)式带入(2)式:p(y^{(i)}|x^{(i)};\theta) = \frac{1}{\sqrt{2\pi\sigma^2}} e^{({-\frac{(y^{(i)}-\theta^Tx^{(i)} - 0)^2}{2\sigma^2}})}

概率(Probability):给定参数条件下某个事件发生的可能性。

似然(Likelihood):给定数据条件下某个参数取值的可能性。

似然函数为什么乘积:独立同分布的随机变量其联合概率密度等于其边缘概率密度的乘积。

似然函数:L(\theta)=\prod_{i=1}^{m}p(y^{(i)}|x^{(i)};\theta) = \prod_{i=1}^{m}\frac{1}{\sqrt{2\pi\sigma^2}} e^{({-\frac{(y^{(i)}-\theta^Tx^{(i)})^2}{2\sigma^2}})},此时函数值代表的是在θ和x基础上求出y的值的概率,当然是概率越高越好,因此就要求该函数的极值。

什么样的参数跟提供的数据结合后恰好是真实值。

对数似然:ln L(\theta)=ln\prod_{i=1}^{m}\frac{1}{\sqrt{2\pi\sigma^2}} e^{({-\frac{(y^{(i)}-\theta^Tx^{(i)})^2}{2\sigma^2}})}

乘法难解,加法就很容易,对数里面乘法可以转换成加法。

展开化简原理:logAB=logA+logB

=\sum_{i=1}^{m}(ln\frac{1}{\sqrt{2\pi\sigma^2}}+ln( e^{-\frac{(y^{(i)}-\theta^Tx^{(i)})^2}{2\sigma^2}})

=m ln\frac{1}{\sqrt{2\pi\sigma^2}} - \frac{1}{2\sigma^2}\sum_{i=1}^{m}(y^{(i)}-\theta^Tx^{(i)})^2

J(\theta) =\frac{1}{2}\sum_{i=1}^{m}(y^{(i)}-\theta^Tx^{(i)})^2(目的是让似然函数求出最大值,因此J函数应该是最小值)

目标函数:J(\theta) = \frac{1}{2} \sum_{i=1}^{m} (h_\theta(x^{(i)}) - y^{(i)})^2 = \frac{1}{2} (X \theta - Y)^T (X \theta - Y)(矩阵的平方)

求偏导:

线代公式1:(AB-C)^T=B^TA^T-C^T

线代公式2:X^T*X是对称阵

线代公式3:\partial_{C} C^TA^TAC=2CA

\nabla_\theta J(\theta) = \nabla_\theta \left( \frac{1}{2} (X \theta - Y)^T (X \theta - Y) \right)

= \nabla_\theta \left( \frac{1}{2} \theta^T X^T X \theta - \theta^T X^T Y + \frac{1}{2}Y^T Y \right)

= \nabla_\theta \left( \frac{1}{2} \theta^T X^T X \theta - \theta^T X^T Y + \frac{1}{2} Y^T Y \right) = X^T X \theta - X^T Y=0

偏导等于0:\theta = (X^T X)^{-1} X^T Y

梯度下降

➤ 引入:当我们得到了一个目标函数 后,如何进行求解?
   直接求解?(并不一定可解,线性回归可以当做是一个特例)

➤ 常规套路:机器学习的套路就是我会给你一堆数据,然后告诉你
   什么样的学习方法是好的(目标函数),然后让它朝着这个方向去做

➤ 如何优化:一口吃不成个胖子,我们要静悄悄的 一步步的完成优化
   (每次优化一点点,累积起来就是个大致倾了)

分别对 \theta_0,\theta_1 进行寻找,因为x0和x1之间是相互独立的。
目标函数:J(\theta_0, \theta_1) = \frac{1}{2m} \sum_{i=1}^{m} \left( h_{\theta}(x^{(i)}) - y^{(i)} \right)^2

寻找山谷的最低点,也就是我们的目标函数终点 (什么样的参数能使得目标函数达到极值点)

下山分几步走呢?(更新参数)

(1):找到当前最合适的方向

(2):走那么一小步,走过头了就“跌倒”了

(3):按照方向与步长更新我们的

梯度下降,目标函数:

J(\theta) = \frac{1}{2m} \sum_{i=1}^{m} (y^i - h_\theta(x^i))^2(平方的目的是为了让结果差异更大)

批量梯度下降:

\frac{\partial J(\theta)}{\partial \theta_j} = -\frac{1}{m}\sum_{i=1}^{m}{(y^{i}-h_{\theta}(x^i) )x^i_j}

\theta_j^{'}= \theta_j + \alpha \frac{\partial}{\partial \theta_j} J(\theta) = \theta_j + \alpha \frac{1}{m} \sum_{i=1}^{m} (y^i-h_\theta(x^i) ) x_j^i

(容易得到最优解,但是由于每次考虑所有样本,速度很慢)

随机梯度下降:

   \theta_j^{'}= \theta_j + \alpha (h_\theta (x^i) - y^i) x_j^i

(每次找一个样本,迭代速度快,但不一定每次都朝着收敛的方向)

小批量梯度下降:(α就是迭代的步长)

\theta_j^{'}= \theta_j +\alpha \frac{1}{10} \sum_{k=i}^{i+9} ( h_{\theta}(x^{(k)}) - y^{(k)} ) x_j^{(k)}

学习率(步长):对结果会产生巨大的影响,一般小一些;

如何选择:从小的时候,不行再小

批处理数量:32、62、128都可以,很多时候还需要考虑内存和效率。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值