您的位置:首頁>正文

機器學習—Lesson01:概念(序章)

之前通過看臺大的公開課視頻《機器學習基石》來學習, 但是發現看的看的有些懵, 感覺自己還是看書自學比較好, 不過視頻也算我的“引路人”, 讓我對機器學習有了一個大概的認識, 對我現在“啃書”有著很大的幫助。 今天早上七點起床, 七點半到圖書館開始學習, 那麼從今天開始就要開始苦讀《Python大戰機器學習》以及周志華老師的《機器學習》了, 希望能在讀研之前的三個月時間有所斬獲吧。

這本書封皮就是使用的西瓜, 學習使用的栗子也是西瓜, 看來周志華老師很喜歡吃西瓜……

我們在挑選好的西瓜時,

根據生活經驗大致有這麼幾個指標:瓜皮的色澤、根蒂的形狀、敲打的聲音。 那麼現在就選擇這三個特性來對機器學習進行形象的學習。

我們可以把機器學習分成收集、分析、預測三個階段。 這些階段所面對的物件都是資料, 也就是說機器學習是圍繞資料展開的。

1.元素、稱謂

首先把我們的資料分放在一起, 稱之為:

D = {x1,x2,x3}—— 資料集。

其中每一個x都是一個一個西瓜的資訊, 稱為樣本(sample)例如:

x1(色澤=烏黑, 根蒂=捲曲, 敲聲=渾濁)

每一個都是三維向量, 我們稱d=3,3是樣本維數。

假設三維坐標系, X軸是顏色, 相當於一個色譜, 不同顏色對應不同數值;Y軸是根蒂、Z軸是敲聲。 這樣, 每一個西瓜在坐標系中都有自己的位置。

這三個維度張開形成一個三維空間,

我們稱之為:

X:樣本空間、輸入空間。

而每一個資料都會對應一個結果, 好瓜或者壞瓜, 我們稱之為:

label 標記。

我們把label的集合稱為:

Y:標記空間、輸出空間。

(xi, yi)表示第i個樣例, 既有資料又有結果, 我們稱之為樣例(example)。

2.目的

我們的目的是研究一個學習演算法(學得模型)以用來匹配當前訓練所使用的的資料且可以預測以後的瓜是好是壞, 換句話說, 我們是在茫茫多的演算法當中尋找一個接近“真理”的演算法, 可以準確的預測。

我們把每一個演算法稱為h:假設。

這個茫茫多的演算法放在一起, 稱之為:假設空間。

把接近真理的判斷瓜是好是壞的方法稱為:

g:ground-truth。

這樣一來, 我們的目的就是在hypothesis set中尋找一個無限接近真理g的h。 我們把h→g的逼真程度, 或者學得模型對除了訓練資料集以外的新樣本的適應能力,

稱為泛化(generalization)能力。

泛化能力指學得模型對新樣本的適應能力, 能力越強則越能準確地預測瓜是好是壞, 則h越接近g, 那麼h越是可以代表更廣泛的樣本、樣例, 也就是說我們從特殊的樣本獲得了一個一般的規律, 我們將這個過程稱為歸納。

歸納(induction)、演繹(deduction):

歸納是獲得學得模型, 演繹就是預測。

歸納學習有廣義學習:相當於從樣例中學習;狹義學習:要求從訓練資料集中得出一個概念(concept)。

給概念舉個例子:色澤鮮亮、根蒂捲曲、敲聲渾濁的瓜是好瓜。

我們要獲得一個泛化性能好、語義明確的概念是很難的, 而且現實當中我們也基本使用的是“黑箱模型”(不在乎內部是如何運作的,

只關心輸入與輸出), 也就是說我們只要知道一個瓜是什麼特性的, 結論是好是壞就可以了, 沒必要知道是如何定義什麼是好瓜這個概念的。

3.得出學得模型的過程

學習過程看作一個從hypothesis set中選出匹配訓練集的假設, 但是選出的假設有可能不止一個, 如果有多個假設匹配訓練資料集, 我們就將這多個假設放到一起, 稱為:版本空間(version space)或hypothesis set。

版本空間中的假設可能對同一個樣本x有不同的判定y, 但對於一個學習演算法而言, 必須要產生一個學得模型, 此時演算法本身的“偏好”就顯得尤為重要。 對於某種類型假設的偏好, 稱為:歸納偏好。 這個歸納偏好對於每一個演算法來講都是必須的。 可以將歸納偏好看作是在假設空間中選擇假設的啟發式、“價值觀”。

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

例如在三維空間中訓練資料集的點可以被一條直線全部經過, 也可以被一條七拐八拐的曲線全部經過, 那麼我們就選擇簡單的直線。

但這個假設是否簡單也有著不同的詮釋, 如何判定, 需要借助其它機制, 例如在上面的例子中, 用幾何圖形的方程來判定是否簡單。

但是, 如果一個演算法A在某一問題上比演算法B好, 則必然存在另一個問題B更好, 這就是NFL定理(No Free Lunch Theorem):無關A、B有多好多壞, 其期望性能是相同的。 但前提是所有問題出現的機會相等, 或者所有問題同等重要。

一看這個定理, 所有的演算法的期望性能都一樣, 那麼一個經過幾年研究的演算法跟胡思亂想的一個“點子”的效果一樣, 那我們還研究什麼啊!?

但是我們要明確一點的是:現實生活中,問題各種各樣,情況各不相同,所有問題出現機會相等,所有問題同等重要這種情況是不存在的。所以NFL定理的寓意在於:補課脫離現實具體問題,空談演算法好壞是無意義的。

學習演算法自身的歸納偏好與問題是否匹配,具有決定性作用。

4.一些概念

如若我們研究的是離散值,我就稱為:分類

研究連續值:回歸

不給標記進行自分類:聚類

二分類任務:結果標記只有兩種情況,例如好、壞,Y = {-1,+1} 負類(negative)、正類(positive)

多分類任務:| Y | > 2

回歸任務: Y = R,R為實數集

監督學習(supervised learning):分類、回歸。在喂給機器資料時候,明確告訴機器,這個資料的類別,或者label。

半監督學習(semi-supervised ):是告訴一部分資料的類別樣本,大部分的資料要考機器自己分類。

無監督學習(unsupervised learning):聚類。完全不告訴機器類別,完全靠機器自己。

聚類:不知label,不知類別,可以更好的瞭解資料內在、潛在的規律,在自分類後,每一類稱為簇(cluster)

增強學習(reinforcement learning):機器一部分一部分漸進學習。比如,訓練狗狗坐下,我們說“坐下”,但狗狗剛開始聽不懂,有可能開始pees,這種情況下,我們無法直接告訴它坐下是什麼樣的動作(難道我們要親自示範麼),所以我們可以採用側面告知,一部分一部分的交給它。這個過程是怎樣實現的呢?我們可以利用獎懲。當他做錯動作的時候,我們給他懲罰,比如打他一下(殘忍。。),這樣在進行了很多錯的動作後終究會做出對的動作坐下,當它做對的時候給她獎勵。這個過程就是,一步一步的認知動作是錯的,從而接近對的動作。

那我們還研究什麼啊!?

但是我們要明確一點的是:現實生活中,問題各種各樣,情況各不相同,所有問題出現機會相等,所有問題同等重要這種情況是不存在的。所以NFL定理的寓意在於:補課脫離現實具體問題,空談演算法好壞是無意義的。

學習演算法自身的歸納偏好與問題是否匹配,具有決定性作用。

4.一些概念

如若我們研究的是離散值,我就稱為:分類

研究連續值:回歸

不給標記進行自分類:聚類

二分類任務:結果標記只有兩種情況,例如好、壞,Y = {-1,+1} 負類(negative)、正類(positive)

多分類任務:| Y | > 2

回歸任務: Y = R,R為實數集

監督學習(supervised learning):分類、回歸。在喂給機器資料時候,明確告訴機器,這個資料的類別,或者label。

半監督學習(semi-supervised ):是告訴一部分資料的類別樣本,大部分的資料要考機器自己分類。

無監督學習(unsupervised learning):聚類。完全不告訴機器類別,完全靠機器自己。

聚類:不知label,不知類別,可以更好的瞭解資料內在、潛在的規律,在自分類後,每一類稱為簇(cluster)

增強學習(reinforcement learning):機器一部分一部分漸進學習。比如,訓練狗狗坐下,我們說“坐下”,但狗狗剛開始聽不懂,有可能開始pees,這種情況下,我們無法直接告訴它坐下是什麼樣的動作(難道我們要親自示範麼),所以我們可以採用側面告知,一部分一部分的交給它。這個過程是怎樣實現的呢?我們可以利用獎懲。當他做錯動作的時候,我們給他懲罰,比如打他一下(殘忍。。),這樣在進行了很多錯的動作後終究會做出對的動作坐下,當它做對的時候給她獎勵。這個過程就是,一步一步的認知動作是錯的,從而接近對的動作。

同類文章
Next Article
喜欢就按个赞吧!!!
点击关闭提示