機(jī)器學(xué)習(xí)工具吐槽大會:回歸模型連p值都不輸出,文檔描述慘不忍睹 | 你也來吐一波
栗子 發(fā)自 凹非寺
量子位 報道 | 公眾號 QbitAI
同學(xué),你用過的那些機(jī)器學(xué)習(xí)工具/庫,有沒有什么讓你絕望的地方?
不是我要問,是一個叫做@Train_Smart的網(wǎng)友,在Reddit論壇開帖發(fā)問了:
提問的同時,少年還舉出自己的經(jīng)歷,拋了個磚:
Pandas里的稀疏矩陣 (sparse matrices) ,到scikit-learn里就不支持了。我弄了好幾個小時才發(fā)現(xiàn),sklearn會把稀疏矩陣inflate起來 (30Mb>>20Gb) ,還完全沒有提示。
很快,直擊靈魂的問題引發(fā)了強(qiáng)烈的共鳴,樓下的小伙伴們紛紛說起自己的傷痛。16小時便有130條回復(fù),Reddit熱度達(dá)到200點。
吐槽大會
槽點有不少,最先受到強(qiáng)烈轟炸的就是:
統(tǒng)計學(xué)功能太匱乏
名叫@timmaeus的網(wǎng)友說:
我是從統(tǒng)計學(xué)轉(zhuǎn)到機(jī)器學(xué)習(xí)來的,常常很吃驚,因為Python庫輸出的并不是我期待/我需要的那些指標(biāo):比如回歸模型,就不會輸出系數(shù)、p值、置信區(qū)間這些東西。
樓下有人 (@AuspiciousApple) 提供了一個解釋:
這可能和思維方式有關(guān)系,就好像statsmodels也不會有切分?jǐn)?shù)據(jù)集 (train_test_split) 這種功能一樣。確實很煩,我主要用sklearn,還得把statsmodels召喚出來,就為了那些最基本的統(tǒng)計學(xué)信息。
眾人群起而附議,場面十分壯觀:
開心,在sklearn和statsmodels之間跳來跳去的,不是我一個人。(@luhem007)
我從R過來的,也感覺在Python里面搞個回歸表格怎么這么難。(@Bardy_Bard)
我也是先學(xué)的R,后來常常想問為什么會設(shè)計出numpy/pandas這樣的產(chǎn)品。(@po-handz)
我也是從R來的,發(fā)現(xiàn)自己要先創(chuàng)建一波定制的庫,才能高效地用好那些已經(jīng)有的庫。(@leogodin217)
文檔太不走心
網(wǎng)友@colonel_farts說:
TensorFlow文檔整體都很讓人崩潰。
樓下有人 (@jalagl) 幫他擴(kuò)大了打擊面:
所有文檔都算上吧。我用的是PyTorch,也有很多不夠好的地方 (沒用過TensorFlow,不知道哪個更差) 。
很快就有補(bǔ)刀俠 (@geodesic42) 趕到現(xiàn)場:
PyTorch文檔比TensorFlow還爛。
既然都說文檔爛,具體爛在哪?
大體可以總結(jié)出三條,第一是描述不清楚:
有些東西是真的很怪,而且一點也不直觀。比如有的函數(shù),名字本身已經(jīng)很奇怪,描述還是“it does the thing”一句話的這種。(@swegmesterflex)
隨之,大家開始不斷地補(bǔ)充各種飄逸的描述:
“Applies the function to the input”(@trashacount12345)
“把函數(shù)應(yīng)用在輸入上?!?/p>
“Can be called.”(@trashacount12345)
“可以被調(diào)用?!?/p>
另一個缺點是不給示例:
我小時候用TurboPascal 7編程,標(biāo)準(zhǔn)庫里面每個函數(shù)都有示例,不是只有描述。
為啥PyTorch就不能給每個函數(shù)寫個示例?(@visarga)
還有第三個缺點,加載慢:
你們不覺得PyTorch文檔加載巨慢么?手機(jī)上都看不了,因為加載時間太久了。(@fckoch)
所以,軟件公司什么時候才能感受到,不給清晰文檔、不給示例的東西沒法用,繼而開發(fā)出既有好文檔又有示例搭配的產(chǎn)品呢?
有人并不抱太大希望 (@inigoskimmer) :
不會太快吧。今年還有個資深程序員跟我說,他沒注釋代碼,因為代碼很可能會改,加注釋的話可能會誤導(dǎo)別人。
寫注釋、寫文檔,原本就是開發(fā)者頭疼的活動吧。
也有網(wǎng)友 (@real_kdbanman) 從另一個角度觀察了這個問題:
請記得,所有主流庫都是免費的,開源的!每個人都有責(zé)任把它們變好的。文檔Pull Request真的很有幫助。
雖然,最初參與開發(fā)的人,對初始文檔的質(zhì)量負(fù)有責(zé)任。但如果后來的用戶只在那里干等,也是不能期待文檔自己變好。
機(jī)器學(xué)習(xí)這個領(lǐng)域,一直是背靠著高度開放的社區(qū),才得到迅猛的發(fā)展。想讓機(jī)器學(xué)習(xí)工具變得更好用,也要社區(qū)成員們一起努力才能實現(xiàn)吧。
不過,這也不是問題的全部:
同一個概念,不同的術(shù)語
上文只提到了“缺乏有效描述”的問題,卻沒有解釋,用戶為什么會需要詳盡的描述,ML領(lǐng)域的溝通成本為什么這樣高。
網(wǎng)友@luhem007是這樣說的:
在統(tǒng)計和機(jī)器學(xué)習(xí)的社區(qū)里:同一個數(shù)學(xué)/統(tǒng)計概念能有無數(shù)個不同定義。這樣交流起來就很困難,文檔讀起來也很困難。
好像不同的學(xué)科都發(fā)現(xiàn)了同一個規(guī)律,然后迅速給它起個名字占為己有,就跟插個旗子搶地盤一樣。
樓下深有同感 (@seman_ticks) :
我想起之前上過的兩門課,一門是數(shù)學(xué)系的,另一門是計算機(jī)系的,本質(zhì)上講的東西都一樣,就是命名體系不一樣。
可以開個像“thesaurus”那樣的同義詞庫了吧。
你怎么看?
在機(jī)器學(xué)習(xí)庫/工具身上,網(wǎng)友們找到的缺陷數(shù)不勝數(shù),本文難以一一覆蓋。
閣下也有不吐不快的槽點么?或者有解決問題的方案建議么?
可以留言在評論區(qū),也可以去Reddit參與一下吐槽盛會,有益身心健康。
Reddit討論區(qū):
https://www.reddit.com/r/MachineLearning/comments/eftv1o/d_what_frustrates_you_about_ml_tools_libraries/
- 馬云正式卸任后,阿里巴巴開盤跌0.87%2019-09-10
- 亞馬遜在華拓展云計算團(tuán)隊,挑戰(zhàn)阿里巴巴和騰訊2019-10-16
- AI獨角獸云知聲,已完成一期科創(chuàng)板IPO輔導(dǎo)2019-10-17
- IDC:今年上半年中國公有云服務(wù)市場規(guī)模達(dá)54.2億美元2019-11-07