為什麼機器學習難於應用

2021-09-22 13:40:50 字數 3423 閱讀 9390

應用機器學習是有挑戰性的。

在機器學習領域,你必須要在沒有正確答案的問題上做出很多決定!例如:

· 用什麼框架?

· 用什麼資料

作為輸入,

要輸出什麼資料?

· 用什麼演算法?

· 用什麼演算法配置?

這些問題對於初學者來說是乙個嚴峻的挑戰。

·  如何形成乙個明確的學習問題。

·  當給你的問題設計乙個學習系統的時候,有四個決策點需要考慮。

·  你可以用三個決策來明確地來應對在實踐中設計學習系統的難題。

1、適定的學習問題

2、選擇訓練資料

3、選擇目標函式

4、選擇目標函式的表達形式

5、選擇學習演算法

6、如何設計學習系統

我們可以將應用機器學習領域中的一般學習任務定義為乙個程式,它可以根據特定的效能測量從一些任務中學習經驗。

tom mitchell在他2023年《machine learning》一書中做了清晰的闡述:

乙個電腦程式是從某一類任務t和效能測量結果p中學習經驗e的,如果它在t中的任務表現為p,則用經驗e來改進。

我們以這個作為對那些我們可能感興趣的學習任務型別的一般定義,例如**建模等應用機器學習。tom列舉了幾個例子來說明這一點,如下所示:

· 學習識別口語

· 學習無人駕駛

· 學習天體結構分類

· 學習世界級的雙陸棋

我們用上面的定義來定義自己的**建模問題。一旦定義了,任務就會變成設計乙個學習系統來應對。

設計乙個學習系統,如:乙個機器學習應用,涉及了四個設計選擇:

1、選擇訓練資料

2、選擇目標函式

3、選擇表達形式

4、選擇學習演算法

對於乙個給定的問題並提供了無限的資源,可能有最好的一組選擇,但是我們沒有無限的時間來計算資源,以及領域內的或者是學習系統的知識。

因此,儘管我們能準備乙個適定的學習問題的描述,設計這個最有可能的學習系統還是很困難的。我們最好就是用知識,技巧,和可用的資源通過設計的選擇來進行我們的工作。

讓我們更詳細地看一下每乙個設計選擇

你必須選擇學習系統將要用到的資料作為學習經驗。

這是過去觀測到的資料

現有的訓練經驗型別對研究人員的成敗有著重大影響。

對於學習問題,你必須經常收集需要的資料。

這個意思是:

· 清除檔案

· 查詢資料

· 執行檔案

· 整理不同資源

· 合併實體

你需要一次性獲取到所有的資料,並且變成乙個標準化的形式,這樣乙個觀測就代表了乙個結果是可用的實體。

下一步,你必須選擇乙個學習問題的框架

機器學習實際上是乙個學習從輸入(x)到輸出(y)的對映函式(f)的問題

y=f(x)

這個函式能被用在將來**最可能輸出結果的新資料上。

學習系統的目標是準備乙個函式,提供了可用資源,將輸入對映到輸出。這是乙個稱為函式近似的問題。這個結果將是乙個近似值,意味著有誤差。我們將盡力減小這個誤差,但是一些誤差將一直在資料中存在並進行干擾。

這一步是關於精確地選擇輸入什麼資料到這個函式,例如:輸入特徵或者輸入變數還有**什麼,例如:輸出變數。

我經常將此稱為學習問題的框架,選擇輸入和輸出本質上即是選擇目標函式的型別,就是我們將尋求相近的函式。

下一步,你必須選擇你希望用來對映函式的表達形式

考慮這個作為你希望能用來做**的最終模型的型別。你必須選擇這個模型的形式,選擇是否你喜歡的資料結構。

現在我們已經詳述了這個理想的目標函式v,必須選擇乙個表達形式,學習程式將用來描述將要學習的函式v。

例如:· 也許你的專案需要乙個易於理解並向利益相關方解釋的決策樹。

· 也許你的利益相關方傾向於乙個線性模型,統計人員能很容易地解釋。

· 也許你的利益相關方不關心除了模型表現以外的任何事,因此所有的模型表達形式都是可以爭取的。

表示的選擇將限制學習演算法的型別,您可以使用這些演算法來學習對映函式。

最後,你必須選擇學習演算法,該學習演算法執行輸入輸出資料並且學習你傾向的表示式的。

如果在表達形式的選擇上面沒有什麼限制,那麼經常是這樣,然後你可能評價一系列不同的演算法和表示式。

如果在表達形式的選擇上面有一些嚴格的限制,例如:乙個加權和線性模型或者乙個決策樹,那麼演算法的選擇將被限於能操作特定表達形式的那些。

演算法的選擇可以利用自身的限制,例如像資料標準化那樣的特定資料的準備轉換。

開發乙個學習系統是有挑戰性的。

從這個方式上沒人能告訴你每個決定的最佳答案;對於你指定的學習問題,最好的答案是未知的。

mitchell描述了在設計乙個下棋學習系統所做的選擇的時候,幫助澄清了這一點。

在設計乙個下棋學習系統時的選擇描述。

來自「machine learning」, 1997。

mitchell說:

在許多方法上,這些設計選擇已經約束了學習任務。我們已經限定了能被用來獲取到乙個線性評估函式的知識型別。除此之外,我們還限定了評估函式依賴於僅僅提供的這六個特定的板特徵(board features)。如果這個正確的目標函式v能真正的被這些特殊特徵的線性組合所表示,那麼我們的程式會有乙個好的機會來學習它。如果相反,那麼我們希望最好是它將學習乙個比較理想的近似值,因為乙個程式肯定永遠也學不到它至少不能表示的東西。

通常地,你不能通過分析的方法計算出這些選擇的答案,例如用什麼資料,用什麼演算法,用什麼演算法配置。

這裡是你能在實踐中用到的三個策略:

1、複製:看文獻或者向專家學習與你的問題相同或相近的問題,並且複製學習系統的設計。很可能你不是第乙個致力於給定型別問題的人。在最壞的情況下,複製的設計給你的設計提供了乙個起點。

2、查詢:在每個決策點列出可用的選項,並且對每乙個進行經驗評估,看看哪個對你的具體資料最有效。這可能是在應用機器學習中最健壯和最實用的成果

3、設計:通過上面的複製和查詢方法,在完成了許多專案之後,你將為了如何設計及其學習系統而形成了乙個直覺。

開發學習系統不是乙個科學而是乙個工程。

開發新的機器學習演算法和描述它們如何工作與為什麼工作是一門科學,並且在開發學習系統時,這通常不是必需的。

開發乙個學習系統與開發軟體非常的相似。你必須結合過去工作中設計的成果副本,能顯示出有用的那些原型,還有為了得到最好的結果而開發乙個新系統的時候的設計經驗。

推薦閱讀閱讀

machine learning

, 1997書中相關問題解釋的更全面。

本文由北郵

@愛可可-愛生活

老師推薦,

阿里云云棲社群

組織翻譯。

文章原標題《》

作者:jason brownlee

譯者:奧特曼,審校:袁虎。

文章為簡譯,更為詳細的內容,請檢視

機器為什麼可以學習

機器學習 人工智慧炙手可熱,但是機器到底為什麼可以學習呢?本文將從霍夫丁不等式講到vc維,機器學習的原因所在。機器什麼時候可以學習 機器怎麼學習 如何讓機器學得更好總結 機器學習乍聽之下很厲害,這時候人就會想,這乙個普普通通的死板的機器,怎麼會學習呢?很容易地,人們舉了個簡單的問題 如下圖 x,y,...

為什麼要學習機器學習?如何學習

如果你是乙個博士,那麼很可能你的理想是提出乙個被全世界廣泛應用的演算法,如em,svm等 如果你是乙個碩士,那麼很可能你的理想是把博士們提出的演算法應用到實際的工程當中,我是乙個碩士,我目前想做的事情,就是利用目前一些比較成熟的機器學習演算法來解決實際工程中的問題。不過最近比較糾結,怎樣去進一步學習...

機器學習 模型為什麼是這個樣子 期望

昨晚寫完邏輯回歸準備寫感知機時,突然想到了兩個問題,感知機就停下筆來。第乙個問題是 我說了不管是分類還是回歸,都是要對p y x p y x 進行建模,也說了,線性回歸是n y wt x,n y wtx 邏輯回歸是be r y sigm wtx b er y s igm wtx 也通過極大似然估計出...