算法原理:

假设一个函数可以拟合所有的数据,求出这个函数的参数,并用该函数来进行预测

数学推导

  • 假设一个函数
    当我们拿到一些数据时,先假设一个函数:hθ(X)=θ0X0+θ1X1++θiXi<script type="math/tex" id="MathJax-Element-15212">h_\theta(X)=\theta_0X_0+\theta_1X_1+\dots+\theta_iX_i</script>
    其中假设X0=1<script type="math/tex" id="MathJax-Element-15213">X_0=1</script>,X1<script type="math/tex" id="MathJax-Element-15214">X_1</script>到Xi<script type="math/tex" id="MathJax-Element-15215">X_i</script>表示特征,θ0θi<script type="math/tex" id="MathJax-Element-15216">\theta_0到\theta_i</script>表示参数,我们的目的就是要求出这些参数
    转换成矩阵:hθ(X)=ni=1θiXi=θTX<script type="math/tex" id="MathJax-Element-15217">h_\theta(X)=\sum_{i=1}^n\theta_iX_i=\theta^TX</script> 表示参数矩阵的转置矩阵*x矩阵

  • 考虑误差
    我们假设的函数跟实际值之间存在误差,于是对于每一个样本有(1) y(i)=θTX(i)+ξ(i)<script type="math/tex" id="MathJax-Element-15218">y^{(i)}=\theta^TX^{(i)}+\xi^{(i)}</script>

  • 误差三要点(假设)
    • 独立:每个样本都是独立而不互相影响
    • 同分布:所有样本都是在相同的环境下
    • 高斯分布:服从且均值为0,方差为θ2<script type="math/tex" id="MathJax-Element-15219">\theta^2</script>的高斯分布
  • 假设误差服从高斯分布(正态分布)且均值为0,方差为θ2<script type="math/tex" id="MathJax-Element-15220">\theta^2</script>,均值为0是因为误差有的偏大有的偏小,所以我们假设他们的均值=0,如果数据的方差不为θ2<script type="math/tex" id="MathJax-Element-15221">\theta^2</script>,应该想办法修改为θ2<script type="math/tex" id="MathJax-Element-15222">\theta^2</script>
    那么有(2) p(ξ(i))=12πσexp((ϵ(i))22σ2)<script type="math/tex" id="MathJax-Element-15223">p(\xi^{(i)})=\frac{1}{\sqrt{2\pi\sigma}}exp(-\frac{(\epsilon^{(i)})^2}{2\sigma^2})</script>

  • 根据(1)代入(2)可得p(y(i)|x(i);θ)=12πσexp((y(i)θTx(i))22σ2)<script type="math/tex" id="MathJax-Element-15224">p(y^{(i)}|x^{(i)};\theta)=\frac{1}{\sqrt{2\pi\sigma}}exp(-\frac{(y^{(i)}-\theta^Tx^{(i)})^2}{2\sigma^2})</script>

  • 似然函数:在已经知道知道概率和结果的情况下,猜测其参数

    • (一个样本)如 p(y(i)|x(i);θ)=12πσexp((y(i)θTx(i))22σ2)<script type="math/tex" id="MathJax-Element-15225">p(y^{(i)}|x^{(i)};\theta)=\frac{1}{\sqrt{2\pi\sigma}}exp(-\frac{(y^{(i)}-\theta^Tx^{(i)})^2}{2\sigma^2})</script>,我们已经知道y(i),x(i)<script type="math/tex" id="MathJax-Element-15226">y^{(i)},x^{(i)}</script>,求一个θ<script type="math/tex" id="MathJax-Element-15227">\theta</script>使得p(y(i)|x(i);θ)<script type="math/tex" id="MathJax-Element-15228">p(y^{(i)}|x^{(i)};\theta)</script>最大,即最大可能性的误差
    • 考虑到到多个样本,我们进行累乘:ni=1p(y(i)|x(i);θ)=ni=112πσexp((y(i)θTx(i))22σ2)<script type="math/tex" id="MathJax-Element-15229">\prod_{i=1}^n p(y^{(i)}|x^{(i)};\theta)=\prod_{i=1}^n\frac{1}{\sqrt{2\pi\sigma}}exp(-\frac{(y^{(i)}-\theta^Tx^{(i)})^2}{2\sigma^2})</script>
    • 由于累乘难以计算,使用log转化为累加:logAB=logA+logB
      logL(θ)=logni=112πσexp((y(i)θTx(i))22σ2)<script type="math/tex" id="MathJax-Element-15230">logL(\theta)=log\prod_{i=1}^n\frac{1}{\sqrt{2\pi\sigma}}exp(-\frac{(y^{(i)}-\theta^Tx^{(i)})^2}{2\sigma^2})</script>
      化简:
      logL(θ)=ni=1log12πσexp((y(i)θTx(i))22σ2)<script type="math/tex" id="MathJax-Element-15231">logL(\theta)=\sum_{i=1}^nlog\frac{1}{\sqrt{2\pi\sigma}}exp(-\frac{(y^{(i)}-\theta^Tx^{(i)})^2}{2\sigma^2}) </script>
      logL(θ)=nlog12πσ12.1σ2ni=1(y(i)θTx(i))2<script type="math/tex" id="MathJax-Element-15232">logL(\theta)=nlog\frac{1}{\sqrt{2\pi\sigma}}-\frac{1}{2}.\frac{1}{\sigma^2}\sum_{i=1}^n(y^{(i)}-\theta^Tx^{(i)})^2</script>
      由于nlog12πσ>0<script type="math/tex" id="MathJax-Element-15233">nlog\frac{1}{\sqrt{2\pi\sigma}}>0</script>,要求logL(θ)<script type="math/tex" id="MathJax-Element-15234">logL(\theta)</script>的最大值,只需要求12ni=1(y(i)θTx(i))2<script type="math/tex" id="MathJax-Element-15235">\frac{1}{2}\sum_{i=1}^n(y^{(i)}-\theta^Tx^{(i)})^2</script>的最小值
      (1σ2<script type="math/tex" id="MathJax-Element-15236">\frac{1}{\sigma^2}</script>为常数,忽略)
  • 目标函数

    • 有上面可得出目标函数是: J(θ)=12ni=1(y(i)θTx(i))2<script type="math/tex" id="MathJax-Element-15237">J(\theta)=\frac{1}{2}\sum_{i=1}^n(y^{(i)}-\theta^Tx^{(i)})^2</script>,也称最小二乘法
    • 求最小值的套路:求偏导数
      这里写图片描述
      • 理想情况下,偏导=0时取得最小值,但是实际情况中常常无法取到最小值,只能通过梯度下降的方式逼近最小值
  • R2<script type="math/tex" id="MathJax-Element-15238">R^2</script>评估方法

    • R2=1mi=1(y^iyi)2mi=1(y2iy¯i)2<script type="math/tex" id="MathJax-Element-15239">R^2=1-\frac{\sum_{i=1}^m(\hat{y}_i-y_i)^2}{\sum_{i=1}^m(y_i^2-\bar{y}_i)^2}</script>

    • 由于 mi=1(y2iy¯i)2<script type="math/tex" id="MathJax-Element-15240">\sum_{i=1}^m(y_i^2-\bar{y}_i)^2</script>是定值,mi=1(y^iyi)2<script type="math/tex" id="MathJax-Element-15241">\sum_{i=1}^m(\hat{y}_i-y_i)^2</script>越小越好,所以R2<script type="math/tex" id="MathJax-Element-15242">R^2</script>的值越接近1越好

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐