系列文章目录

李宏毅ML-2021hw1


文章目录

  • 系列文章目录
  • 问题概述
  • 实验部分
    • Simple Baseline (acc>0.45797)
    • Medium Baseline (acc>0.69747)
    • Strong Baseline (acc>0.75028)
    • Boss Baseline (acc>0.82324)
  • Report Questions
  • 总结
    • 对于train_ratio的划分

问题概述

这个问题刚开始读了好久才读懂…记录一下

这是一个41分类的问题。根据一帧前后的其他帧判断当前帧是属于哪个phoneme。有关由一段音频信号切分成帧一帧的数据处理是已经写好了的,用的是MFCC。
具体来说,就是用之前和之后的k个frame(frame是人为切分一段音频并经过处理得到的MFCC,即每个frame用39个特征表示,即dim=39。有关frame的个数:total 2k+1 = n frames,这个k是可以根据数据特征指定的。综上,一个feature为39*n)预测中间的那个frame的label(phoneme类别)

数据集介绍:

test_split指出了哪些是属于test集合,相当于只是存了一堆标号,真正的数据是在test文件夹里,train同理。其中每一个文件的格式为T×39的tensor。最后构造出来的输入矩阵X为(len,39×n),n为用前后k个frame预测中间一个frame(n=2k+1),需要把本来的len×39数据构造成len×39×n的。len为数据条数
train_label是给出了整个输入序列的每一个frame的label,也就是每一个数据的label是长度为T的vector


实验部分

Simple Baseline (acc>0.45797)

老师ppt提示:sample code

运行源代码
值得一提的是这次给出的源代码整体结构比之前的更清晰。

Medium Baseline (acc>0.69747)

ppt:concat n frames,add layers

concat_nframes参数设置+网络架构改变+学习率设置:
concat_nframes的意义即一个phoneme占用了多少frame
对train_labels.txt文件进行统计,发现每一个phoneme占用的frame均值是9个,因此可以将concat_nframes参数设置为>9(必须为奇数),经尝试可以将concat_nframes设置的大些,这里我设置为17。
由于之前的simple baseline代码明显欠拟合,说明模型有些简单了,所以调整网络架构,稍微变宽和变深。

为了迎合更复杂的模型,学习率也稍微调整的大些(如果调大batch_size学习率也是要对应调大,具体原因见李宏毅老师视频第二节)。
本地运行结果:最后的acc为0.703,感觉再多训练几轮应该还能更好,但已经过medium baseline了就先这样吧

下面是提交后的结果(在测试集上甚至比训练集高了一丝丝)

下面这个是我在middle baseline上几乎是极限的操作了
这个训练多了会明显过拟合(train acc提高但val acc下降),只训练了3轮,看之后加点dropout和BN会有啥结果

提交结果:

Strong Baseline (acc>0.75028)

ppt:concat n frames,batchnorm,dropout,add layers
medium baseline 单纯的加了batchnorm和dropout,效果明显变好,能训练到10次了,而且感觉acc还能继续提高一些

为了变得更好,继续加入余弦退火学习率
好了一些,但距离strong baseline还有一段距离

调整batch size=2048,train集:val=0.9.最后acc=0.747,又变好了一些但还没到strong baseline。感觉是有点过拟合,因为训练集acc上升但val不变了(或者是模型复杂?)。反正之后打算再加一点dropout

提交结果差一丝丝

dopout(0.35)终于过双strong baseline了,好耶!
跑了一个小时,最后终于艰难的被困在critical point挣扎不出去呜呜,本地acc最后为0.756

提交终于过了嘿嘿

事已至此!总结一下strong baseline的参数:
(1)超参数:

(2)网络:

(3)余弦退火学习率:
其实这个我真不太会用,参数都没调,就设置了个大概常规值吧(主要是跑的太慢了实在要命)

scheduler = torch.optim.lr_scheduler.CosineAnnealingWarmRestarts(optimizer, T_0=8, T_mult=2, eta_min=learning_rate/2)

Boss Baseline (acc>0.82324)

ppt:sequence-labeling(using RNN)
这个等之后看到RNN再来完善

Report Questions


Q1
A:按照hidden_layers=6,hidden_dim=1024修改网络(窄、深)
acc:0.696,没有B方案好

B:按照hidden_layers=2,hidden_dim=1700修改网络(宽,浅)
acc:0.706。但看这个数据分析应该是有点过拟合了,下一波加dropout和BN试试

提交结果蛮好的:

总结:在simple baseline的基础上,只加了concat_nframes = 17做的,最后平衡了网络的宽窄深度,得到middle baseline。
Q2
A:dropout(0.25),具体见middle中间那次实验

B:dropout(0.5)
到acc=0.749的时候gpu资源用完了,但估计肯定没有0.35好,至于中间还有没有更好的,不好说,但估计不会有很大的本质上变化。倒是比0.25好了一点点哈哈

C:跑的实在太慢了不想测试0.75的了应该不会太好吧
总结:
不变量:在middle baseline的基础上加入dropout层,BN,余弦退火学习率,batch_size = 2048,num_epoch = 50,train_ratio = 0.9。
变量:dropout
思考实验结果得到strong baseline


总结

和hw1比成长多了呜呜。感觉自己对数据处理这里不太会

对于train_ratio的划分

分出训练集和测试集的策略:传统机器学习将整体20%-30%作为测试集,但这适用于总体数据量规模一般的情况(如100-10000个样本),在大数据时期,分配比例会发生变化,如100万数据时,训练:验证:测试=98:1:1;超过百万时,训练:验证:测试=95:2.5:2.5。(观点来自吴恩达机器学习)

李宏毅机器学习2022-hw2相关推荐

  1. 李宏毅机器学习2022 HW1

    李宏毅机器学习2022版 Homework1 新冠阳性人数预测,根据前四天的数据,预测第五天的阳性人数.(回归) 首先下载数据集 !gdown --id '1kLSW_-cW2Huj7bh84YTdi ...

  2. 李宏毅机器学习2022年春季班马上开始,深度学习圣经《深度学习》下载。

    李宏毅(Hung-yi Lee)目前任台湾大学电机工程学系和电机资讯学院的助理教授,他曾于2010 年和2012 年分别获得台湾大学硕士和博士学位,并于 2013 年赴麻省理工学院(MIT)计算机科学 ...

  3. 李宏毅机器学习2022.07.15--误差

    1.误差 误差的来源一般来自于偏值与方差 f^ 为真实的模型,f为理想模型.f是f^ 的一个预估.而二者之间的差距是由偏值和方差所产生的. 1.2 偏差的评估 假设 x的平均值是μ,方差为 σ^2 . ...

  4. 【李宏毅机器学习2021】Task04 深度学习介绍和反向传播机制

    [李宏毅机器学习2021]本系列是针对datawhale<李宏毅机器学习-2022 10月>的学习笔记.本次是对深度学习介绍和反向传播机制的学习总结.本节针对上节课内容,对batch.梯度 ...

  5. 【李宏毅机器学习2021】Task01 机器学习介绍

    [李宏毅机器学习2021]本系列是针对datawhale<李宏毅机器学习-2022>的学习笔记.本次是对机器学习介绍的学习总结.本节通过学习视频了解到李老师对机器学习课程的整体安排,介绍了 ...

  6. 李宏毅2021/2022春机器学习课程(机器学习基本概念简介)

    (强推)李宏毅2021/2022春机器学习课程_哔哩哔哩_bilibili 目录 1.机器学习是什么? 2.机器学习任务 2.1 regression回归问题 2.2 classification分类 ...

  7. 李宏毅机器学习课后作业(hw2)

    李宏毅机器学习课后作业(hw2) 直接上代码 import numpy as np np.random.seed(0) X_train_fpath = "C:\\Users\\13554\\ ...

  8. python线性回归预测pm2.5_线性回归预测PM2.5----台大李宏毅机器学习作业1(HW1)

    一.作业说明 给定训练集train.csv,要求根据前9个小时的空气监测情况预测第10个小时的PM2.5含量. 训练集介绍: (1).CSV文件,包含台湾丰原地区240天的气象观测资料(取每个月前20 ...

  9. 李宏毅机器学习作业6-使用GAN生成动漫人物脸

    理论部分参考:​李宏毅机器学习--对抗生成网络(GAN)_iwill323的博客-CSDN博客 目录 任务和数据集 评价方法 FID AFD (Anime face detection) rate 代 ...

  10. 李宏毅机器学习的数据下载解决方法——如何避开使用!gdown

    文章目录 2023补充相关资源地址 原文 作业一: 作业二: 作业三: 2023补充相关资源地址 (1)李宏毅老师的机器学习网站:https://speech.ee.ntu.edu.tw/~hylee ...

最新文章

  1. 什么是多项式时间?什么是NP问题?
  2. redis设置为控制台打印日志
  3. centos7安装nginx和php,centos7安装nginx1.10和php7
  4. android html 显示表格边框,tablelayout表格布局详解
  5. 盲审不到4分的论文竟中了ICLR 2019??!!ICLR 2019官方这样回应
  6. JBoss3.0 下配置和部署EJB简介
  7. 离散数学蕴含等值式前件为假时命题为真的理解
  8. python爬虫简历项目怎么写_爬虫项目咋写,爬取什么样的数据可以作为项目写在简历上?...
  9. 斯坦福大学吴恩达机器学习教程中文笔记——目录
  10. 电视剧《大秦赋》最近很火!于是我用Python抓取了“相关数据”,发现了这些秘密.........
  11. 英文写作佳句300例
  12. 局域网内的ARP断网攻击
  13. java 2048思路_浅谈2048
  14. 杂记之视频监控基础之IPCAM
  15. 在pycharm中如何使用pyinstaller
  16. 首例 3次IPO:前2次申请科创板、创业板均撤回、第3次改为主板、难圆其说变更保代及券商……
  17. Markdown 语法学习
  18. ARM芯片选型的一些建议
  19. jmeter导入jar包提示错误:ERROR o.a.j.JMeter: Uncaught exception
  20. 三菱Q程序程序 用三菱Q系列和威纶触摸屏编写

热门文章

  1. 终极算法【6】——贝叶斯学派
  2. 在Kali Linux上安装LOIC
  3. Ubuntu的版本号命名规则
  4. Java中级工程师面试题
  5. 在线解方程软件集合(收藏)
  6. 网络工程师——正则表达式(模糊匹配)
  7. leslie人口预测模型matlab代码,leslie模型人口预测程序,请求大家!
  8. 星痕 轻松实现大屏数据可视化_数据可视化的一些思考丨如何做出令人满意的大屏可视化设计(一)...
  9. golang java 对比_golang编程语言和java的性能对比
  10. Cisco iOS的两种配置文件(思科命令的保存)