標籤:

機器學習筆記

首先有一個問題,什麼是機器學習呢?有一位很厲害的前輩有一個定論,翻譯成中文是:對於某類任務T和性能度量P,如果一個計算機程序在T上以P衡量的性能隨著經驗E而自我完善,那麼我們稱這個計算機程序在從經驗E學習。感覺這個沒錯,但是感覺不容易理解。我學了一些課程之後,感覺可以從人類的學習過程來理解機器學習。所有的演算法都是泛化於人類,而人類推論有兩種方法:一個是演繹,另一個是歸納。關於演繹是人類一開始學習了一些基本知識,基本知識給了我們一些概念,用這樣的概念可針對遇到的事情做一些推論。舉個例子,我們在學校裡面學到的知識,通常來講都是屬於演繹法這個範疇的。至於歸納,我們在學習過程中有一些知識並沒有辦法透過人的傳授直接獲得,就像有時候延外的經驗,而歸納法,它就像是人的經驗,學習知識另外一個途徑就是掌握經驗,看了很多實例後掌握經驗,然後根據經驗做一些推論。機器學習的過程就類似於人的歸納法,只是對於人而言,要看到很多事例後才能看到規律,掌握經驗,以及進行推論;電腦的觀察方式則是有大量的資料,然後把這些大量的資料「喂」給電腦後,電腦可累計出規則,在知道這些規則後可以幫助我們推論出一般的事實。

也就是說,機器學習的目的是:歸納!也就是從詳細事實到一般通論。

機器學習時需要仰賴大量的資料,在以前我們收集到的數據不多,可以處理的數據也不多,因此餵給機器的數據不多;機器沒有接收到足夠多數據時,機器產生的推論/規則就不夠聰明,就沒辦法去代替人類,因此機器學習就應用的較少。但是如今是大數據時代,可以通過互聯網、物聯網或者其他各種不同來源去收集到數據,有分散式運算基礎和儲存基礎可以運算和儲存大量資料,所以這時把海量資料餵給電腦之後,電腦可根據海量資料進行學習,因此可以找到與人類匹敵或者更厲害的智慧。這就是機器學習早就出來,但如今才火起來的原因吧。

我們又如何找到一個有效的預測模型呢?一開始都是從一個簡單的模型開始,繼而不斷喂入數據,修改模型,然後不斷提升預測績效,最後也就找出了一個有效的預測模型。也就是機器學習整個的流程也就如下:

使用者產生行為==》採集資料==》數據轉換與清洗==》建立模型==》驗證模型==》部署模型==》使用者產生行為 |________|

機器學習的演算法可以分為兩類:監督式學習和非監督式學習。在監督式學習裡面,分為回歸分析和分類問題;非監督式學習則可分為降低維度和分群問題。如何區分監督式學習和非監督式學習呢?監督式學習有一個答案,就像對人進行分析,我們當知道他是好人或者壞人時,我們就知道了他的結果,知道了這個結果,演算法就可以根據既有的答案生成模型,模型的準確率與既有答案相符;非監督式學習就沒有答案,只有吧同樣或異樣的數據放在一起,然後發現異常或規律,分類找到答案。回歸分析和分類問題的區別呢?首先,回歸分析是用來預測連續型數字,分類則用於類別;之後呢,分類是一類問題,回歸卻是一個工具,分類的目的在於給對象按照其類別打上相應的標籤再分類,而回歸則是根據樣本研究其兩個(或多個)變數之間的依存關係,是對於其趨勢的一個分析預測。分類的標籤如果是表示(離散的)有排序關係的類別時,比如說「好」、「較好」、「一般」這樣的時候,也可以用回歸來處理。但是如果標籤是純粹的分類,比如說電影中的「喜劇」、「動作」、「劇情」這樣的無排序關係的標籤時,就很難用回歸去處理了。而且,分類中還存在著「多分類」的問題,也就是一個對象可能有多個標籤的情況,這就更複雜了。降低維度就不說了,分群問題就是近朱者赤近墨者黑。

而同時,回歸所能做的也並非只有分類,也可以用來做預測等其他問題。

所以,回歸和分類的區別並非只有輸出的「定性」與「定量」那麼簡單,應該說兩者屬於不同的範疇。


推薦閱讀:

在Python中使用xgboost建立多分類模型
機器學習演算法面試小結
如何理解機器學習?
提升方法(AdaBoost)
激活函數的實現與梯度檢查<五>

TAG:機器學習 |