当前位置: 首页 > article >正文

【深度学习详解】Task3 实践方法论-分类任务实践 Datawhale X 李宏毅苹果书 AI夏令营

前言

综合之前的学习内容,
本篇将探究机器学习实践方法论
出现的问题及其原因

🍎 🍎 🍎

系列文章导航

【深度学习详解】Task1 机器学习基础-线性模型 Datawhale X 李宏毅苹果书 AI夏令营
【深度学习详解】Task2 分段线性模型-引入深度学习 Datawhale X 李宏毅苹果书 AI夏令营
【深度学习详解】Task3 实践方法论-分类任务实践 Datawhale X 李宏毅苹果书 AI夏令营

本篇目录导航

  • 前言
      • 系列文章导航
  • 实践方法论
    • 问题描述:large loss on training data
      • 模型偏差
      • 优化问题
      • is 模型偏差 or 优化问题 ?
    • 问题描述:large loss on testing data
      • 过拟合【交叉验证】
      • 不匹配
  • Python 分类任务实践
  • Read more

实践方法论

在这里插入图片描述

本篇笔记 General Guide 从原视频课件进行修改:
李宏毅《机器学习/深度学习》2021课程 -> 机器学习任务攻略

问题描述:large loss on training data

训练数据的损失很大,显然它在训练集上面也没有训练好

模型偏差

鼠标右键 -> 在新标签页中打开图像
在这里插入图片描述

原因分析

模型过于简单

  • 该函数的集合太小了, 没有包含任何一个函数,
    可以让损失变低的函数不在模型可以描述的范围内。
  • 想要在大海里面捞针(一个损失低的函数),
    结果针根本就不在海里。
解决方案

给模型更大的灵活性

  • 增加输入的特征,即同时考虑更多训练数据
    (得到更有灵活性 flexibility 的函数)
  • 重新设计一个模型,使用深度学习
    (更多的 layer 层数)
    在这里插入图片描述

优化问题

鼠标右键 -> 在新标签页中打开图像
在这里插入图片描述

原因分析

优化器不给力

  • 优化器(梯度下降)在寻找代价函数最低点的过程,
    会出现局部最小值干扰,无法找到全局最小值。
  • 想要在大海里面捞针(一个损失低的函数),
    针确实在海里,但是无法把针捞起来。
    在这里插入图片描述
解决方案

尝试更强大的优化器,寻找损失低的函数
在这里插入图片描述

is 模型偏差 or 优化问题 ?

判断是 模型偏差 or 优化问题 ?

在这里插入图片描述

问题描述:large loss on testing data

训练数据上面的损失小,但在测试数据上的损失大

过拟合【交叉验证】

鼠标右键 -> 在新标签页中打开图像
在这里插入图片描述

原因分析

模型过于复杂

  • 模型灵活性过大,学习到了训练数据的噪声。
    (模型过于复杂,对数据过度适应)
    在这里插入图片描述
解决方案

增加训练集数据限制住拟合的模型
(往往是最有效的方向)

  • 需要增加额外的训练集数据(不容易。)
  • 不用增加额外的训练集数据(很建议!)
    data augmentation 数据增强:
    根据问题的理解创造出新的合理数据
    在这里插入图片描述

给模型更多的限制性

  • 减少输入的特征,即同时考虑更少训练数据
    (不要过大灵活性 flexibility 的函数)
  • 重新设计一个模型:减少参数 / 共用参数(可以让一些参数有一样的数值)
    eg. 神经元数量
  • 重新设计一个模型:使用更受限的模型。
    eg. 卷积神经网络(Convolutional Neural Network,CNN)
    是比全连接网络(fully-connected network)更有限制的架构
  • Early stopping 早停
  • Regularization 正则化
  • Dropout 丢弃法
    在这里插入图片描述

trade-off(权衡模型的灵活性和限制性)
比较合理选择模型的方法是:
将训练数据分成“训练集”和“进行模型选择的验证集”
即,
在训练集上训练出来的模型
会使用验证集来衡量分数和挑选模型,即基线(baseline)算法
(避免在公开的测试集上面频繁挑选模型导致的过拟合)
在这里插入图片描述

  • Cross Validation 交叉验证
    将训练数据按照百分比随机分成“训练集”和“进行模型选择的验证集”。例如:
    90%训练数据作为“训练集”,
    10%训练数据作为“进行模型选择的验证集”。
    在这里插入图片描述

  • N-fold Cross Validation N 折交叉验证
    将训练数据切成 n 等份,这件事情要重复 3 次:
    n - 1 份作为“训练集”,
    还有 1 份作为“进行模型选择的验证集”。
    在这里插入图片描述

不匹配

鼠标右键 -> 在新标签页中打开图像
在这里插入图片描述

原因分析

训练集和测试集的分布不同,
导致模型在测试集上的预测表现不佳。

在这里插入图片描述

解决方案

要对训练数据和测试数据的产生方式有一些理解,
确保重新收集的训练数据与数据数据的分布尽可能一致


Python 分类任务实践

baseline 教程
https://datawhaler.feishu.cn/wiki/M7tqwIHYdiz5ULkRkD9cPPWTntg

数据集 下载
【2023机器学习】的系列资料包括 视频、课件、代码等资源已经系统顺序命名并整理到百度网盘:
https://pan.baidu.com/s/1-zfs0wn5rccTRVk34YZWaA,提取码:2023。
来源:https://blog.csdn.net/qq_39975984/article/details/133103314


Read more

  • 李宏毅深度学习教程 LeeDL-Tutorial(苹果书)
    https://github.com/datawhalechina/leedl-tutorial
    李宏毅《机器学习/深度学习》2021课程(视频教程 24 h 46 min)
    https://www.bilibili.com/video/BV1JA411c7VT/

  • Hung-yi Lee (李宏毅) MACHINE LEARNING 2023 SPRING
    https://speech.ee.ntu.edu.tw/~hylee/ml/2023-spring.php
    作业数据集搬运:
    https://blog.csdn.net/qq_39975984/article/details/133103314
    https://github.com/keepstumz/LHY-ML


http://www.kler.cn/a/290821.html

相关文章:

  • Echarts连接数据库,实时绘制图表详解
  • 在vscode的ESP-IDF中使用自定义组件
  • Python选择题训练工具:高效学习、答题回顾与音频朗读一站式体验
  • 分享某大佬微信hook 最新版本 dll (懂得都懂)
  • STM32HAL库中RTC闹钟设置时分秒,年月日
  • 如何打造用户友好的维护页面:6个创意提升WordPress网站体验
  • 第九届“创客中国”生成式人工智能中小企业创新创业大赛招商推介圆满落幕
  • Maven与Gradle差异
  • 突破教材,简单聊聊《文件系统》
  • 开源 AI 智能名片 O2O 商城小程序:引入淘汰机制,激发社交电商新活力
  • 电子设计-基础3-电感与二极管
  • 深入探讨MySQL的MVCC机制
  • QT5记录 QHBoxLayout ScrollArea导致QLabel重新计算位置导致内容显示不全
  • Hadoop 下载
  • ArcGIS展线/投线教程
  • 金仓 KES Plus 不充会员也好用
  • 探索C++编程技巧:计算两个字符串的最长公共子串
  • 计算机工具软件安装攻略:Visual Studio Code下载、安装和使用
  • yolo 3d车辆目标检测(教程+代码)
  • Elasticsearch 中的相关性和得分
  • 工厂模式和策略模式的区别
  • nanogpt怎么进行模型切片,以实现推理过程算力共享,切多头
  • Apache Ignite 在处理大规模数据时有哪些优势和局限性?
  • STM32(F103ZET6)第十九课:FreeRtos的移植和使用
  • 探索Ansible自动化运维:提高效率的关键工具
  • 13.4告警抑制实例