機器學習如何才能避免「只是調參數」?


我覺得NIPS2017 那位「無人問津」的圖靈獎得主Judea Pearl 的invited talk的結論可以回答幾乎所有機器學習問題。這張圖我打算用到天荒地老。

@陽佳一 翻譯:

1.無理論模型指導的AI實踐在處理認知任務時,存在天然局限。

2.上述7個案例,對比了有無理論模型的情況下,我們能解決的與受限制的事情。這些限制與數據量大小無關,不是靠提高數據量能解決的。(暗示需要理論模型進一步發展)

3.數據科學僅當其能促進對數據的合理解讀時才能被稱為所謂科學,(暗示不能解讀卻很有效的東西只不過是鍊金術信仰)。數據永遠是為現實服務的,數據科學總要平衡模型在數據集上的表現與對現實世界的解讀這兩者之間的關係。(暗示後者更重要)

4.背後缺少對現實世界合理建模的數據科學,姑且能稱之為「統計」吧,但不可能是一門科學。

5.以當前這些毫無理論模型指導的機器學習之莽,根本不可能創造出同等於人類水平的AI。


調侃幾句,諸位看看別當真。如果有比較成熟的調參體系,那麼相關工作崗位都會縮減。現在正是百花齊放的時代,還沒有一統江湖的模式。如何避免過度調參,主要還是依賴經驗選對方向,在小的區間內調。如果選錯了模型方向,那是無論如何都調不出好效果的。

如果說如何降低對於數據的人為調整,可以了解一下表示學習上的思路(雖然調參是不可避免的):人工智慧(AI)是如何處理數據的?

以下是調侃原文:)


如何避免調參數?抱歉,我不是針對誰,在座的搞機器學習的誰不是天天調參數?靠山吃山,背靠機器學習愛調參。

  • 有人說了,做研究的就是推公式,改結構、換loss、試不同的優化演算法,我才不調參。然而,這是意淫,最終大部分時間還是調參數。咱老實說,是不是跑了10個數據集發現其中5個效果不錯,然後就刪掉了另外5個?做了3個結構發現有倆怎麼調loss都居高不下然後只好得到了最優的那一個。沒錯,大部分人都這樣,模型設計&<寫論文&<&<實驗調參
  • 有人說了,搞研究的人才追求那零點幾的提升,我們差不多就得了,我才不調參。君不見Kaggle上為了0.001能調半天的朋友,也不見當0.001能轉化為客戶時老闆那熱切的眼神。
  • 有人說了,有很多厲害的調參手段,比如各種基於貝葉斯的方法,我才不調參。首先,這類方法使用門檻不低,大部分人用不了。其次,自動調參往往效果可以達到「可以」,但無法像真人調參那樣達到「不錯」。
  • 有人說了,深度學習好啊,我才不調參。我...無語凝噎。

什麼模型不調參?大概傳統的機器學習模型調的不厲害,比如簡單的線性回歸。但限制也有:

  • 一般得先做特徵工程,歸一化離散化也得做,總時間花的也不少
  • 數據量上去以後模型性能也有瓶頸
  • 說白了,就是模型的表達能力有限,沒那麼多參讓你胡調,調了結果也有限

說了這麼多其實想說,調參是藝術、是哲學、也是我們的飯碗。不調參,全是自動調參,那要我們幹什麼?調參的另一個特徵是,大概知道為什麼這麼調盲目的窮舉搜索效果和效率要好得多,這也點明了一個10W年薪與100W年薪的調參師之間的區別。

所以珍惜現在大量調參的日子吧,正因為這繁瑣的過程才造成了門檻,也創造了不少崗位。等到了不再需要大量人工調參員的時候,離我們失業也不遠了。


ps. 如何避免「只是調參數」,那大概只有:

  • 走業務路線,熟悉模型落地,用領域知識選對模型方向避免「硬調參」(調錯的模型)
  • 走研究路線,重心放到模型上,把調參扔給學生或者新人(類比生物過柱子)
  • 當上老闆:)

很遺憾的回答:就我個人有限的知識,機器學習在現階段就是針對特定場景的「調參數」,所以無法避免「只是調參數」,找到那個差異最小的,最適合指定場景的「參數」。抱歉,讓答主失望了,機器學習在理論和實踐上就目前披露出來的並沒有那些微信公眾號,媒體大V,UC震驚部所寫的文章描述的那麼通天徹地,個人覺得原因主要有是:

現階段的機器學習說到底只是一種經驗主義的計算化表示,並不像我們以前學習過的那些公理定理一樣經得起推敲;特定的機器學習方法只在特定的場景下大部分情況下「比較接近」準確,這些方式方法目前而言更像是一種統計學的推論,而非一種必然準確的理論。所以,明明調好的模型參數,輸入源稍微變化一下,結果就有可能跪了。

比如人臉識別,機器學習是怎麼判斷的呢?臉型與志玲姐姐的差別最小,眼睛寬度比例與志玲姐姐差別最小,瞳孔距與志玲姐姐的差別最小,鼻樑,鼻翼都與志玲姐姐差別最小;咦,最後算下來與志玲姐姐128項特點參數差別小於0.6(Dlib的默認值),而調參數的人規定,差異小於0.6就是成功識別了的,好,這照片上的姐妹兒就是志玲姐姐了。

上面這個例子你可能還沒有看出什麼不對來,沒錯,這個例子就是對的,但是它就是「經驗主義」的,在大部分場景下1)結果2)可能是對的,我們去認識人的時候常常也是這個套路。那麼相親呢?match maker呢?你現在要:「願得一情郎,白首不相離「;機器學習的套路是:如果你爺爺喜歡他,你可能就喜歡她;如果你爸爸喜歡她,你可能更喜歡她;如果你哥哥喜歡她,你可能非常喜歡她;這個時候接下來的結論就是:

你愛她,你們應該在一起,你們在一起99.98678%會幸福!

上面這個例子的問題估計你已經看出來了,機器學習輸入了那麼多的維度得出你會喜歡她的結論:

然後等到你見了對方一面,發現對方是32A,你馬上覺得「貼兩顆圖釘就出來相親缺乏最起碼的誠意」,這時候機器學習就跪了;

介紹人(或者題主)只能繼續調參數,加入一個新的維度,C Cup以上,過濾一下,然後等到你見了對方一面,發現對方其實是女裝大鳥,喜好「商女不知玩過恨,隔岸尤唱後庭花」的調調,你不想後庭也花掉,這時候機器學習就又跪了;

而題主唯一能做的只能繼續調參數 ........

而機器學習為什麼能常常那麼正確呢?

還是因為可以不斷加層,不斷的微調參數,上面那個例子各種參數加減微調之後:

皮膚白裡透紅,身高172,36C,體重110斤,馬拉松半馬前100名,擅長川菜,開點心店自己做烘培,敬老院義工,幼兒園兼職教師,平面模特,賢淑達理,就職於四大,脾氣磨鍊的沒有脾氣了;

參數調到這種程度,這個特定的場景算是覆蓋95%以上了吧,

然而,機有不測風雲,王婆在你心曠神怡想像見面場景的時候又補了一刀(一個參數):

每月平均消費10W起步,需要專門布置一個房間放快遞,順豐圓通京東需要分開放(強迫症)

你看,參數變了,機器學習是不是又跪了?

還能怎麼辦?

繼續「調參數」唄,這就是經驗主義的宿命,目測無解。


你們應該感謝今天調調參就work的機器學習,resnet很牛逼的一個原因就是加層數就更work,這種好事可不多。

以前做graphical model的,模型很複雜,調參也很複雜,work也一般般,理論還很難,人家都沒有抱怨,你們現在抱怨個屁。

不想只調參,那您得有金剛鑽往下鑽呀,去搞概率論,搞manifold,搞最優化,遺憾的是,你就算搞出一個理論成果出來,論work依然搞不過加兩層神經網路,又回到調參去了不是。

曾幾何時,人工智慧完全是人工智障,後來總算出來個lr加離散化在廣告推薦大殺四方,再後來隨機森林崛起,又work又能解釋,再後來才是深度學習起來。


調參的過程其實就是做實驗的過程,做實驗也是有方法論的,和大多數實驗科學並沒有什麼不同。

工業界和學術界不同的地方僅在於,前者目的是為了找到模型本身,而後者是為了尋找方向,驗證想法等。

即便理論可能無法再有大的進步,真正的AI通過如此多的實驗選擇產生也是有可能的。

雖然大家都是調參,但每個人調參的目的是不一樣的。有的人是為了調出一個模型來投入使用,有的人則是為了解釋參數的意義,有的人是為了驗證自己的想法,等等。

你不妨考慮一下,你調了這麼多參數,到底是為了什麼?你想要得到什麼東西?


避免不了,在可預見的未來也很難避免啊


調參不可怕,可怕的是對參數背後的原因不關心,不在乎。「調參」和「調參」是不一樣的。^-^


說實話,假設你要是把機器學習看作是煉丹的過程

想像一下,如果你只是簡單地把數據扔進模型中,並不關心模型的是否合理,是否有一些理論支持,最後看一下結果,那麼,我們可以進行一個類比,那麼就是煉丹,煉丹師不管是否有效,只是把認為有用的材料扔進煉丹爐,最後把煉出的丹藥給皇帝吃,是不是一模一樣!!

那麼你的工作只是在調參...沒救

假設你把機器學習,看作是對傳統方法的擴展,例如,原來的PCA線性正交分解變成了神經網路的autoencoder非正交的線性關係的分解,又例如圖像稀疏表示中,從傳統的傅里葉變換變成了字典學習等更好的表達,那麼深度學習或者機器學習就回歸它的本質,就是它是一個複雜關係表達,又不用我們更多考慮的工具.

當然,我也不是否定煉丹,畢竟隨著煉丹技術的發展,例如卷積神經網路理論的發展(幾乎是脫離了傳統理論的圖像分類方式),總有一天,當人們可以以線性思維或者簡單非線性思維思考神經網路的理論的時候,那個時候也許就是AI的奇點


作為一個PhD在讀 最大的體會就是那些調參一發入魂的師兄師姐都過得很不錯

所以何談避免 也許不如高票所言 調參是藝術 但至少是個門檻不低的技術活


用機器學習技術的人才是在調參數,

做科研的不care這些


不用避免,本來工具就是用來解決問題的。

成為一個「能用機器學習解決問題的程序員」,這個目標夠大了


搞ML演算法的人...看到題主這個描述得氣死...

搞ML應用的人...除了調參數,還會關注ML應用data的進一步分析(我熟悉compbio這塊多一點,一般用ML演算法分析後,還會進一步試圖解釋模型學到的feature然後對生物現象進行解釋。搞data mining,社群分析的也都類似會得出某領域進一步的結論)...

現在,好多聲稱自己搞ML的人啊,優化演算法懶得看,新的model看不懂,應用背景知識覺得用不到不屑看,就盯著自己看得懂的調參、網路結構,然後就覺得機器學習就只是改改結構調調參數(超參數)。再加上,kaggleImagenet之類的競賽對於performance的極度強調(對這類比賽本身持中立態度),國內一些公司對這些比賽結果的大肆宣傳,機器學習及相關領域就很容易給人留下,煉丹/小trick刷performance的印象了。


機器學習問題歸根結底是對於你的數據進行建模的過程。

你在用什麼方法進行建模很重要,如果是啟發式的方法比如knn,他雖然簡單,超參數少,但他不能更好的挖掘數據隱含的某些關係。

後來人們想用更複雜的模型去捕捉他們潛在的關聯,比如深度學習,他能更好的學習數據的表示以及數據當中的模式,代替了人工做特徵工程的時間,但無疑他增加了工程師調參數的時間,要想避免調參我是覺得不可能的,但我們可以對於複雜的問題進行更有效的建模,我們不就是覺得人工做特徵工程很累很頭疼嘛,於是想到用深度學習模型來做端到端的訓練來利用模型自動提取有用的特徵,類比的話,我們可以設計優化參數模型來減少模型的參數,同時又不失準確性,我覺得這應該是如何避免調參的根本吧,同樣也是一個比較有挑戰性的工作吧。


標準答案是,解決新問題,提出新框架。

所以我猜題主的問題是,(如果沒有好的想法發paper),如何避免只是調參數。


工作調參之餘,深入底層數學原理,增加開發能力,參加開源項目


在過圖靈之前,全都無法避免。過了圖靈之後,大部分還是無法避免。


很抱歉,但這是事實。市場也不需要那麼多的所謂深度人才。


為什麼這麼個問題一直出現在我的知乎首頁?實在看不下去了。麻煩把問題中的機器學習改成深度學習好吧!?只有深度學習這種目前基本沒理論分析或者某些低端機器學習才是「只是調參數」。正常的機器學習難道不是理論分析為主嗎?比如

Matrix Completion has No Spurious Local Minimum

Variance-based Regularization with Convex Objectives

兩篇都是NIPS的best (student) paper。第一篇純理論分析,第二篇理論為主,加了點實驗。這樣的文章才是機器學習的主流好嘛。kaggle或者某些公司的業務也算機器學習?充其量就是數據分析而已。


造物主的神奇一道光


權重不是根據特徵算出來的嗎!!!!還是說我現在學習的方向有問題~有木有大佬告知


推薦閱讀:

通過數據挖掘你有過哪些意想不到的發現?
什麼是大數據?
數據分析和挖掘在售電市場的應用價值點在哪兒?
信息發達大數據時代,數據能為慈善事業帶來些什麼?
大數據與雲計算時代下,供應鏈管理會發生哪些改變?

TAG:數據挖掘 | 數據分析 | 機器學習 | 大數據 | 大數據分析 |