Dojo
最新
最佳
搜索
订阅
解道Jdon
架构设计
领域驱动
DDD介绍
DDD专辑
战略建模
领域语言UL
领域事件
商业分析
工作流BPM
规则引擎
架构师观点
数据工程
产品经理
系统思维
微服务
微服务介绍
微服务专辑
模块化设计
SOA
API设计
clean架构
SpringBoot
分布式事务
分布式架构
Kubernetes
DevOps
编程设计
GoF设计模式
模式专辑
面向对象
函数式编程
编程语言比较
编程工具比较
形式逻辑
前端编程
Reactive编程
Jdon框架
Rust语言
人工智能
Web3
模因梗
幽默梗
程序员吐槽
面试技巧
Java入门
数字化转型
认知偏差
道德经
更多话题
领域专家意见是否应该成为机器学习的重要组成部分? - Reddit
22-03-26
banq
通过机器学习得到的结论是否需要引入领域专家意见?如果是,会产生两个手表时间不一致,到底听谁的问题;如果不是,机器学习也有自己的偏见,例如对黑白图片进行上色后,肯定无法原始的鲜艳颜色。
讨论问题如下:
你认为在机器学习过程中是否应该更多地咨询专家意见?如果有,在哪里?(也许省略专家系统)
是否过于相信ML 模型的结果是“正确”的结果?(这种现象可能不是 ML 特有的,而是人类倾向的结果?)
ML 从业者是否有责任向 公众清楚地传达这些系统的局限性和置信度?
您是否认为 ML 方法可以应用于任何工作/问题,但应该留给领域专家一些其他考虑因素:如安全、隐私、道德等?
最终很多这些问题可以简单地归结为统计数据及其解释。
Reddit网友讨论:
1. 许多在生产中使用机器学习的地方确实使用专家意见。例如,在我的雇主那里,数据科学家将与一位实质性专家一起工作,并且会就预测、拟合等进行对话。即使是“一般来说,那种变量的系数的大小并没有那么大”这样简单的事情对调试和改进模型等事情很有帮助。
我不认为这只是“添加专家意见和搅拌”,需要迭代和对话。在 DS/ML 方面,这意味着对您所做的事情进行解释,以帮助专家了解正在发生的事情以及可能出现的问题。
对于诸如“系数的大小不应该那么大”之类的问题:无论指定的数据还是有足够的统计数据,结果几乎都很完美。如果还有问题,那就是数据问题。那么除了检查数据之外,你还能做些什么来调试模型,如果数据也没有问题,那是不是专家错了?
当然,这里将“这些系数的大小不应该那么大”解释为“你可能过度拟合”,所以你可以做很多事情来检查是否是这种情况。
2. 还有一种方法是利用领域专家的信息,把你的监督学习任务变成一个受限的优化问题。
对于初学者来说,一些简单的东西,比如用基于违反约束的惩罚项来增加你的损失函数就可以了。
一般的想法是,如果数据是有噪音的,我们需要在数据告诉我们的与专家告诉我们的之间做平衡。
如果专家是错的,那就有点复杂了,你可能要对多个专家的意见进行(量化和)排序,就像我在RL的一些工作中看到的那样。
3.专家可以帮助解决的未观察到的变量偏差(例如,缺乏对重要外生影响的控制)。
有时,专家是错误的,但需要开放和协作来确定这一点。
4.为什么人们说“ML只是软件工程”;而获得变量之间的正确关系(函数形式和因果方向性、混杂等)几乎属于生物统计学/epi/计量经济学等领域所做的事情。人们提到的其他东西,比如自定义正则化也更多的属于优化/统计/领域。
5.当我在健康科技工作时,我们拥有的各种类型的生物学家比数据科学家多得多,甚至那些都是统计之神(一个拥有计算机神经学博士学位,另一个拥有高能粒子物理学博士学位)。
6.在某些领域,专家意见是不可或缺的,因为这些领域的训练数据稀少,非平稳,或者运行实验的成本很高。这些领域的从业者知道这一点。
一个例子是对股票价格的预测。量化交易公司总是有一个人类专家深入其中。
在模型上放置人类的约束,甚至在现场生产中指导模型,都是关键的部分。
可用的数据从根本上说是有限的,而且非平稳性太大。
目前也很难将 "常识 "放入模型中,除非有实际的AGI;人类专家知道股票X不应该与股票Y相关,尽管样本中Pearson的相关性非常高。
有一些定量方法可以绕过这个问题(例如,X和Y在不同的行业,因此忽略它),但有时这是不可能的(没有AGI),因为你需要广泛的知识和对世界事件、人类等发达的心理模型。
在这个意义上,这有点像开发一个能处理每一个边缘案例的自驾车,但固定性更低,数据更少。
在我们通常听到的领域(如AlphaGo)中,这样的人为限制并不那么必要,原因是既有大量的训练数据,又有大部分的静止分布。
通过训练规模和平稳性来分解就很有意义。
7. 一个在顶级专家的黄金标准集上训练出来的模型,其表现与该集中的中位专家差不多。一个在顶级专家的黄金标准集上训练出来的模型,往往与该集中的中位专家的表现一样好,而且常常更好。如果你在一个做任务的非专业人士身上训练你的模型,它将和一个普通的非专业人士一样好。
在创建数据嵌入时,与专家密切合作,弄清楚他们是如何对工作流程进行编码的,这也是非常有价值的。
被建模的任务往往是一个比标准数据表示法更具体的工作流程。就像你为视频分割任务制定的模型与为物体识别分类器制定的模型不同一样,专家们经常会有一些逻辑上的区别,你可以在你的模型规范中反映出来。
即使是深度学习,你也不能假设所有的问题都适合,尽管 "没有特征工程 "是我合作过的很多DL从业者教条式地坚持的东西。
归根结底,这一切都与你所建模的内容有关,如果任务有趣或新颖,领域专家会给你一个比普通人更有效的最佳过程的观点。
另外,在你迭代的过程中,让专家参与进来是非常有价值的,他们可以就你的模型所遗漏的东西或它的错误之处找到直觉。我曾经和一些领域的专家进行过疯狂的对话,他们强调了我永远无法确定的行为,最终对模型进行了巨大的改进。
8. 领域专家可以帮助你找到可能的结果。它不能帮助你找到实际的真实答案。即使它有70%的可能性是 "红色",你也不能说它是红色。它可能是另一种颜色。车牌上的超级分辨率也是如此。如果超级分辨率使一个无法区分的字母成为E,你不能说它是E,它仍然可能是F。
只是在这种情况下,模型不是在 "识别 "字母。它是在生成像素。它在生成什么上没有锚点,将使用数据集的偏差来生成。如果你消除了数据集的所有偏差,那么无论它要生成什么,都有可能是E到F,如果正在生成的是字符的底部。该模型将采取一个随机的合理猜测,并 "发明 "就像素而言应该有的东西。然后由人类来进行识别。
如果你在数据集中保留偏见,可能会有更高的概率生成F,因为在训练集中有更多的车牌有F,但仍然不适用于实际推断的情况。
这就是为什么在数据生成时,你不能说你在重新创造缺失的信息。你是在重新创造合理的信息。
在思考一个玩具问题时,这可能看起来像语义学,但它有巨大的影响,取决于这些系统是如何被使用的。如果我们误解了这些系统的输出,人们可能会被关进监狱,甚至可能被处决。
9. 对于任何关于创建数据的事情,无论是通过填补缺失的数据还是插值信息,等等,都是对缺失/被创建的东西的一种知情猜测,仅此而已。
这意味着,如果在一个实例中生成的数据实际上是准确的,那是愚蠢的运气,仅此而已。这个过程只能创建合理的数据。
在我看来,你不需要领域专家来验证,因为问题的性质(信息损失)使得它实际上不可能有一个 "准确 "的过程。建立模型的科学家应该知道这一点。
10. 引入专家意见好处是:数据集中隐含的专家意见可以在 ML 算法中编码。因此,从某种意义上说,专家意见已经存在。
棘手的部分是专家也不完美,也没有代表性。
在对最终目标很重要的情况下,更多的专家参与是好的,但 ML 的真正美妙之处在于,你可以在没有文化史博士学位的情况下做得很好,而且有时(并非总是)做得很好就是你所需要的。
AI人工智能
机器学习
数据科学
认知偏差与谬论