Machine-Learning
概率編程與“傳統”機器學習
我正在瀏覽 Pymc 的 github 存儲庫並找到了這個筆記本:
作者讚揚了貝葉斯/概率編程的優點,但接著說:
不幸的是,當涉及到分類或(非線性)回歸等傳統 ML 問題時,概率編程通常(在準確性和可擴展性方面)次於更多算法方法,如集成學習(例如隨機森林或梯度增強回歸樹) .
有人可以解釋一下:
- 如果這個陳述通常是正確的
- 為什麼這個說法是正確的
- 在我作為專業數據科學家的個人經驗中,這通常是正確的。
- 這在我個人的經驗中是正確的,因為這是我大部分時間觀察到的。如果你問為什麼會這樣,有幾個原因:
- 如今,許多傳統的 ML 算法都是“現成的”,包括複雜的集成方法、神經網絡等。概率方法仍然經常需要定制解決方案,要么用 Stan 等 DSL 編寫,要么直接用通用編程語言編寫。
- 如今,許多進入數據科學領域的人都來自工程和自然科學背景,他們擁有強大的數學和“算法”技能,但在概率建模方面沒有太多經驗或直覺。只是不在他們的雷達上,而且他們對實現它們所需的方法和軟件並不滿意。
- 從概率模型做出“硬”預測涉及揮手或正式決策理論。人工智能研究人員和高薪統計顧問知道這一點,他們欣然接受。但是對於普通的數據科學家來說,轉向你的經理並開始談論分佈和概率並不是那麼容易。業務(或您正在構建的自動化系統)只需要一個該死的答案。當你不再對概率和事物模棱兩可時,生活會變得容易得多,在這種情況下,你不妨一開始就不要理會它們。
- 概率建模通常最終計算量非常大,尤其是貝葉斯建模,其中封閉形式的解決方案是一種罕見的奢侈品,尤其是在“大”數據集上。我會毫不猶豫地在包含 1000 萬行的數據集上運行 XGBoost。我什至不會考慮在包含 1000 萬行的數據集上運行 Stan 模型。
鑑於上述所有缺點,數據科學家或數據科學家小組可以使用概率較小的機器學習技術更快地迭代,並獲得“足夠好”的結果。
編輯:正如評論中所指出的,#1 和#2 都可能是因為概率編程方法尚未被證明在現實問題上具有淘汰性能。CNN 之所以流行,是因為它們顛覆了現有技術。
編輯2:似乎概率在時間序列建模中越來越流行,其中深度學習似乎不如其他領域有效。
編輯 3(2020 年 12 月):概率編程現在在各個領域變得越來越流行,因為概率編程語言越來越好,求解器越來越好。