1. 程式人生 > >【機器學習123】緒論

【機器學習123】緒論

under ont 任務 做出 開始 tex 訓練 預測 筆記

買了周誌華老師的機器學習實體書,集合牛網友的網絡筆記開始一個月的ML學習 https://blog.csdn.net/u011826404/article/details/75577216

雖然研究生也選修過,但基本還給了老師。

這次回顧算是作為FRM二級考前的熱身,加油 Cathy!

----------

1章 緒論

1.1 引言

通過對經驗的利用,對新情況做出有效的決策。

機器學習致力於研究如果通過計算的手段,利用經驗來改善系統自身的性能。

“經驗”通常以“數據”形式存在。

機器學習所研究的主要內容,是關於在計算機上從經驗數據中產生“模型”的“學習算法”,在面對新情況時,模型會提供相應的判斷輸出結果。

1.2

基本術語

數據集;樣本。

屬性/特征;屬性值;屬性空間/樣本空間。

特征向量。

學習/訓練,訓練數據,訓練樣本,訓練集。

測試,測試數據,測試樣本,測試集。

預測任務是希望通過對訓練集進行學習,建立一個從輸入空間到輸出空間的映射。

預測離散值:如分類預測任務。

預測連續值:如回歸預測任務。

聚類:將訓練集分成若幹個“簇”,每個簇對應一些潛在的概念劃分,為更深入分析數據建立基礎。

根據訓練數據是否擁有標記信息,學習任務可分為:監督學習(有標記)和無監督學習(無標記)。

機器學習的目標是使學得的模型能很好地適用於“新樣本”,即具有強“泛化”能力。

一般訓練樣本越多,越有可能通過學習獲得具有強泛化能力的模型。

1.3 假設空間

歸納:從特殊到一般的泛化過程,即從具體的事實歸納出一般性規律。例如從樣例中學習,亦稱“歸納學習”。

演繹:從一般到特殊的特化過程,即從基礎原理推演出具體狀況。例如從公理推斷出定理。

歸納學習有廣義與狹義之分。

廣義歸納學習:相當於從樣例中學習,現實常用技術,大多產生“黑箱”模型。

狹義歸納學習:要求從訓練數據中學得概念,亦稱“概念學習”,研究應用較少。最基本的有布爾概念學習。

機械學習:“記住”訓練樣本,即“死記硬背式”學習。

“假設”的表示一旦確定,則“假設空間”及其規模大小也就確定了。

把學習過程看作一個在所有假設組成的空間中進行搜索的過程,搜索目標是找到與訓練集“匹配”的假設。

對假設空間的搜索策略有許多方式,最終將獲得與訓練集一致(即對所有訓練集樣本能夠進行正確判斷)的假設。

然而現實問題的假設空間往往很大,而學習過程是基於有限訓練樣本集進行的,因此可能出現多個假設與訓練集一致,即存在一個與訓練集一致的“假設集合”,亦稱“版本空間”。

1.4 歸納偏好

版本空間中的若幹個假設模型,在面對新樣本時,很可能會有不同的輸出結果;

若數據包含“噪聲”,則假設空間中有可能不存在與所有訓練樣本都一致的假設。

基於上面若幹情況的存在,需要在學習過程中對某種類型假設設立偏好,稱之為“歸納偏好”。

任何一個有效的機器學習算法必有其歸納偏好,否則它將被假設空間中看似在訓練集上“等效”的假設所迷惑,而無法產生確定的學習結果。

歸納偏好可以看作學習算法自身在一個可能很龐大的假設空間中對假設進行選擇的啟發式,對應了學習算法本身所做出的關於“什麽樣的模型更好”的假設。

那麽如何確立“正確性”偏好呢?是否有一般性的原則引導?

舉例:奧卡姆剃刀(Occam’s razor)- “若有多個假設與觀察一致,則選最簡單的那個”。

但有時“最簡單”的衡量並不簡單。

且存在“沒有免費的午餐”定理(NFL – No Free Lunch):對於一個學習算法A,若它在某些問題上比學習算法B好,則必然存在另一些問題,在那裏B比A好。

推導NFL定理(略)。

註意推導NFL定理的前提假設:所有“問題”出現的機會相同(均勻分布),或所有問題同等重要。

然而現實並不是如此,往往我們只關註試圖解決的問題,其解決方案對其他別的問題並不關心。

所以NFL定理最重要的寓意,是要告訴我們,脫離具體問題,空談“什麽學習算法更好”毫無意義,必須要針對具體的學習問題來討論算法的相對優劣。

學習算法自身的歸納偏好與問題是否相配,往往起到決定性作用。

1.5 發展歷程

1.6 應用現狀

1.7 閱讀材料

-------------------------

學習感言:

讀研時選修過這門課,不過真的只有幾個大概念的殘影了。。。還是好好踏實在學一遍理論。

發現自學時,即使有實體書,結合網絡資料,也需要記錄筆記,不光過眼,要自己輸出才會真正過腦留下影子,形式嘛,電子或手寫都ok。

使用博客園編輯器完成90%的筆記卻莫名丟失。。。只好打開word重新記錄一遍。以後吸取教訓,還是先本地記錄,再發表比較保險。

目前工作中只是測試自動化需求,老板拋出個“能否借助機器學習來測試“。。。結

無腦回答的話,想說機器學習給出個xx%概率來預測Pass/Fail,這這這,不能直接作為測試結果吧?還是需要人來分析那些不是100% Pass的cases。

結合緒論,傳統的系統自動化測試,無非是“機械學習”罷了,需要把Expected Results或者Baseline完整存下來作為經驗數據存檔,將新版本測試結果與預期結果進行比較來精準判斷Pass/Fail。

當然說先進點,聽說過”探索式/啟發式測試“,但超出我目前的理論支撐範圍了。。。希望能從這裏起步,慢慢了解吧。

總共十六章,這個月堅持住!

【機器學習123】緒論