機器學習-初探

積跬步以至千里,積怠惰以至深淵算法

注:本篇文章在整理時主要參考了 周志華 的《機器學習》。機器學習

主要內容

對機器學習進行簡單介紹,並引出機器學習基本概念。函數

什麼是機器學習(MachineLearning)

「朝霞不出門,晚霞行千里」性能

人從以往積累的經驗學習總結得出,早上有紅色雲霞的話就預示今天有雨,晚上太陽下山的時候有紅色雲霞的話預示明天晴天。一樣,咱們賦予計算機(在此咱們理解Machine爲計算機)擁有經過對經驗的利用,可以作出有效決策的能力,稱之爲機器學習。學習

如何賦予計算機「學習」能力

定義:針對經驗E (experience) 和一系列的任務T (tasks) 和必定表現的衡量P,若是隨之經驗E的積累,針對定義好的任務T能夠提升表現P,就說計算機具備學習能力。測試

在計算機系統中,「經驗」一般以「數據」的形式存在。經過設計「學習算法」使得計算機可以從數據中產生數據之間潛在的規律和聯繫(例:朝霞與今天下雨,晚霞與明天晴天),咱們將這種規律和聯繫統稱爲「模型」。首先咱們把經驗數據提供給計算機,計算機就能基於這些數據和學習算法產生模型而後作出有效決策;在面對新的狀況時(例如朝霞),模型會給咱們提供相應的判斷(例現在天會下雨)。優化

機器學習算法

咱們先了解一下科學推理的兩大基本手段:概括(induction)演繹(deduction)。前者是從特殊到通常的「泛化」(generalization)過程,即從具體事實歸結出通常性規律;後者是從通常到特殊的「特化」(specialization)過程,即從基礎性原理推演出具體情況。spa

假定咱們收集了一批關於西瓜的數據,例如(色澤=青綠,根蒂=蜷縮,敲聲=濁響),(色澤=烏黑,根蒂=稍蜷,敲聲=沉悶),(色澤=淺白,根蒂=硬挺,敲聲=清脆)...,每對括號內是一條記錄,「=」意思是「取值爲」。翻譯

機器學習的過程其實就是上邊的概括過程,咱們以挑西瓜爲例設計

機器學習的過程就是從具體數據集中「泛化」的過程,即經過對訓練集中瓜的學習以得到對沒見過的瓜進行判斷的能力。咱們能夠把學習過程看做一個在全部假設(hypothesis)組成的空間中進行搜索的過程,搜索目標是找到與訓練集「匹配」(fit)的假設,即可以將訓練集中的瓜判斷正確的假設。

例如在表1.1的訓練集上,咱們能夠找到匹配訓練樣本的假設列表,展現以下:

(色澤=*,根蒂=蜷縮,敲聲=*)     -> 好瓜   (1)

(色澤=*,根蒂=*,敲聲=濁響)     -> 壞瓜   (2)

(色澤=*,根蒂=蜷縮,敲聲=濁響) -> 壞瓜   (3)

算法選擇依據

從上文中咱們能夠得知在同一個訓練集上進行匹配,有可能會匹配出多個假設,那麼機器學習的具體過程當中算法的選擇依據是什麼呢?

在現實問題中咱們常面臨很大的假設空間,可學習過程是基於有限樣本訓練集進行的,所以,可能有多個假設與訓練集一致,即存在着一個與訓練集一致的「假設集合」,咱們稱之爲「版本空間」,上邊的假設(1)(2)(3)即在西瓜數據集上「泛化」出的假設空間。

那麼當咱們遇到一個新收來的瓜(色澤=青綠,根蒂=蜷縮,敲聲=沉悶),那麼咱們該選用哪一個假設來進行判斷呢?若是使用假設(1)時,這是一個好瓜,可若是使用假設(2)(3)時,這就是一個壞瓜了。

這時候的選擇偏好被稱爲「概括偏好」,而任何一個有效的機器學習算法必有其概括偏好,不然它必然被假設空間中等效的假設所迷惑,而沒法產生肯定的學習結果。

一種經常使用的、天然科學研究中最基本的「正確的」偏好原則是「奧卡姆剃刀」(Occam's razor)原則

奧卡姆剃刀原則:如有多個假設與觀察一致,則選最簡單的那個

事實上,概括偏好對應了學習算法自己所作出的關於「什麼樣的模型更好」的假設。在具體的現實問題中,算法的概括偏好是否與問題自己匹配,大多數時候直接決定了算法可否取得好的性能。

舉個例子,在下邊迴歸學習的1.3圖示中,每一個訓練樣本是圖中的一個點,要習得一個和訓練集一致的模型,至關於找到一條穿過全部訓練樣本點的曲線。顯然,這樣的曲線有不少條。若是使用奧卡姆剃刀偏好原則的話,更爲平滑的曲線A會比曲線B要好。

可實際狀況,A曲線卻並不必定比B曲線好,由於用來訓練的樣本只是全量數據的一部分,真正的數據究竟是更貼近曲線A仍是曲線B是沒法得知的。如圖1.4所示,真實的數據是兩種狀況都有可能出現。換言之,對於一個學習算法a,若它在某些問題上比學習算法b好,則必然存在另外一些問題,在那裏b比a好。

可NFL定理有一個重要前提:全部「問題」出現的機會相同、或全部問題同等重要。但實際狀況並非這樣的,不少時候,咱們只關注本身正在試圖解決的問題。好比,要找到快速從A地到B地的算法,若是咱們考慮A地是南京鼓樓、B地是南京新街口,那麼「騎自行車」是很好的解決方案;可是這個方案對A地是南京鼓樓、B地是北京新街口的情形顯然很糟糕,但咱們對此並不關心。

因此,NFL定理最重要的寓意,是讓咱們清楚意識到,脫離具體問題,空泛地談論「什麼學習算法更好」毫無心義,由於若考慮全部潛在的問題,則全部的算法都同樣好。針對具體問題選擇具體的算法和概括偏好纔是正確的作法。

基礎概念

1)基本術語

數據集:對於這組數據的集合;(即,關於西瓜的數據)

示例或樣本:每條記錄關於一個事件或對象的描述;(例,(色澤=烏黑,根蒂=稍蜷,敲聲=沉悶))

屬性或特徵:反應事件或對象在某方面的表現或性質的事項;(即,「色澤」、「根蒂」,「敲聲」)

屬性空間:屬性張成的空間;(即,咱們把「色澤」、「根蒂」,「敲聲」做爲三個座標軸,則它們張成一個用於描述西瓜的三維空間,也稱「樣本空間」或「輸入空間」)

特徵向量:每一個樣本在屬性空間中對應的座標向量;

學習或訓練:從數據中學得模型的過程,經過執行某個學習算法來完成;

訓練數據:訓練過程當中使用的數據;

訓練樣本:訓練數據中每一個樣本;

訓練集:訓練樣本組成的集合;

若是但願學得一個能幫助咱們判斷沒剖開的是否是「好瓜」的模型,僅有前面的示例數據顯然是不夠的。要創建這樣的關於「預測」(prediction)的模型,咱們須要得到訓練樣本的「結果」信息,例如「((色澤=青綠,根蒂=蜷縮,敲聲=濁響),好瓜)」。

標記(label):關於示例結果的信息;(例如,好瓜)

樣例(example):擁有了標記信息的示例;

測試:用已學得的模型進行預測的過程;

測試樣本:被預測的樣本;

2)算法分類

分類(classification):目標標記爲類別型數值(category);(例如「好瓜」「壞瓜」)

迴歸(regression):目標標記爲連續性數值(continuous numeric value);(例如西瓜成熟度0.9五、0.37)

監督學習(supervised learning):是利用已知類別的樣本(即有標記的樣本 labeled sample,已知其相應的類別),調整分類器的參數,訓練獲得一個最優模型,使其達到所要求性能,再利用這個訓練後的模型,將全部的輸入映射爲相應的輸出,對輸出進行簡單的判斷,從而實現分類的目的,這樣,便可以對未知數據進行分類。

通俗的來說,咱們給計算機一堆選擇題(訓練樣本),並同時提供了它們的標準答案,計算機努力調整本身的模型參數,但願本身推測的答案與標準答案越一致越好,使計算機學會怎麼作這類題。而後再讓計算機去幫咱們作沒有提供答案的選擇題(測試樣本)。

無監督學習(unsupervised learning):實現沒有有標記的、已經分類好的樣本,須要咱們直接對輸入數據集進行建模,例如聚類,最直接的例子就是咱們常說的『人以羣分,物以類聚』。咱們只須要把類似度高的東西放在一塊兒,對於新來的樣本,計算類似度後,按照類似程度進行歸類就好。

通俗的來說,咱們給計算機一堆選擇題(訓練樣本),可是不提供標準答案,計算機嘗試分析這些題目之間的關係,對題目進行分類,計算機也不知道這幾堆題的答案分別是什麼,但計算機認爲每個類別內的題的答案應該是相同的。

強化學習:所謂強化學習就是智能系統從環境到行爲映射的學習,以使獎勵信號(強化信號)函數值最大,強化學習不一樣於鏈接主義學習中的監督學習,主要表如今教師信號上,強化學習中由環境提供的強化信號是對產生動做的好壞做一種評價(一般爲標量信號),而不是告訴強化學習系統RLS(reinforcement learning system)如何去產生正確的動做。

通俗的來說,咱們給計算機一堆選擇題(訓練樣本),可是不提供標準答案,計算機嘗試去作這些題,咱們做爲老師批改計算機作的對不對,對的越多,獎勵越多,則計算機努力調整本身的模型參數,但願本身推測的答案可以獲得更多的獎勵。不嚴謹的講,能夠理解爲先無監督後有監督學習。

遷移學習:考慮到大部分數據或任務是存在相關性的,因此經過transfer learning咱們能夠將已經學到的parameter 分享給新模型從而加快並優化模型的學習不用像以前那樣learn from zero。把已學訓練好的模型參數遷移到新的模型來幫助新模型訓練數據集。

機器學習應用

語音識別、自動駕駛、語言翻譯、計算機視覺、推薦系統、無人機、識別垃圾郵件

總結

一、若是說計算機科學是研究關於「算法」的學問,那麼相似的,能夠說機器學習是研究關於「學習算法」的學問。

二、機器學習的本質是構建起輸入和輸出之間的關係模型,並利用這個關係模型來解決未知的狀況。

三、機器學習的學習過程是對數據集的泛化過程。

四、並無絕對好的機器學習算法,脫離具體問題,空泛地談論「什麼學習算法更好」毫無心義,由於若考慮全部潛在的問題,則全部的算法都同樣好。

五、針對具體問題選擇具體的算法和概括偏好纔是正確的作法。

相關文章
相關標籤/搜索