(原标题:机器学习工具吐槽大会:回归模型连p值都不输出,文档描述惨不忍睹 | 你也来吐一波)
同学,你用过的那些机器学习工具/库,有没有什么让你 绝望 的地方?
不是我要问,是一个叫做@Train_Smart的网友,在Reddit论坛开帖发问了:
提问的同时,少年还举出自己的经历,抛了个砖:
Pandas 里的稀疏矩阵 (sparse matrices) ,到 scikit-learn 里就不支持了。我弄了好几个小时才发现,sklearn会把稀疏矩阵inflate起来 (30Mb>>20Gb) ,还完全没有提示。
很快,直击灵魂的问题引发了强烈的共鸣,楼下的小伙伴们纷纷说起自己的伤痛。16小时便有130条回复,Reddit热度达到200点。
吐槽大会
槽点有不少,最先受到强烈轰炸的就是:
统计学功能太匮乏
名叫@timmaeus的网友说:
我是从统计学转到机器学习来的,常常很吃惊,因为Python库输出的并不是我期待/我需要的那些指标:比如回归模型,就不会输出 系数 、 p值 、 置信区间 这些东西。
网友@colonel_farts说:
TensorFlow文档整体都很让人崩溃。
楼下有人 (@jalagl) 帮他扩大了打击面:
所有文档都算上吧。我用的是PyTorch,也有很多不够好的地方 (没用过TensorFlow,不知道哪个更差) 。
很快就有补刀侠 (@geodesic42) 赶到现场:
PyTorch文档比TensorFlow还烂。
既然都说文档烂,具体烂在哪?
大体可以总结出三条,
第一是 描述不清楚 :
有些东西是真的很怪,而且一点也不直观。比如有的函数,名字本身已经很奇怪,描述还是“it does the thing”一句话的这种。(@swegmesterflex)
随之,大家开始不断地补充各种飘逸的描述:
“Applies the function to the input”(@trashacount12345)
“把函数应用在输入上。”
“Can be called.”(@trashacount12345)
“可以被调用。”
另一个缺点是 不给示例 :
我小时候用 TurboPascal7 编程,标准库里面每个函数都有示例,不是只有描述。
为啥 PyTorch 就不能给每个函数写个示例? (@visarga)
还有第三个缺点, 加载慢 :
你们不觉得PyTorch文档加载巨慢么?手机上都看不了,因为加载时间太久了。(@fckoch)
所以,软件公司什么时候才能感受到,不给清晰文档、不给示例的东西没法用,继而开发出既有好文档又有示例搭配的产品呢?
有人并不抱太大希望 (@inigoskimmer) :
不会太快吧。今年还有个资深程序员跟我说,他没注释代码,因为代码很可能会改,加注释的话可能会误导别人。
写注释、写文档,原本就是开发者头疼的活动吧。
也有网友 (@real_kdbanman) 从另一个角度观察了这个问题:
请记得,所有主流库都是免费的,开源的!每个人都有责任把它们变好的。文档Pull Request真的很有帮助。
虽然,最初参与开发的人,对初始文档的质量负有责任。但如果后来的用户只在那里干等,也是不能期待文档自己变好。
机器学习这个领域,一直是背靠着高度开放的社区,才得到迅猛的发展。想让机器学习工具变得更好用,也要社区成员们一起努力才能实现吧。
不过,这也不是问题的全部:
同一个概念,不同的术语
上文只提到了“缺乏有效描述”的问题,却没有解释,用户为什么会需要详尽的描述,ML领域的沟通成本为什么这样高。
网友@luhem007是这样说的:
在统计和机器学习的社区里:同一个数学 / 统计概念能有无数个不同定义。这样交流起来就很困难,文档读起来也很困难。
好像不同的学科都发现了同一个规律,然后迅速给它起个名字占为己有,就跟插个旗子抢地盘一样。
楼下深有同感 (@seman_ticks) :
我想起之前上过的两门课,一门是数学系的,另一门是计算机系的,本质上讲的东西都一样,就是命名体系不一样。
可以开个像“ thesaurus” 那样的同义词库了吧。
你怎么看?
在机器学习库/工具身上,网友们找到的缺陷数不胜数,本文难以一一覆盖。
阁下也有不吐不快的槽点么?或者有解决问题的方案建议么?
可以留言在评论区,也可以去Reddit参与一下吐槽盛会,有益身心健康。
Reddit讨论区:
https://www.reddit.com/r/MachineLearning/comments/eftv1o/d_what_frustrates_you_about_ml_tools_libraries/