首页 > 技术文章 > ML From Hung Yi Lee --- LinearRegression #1

mushrain 2021-03-08 23:21 原文

LinearRegression

  • \(f\) 接受样本的数据 \(input\) ,得到这组数据的 \(output\)

Pokemon

  • 想要通过面板的数据去预测这只宝可梦进化以后的CP值。
  • ML' basis setp

    • Step 1: Model

      • 上述的模型是一种线性的\(Model\)
        • \(x_i\)是各种的\(attr\)是属于\(x\)
        • \(w_i\)是对应\(attr\)的权重\(weight\)
        • \(b\)是截距\(bias\)
    • Step 2: Goodness of Function

      • 模型的选入
        • 上述的每一个样本标记有每一个pokemon的进化前和进化后的cp值
      • Loss Function L:
        • 可以理解为函数的函数
        • \(L(f) = L(w,b)\)
        • 用来衡量一组参数的好坏
        • \(\sum_{n=1}^{10}(\hat y_n - (b + w\cdot x_{cp(n)})^2\)
        • 估测误差越大就越不好,可以理解为\(Loss\ Function\)判断这个拟合函数的好坏
        • 那么我们要找到的哪个拟合函数就应该是使得这个loss函数最小的那一组参数
        • \(f^* = argminL(f)\)
        • \(w^*, b^* = argminL(w, b)\)
        • 而找到这个函数\(f\)的方法就是使用\(Gradient\ Descent\)
    • Step 3: Gradient Descent

      • 步骤:

        • 一个参数

          • 随机选择一个初始的值\(w_0\)
          • 计算每一个权重的对应微分值
          • 更新\(w_1 =: w_0 - \alpha \frac{dL}{dw}|_{w=w_0}\)
        • \(w, b\)两个参数

          • 选择两个初始值\(w_0, b_0\)
          • 计算偏微分
          • 更新$w_1 =: w_0 - \alpha\frac{\partial L}{\partial w}|_{w=w_0, b=b_0} $
          • $b_1 =: b_0 - \alpha\frac{\partial L}{\partial b}|_{w=w_0, b=b_0} $
        • 关于gradient

          • 把偏微分写成一个向量之后这就是这个L的梯度。
        • visualization

      • 关于local minimum and global minimum

          • 对于Linear regression 来说仅仅存在一个global minimum,而不存在local minimum。
        • Formulation

      • 可以使用\(Loss\ Function\) 去得到error

      • 优化

        • 使用一个额外的features

        • 以及后面的四次方,等等等等

        • 过拟合(\(overfitting\)

          • 如果说feature越多,就意味着所蕴含的函数就越多,那么就更有可能去找到一个函数去拟合这组数据
          • 在训练集可以做的很好,但是在测试集上做的就不一定很好。
        • Let‘s do more data.

          • 当考虑到更多的数据时,会发现还有一种蕴藏的feature,比如Pokemon的物种。

            • image.png
            • 使用\(\delta\)去判断Pokemon的种类,这样就使用对应种类的参数。
          • 如果感觉还是不够优秀,那么我们就把所有的feature全部嵌入

            • image.png
            • 但是
          • 如何放置过拟合----使用Regularization

            1. 改变我们的\(Loss Function\)

            2. \(Regularization\)

              • 增加的那一项可以理解为故意增大\(Loss\ Function\)对函数\(f\)的差评,惩罚那些让拟合非常好的\(f\)

              • 引入\(\lambda\ \ regularization\)的目的是为了让拟合函数\(f\)的值变得更加平滑。所以这里我们不对\(b\)进行正则化惩罚,是由于\(b\)是截距,不会影响曲线的平滑度。

推荐阅读