先把工作细分
数据预处理
抹平分布等
数据增强
模型
PaSST
再说,没什么经验

半监督学习方法
MixMatch
MeanTeacher

Data Augment

日志

开个写每天干的啥

3.7
调通了baseline模型+mixmatch半监督学习方法的代码
模型准确率呈现先高后低的情况,不知道怎么回事

3.8
样本里基本没有前景声,对于mixup方案是否会有影响?
但是这个方案本来就是用在声音场景分类里的,可以试试
baseline的acc最高为0.961

修改baseline的lr策略,从指数退化改成先线性增加再指数退化
然后pse_training的时候acc就爆了,不知道为什么

把baseline训练的max_epoch改成40,acc来到了0.970

3.10
整理实验数据
用更大的cnn模型替换baseline模型(?
尝试用BEATs提取的特征做分类,加几层线性层做adapter
考虑到BEATs在ESC50数据集上已经很强了,有没有必要再finetune?

3.11
重新整理思路
半监督:mixmatch
加上数据增强方法(torchaudio现成)
域迁移:参考Dcase task1
采集设备域迁移问题
backbone:
给定的pretrain数据集+zelda pipeline+2020的task1模型

Dcase找到的方法的resnet解析
首先进行分片,按通道分成两份,Split1和Split2
然后是两条路下来,每条路好像是一样的

1
2
3
4
5
6
7
respath1 = resnet_layer(num_filters = 24, strides=[1,2])(Split1)
for stack in range(4)
for res_block in range(num_res_blocks = 2)
strides = 1
if stack > 0 and res_block == 0:
strides = [1,2]
convpath1 = self.resnetpath1[]

每个stack,num_filters x 2

第一个stack,stride=1
之后的stack,第一个res_block的strides=[1,2],num_filters倍增
这样做会让通道变多,时间维度变小
之后每个stack的第一个res_block会加avgPooling和padding

3.13
预训练,半监督训练了昨天写的ResNet
结果

1
val_loss:0.11   val_acc:99.71

相较第一版一共做了以下修改:

  • 更换模型
  • 修改输入(加入了一阶和二阶差分特征)
  • 添加mix-match数据增强方法

TODO:
增加应对域迁移的数据处理方法
增加测试模型数量

打算加一个Hu等人的(上面抄的ResNet)的另一个fCNN模型
搞出来100准确率难绷

加上域迁移的方法
初步设想是对于标签数据,采用先抽一个标签,然后在相同标签中抽两个样本混合的方法

下面找的是处理域迁移的方法:

残差正则化

https://dcase.community/documents/challenge2021/technical_reports/DCASE2021_Kim_36_t1.pdf
报告中指出,设备之间的差异主要体现在频域上,为了得到音频的泛化特征,使用(instance normalization by frequency)

报告提到直接使用这个会丢失分类的有效信息,所以加了个超参数,最后的方法:

沟槽的
整理一下已有的信息

只有所有城市混合的数据和对应的场景标签
INSURE这篇文章使用到了域分类器,需要数据的域标签
是否可以根据分类模型的输出,将同类的音频都分成不同的域

瞎几把想的方法:在特征上算两个同标签样本输出特征,计算压缩后的距离算loss?(结果没用
修改差分特征的添加方法:在数据增强操作之后添加差分特征

对同类不同城市的数据分类,找出城市的共通特征?
但是不同类别同一城市的特征也不一样