【算法小记】——机器学习中的概率论和线性代数,附线性回归matlab例程

内容包含笔者个人理解,如果错误欢迎评论私信告诉我
线性回归matlab部分参考了up主DR_CAN博士的课程

机器学习与概率论

在回归拟合数据时,根据拟合对象,可以把分类问题视为一种简答的逻辑回归。在逻辑回归中算法不去拟合一段数据而是判断输入的数据是哪一个种类。有很多算法既可以实现线性回归也可以实现逻辑回归。

线性回归 逻辑回归
目的 预测 分类
y ( i ) y^{(i)} y(i) 未知 (0,1)
函数 拟合函数 预测函数
参数计算方式 最小二乘法 极大似然估计

如何实现概率上的分布?

在概率论中当拥有一组足够大样本数据时,那么这组数据的期望和方差会收敛于这个数据分布的期望和方差。
对基本的切比雪夫不等式, E ( I ∣ X − μ ∣ > α ) = P ( ∣ X − μ ∣ ≥ α ) ≤ D X α 2 E(I_{\left|X-\mu \right|}>\alpha )=P(\left|X-\mu \right|\ge\alpha)\le\frac{DX}{\alpha^2} E(IXμ>α)=P(Xμα)α2DX
由此出发可以推导出切比雪夫大数定律、伯努利大数定律,中心极限定理等概率论的基石公式。
那么假如现在我们有一组样本数据,样布数据来自某个未知分布。是否可以找到一个含参函数,可以百分百拟合样本服从的分布?
∃ f ( X ∣ θ ) ? ⇒ lim ⁡ ε → 0 + P ( ∣ f ( X ) − x ∣ < ε ) = 1 \exists f(X|\theta )?\Rightarrow \lim_{\varepsilon \to 0^+} P(|f(X)-x|<\varepsilon )=1 f(Xθ)?ε0+limP(f(X)x<ε)=1
从这个问题出发,在统计学上我们已经认识了矩估计、极大似然估计两种方法来计算这个函数中的具体参数。
对计算机来说是否有其他方法?

  • 多层判断:如果样本分布在有限空间内,总可以找到一个符合分布的树状判断结构,一层一层递推判断并构建新分支,最后得到完整的符合分布的判断结构。
  • 迭代学习:通过循环输入样本参数,计算函数的输出是否符合要求,再根据差距大小,调整函数构成和参数值,最后得到函数结果。

树状判断很好理解,那迭代学习如何实现:
首先是需要知道函数计算得到的分布和实际的分布之间的差距。继续上面的公式我们可以再加入一个函数,用来计算当前函数结果是否准确
l o s s ( f ( x ∣ θ ) − F ( X ) ) loss (f(x|\theta )-F(X)) lossf(xθ)F(X)
我们把这样的函数称之为代价函数,在深度学习中也可称之为损失函数。当有样本和真确分布的答案时(有监督学习)可以直接计算函数输出到实际的距离。对于没有正确答案的回归时,此时变为求解函数到所有样本点之间的距离:
L ( x , θ ) = 1 m ∑ i = 1 m ( f ( x ( i ) ) − y ( i ) ) L(x, \theta) = \frac{1}{m}\sum_{i=1}^m(f(x^{(i)})-y^{(i)}) L(x,θ)=m1i=1m(f(x(i))y(i))
当存在参数使得函数到所有样本距离最小的时候:
∃ θ ⇒ min ⁡ L ( x , θ ) = min ⁡ 1 m ∑ i = 1 m ( f ( x ( i ) ∣ θ ) − y ( i ) ) \exists\theta\Rightarrow\min L(x,\theta)=\min\frac{1}{m}\sum_{i=1}^m(f(x^{(i)}|\theta)-y^{(i)}) θminL(x,θ)=minm1i=1m(f(x(i)θ)y(i))
此时可以称之为找到了一个函数可以再概率上最大程度的拟合样本的分布情况。
机器学习中很多方法的目的就是,找到科学的方法,让计算机根据样本数据找到合适的函数 f 和合适的参数,并最终能够应用到新的场景对新样本做出预测或判断。
现在假设机器学习样本数据时直接使用上述的差值平均值作为代价,那如何求解参数来使差值最小?答案已经呼之欲出————梯度。 ∂ L ∂ θ = L ˙ ( x , θ ) = 1 m ∑ i = 1 m ( f ( x ( i ) ) − y ( i ) ) ′ \frac{\partial L}{\partial \theta}=\dot{L} (x, \theta) = {\frac{1}{m}\sum_{i=1}^m(f(x^{(i)})-y^{(i)})}' θL=L˙(x,θ)=m1i=1m(f(x(i))y(i)) 1 m ∑ i = 1 m ( f ( x ( i ) ) − y ( i ) ) θ ′ ⇒ 1 m ∑ i = 1 m ( f θ ′ ( x ( i ) ) − y ( i ) ) {\frac{1}{m}\sum_{i=1}^m(f(x^{(i)})-y^{(i)})}'_\theta \Rightarrow {\frac{1}{m}\sum_{i=1}^m(f'_\theta (x^{(i)})-y^{(i)})} m1i=1m(f(x(i))y(i))θm1i=1m(fθ(x(i))y(i))
计算梯度时,输入的样本是已知数据,需要变化的是函数的参数,通过计算代价函数对变量的梯度,就可以知道在输入样本的前提下,函数朝着什么方向变化参数能使输出的差值变小,此时计算机只需根据梯度更新参数。通过不断的循环这个步骤就达到了学习参数的目的。

通过上面的介绍,简单知道了学习的过程。实际上在机器学习中远没有这样简单,从函数结构,代价函数,到参数更新,输入输出等等,每一个环节都有着详细的内容和不同的方法来适应不同的数据场景。

机器学习与线性代数

矩阵的导数运算

在标量方程中偏导数的计算形式为: f ′ ( x ) = ∂ f ∂ x f'(x) = \frac{\partial f}{\partial x} f(x)=xf 当二维的标量方程求偏导数时有: f ′ ( x 1 , x 2 ) = { d f ( x 1 , x 2 ) d x 1 d f ( x 1 , x 2 ) d x 2 f'(x_1, x_2)=\left\{\begin{matrix}\frac{\mathrm{d} f(x_1, x_2)}{\mathrm{d} x_1} \\\frac{\mathrm{d} f(x_1, x_2)}{\mathrm{d} x_2} \end{matrix}\right. f(x1,x2)={ dx1df(x1,x2)dx2df(x1,x2) 不妨可以将这样的偏导数写为向量形式,令 x ⃗ n = { x 1 , x 2 . . . . . . x n

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

絮沫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值