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

【深度学习详解】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.lryc.cn/news/432977.html

相关文章:

  • 乐凡北斗 | 手持北斗智能终端的作用与应用场景
  • Linux:线程互斥
  • misc流量分析
  • Linux驱动(五):Linux2.6驱动编写之设备树
  • 算法【Java】 —— 前缀和
  • python网络爬虫(四)——实战练习
  • tio websocket 客户端 java 代码 工具类
  • 通过卷积神经网络(CNN)识别和预测手写数字
  • 【A题第二套完整论文已出】2024数模国赛A题第二套完整论文+可运行代码参考(无偿分享)
  • 一份热乎的数据分析(数仓)面试题 | 每天一点点,收获不止一点
  • 3 html5之css新选择器和属性
  • 【Kubernetes】K8s 的鉴权管理(一):基于角色的访问控制(RBAC 鉴权)
  • 保研 比赛 利器: 用AI比赛助手降维打击数学建模
  • 秋招校招,在线性格测评应该如何应对
  • chrome 插件开发入门
  • 揭开面纱--机器学习
  • Python中的私有属性与方法:解锁面向对象编程的秘密
  • 开篇_____何谓安卓机型“工程固件” 与其他固件的区别 作用
  • DBeaver 连接 MySQL 报错 Public Key Retrieval is not allowed
  • 三个月涨粉两万,只因为知道了这个AI神器
  • vulhub GhostScript 沙箱绕过(CVE-2018-16509)
  • 李宏毅机器学习笔记——反向传播算法
  • 内推|京东|后端开发|运维|算法...|北京 更多岗位扫内推码了解,直接投递,跟踪进度
  • 编写Dockerfile第二版
  • 校验码:奇偶校验,CRC循环冗余校验,海明校验码
  • 增维思考,减维问题,避免焦虑!
  • 自动化抢票 12306
  • 海外云服务器安装 MariaDB10.6.X (Ubuntu 18.04 记录篇二)
  • Mybatis_基础
  • 8Manage采购申请管理:轻松实现手动采购流程自动化