從機器學習談起

2021-08-07 11:54:24 字數 3242 閱讀 2228

在本篇文章中,我將對機器學習做個概要的介紹。本文的目的是能讓即便完全不了解機器學習的人也能了解機器學習,並且上手相關的實踐。這篇文件也算是easypr開發的番外篇,從這裡開始,必須對機器學習了解才能進一步介紹easypr的核心。當然,本文也面對一般讀者,不會對閱讀有相關的前提要求。

在進入正題前,我想讀者心中可能會有乙個疑惑:機器學習有什麼重要性,以至於要閱讀完這篇非常長的文章呢?

我並不直接回答這個問題前。相反,我想請大家看兩張圖,下圖是圖一:

圖1 機器學習界的執牛耳者與網際網路界的大鱷的聯姻

通過上面兩圖,我相信大家可以看出機器學習似乎是乙個很重要的,有很多未知特性的技術。學習它似乎是一件有趣的任務。實際上,學習機器學習不僅可以幫助我們了解網際網路界最新的趨勢,同時也可以知道伴隨我們的便利服務的實現技術。

機器學習是什麼,為什麼它能有這麼大的魔力,這些問題正是本文要回答的。同時,本文叫做「從機器學習談起」,因此會以漫談的形式介紹跟機器學習相關的所有內容,包括學科(如資料探勘、計算機視覺等),演算法(神經網路,svm)等等。本文的主要目錄如下:

1.乙個故事說明什麼是機器學習

2.機器學習的定義

3.機器學習的範圍

4.機器學習的方法

5.機器學習的應用--大資料

6.機器學習的子類--深度學習

7.機器學習的父類--人工智慧

8.機器學習的思考--計算機的潛意識

9.總結

10.後記

1.乙個故事說明什麼是機器學習

剛才的思考過程我只考慮「頻次」這種屬性。在真實的機器學習中,這可能都不算是乙個應用。一般的機器學習模型至少考慮兩個量:乙個是因變數,也就是我們希望**的結果,在這個例子裡就是小y遲到與否的判斷。另乙個是自變數,也就是用來**小y是否遲到的量。假設我把時間作為自變數,譬如我發現小y所有遲到的日子基本都是星期五,而在非星期五情況下他基本不遲到。於是我可以建立乙個模型,來模擬小y遲到與否跟日子是否是星期五的概率。見下圖:

圖3 決策樹模型

這樣的圖就是乙個最簡單的機器學習模型,稱之為決策樹。

當我們考慮的自變數只有乙個時,情況較為簡單。如果把我們的自變數再增加乙個。例如小y遲到的部分情況時是在他開車過來的時候(你可以理解為他開車水平較臭,或者路較堵)。於是我可以關聯考慮這些資訊。建立乙個更複雜的模型,這個模型包含兩個自變數與乙個因變數。

再更複雜一點,小y的遲到跟天氣也有一定的原因,例如下雨的時候,這時候我需要考慮三個自變數。

如果我希望能夠**小y遲到的具體時間,我可以把他每次遲到的時間跟雨量的大小以及前面考慮的自變數統一建立乙個模型。於是我的模型可以**值,例如他大概會遲到幾分鐘。這樣可以幫助我更好的規劃我出門的時間。在這樣的情況下,決策樹就無法很好地支撐了,因為決策樹只能**離散值。我們可以用節2所介紹的線型回歸方法建立這個模型。

如果我把這些建立模型的過程交給電腦。比如把所有的自變數和因變數輸入,然後讓計算機幫我生成乙個模型,同時讓計算機根據我當前的情況,給出我是否需要遲出門,需要遲幾分鐘的建議。那麼計算機執行這些輔助決策的過程就是機器學習的過程。

機器學習方法是計算機利用已有的資料(經驗),得出了某種模型(遲到的規律),並利用此模型**未來(是否遲到)的一種方法。

通過上面的分析,可以看出機器學習與人類思考的經驗過程是類似的,不過它能考慮更多的情況,執行更加複雜的計算。事實上,機器學習的乙個主要目的就是把人類思考歸納經驗的過程轉化為計算機通過對資料的處理計算得出模型的過程。經過計算機得出的模型能夠以近似於人的方式解決很多靈活複雜的問題。

下面,我會開始對機器學習的正式介紹,包括定義、範圍,方法、應用等等,都有所包含。

2.機器學習的定義

從廣義上來說,機器學習是一種能夠賦予機器學習的能力以此讓它完成直接程式設計無法完成的功能的方法。但從實踐的意義上來說,機器學習是一種通過利用資料,訓練出模型,然後使用模型**的一種方法。

讓我們具體看乙個例子。

圖4 房價的例子

拿國民話題的房子來說。現在我手裡有一棟房子需要售賣,我應該給它標上多大的**?房子的面積是100平方公尺,**是100萬,120萬,還是140萬?

很顯然,我希望獲得房價與面積的某種規律。那麼我該如何獲得這個規律?用報紙上的房價平均資料麼?還是參考別人面積相似的?無論哪種,似乎都並不是太靠譜。

我現在希望獲得乙個合理的,並且能夠最大程度的反映面積與房價關係的規律。於是我調查了周邊與我房型類似的一些房子,獲得一組資料。這組資料中包含了大大小小房子的面積與**,如果我能從這組資料中找出面積與**的規律,那麼我就可以得出房子的**。

對規律的尋找很簡單,擬合出一條直線,讓它「穿過」所有的點,並且與各個點的距離盡可能的小。

通過這條直線,我獲得了乙個能夠最佳反映房價與面積規律的規律。這條直線同時也是乙個下式所表明的函式:

房價 = 面積 * a + b
上述中的a、b都是直線的引數。獲得這些引數以後,我就可以計算出房子的**。

假設a = 0.75,b = 50,則房價 = 100 * 0.75 + 50 = 125萬。這個結果與我前面所列的100萬,120萬,140萬都不一樣。由於這條直線綜合考慮了大部分的情況,因此從「統計」意義上來說,這是乙個最合理的**。

在求解過程中透露出了兩個資訊:

1.房價模型是根據擬合的函式型別決定的。如果是直線,那麼擬合出的就是直線方程。如果是其他型別的線,例如拋物線,那麼擬合出的就是拋物線方程。機器學習有眾多演算法,一些強力演算法可以擬合出複雜的非線性模型,用來反映一些不是直線所能表達的情況。

2.如果我的資料越多,我的模型就越能夠考慮到越多的情況,由此對於新情況的**效果可能就越好。這是機器學習界「資料為王」思想的乙個體現。一般來說(不是絕對),資料越多,最後機器學習生成的模型**的效果越好。

通過我擬合直線的過程,我們可以對機器學習過程做乙個完整的回顧。首先,我們需要在計算機中儲存歷史的資料。接著,我們將這些 資料通過機器學習演算法進行處理,這個過程在機器學習中叫做「訓練」,處理的結果可以被我們用來對新的資料進行**,這個結果一般稱之為「模型」。對新資料 的**過程在機器學習中叫做「**」。「訓練」與「**」是機器學習的兩個過程,「模型」則是過程的中間輸出結果,「訓練」產生「模型」,「模型」指導 「**」。

機器學習自學筆記1 從機器學習談起

一 什麼是機器學習 廣義上 機器學習是一種能夠賦予機器學習的能力依次完成直接變成無法實現的功能的方法。實踐上 機器學習方法是計算機利用已有的資料,得出某種模型,並利用此模型 未來的一種方法。機器學習的過程 資料 對資料通過機器學習演算法進行處理 訓練 處理的結果 模型 模型被用來對新資料進行 機器學...

《從機器學習談起》讀書摘要

本文是對 從機器學習談起 一文的讀書摘要,這片文章很詳細的介紹了機器學習,很適合入門新手讀 我就是 機器學習是一種讓計算機利用資料而不是指令來進行各種工作的方法 機器學習方法是計算機利用已有的資料 經驗 得出了某種模型,並利用此模型 未來的一種方法 從廣義上來說,機器學習是一種能夠賦予機器學習的能力...

從生活談起

你有了目標,你開始了幾點一線的生活。慢慢的你發現,活著,就是為了掙大錢。可是畢竟人生不是一帆風順,你找不到喜歡的工作,遇不到志同道合的同事,這時候你開始無措,想回到小時候,想找人訴苦,甚至你還想過自殺。慶幸的是,你發現,你還有個溫暖的家。有的人一生真的很不容易,但是他們卻活的很幸福,他們不奢求錦衣玉...