第34章 数据融合异常 (2/3)
p; 当然,也可能是因为过拟合,数据泄露,这种普遍性的问题,只不过仅根据这次的输出日志来看,可能性不大。
“嗯......特征维度贡献方差过大?”划动滚轮的手指停下,周昀敏锐地看到了一条异常的输出。
说人话就是,模型在融合信息的时候没有一个轻重缓急,对所有模态的数据都一视同仁,平等对待了所有输入。
这在模态少的时候可能适用,因为数据输入之前,在无形之中其实是多了一个人工筛选的步骤。
比如你要预测股票的涨跌,相比于各种专家的视频分析,你可能会更加相信各种金融指标,所以你就会下意识地选择各种数字指标输入模型,而不是专家的视频分析。
这就隐含地为数据赋予了权重,虽然代码里没有,但它确实是真实存在的。
不过人工筛选终究是有一些小问题的,在金融这个反人类的领域,光凭经验很多时候容易做出错误的判断。
“也就是说,在数据融合的时候,缺少了一个‘智能筛选’的步骤,让模型知道,哪些数据重要,哪些数据不重要。”
“数据筛选.......”周昀手指轻轻敲打着桌面,思考着解决办法。
如果只是单纯的逻辑判断,肯定不行,这样太死板,还不如人来筛选。
置信度?
周昀想了一下,也觉得不行。
置信度其实就是模型对自己输出结果的把握大小,例如一个分类任务,最终模型的输出会在Softmax函数的作用下,变成一连串的概率,
比如分类到A的概率为80%,B任务的概率为10%以此类推。
那么置信度就是采用概率大于一定数值的结果。
这东西听上去玄乎,实际上也是一种比较死板的逻辑判断。
除了这两种,筛选数据的方法其实还有很多,不过周昀都不满意,因为这些方法从他们的底层逻辑来看,都没有达到他想要看到的“智能”。
突然,周昀手指一顿。
如果从另一方面来看,数据筛选,还可以看作是一种数据蒸馏。
数据蒸馏其实很好理解,蒸馏大家都知道,那么数据蒸馏就是通过某种手段将数据集提纯的方法。
恰好,周昀发在NeurIPS上的AgileEdge这篇论文里就有一种数据蒸馏的方法,因为想要缩小模型,就等于缩小参数量,两者之间其实有着异曲同工之妙。
直接拿过来用肯定不行,不过周昀感觉只要稍作修改,应该能达到他想要的效果,因为当初设计这种数据蒸馏方法的时候,就已经着眼于“智能”二字。
找到之前的论文代码,周昀直接将那段封装好的数据蒸馏方法copy过来,然后再根据现有的模型进行修改。
因为代码量不大,他就没有用AI,而且AI也未必能准确理解他要怎么改,不如自己动手。
直到晚上快到六点,他才靠着椅子,伸了个懒腰。
终于改完了。
划动着鼠标滚轮,看着已经成功运行的代码,他心里涌现出一股巨大的满足感。<
本章未完,请点击下一页继续阅读