L02_机器学习任务攻略

Framework of ML

训练模型的过程分为三个步骤

  • 写出一个具有未知数的Functiony=fθ(x)θ表示模型中的所有的未知参数。
  • 定义损失函数L(θ),函数的输入就是一组参数,用来判断这一组参数的好坏。
  • 进行最优化,寻找让损失函数最小的参数θ

怎样将模型训练的更好

训练模型指导

情况一:在训练数据集的Loss比较大

1. 模型过于简单,相当于在大海捞针,但是针不在大海中。

解决方法:增加模型的弹性。

  • 增加输入的Features

  • 使用深度学习,使用更多的neurons和layers。

  • Optimization Issue,最优化做的不够好,虽然存在最优的θ,但是设计的最优化方法并不能找到,相当于针在海里,但是无法找到。

    解决方法:使用更加强大的优化技术。

2. 怎么判断是哪一个问题呢?

通过比较不同的模型,来得知自己的model够不够大。

  • 从一个弹性比较小的神经网络(或者其他模型)出发,因为这些模型比较容易进行最优化,一般不会出现失败的情况。
  • 然后设计一个更深的神经网络,如果更深的弹性更大的神经网络还没有弹性较小的神经网络得到的Loss小,那就说明是Optimization Issue。

情况二:在训练集的Loss较小,但是在测试集的比较大

Overfitting

举例说明原因

举一个比较极端的例子:

Trainingdata:(x1,y^2),(x1,y^2),,(xN,y^N)f(x)={y^i=xrandomotherwise

​ 这个函数在训练集上的Loss为0,但是在测试集上的Loss比较大。

另一个比较可能的原因是训练资料太少,出现了类似于插值函数中的龙格现象的问题。

解决方法:
  1. 对训练数据集进行修改。

    • 增加训练数据的量;

    • 进行Data augmentation,对原有的数据进行合理的修改;

  2. 对模型进行修改,选择弹性较小的模型,给自己的模型进行限制(不能给出太大的限制)。

    • 使用更少的参数,共享相同的参数
    • 使用更少的features
    • Early stopping
    • Reguarization
    • Dropout
posted @   Porin  阅读(50)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程
点击右上角即可分享
微信分享提示