我打算邊看書邊複習講義,而後用本身的話把每章能看懂的點總結下,歡迎你們指正。因爲用語會盡可能口語保證易懂,因此會有失嚴謹性,具體的細節能夠看本書。《Learning from data》
第一章主要解決兩個問題:
- 經過一個例子介紹機器學習算法;
- 粗略的證實爲何機器學習是可行的?
關於第一點
雖然舉得例子PLA比較簡單,也基本沒啥可用性,可是確實比較適合作爲第一個機器學習算法給初學者基本的印象。這個算法的理解在於迭代不等式,爲何這個等式能夠不斷糾錯直到最終的收斂?
Cousera課程的ppt上有個很直觀的解釋:
當y=+1時,表示x與w(也就是直線的法向量,假設w朝向正的這邊)的夾角小於90℃,若是有一個點它與w的夾角大於90℃說明是分錯的點,作一個向量的加法便可讓朝着與x夾角減少的方向前進(問題1,不必定一次就搞定吧?)。
迭代的方向沒問題以後,剩下的就是爲何會收斂?證實思路是構造一個最終的完美的wf(便可以徹底平分數據集的直線),而後證實w最終在有限輪以後能夠和wf的夾角爲0,具體證實能夠看這裏。
2 前一個PLA的例子是給初學者直觀的映像,什麼是機器學習算法,我的以爲第一章最精華的地方是第二點,即粗略證實機器學習是可能的。
首先,什麼是機器學習?從這本書的書名咱們能夠獲得簡單的解釋,是指機器從數據中學習,這個很是關鍵,有些時候不是學習而是記憶,例如人們學習數學公式,因爲公式已是肯定的理論成果,已經通過實踐檢驗的,那個不是學習而是記憶,而後理解,而學習是它的反向過程,即要求人或機器去推導出這樣一個公式,因此機器學習的先覺條件是數據。以後纔是算法之類的。
有了數據之後,咱們就要開始學習了。假設所有的數據用D表示,咱們拿到的用於訓練的數據用d表示,所謂學習,本質上是獲得一個假設函數g,這個g在抽樣數據集d上錯誤率很小,更重要的是,它在全集D的錯誤率也很低,這樣咱們就能夠用g去預測將來各類狀況了,也就是說咱們學到了g。嚴格來講,機器學習伴隨着兩個過程,一個是學習即求解g,第二個就是驗證了。
換句話說。這裏有兩個問題咱們須要解決:
- 這個假設g怎麼獲得?-- 學習
- 怎麼保證咱們的g在全集D的錯誤率很低?全集D是無限大的,咱們怎麼知道?-- 驗證
第一個問題,就是機器學習算法要知道的,就是從一堆假設裏面選。怎麼選?固然選可以在咱們的d上表現最好的,這樣咱們就獲得了那個g。其實這個問題沒那麼簡單,由於有第二個問題。怎麼驗證獲得的g在全集的錯誤率低?d上的錯誤率和D上的錯誤率有沒有關係呢?這個叫作g的泛化能力。咱們只能求助於機率統計了,那個神奇的公式就是hoffeding inequality。以下所示:
從公式的形式不能看出,它能表示假設h在d和D上的錯誤率之差在必定的範圍內的機率,咱們只須要讓這個機率越大越好。從公式,咱們就能夠發現,只要N越大,這個就能獲得保證,看看,數據的多少也很重要。這裏有兩個隱形的條件:
- h是固定的,也就是說,這個公式只預先獲得的h有做用;
- d的抽取,必須可以反映D的機率分佈,這個很天然,若是d只能表示一部分,那咱們學不全嘛,會有不少沒見過的樣子,怎麼學。。。,因此通常都是隨機抽取,而不是人工看到哪一個數據順眼選哪一個,這個和直覺是相符的,咱們作抽樣檢查就是基於這個原理;
問題又來了,機器學習的訓練過程就是先肯定數據,再從茫茫多(暫且理解爲M個)的假設裏面選取最佳的假設,這樣的話hoffeding inequality就不能直接用了?固然不會,花了這麼大力氣隆重介紹的神奇公式最後不能用豈不很慘。首先明確,問題是什麼?咱們要證實:
這個東西是有上限的,這樣g纔可以在全集D上錯誤率有所保障。條件呢? 咱們有M個假設,這個是預先肯定的,由於機器學習算法已經定好了才能學,而咱們選的g是從M中來的,因此能夠獲得:
在機率裏面一個事件A能夠推導出另外一個事件B則其發生的機率是小於等於B的,因此獲得了最終M個機率的和:
這個上限是很鬆的,並且不少機器學習算法的假設貌似是無限啊,像PLA,那但是全體直線。。。這個問題是第二章要證實的,結論確定是,還有個更緊的上線可以保證g的錯誤率在d和D上接近。有了這個,咱們就可以放心的選取錯誤率最小的假設做爲g了,由於這個錯誤率能夠泛化到全集。這裏再次說明下,那咱們去找錯誤率爲0的就好了啊,但是要找到那個假設得要多少備胎啊,備胎越多M越大,泛化能力就下來了,那就有可能選到的最小的不必定在全集D表現好(例子可參見這裏提到的硬幣翻轉實驗),可見萬事萬物都是要平衡的。