在學習了台灣大學husan-tian lin老師的課程後,將一些知識和自己的一些體會整理成筆記。
機器學習基礎課程中主要講了四個部分:
1,機器什麼時候可以學習
2,為什麼機器可以學習
3,機器怎麼學習
4,機器怎麼樣才能學得更好
本筆記從機器什麼時候可以學習說起
現在機器學習的概念被炒的很火,但並不是什麼問題都能用或應該用機器學習的方式來解決。我們可以通過以下條件判斷是否可以用機器學習的方式解決手上的問題
機器學習的三個關鍵要素:improve someperformance measurewithexperiencecomputed fomrdata
1, 要有目標。在使用機器學習的時候,要有目標讓機器去實現,並且可以用這個目標衡量機器學習效果的好壞。比如最常見的二分類問題,需要讓機器去判斷是或不是,並且可以通過機器判斷得
2,要值得使用機器去學習,不是很輕易可以手工解決的。比如給電腦輸入乙個數字不需要用機器學習去識別,但是一張有數字的就需要用機器學習
3,要有足夠的資料,讓機器去學習。
機器學習理論的一些基本符號:
機器學習個元素的簡要關係圖:
我們有輸入:x,每個輸入對應輸出y,每一對輸入和輸出組成了資料(訓練集)d,我們認為x和y之間有一定的關係(f),當然這個關係在學習出來之前是不知道的。儘管我們還不知道x和y的關係是什麼,但我們會做一些假設h(h是假設的集合,裡面可能包含了一系列的假設,當然假設的數量和最終機器學習的結果和效果是有關係的。這個後續會再討論。)。機器學習就是使用資料d,運用某種演算法a,在假設的集合h中學到乙個模式g。當然,我們期望學習到的g和真正資料的模式關係f是盡可能接近的。
乙個最基本的機器學習模型:使用感知器模型製作信用評分卡
客戶來申請信用卡,x是客戶的申請資訊(客戶特徵),對每個特徵xi,都有乙個對應的權重。特徵i*權重i並且相加就是這個客戶的分數。分數高於某個閾值threshold就發卡,否則就不發卡。這也就相當於我們的機器學習的假設h就是乙個sign函式,這個sign的輸入=權重*特徵-閾值,結果是正的sign就是正的,也就是發卡
有了以上的假設和資料,下面就可以使用感知器學習演算法(perceptron learning algorithm,pla)對資料訓練,從假設h中挑選出乙個我們(基於資料)認為最正確的假設g(hopefully這個g=f,但f是未知的):
1,從0開始,將所有的權重wi初始化為0,挑選每個點計算h(x),看hx是否等於y
2,若所有hx和y都相等,說明基於已有的資料,找到的假設h已經做到了最好(所有的資料分類都正確了),演算法停止,否則:
3,若有某個點的hx和y不相等,相當於演算法在這個點上的**犯了錯誤,那麼需要對hx進行修正。pla的假設是線性的,對hx的修正就是旋轉h=wx這條線(或麵、超平面),就是改變權重w,糾正原來**錯誤的點。更新wt+1=wt+yn(t)*xn(t),如果**正值錯誤,就將w向正值方向旋轉,如果**負值錯誤,就將w向負值反方向旋轉。
對所有的資料點,pla採用遍歷的方法,每個都看一遍,有錯的就按照上述方法修正,直到所有的點的**都是正確的。當然有乙個問題,pla不一定能停得下來,不是所有的資料都可以找到乙個平面完美分割的。只有線性可分(linear seperable)才能用pla分開
現在先假設資料是線性可分的。使用pla演算法是否可以得到正確的模式(f)?
假設隱藏的(正確的)模式f對應的權重是wf,如果pla可以通過學習接近f,那麼它得到的權重wt應該和wf越來越相似。這其實是兩個向量越來越相似的問題。用wt+1和wf做內積,可以判斷是否經過演算法更新的wt+1和wf更加接近了:
w(t+1)*wf=(wt+1的遞迴公式)*wf=(wt+yn(t)*xn(t))*wf>=wt*wf+min(yn*wf*xn). 而對於wf,因為它是正確的模式,必然有對於任意的資料點xn, yn, sign(wf*xn)=yn, 即它們同號,yn*wf*xn>0. 所以w(t+1)*wf>wt*wf, 即兩個向量內積越來越大,說明經過演算法遞迴後,wt和wf角度越來越小(wt和wf越來越接近).
當然兩個向量內積變大,除了角度原因,也有可能是向量長度導致的。但是我們可以證明,如果在只有犯錯的的時候才更新wt,wt的長度||wt||不會增長過快,wf*wt/||wf||*||wt||>=t*constant, t是更新的次數。資料線性可分,t是有限的。
pla只是乙個非常原始的分類器演算法,只有線性可分的時候才能用。實際上資料很少有線性可分的,並且資料中可能有很多噪音干擾,這些都導致pla實際上很少使用。
機器學習課堂筆記(一)
無監督學習和聚類演算法的應用 機器自己去找出資料集內在的關係,機器學習例子 舉個跳棋的例子,乙個電腦程式從許多局跳棋遊戲關於跳棋本身和贏得下局的概率中學習,從而對另外一局跳棋,程式贏得比賽的概率。監督學習的例子 如果 根據戶型 房價,這是回歸問題,而通過戶型來 實際 會比定價高還是低,則是分類問題。...
機器學習課堂筆記4
1,機器什麼時候可以學習 2,為什麼機器可以學習 3,機器怎麼學習 4,機器怎麼樣才能學得更好 vc維 課堂筆記3中提到 break point 的概念 在資料量達到一定數量k的時候,假設集合h無法再shatter這k個資料,則成長函式mh的break point就是k。vc dimision k ...
課堂筆記1
原碼,反碼,補碼 原碼,反碼,補碼是機器儲存乙個具體數字的編碼方式 8位二進位制位中 第一位表示符號位,其餘位是編碼位 原碼 資料的二進位制表達形式。反碼 正數的反碼不變,負數的反碼在原碼的基礎上除了符號位,其他都取反。補碼 正數的補碼不變,負數的補碼在原碼的基礎上除了符號位取反,並且在最後位上加一...