機器學習雖好,也要看什麼場合

ai科技評論 發佈 2020-06-14T02:59:15+00:00

我知道肯定有不少人會使用傳統的統計分析學方法來給出的答案,但是你開心就好~黑貓白貓,抓到老鼠的就是好貓~想要了解統計分析方法和機器學習的區別請戳這裡:見原文連結 見原文連結招 聘。

編譯 | 王念

編輯 | 叢末

身為AI時代的程序猿,我們天生就對數據集敏感。因此,當我們拿到一批真實數據時,激動之情肯定溢於言表!舉例來說,我們可能拿到了一組患者正確藥量的數據集,它長成這樣:

數據集的地址:http://bit.ly/quaesita_slkid

其中每個數據點包括兩個部分:輸入特徵是某位患者當前的治療日(Treatment Day),而輸出結果是ta在60天療程內應該服用的藥物劑量,單位是毫克。身為AI工(cheng)作(xu)者(yuan)的我們,第一時間就會想到建立一個回歸模型,輔助醫生根據輸入的治療時長特徵,給出所推薦的藥物劑量。So easy~

但是我們把模型的事兒先放一邊,當我們以人類的角度來利用數據,假如有個病人正在處於第2個治療日,你會怎樣為他推薦用藥劑量呢?

聰明如你肯定一眼就知道,17毫克!你看數據集裡都有完全相同的場景嘛~ 那如果是第4個治療日呢?41毫克沒毛病呀!

那現在問題來了,在這種場景下如果我們使用機器學習方法建立一個回歸模型,是不是更高大上、更有效呢?換句話說,當我們使用計算機學習這些數據模式的時候,會不會導致一些意想不到的問題呢?

答案是否定滴。我們可以用最簡單的「查表」模型嘛,給一個輸入,然後尋找它所對應的取值就行了。python里建立一個dict就完事兒了。但是注意,我們只有60天的數據,如果輸入的特徵取值<=60,那沒問題,查表模型的輸出肯定完全正確。這不需要建立模型,也不需要什麼高深的機器學習理論。

1

什麼時候要用機器學習?

那在什麼情況下我們需要使用機器學習呢?

當然是輸入訓練集中沒有的數據啦!比如說突然來了一個正處於第61個治療日的患者,我們怎麼辦?

這時候查表模型就蒙了,它沒見過輸入是61的情況啊,超綱了……那這種情況下我們應該怎麼做呢?抱怨運氣不好?胡亂回復一個數字?還是像郭德綱一樣扔鞋占卜?……唔……誒?!機器學習是不是能幫我們搞定這種情況?

沒錯兒!

但是話說回來,如果這個輸入和輸出之間壓根兒沒什麼聯繫的話,機器學習也愛莫能助。就好比面對一堆毫無邏輯的隨機數據,算命先生也拿不准下一個要來的是啥……

1、我們必須找到隱藏的數據模式

但是,假如說(只是假如)數據具有固定的分布模式,而且我們還能夠找出這個模式來,那麼我們就能利用這個模式來預測(或者說……猜)第61個治療日的患者的正確用藥量了。這種情況下,機器學習才能派上用場。

2、數據模式一定要有泛化性

我們要學習和尋找的數據模式一定要對未來的數據具有泛化性才行。否則我們的模型就只對已經存在的數據擁有良好的擬合能力,但是對於未知的數據呈現極大的誤差,那這個模型肯定不好用。

比如說上面的例子中,數據模式就可能分成兩種:前60天是一種模式,而從61天開始就變成另一種模式(比如從第61天開始所有的患者都死了或者都痊癒了,就不用服藥了)。那就算我們找最厲害的教授使用最頂級的機器學習模型和技巧,也只能讓它僅對前60的數據具有良好的預測性能,但是從61天開始,模型對已有模式學習得再好也無濟於事。

具體了解泛化的含義,可閱讀這篇文章:https://towardsdatascience.com/the-most-powerful-idea-in-data-science-78b9cd451e723、巨變的外界條件

進一步接茬兒說哈。如果我們的數據沒辦法表現出未來要發生的事情,或者說未來的數據規則和現在完全不同了(也許因為一場瘟疫、地震、戰爭或者其他不可抗拒力),那我們已有的數據集質量再高、數據模式學習得再好也沒用。籠統一點來講,如果我們研究的是這個宇宙中某個極不穩定的某種數據,那機器學習的遍歷性和平穩性假設就無法滿足了。這種的場景下所訓練出的機器學習模型會頻頻出錯,因為模型總是會覺得「外界數據的規則和模式穩定不變」。

不了解遍歷性假設的同學,可參考:https://en.wikipedia.org/wiki/Ergodicity不了解平穩性假設的同學,可參考:https://bit.ly/stationaritya

這裡說的不平穩性不是指在局外人眼中的那種主觀的不平穩現象,比如商品的均價隨著時間而逐漸增加,這是由於通貨膨脹的原因。像通脹這種平穩的、可以學習的不穩定性,是能夠通過時間序列分析技術來解決的。我們這裡所說的不平穩性是指由於各種變故或不可抗拒因素而導致的突發事件。

這種不平穩性是一種粗暴的、毫無章法的現象。對於這種問題我們無可奈何,因為它的發生不以你的意志為轉移,它客觀而不羈地發生著、存在著,我們所處的次元規則系統完全不同。它就像個顯示屏壞了的定時炸彈,你根本不知道它什麼時候改變自己的數據模式,也不知道它什麼時候爆炸。

所以在這種情況下,我們可能費盡千辛萬苦學習到了已有的模式,但是一夜之間啥都變了,規則不是以前的規則了,你大爺也不是以前的大爺了……如此一來,模型的性能肯定會大打折扣(根本不能用了好不好)。

4、如果一切順利的話!

但是如果數據集中的樣本模式具有極好的泛化性,它又能穩定的表達出未來將要發生的事情,那就太棒了!這時候就別猶豫了,盡情利用機器學習方法尋找已有數據中的樣本模式吧!然後一切水到渠成~別說第61天的劑量,就算是第661天的數據我們都能給你預測出來!

找到並且利用數據集中隱藏的樣本模式是機器學習的關鍵。

機器學習和人工智慧技術不是用來重複已經見過的例子。對於已有數據的重複就是查表而已,搜索一下資料庫就能解決,殺雞焉用宰牛刀?記住,機器學習是用來學習數據中隱藏的數據模式的。

重複已有的答案算什麼本事?機器學習能對沒見過的新情況進行解決!

程序猿可能會問,事兒都讓你幹了,那我的任務是啥?答案很簡單,就是構建一個成功又通用的解決方案。你問我啥叫成功?

我曾寫了一整篇文章來討論這個問題:https://medium.com/hackernoon/the-decision-makers-guide-to-starting-ai-72ee0d7044df

模型說,這不是貓!

換句話說,如果我們的模型無法處理已有數據集中沒見過的新樣本,那它就很失敗了。新樣本再奇怪也是按照固定模式分布的,它不會打破數據的平穩性假設,它充其量會讓學到的模式有所偏移。

機器學習不是鸚鵡學舌,死記硬背已有數據集是沒用的。機器學習的魅力和強大之處在於,它能夠從已有數據中概括和抽象出數據背後的規則,從而普適地應用於新的場景。

所以咱們囉嗦了這么半天,如果這時候你遇到了一個已有數據集中未曾出現的樣本(比如第61個治療日的樣本),你會怎麼給出結果呢?

當然是先從已有數據集中總結樣本的模式,然後根據這個模式做出一個合理的預測了!

但是機器學習也是有自己的專屬職責的,你訓練它幹什麼,它就能夠也只能夠做這個任務。就比如當我們使用了上千張動物照片訓練了一個區分貓(就是根據輸入圖片判斷是不是喵星人)的分類器,那麼當我們輸入一個新樣本的時候,它就能告訴我們圖片中是否包括貓咪。但是如果你想讓它告訴你這個輸入的圖片是不是畢卡索的真跡的時候,少年你就想多了 ……

2

機器學習對你適用嗎?

當我們說起機器學習的時候,你的朋友或者老師通常會故作高深地跟你說,它是一個事件標籤的標記者,或者是一種人類規則代碼的高級取代者。雲裡霧裡……為了讓你更容易的理解機器學習,我們換個角度對其進行介紹。

機器學習是一個全自動的決策器,它的功能包括對數據模式的學習(總結大師),以及應用該模式對新數據進行判別和預測(執行大師)。

當你不知道機器學習方法是否適用於你研究的問題時,可以仔細看看下面這三篇文章~

  • Is your ML/AI project a nonstarter? A 22-item reality check(list),http://bit.ly/quaesita_realitycheck

  • Advice for finding ML/AI use cases,http://bit.ly/quaesita_island

  • Getting started with ML/AI? Start here! http://bit.ly/quaesita_dmguide

3

那麼,能找到這個隱藏模式嗎?

所以兜了這麼大的圈子之後,第61天到底應該讓患者吃多少藥呀?其實在我上面給出的這個看似雜亂無章的例子中隱藏著一個十分穩定的數據模式。你問我怎麼知道的,當然了,這數據集是我編的我肯定知道哈哈哈。

這個模式……嗯……就是我將腦袋裡突然蹦出的那個最大的數+1……(作者可真欠揍)我之所以這麼做,是因為我發現處理這些具有很強變數的數據是一種樂趣(更欠揍了!)。

雖然數據的模式很奇葩,但這也不失為一種數據產生的模式。對於那些喜歡挑戰的小盆友,你們不妨試試多用幾種機器學習算法來找出這套看似十分隨機的數據集中的模式,說不定你們就能研發出一套針對我的讀心術模型呢~來來來,留言區告訴我你們覺得第61天應該用多少劑量呢!(好期待呀,因為我還沒有編出來呢)

我知道肯定有不少人會使用傳統的統計分析學方法來給出的答案,但是你開心就好~黑貓白貓,抓到老鼠的就是好貓~

想要了解統計分析方法和機器學習的區別請戳這裡:http://bit.ly/quaesita_history2via https://towardsdatascience.com/when-not-to-use-machine-learning-or-ai-8185650f6a29招 聘

AI 科技評論希望能夠招聘 科技編輯/記者 一名

辦公地點:北京/深圳

職務:以參與學術頂會報導、人物專訪為主

工作內容:

1、參加各種人工智慧學術會議,並做會議內容報導;

2、採訪人工智慧領域學者或研發人員;

3、關注學術領域熱點事件,並及時跟蹤報導。

要求:

1、熱愛人工智慧學術研究內容,擅長與學者或企業工程人員打交道;

2、有一定的理工科背景,對人工智慧技術有所了解者更佳;

3、英語能力強(工作內容涉及大量英文資料);

4、學習能力強,對人工智慧前沿技術有一定的了解,並能夠逐漸形成自己的觀點。

感興趣者,可將簡歷發送到郵箱:cenfeng@leiphone.com

關鍵字: