可以说这一周是我度过的最折磨的一周了,往前追溯,可能要到九月份的时候,那时候需要三线程打工,这一周需要做的事情虽然基本上是单线程,但是可以说是有过之无不及。
考试#
具体来说,这一周迎来了本学期最难的两个考试之一,也就是现代控制方法的考试,而我复习的时间只有三天。所以说周日简单的把全书看了一遍,然后周一就开始刷题,把全部题目全都看懂了,之后星期二开始整理知识点,写成 cheatsheet 的形式,这样一方面可以考前再看一遍,一方面也可以加深记忆。按照知识点背了五六遍,然后重新开始作业题,刷了两遍,就急匆匆去考试了。考试感觉下来一般,属于是差不多答出来了,但是能有多少分还是听天由命。
之后星期三上午考完试,下午立刻转去完成一个实验报告,准确的说是 DSP 的实验结果报告。可以说这个是比较离谱的,具体来说,我们处理的是 EEG 信号的分类任务,可以理解为脑电识别,或者说时序信号处理。本身肯定是不难做的,毕竟之前其实处理过其他的东西,包括说从时域去分析音频信号,以及去提取频率特征。本来可以说 EEG 信号处理,按照我的理解来说,就是一个正常的在时域上进行处理,可以说看上去是人畜无害,而且更何况之前已经有了音频的经验。我本身是一个连接主义者,所以也除了老师要求的特征提取的方案之外,也尝试了直接降采样并且进行分类,结果是效果很差。可以说全部的方法在 EEG 信号上都是不奏效的,经过我的一些技巧之后,模型可以在训练的早期快速收敛,但是这是仅仅在训练集上的,而测试集的准确度依然离谱,只有 50% 左右。要注意的是,这是一个二分类的任务,这约等于随机猜测。后来我了解了这个领域,发现了一个很离谱的 setting(毕竟我也有复现很多的论文,这些论文在文章里面汇报的点数高达 99%,但是复现出来的结果不到 50%),那就是他们的训练的 train test split 并不是直接把数据集进行划分,而是把一条数据里面的一部分作为训练集,另一部分作为测试集。可以说是十分的离谱了,我们之前已经有 setting 去把同属于一个人的数据分到训练集和测试集来确保模型对于全部的被试都有一个记忆能力(毕竟据说目前这个领域的结果还是依赖于个人以及时效性),通过这种设置来降低模型泛化的难度。不过尽管如此,这个 setting 依然过于不合理了。按照人来划分 train 和 test 还可以说只是一个 split 的 policy,但是在一条数据里面划分,可以说是完全不合理的。一条数据的前后,他们只把前 3s 的数据作为训练,可以说这 3s 的数据包含的特征一定在之后出现过,那么在之后的分类任务中,可以说完全就是 train 以及 test 是同一个分布了,那还有什么过拟合的难度呢?放回到现实的应用里面,等于说这种脑电的“读心”操作,需要被试先说出来自己刚才的感受,才能判断接下来的感受,那有啥用呢?堪称弱智。这个数据集叫做 DEAP,感觉读者看后可以避雷,而这个数据集作为 EEG 领域最流行的数据集之一,居然还有大量的人去刷,而且乐此不疲,实在是难以让人接受。之后换了一个别的数据集,DEAP 是判断人的心情,而这个新的是通过刺激人的身体来判断被刺激的部位,合理了不少,也成功做出来了。第二天到了 DSP 的展示上面,直接进行了大量的批驳,对于整个的领域。并且还是惊讶地发现,大多数同学都没有去做这个,而是选择了 DSP 的另一个可以选择的课题,也就是说话人识别(以及部分甚至就是直接炒冷饭,选择了孤立字识别,可以理解为说一个数字,然后识别数字(0~9),是之前的任务,加上包装一个 UI,不过可以说这个东西我在 DSP 实验的第一节课,甚至就已经做完了包括 UI 的东西了,一个组的工作量居然如此,实在是令人摸不到头脑)。
在做完了 DSP 之后,接下来紧接着就是 CVPR 的实验(这里的 CVPR 说的是我们的课程,而非那个知名的学术会议)以及现代控制方法的实验,其中 CVPR 可以说还算简单,做目标检测,跑一下模型,然后写一个报告,可以说是非常轻松,按照要求写了一个 HOG+SVM 的复现,以及用 YOLOv8 跑了一下数据,凑了一个看上去十分好看的实验报告。而现代控制方法的实验,可以说是非常离谱,因为老师要求我们用 MATLAB 去写一个控制器以及观测器,然后去控制一个二阶倒立摆,并且需要用 MATLAB 的 Simulink 去写。最后也是在同学的帮助下,借鉴了不少的代码,以及自己又稍微调优了一点点,做了一点点的差异性,然后提交上去了。可以说我对于 MatLab 还是不是很擅长的,至于用 Python 去写这个东西,更是我完全不想去做,所以还是算了吧,差不多得了。
所以读者可以试想,星期三考完试,前几天也一直在通宵,之后星期三晚上通宵写 DSP,写完实验再自己写 PPT,然后星期四早上汇报 DSP,汇报之后简单睡一小会,就去通宵写 CVPR 的实验,写成实验报告第二天交,然后再写 MatLab 的现控实验,这时候已经星期六了。周六的下午又是六级考试,所以说又需要临阵磨枪刷一刷手感,刷了两套题,之后匆匆去考试。在这些事情的间隙中,我还需要兼顾上海那边的事情,甚至不能说是兼顾,可以说是我主要做的事情。
科研#
上海那边一方面要改自己的代码,一方面还要和其他的同学来对接,可以说是工作量十分的大,而我这一周关键还生病了,长期的熬夜让我的身体状态十分差,已经是有点不行了,但是还是需要带病继续工作,但是毕竟是科研,我也乐在其中吧。
这就是这周发生的事情,有点离谱,有点劳累,但是日子总还要继续。大量的实验基本上都已经处理掉了,接下来就是复习考试,以及期末考试了。与此同时推进上海这边的进度。希望人没事。