您當前的位置:首頁 > 收藏

白話解釋機器學習基本概念

作者:由 許鐵-巡洋艦科技 發表于 收藏時間:2018-03-25

今天這篇文章想用最直白的話講講大資料和機器學習的幾個基本概念。 中間例子改編自文章machine learning is fun ,(

https://

medium。com/@ageitgey/ma

chine-learning-is-fun-80ea3ec3c471#。onsw9pi04

),之後巡洋艦會有翻譯!

什麼是機器學習

我想巡洋艦的關注者很多是偉大的碼農, 一個基本的問題是, 碼農(傳統演算法工程師)和機器學習工程師都在碼程式做演算法,大家都想讓計算機給人類做事, 兩個有什麼區別?

這裡可以從一個簡單的例子入手, 一段程式可以看做一連串從輸入到輸出的過程,無論是工程師還是程式設計師,我們都想透過設計來完成某種功能, 比如說你做一個網頁, 你要畫視覺圖, UI圖, 前端後端互動圖,我們是給計算機設計一套解決具體問題的流程, 如做一個淘寶網。

機器學習呢? 機器學習是你不去設計, 而讓計算機自己去磨,如同用一套很一般的模子裡打磨出能夠解決特定問題的武器。 這點上,機器學習做的正是” 自發能夠產生解決問題的程式的程式” , 一些機器學習的經典演算法如線性迴歸, SVM, 神經網路, 它們單個都不能解決問題, 但是透過“學習”卻可以一會去預測房價一會去尋找美女。

它是怎麼做到的:

我們模仿人學習的過程讓機器來學習些程式:

最常見的方法就是是有老師告訴你對錯的學習 ,這個稱為

有監督學習

一個一般被作為監督學習入門的例項, 是預測房產的價格, 一個房子的價格決定於非常多的相關因素, 比如房子中臥室, 廁所,客廳的數量和麵積, 周圍環境的交通, 安靜與否,有無學校等, 我們要從這些要素中知道房子的價格。如果你是傳統的房產專家, 你的方法一定是到各個地點做調查成交價, 隨著經驗的增加, 你會得到各個區域的基準價格, 然後按照這個基本價格結合房子的特徵上下調整,得出你的經驗公式。 這真是累死小哥啊。

有了最原始的機器學習,我們也可以把這個人類得出經驗的過程讓機器解決。我們的小哥現在只需要在網上放一分表格, 讓人們把有關房子的有用無用的資訊和價格都填了, 做一個巨大的excel表格。 然後我們讓程式從這些資訊學習價格的pattern(模式)。

之前的因素在這裡我們換以一個新的詞彙-特徵。

每一個特徵, 這次要用一個數表示, 如同線性代數里的座標基。而這些特徵如何決定價格的, 我們就可以不管, 讓機器決定去。特徵的個數我們通常稱之為

維度

,一個問題的維度往往決定其

複雜性,

以及所使用的方法, 這就是

複雜系統

所擅長討論的範疇了在此不詳述

維度本身同時決定我們可能需求的資料量多少, 高維度意味著我們需要求解問題的資訊量也成比例的增長。

特徵工程

就是在大量的資訊, 比如“我的房子有個大落地窗”這種話裡提取出和房價可能相關的屬性(attribute)。

所謂機器學習的

模型選擇,就是在尋找一個基本學習框架, 包含你對預測事物的非常一般的理解, 比如房子的價格可能是很多因素的疊加這種初中水平的東西,學名線性迴歸:

白話解釋機器學習基本概念

你不是有眾多特徵決定嗎? 我可以用一個演算法,讓一個非常初級的模型自動的進化,機器學習工程師要做的是把這個模式的毛坯找出來,以及這個尋找自動演算法的演算法做出來,這個一旦做出來, 後續的資料就像一顆顆子彈把模型打造成型。

白話解釋機器學習基本概念

這個把模型打磨成型的過程就是學習,行裡叫求解引數。這組引數不是讓某個特定的房子的價格被最好的擬合,而是讓整個資料集都被一組引數涵蓋。 這組引數就是我們學習的結果, 放佛具有了一種人一樣的預測未知房價的能力。

就像人一樣,機器也是從錯誤中學習的,因此,最經典的監督學習裡, 我們首先要做的是衡量錯誤的大小,我們用一個叫cost function的東西衡量模型預測的結果與真實值的差距, 模型的效果越差, 這個cost function的值就越高。

白話解釋機器學習基本概念

這個函式告訴你的是,每次犯錯都是潛在的風險和損失,我們稱之為cost。而cost 函式來衡量目前模型離最終正確模型的距離。

這個cost函式恰恰是由剛剛說的引數決定的。 這些引數的含義是, 當你改變某一個特徵比如房屋的面積,你的房子價格就會變動,但是變動的方式是什麼, 你不知道, 你就去隨機的擾動這些引數看看得來的價格會如何變化,並且和真實的價格資訊比較, 可能你忽然發現某個瞬間, 你的所有房子的價格都被一組引數神奇的擬合了。

白話解釋機器學習基本概念

我們稱這組引數為最優,或者說我們學習的結果。雖然這個cost函式和統計學裡的方差很相近,但說的不是並非一個意思。

機器學習能否成功,就在於這個最優位置能否找到, 而在大多數時候,我們連這個最優位置是否存在都不知道。

當然剛剛說的隨機方法很是不靠譜,實際操作中我們用到的是一個叫

梯度下降

的方法, 讓引數順著最快速減少預測錯誤的方向去自動調整,如下圖。

白話解釋機器學習基本概念

圖中的x,y軸代表引數, 高度代表錯誤率, 窪地的那個點正是最優引數點。

訓練與測試

用一個形象的比喻理解有監督學習

它就像一個拿著一堆模擬考試題學習的學生, 這個過程裡你透過不停的比較你和標準答案的差距來學習完成試卷, 而最終這個學生要面對的是真實的考試。 相對應的,我們通常在有監督學習裡把我們的資料分成兩部分, 一部分做學習的試題,另一個部分做考試用。 一個學生完全可能在平時練習的時候把每道考題被的滾瓜爛熟,而在真正的考試裡一塌糊塗,這種情形我們稱之為

過擬合

白話解釋機器學習基本概念

白話解釋機器學習基本概念

白話解釋機器學習基本概念

如果用兩個最簡單的例子來解釋過擬合發生的原因,主要就是在侷限的資料裡過度的挖掘模式導致的。 比上圖說一個人想要識別樹葉,它只見過那些有鋸齒的樹葉, 見到沒有鋸齒的葉子就會判斷它不是葉子。 或者一個人只見過白天鵝, 它拼命的根據已有的經驗去定義天鵝,而當第一個黑天鵝出現時候, 它的定義就失效了。

無監督學習 :

再一些更困難的問題裡, 我們根本不掌握我們所要求解的資訊,比如房屋的價格, 這好比一個沒有標準答案的開放性考題, 我們需要學生髮散式的探索。

無監督學習看起來不能給出一定的答案, 但是其結果卻可以讓我們得到意想不到的驚喜。

無監督學習最典型的範例是聚類, 一個典型的例子是, 你是一家網際網路公司,你要對你的一大堆客戶資訊, 你首先面對的是如何把這些資料進行整理歸類,無監督學習裡的聚類演算法如k-means,它可以輕鬆的把你的客戶資訊根據特徵自動劃分成大類, 之後你可以發現喜歡愛馬仕包的女生也愛喝拉菲的紅酒這種資訊。

再有說如果你有大量的人的心電圖,你要分辨出哪些是異常的可能是心臟病的情況,但是你又不知道病人有關的資訊, 讓機器自己去無監督學習, 都可能得到意想不到的insight。

機器學習很美嗎

機器學習這件事, 看上去很美, 事實上一點也不, 因為你面臨的是變幻莫測的問題, 你訓練的再好, 你的預測也是有風險的。首先, 因為存在模式,問題才可以預測, 如果你的問題本身就沒有模式, 或者模式極為不可捉摸, 你的演算法再強大也會失敗。比如說你要預測某個商品網站上衣服的價格, 但是這個網站裡的衣服都是一個瘋狂銷售者根據它每天的心情好壞定的, 而你卻去找了一堆衣服的尺碼材質特徵來, 那你的演算法終究要失敗。 即使是一個模式存在的問題, 也總會在某個時點上, 碰到問題的邊界。比如說你要做一個根據女生特徵匹配物件的機器學習演算法, 你的演算法總是根據你過去掌握的男女匹配記錄搞的, 而總會有某個時刻, 你的物件已經不符合歷史資料的規律,這時候要不你調整演算法, 要不你直接放棄服務這類無法預測的人。

機器學習最難的是什麼?

如果你思考一遍上述流程, 你可能發現一切都很容易, 從資料清洗,特徵提取,到模型選擇, 事實上這你就錯了。 因為機器學習最難的一部 , 這裡根本就沒提到, 那就是把現實生產生活中的問題, 提煉成一個機器學習問題 。這需要的是你對問題本身的深刻洞察。 有一天也許整個資料清洗到模型選擇和交叉驗證都自動化了。但始終有一個東西不能完全被機器搞定, 那就是你如何從一個全新的領域, 去提取機器學習可以有助解決的最重要的問題。 再有, 無論機器的預測多準確, 它的結果如果不是在解答人的需求, 也是一個沒用的或至少不令人喜歡的東西。 比如我發明一個演算法能夠特別準的預測老人的壽命, 或者根據女生現在的長相推測她80歲的長相, 即使演算法十分牛掰, 這樣的產品估計也不是客戶喜聞樂見的。

白話解釋機器學習基本概念

標簽: 學習  機器  演算法  一個  我們