深度学习网络中有没有什么技巧可以人为地提高或者降低权重?

359 天前
 LeeReamond

自己搞网络,有 A 和 B 两部分独立数据与结果 C 相关,如果通过指定领域的先验经验的话,A 数据和结果关联性更大一些。不知道有没有什么技巧可以让网络更多地关注 A 而更少地关注 B ?

  1. 比如我现在有的输入,分别是用户评价(自然语言序列数据),以及结构化的用户关系图,我能否让网络的结果更多地受前者(或后者)的影响?

  2. 或者另外一个问题,比如我的关系图是树状的,是否有办法人为地让注意力更靠拢根节点而忽略叶子节点?

我想了想,各种各样的注意力机制,比如用自注意力层这种的话,似乎没听说过人为能怎么干预的。似乎只能让网络自己去学校,如果人类认为数据 A 与结果相关性更高,网络给出相反的结果也完全不奇怪,人类也没法修改。

另外一个简单想法是做两个独立分别接收两种数据然后将结果加权?这个感觉好像没有任何意义,相当于纯做线性运算,网络会自动优化结果,跟没做一模一样。。。

1403 次点击
所在节点    程序员
9 条回复
RVRGnXxwawP5kwKW
359 天前
如果真的 A 与 C 的关联比 B 大,那么网络会学到。

比如说你训练一个根据体重和学历两个特征预测人的身高的模型,显然体重和身高更相关,学历和身高不太相关。这种情况只要你的数据体现了这种相关性,比如有大量的人身高和体重呈正相关,而学历分布没有相关性,那么模型会自动学到。

怕就怕你的数据无法体现这种相关性,比如你的训练数据里身高高的普遍学历高,那么行就学偏了。这里涉及到一些比较理论的东西,但直观上就是我例子里的意思。

如果你一定要说,我数据就体现不出这种关系,但我就想让模型有这种关系,我感觉你这个更适合手工设计特征,不太适合机器学习。或者你可以做数据增强。还是以身高体重为例,你可以生成一大批升高体重正相关,学历随机分布的数据去训练模型。
kilasuelika
359 天前
这个问题就是怎么引入人类先验,我自己没研究,但去查一下应该就有
LeeReamond
359 天前
@kilasuelika 感谢指路,不过查了半天感觉上描述的大都是如何针对特定任务的先验知识做特定优化这种感觉,像楼上老哥提到的,不在网络动手而是在数据上动手,我感觉也是另一种形式的注意力的表现。不过翻了半天文章好像确实没找到什么比如树结构越接近根节点权重越大这种说法的操作,感觉可能还是从网络本身下手比较困难,做不到吧。像 RNN 这种实际上感觉就是通过网络完成了指数计算关系从而实现了序列的权重,但好像 DNN 发展了这么多年一共也就那几种关系
allplay
359 天前
直接改模型参数对吧?但是在隐藏层里面,你根本无法直观地知道因该修改哪个节点。
1 楼的意思,可以直接造一堆符合你期望的训练集,把模型带偏即可
paopjian
359 天前
你搜索一下 dropout, 强行将一些层的参数 drop 再训练 B 是不是有可能提高?
thomas15425
359 天前
L1 regularization 可以降低相关性较低特征的权重,可以试一下。
LaurelHarmon
359 天前
supervised attention
binbin0915jjpp
359 天前
文心一言里
换个话题你懂得...
LeeReamond
359 天前
@binbin0915jjpp
机器人刷回复?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/996088

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX