Post

机器学习的建模步骤以及如何调整模型

机器学习的建模步骤以及如何调整模型

基本概念

Machine Learning:Acquiring skill with experience accumulated/computed from data.

🪄Application:

  • Speech Recognition
  • Image Recognition
  • Speaker Recognition
  • Machine Translation

建模流程

  1. 收集训练数据: ${\left(\boldsymbol{x^1}, y^1\right),\left(\boldsymbol{x^2}, y^2\right), \ldots,\left(\boldsymbol{x^N}, y^N\right)}$

    其中 $x$ 代表训练数据的输入,即样本,$y$ 代表训练数据的输出,即真值

  2. 进行训练

    graph LR
    A("Step 1:<br>function with unknown<br>$$y=f_{\theta}(x)$$")
    B("Step 2:<br>loss from training data<br>$$L(\boldsymbol{\theta})$$")
    C("Step 3:<br>optimization<br>$$\boldsymbol{\theta}^*=\arg\  \min _{\boldsymbol{\theta}} L$$")
    A --> B
    B --> C
    

    其中训练集需要进一步拆分出一个验证集(validation set),其他的数据集用于训练模型,为了更加充分地利用训练集,我们可能会做 k 折交叉验证(k-fold Cross-Validation)

  3. 将训练好的模型运用到测试集中,在一般的数据挖掘和预测的平台,例如 Kaggle,一般只提供 public testing set,而对 private testing set 是隐藏起来避免用户训练模型只是恰好在 public testing set 中的效果好,而在未知数据集上表现一般

    Testing data: ${\left(\boldsymbol{x^{N+1}}, \hat{y}^{N+1}\right),\left(\boldsymbol{x^{N+2}}, \hat{y}^{N+2}\right), \ldots,\left(\boldsymbol{x}^{N+M}, \hat{y}^{N+M}\right)}$

    一般而言,我们规定 $y$ 代表真值(ground truth),而 $\hat{y}$ 代表预测值(predict value)

调整模型

我们可以按照下面的这个流程进行处理

image-20241003202510975

👨‍🏫对图示进行部分解释和补充

  1. model bias vs optimization issue

    • model bias 即模型偏差,是由于 建模过于简单,不够有弹性 导致模型在训练集上训练时,无论怎么改变模型参数,误差仍然很大
    • optimization issue 即优化问题,由于在使用 GB 算法存在一个 local minima(局部极小值) 的问题,所以我们可能找到的参数(或参数向量)并不是一个很好的解,导致误差很大

    如何判断是 model bias 还是 optimization issue?

    多添加几个层数更少的 model 进行对比,如果深层神经网络比浅层神经网络误差更大,那么我们考虑此时深层圣经网络没有参数优化没有做好

  2. overfitting 只有当我们在做测试时才能判断误差是由过拟合产生的

This post is licensed under CC BY 4.0 by the author.