【李宏毅 DLHLP 深度学习人类语言处理 HW1】

李宏毅 DLHLP 深度学习人类语言处理 HW1

  • 相关资料
  • HW1
  • 更多尝试
    • 1, 加深encoder:4层LSTM
    • 2, 加深encoder(4层LSTM)和加深decoder(2层LSTM)
    • 3, cnn代替vgg
    • 4, 再次加深decoder(4层LSTM)

语音小白在网上没有找到这门课的作业分享,那就记录一下自己的作业吧。

相关资料

课程官网:https://speech.ee.ntu.edu.tw/~hylee/dlhlp/2020-spring.php
作业github代码1:https://github.com/Alexander-H-Liu/End-to-end-ASR-Pytorch
作业github代码2:https://github.com/DLHLP2020/hw1-speech-recognition/tree/master
其中代码1是你用来跑模型写作业的代码,代码2只是辅助,帮你eval结果和把答案转换成提交要求格式。
提交作业kaggle网站:https://www.kaggle.com/competitions/dlhlp2020spring-asr/leaderboard
目前还是可以提交的,选late submmission,不会参与打榜。

首先大家好好听课,然后按照课件说明去下载作业slide、数据、github代码,最后按照作业slide一步一步往下走就可以。作业总体思路就是尝试不同元素的LAS模型:
Listen = encoder
Attention = Attention
Spell = Decoder

在作业里,会让你尝试
1,用最基础的seq2seq
2,在训练模型时,encoder部分叠加使用CTC,别的部分保持不变,所以loss会变成CTC+seq2seq混合loss
3,CTC joint的模型,decoder只用CTC
4,decoder部分,借助LM
5,不同beam size的效果

HW1

1,Train a seq2seq attention-based ASR model. Paste the learning curve and alignment plot from tensorboard. Report the CER/WER of dev set and kaggle score of testing set. (2 points)

一开始的时候,成绩很烂啦,虽然alignment plot看起来还挺合理的,不过打不过baseline
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
提交到kaggle上,成绩是这样的,比baseline烂不少
在这里插入图片描述

2,Repeat 1. by training a joint CTC-attention ASR model (decoding with seq2seq decoder). Which model converges faster? Explain why. (2 points)

这里我用的CTC weight是0.3,可以看到joint CTC-attention ASR收敛更快,而且模型效果更好。网上搜了一下,大概原因是ASR中attention是非常非常灵活的,joint CTC-attention相当于在前期encoder部分就做了对齐,所以会更快收敛,效果也更好。
在这里插入图片描述
在这里插入图片描述

这个时候结果已经可以比baseline好了在这里插入图片描述3,Use the model in 2. to decode only in CTC (ctc_weight=1.0). Report the CER/WER of dev set and kaggle score of testing set. Which model performs better in 1. 2. 3.? Explain why. (2 points)

1,2,3里面应该是2结果最好,因为2的decode有了CTC的帮助,但3中纯粹用CTC decode的话,就像老师在课上讲的,CTC不考虑前面的输出,效果不会特别好,往往需要后处理。

作业slide里面说CTC decode后的结果要再处理一下,但是我看结果没有什么重复和空的地方,应该是助教后期写好了吧,以下是eval的结果:
在这里插入图片描述

kaggle提交结果如下,还挺惊讶3的效果比1好。
在这里插入图片描述

4,Train an external language model. Use it to help the model in 1. to decode. Report the CER/WER of dev set and kaggle score of testing set. (2 points)

这里我的lm训练了超级久都没有结束,但我看ckpt里面模型早就不再更新,所以就手动停止了程序。
decode的时候,我的lm weight取的0.5。最后的结果,只能说比1提升了一点吧,比不过CTC,离baseline还很远,可能是我的LM不太好的原因。
在这里插入图片描述
在这里插入图片描述

5,Try decoding the model in 4. with different beam size (e.g. 2, 5, 10, 20). Which beam size is the best? (2 points)

这里我只有beam size从2加到5的时候,private score有了一个相对明显的提升,beam size再提升的时候,效果就不再提升反而略微下降。用2中的model,尝试了beam size 5和10,不知道为什么,也没有见到模型效果的提升。

beam size 5
在这里插入图片描述在这里插入图片描述

beam size 10
在这里插入图片描述
在这里插入图片描述
beam size 20
在这里插入图片描述
在这里插入图片描述

更多尝试

1, 加深encoder:4层LSTM

因为作业2中的模型效果最好(CTC joint 训练,decoder时只使用seq2seq,不使用CTC),首先先尝试在这个基础上加深encoder重新训练,从一开始的2层LSTM加深为4层LSTM

  encoder:prenet: 'vgg'                         # 'vgg'/'cnn'/''# vgg: True                             # 4x reduction on time feature extractionmodule: 'LSTM'                        # 'LSTM'/'GRU'/'Transformer'bidirection: Truedim: [512,512,512,512]dropout: [0,0,0,0]layer_norm: [False,False,False,False]proj: [True,True,True,True]      # Linear projection + Tanh after each rnn layersample_rate: [1,1,1,1]sample_style: 'drop'                  # 'drop'/'concat'

最后效果如下 (beam size = 10):
提升不明显,看Loss,训练时收敛得慢一些
在这里插入图片描述在这里插入图片描述

2, 加深encoder(4层LSTM)和加深decoder(2层LSTM)

在尝试1的基础上加深decoder,从原来的1层LSTM变为2层LSTM,效果有了一个明显的提升
在这里插入图片描述
在这里插入图片描述

3, cnn代替vgg

encoder中的vgg使用cnn,其余与2中相同
在这里插入图片描述在这里插入图片描述

4, 再次加深decoder(4层LSTM)

在尝试2的基础上再次加深decoder,从2层LSTM变为4层LSTM,效果变差了
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/14306.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于SpringBoot+Vue的学习平台设计与实现(源码+LW+部署文档等)

博主介绍: 大家好,我是一名在Java圈混迹十余年的程序员,精通Java编程语言,同时也熟练掌握微信小程序、Python和Android等技术,能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架…

tinkerCAD案例:23.Tinkercad 中的自定义字体

tinkerCAD案例:23.Tinkercad 中的自定义字体 原文 Tinkercad Projects Tinkercad has a fun shape in the Shape Generators section that allows you to upload your own font in SVG format and use it in your designs. I’ve used it for a variety of desi…

Blazor前后端框架Known-V1.2.8

V1.2.8 Known是基于C#和Blazor开发的前后端分离快速开发框架,开箱即用,跨平台,一处代码,多处运行。 Gitee: https://gitee.com/known/KnownGithub:https://github.com/known/Known 概述 基于C#和Blazor…

Linked List

文章目录 链表定义专业术语代码链表分类常见算法链表创建和常用算法 链表总结 链表 补充知识 typedef 给类型换名字,比如 typedef struct Student {int sid;char name[100];char sex; }ST;//ST就代表了struct Student //即这上方一大坨都可以用ST表示 //原先结构体…

Springer独立出版 | 2023年触觉与虚拟现实国际会议(ICHVR 2023)

会议简介 Brief Introduction 2023年触觉与虚拟现实国际会议(ICHVR 2023) 会议时间:2023年12月15日-17日 召开地点:中国北海 大会官网:www.ichvr.org 2023年触觉与虚拟现实国际会议(ICHVR 2023)由东南大学、上海交通大学联合主办;…

PHP使用Redis实战实录4:单例模式和面向过程操作redis的语法

PHP使用Redis实战实录系列 PHP使用Redis实战实录1:宝塔环境搭建、6379端口配置、Redis服务启动失败解决方案PHP使用Redis实战实录2:Redis扩展方法和PHP连接Redis的多种方案PHP使用Redis实战实录3:数据类型比较、大小限制和性能扩展PHP使用Re…

ajax概述

目录 1.什么是ajax 2.ja原生ajax 3.jQuery框架的ajax 4.综合案例 1.什么是ajax Ajax 即"Asynchronous Javascript And XML"(异步 JavaScript 和 XML),是指一种创建交互式网页应用的网页开发技术。Ajax 异步 JavaScript 和 XML&…

多线程(JavaEE初阶系列5)

目录 前言: 1.什么是定时器 2.标准库中的定时器及使用 3.实现定时器 结束语: 前言: 在上一节中小编给大家介绍了多线程中的两个设计模式,单例模式和阻塞式队列模式,在单例模式中又有两种实现方式一种是懒汉模式&a…

初识TDMQ

目录 一:需求背景二:相关文档三:验证TDMQ广播消息 一:需求背景 目前公司需要将决策引擎处理的结果, 一部分数据交给下游分析/入黑/通知等功能。因此就需要决策引擎生产结果让多方下游去消费。 而我需要实现下游的一部…

STM32使用HAL库BH1750光照度传感器

开发环境 单片机:STM32F103C8T6 光照度传感器:BH1750 IDE:KEILSTM32CUBEMX 单片机配置 1、STM32CUBEMX BH1750代码 1、头文件 /* ************************************************* BH1750光照数据计算(LUX) …

Shell脚本实现分库分表操作

目录 一,分库备份 二,分库操作 三,分库分表备份 四,备份还原 一,分库备份 #!/bin/bash mysql_cmd-uroot -pzly666666 bak_path/backup/db [ -d ${bak_path} ] || mkdir -p ${bak_path}mysql ${mysql_cmd} -e show…

解决Django报错 : No module named ‘MySQLdb‘

Django的版本是2.0,Python的版本号是3.6.4 在models.py创建好了模型类之后使用命令:python manage.py makemigrations 进行迁移,但是突然报错:ImportError:No module named MySQLdb 查询了相关资料发现python2.x版本是支持mysql…

Linux - PostgreSQL 适用于9.x 以上的 tar.gz 源码安装与理解 - 报错集锦

这里写目录标题 序言主要内容bash 配置文件个人理解关于初始化 PostgreSQL 数据库的理解 启动方法检查服务器是否在PostgreSQL中运行关闭 postgresql 数据库方法参考链接 序言 PostgreSQL 9.x 以下版本笔者没用过,具体操作看参考链接,笔者就不记录重复操…

回答网友 修改一个exe

网友说:他有个很多年前的没有源码的exe,在win10上没法用,让俺看一下。 俺看了一下,发现是窗体设计的背景色的问题。这个程序的背景色用的是clInactiveCaptionText。clInactiveCaptionText 在win10之前的系统上是灰色,但…

幅度调制与角度调制

文章目录 前言一、调制简介1、调制定义2、调制目的3、调制的分类 二、幅度调制(线性调制)1、幅度调制的一般模型2、常规双边带调幅 AM①、AM 信号的产生②、AM 调制器的模型③、AM 波形和频谱④、AM 信号的特点⑤、AM 包络检波⑥、调幅系数 3、抑制载波双…

Java中对Redis的常用操作

目录 数据类型五种常用数据类型介绍各种数据类型特点 常用命令字符串操作命令哈希操作命令列表操作命令集合操作命令有序集合操作命令通用命令 在Java中操作RedisRedis的Java客户端Spring Data Redis使用方式介绍环境搭建配置Redis数据源编写配置类,创建RedisTempla…

推荐带500创作模型的付费创作V2.1.0独立版系统源码

ChatGPT 付费创作系统 V2.1.0 提供最新的对应版本小程序端,上一版本增加了 PC 端绘画功能, 绘画功能采用其他绘画接口 – 意间 AI,本版新增了百度文心一言接口。 后台一些小细节的优化及一些小 BUG 的处理,前端进行了些小细节优…

Spring依赖注入和ioc在spring中的实现方式

目录 一、依赖注入 1.IOC思想 2.什么是依赖注入? 3.实例化对象中有pojo类型属性 二、IOC在Spring中的实现方式 1.获取bean的三种方式 1.1根据bean的id获取 1.2根据bean的类型获取(最常用,因为在IOC容器中,一个类型的bean只…

<MySQL> Centos 7环境安装MySQL

Centos 7环境安装MySQL 1.卸载不要的环境 停止MySQL服务 systemctl stop mariadb.service systemctl stop mysqld禁止MySQL服务开机自启 systemctl disable mysqld卸载MySQL软件包 yum remove mysql-server mysql-client删除MySQL数据目录 rm -rf /var/lib/mysql清理MySQ…

[golang gin框架] 42.Gin商城项目-微服务实战之后台Rbac微服务角色增删改查微服务

一.重构后台Rbac用户登录微服务功能 上一节讲解了后台Rbac微服务用户登录功能以及Gorm数据库配置单独抽离,Consul配置单独抽离,这一节讲解后台Rbac微服务角色增删改查微服务功能,Rbac微服务角色增删改查微服务和后台Rbac用户登录微服务是属于…