您的位置:首頁>正文

機器學習到底學到了什麼?

數十萬互聯網從業者的共同關注!

作者: 劉向峰。 作者授權早讀課轉載。

編輯:Juvae

在以前的文章中, 我介紹了一個關於在應用中結合機器學習的小案例, 並闡明了一個觀點:可以利用機器學習類比人類的思維方式去處理問題。 很多讀者回饋只是看到了幾個專業名詞, 卻依然不知道機器學習在學什麼, 今天我就根據個人的理解帶著大家一起來看看機器學習是什麼, 而機器又是怎樣學習的。

魔術中的預測

我從小就對神奇的事物感興趣, 當有一次看到一位魔術師準確地猜出了路人心中的數字時,

便著迷了很長一段時間。 在我學習魔術不久之後, 便發現很大一部分預測類魔術都會利用到大眾心理學以及統計學的相關知識, 不過這類魔術的表演成功率也並非百分之百。

我們來看一個簡化版的讀心術, 有興趣的讀者可以跟著選一下:“現在請你從1到4中選一個數字出來,

然後我來猜, 選好了麼?我猜你選的應該是3!”很多人也許會大吃一驚, 覺得我很懂你的心, 其實真相並非如此。

有心理學家專門做過這個實驗:隨機挑選出一部分人, 讓他們參與測驗, 發現針對這一問題選3的人最多, 如果我猜你選3, 猜對的概率最大, 這便是上面這個讀心術的訣竅(其實這個魔術也同時利用了人的心理, 在問題中提及1和4就會大大降低選擇這兩個數字的概率)。

機器學習的簡單原理

機器學習的原理也是如此, 我們通常會利用已有的測試答案總結出規律, 然後通過這個規律再去預測一個陌生人的答案, 這裡的測試答案便是我們的“樣本”, 而總結規律的過程就是“訓練模型”,

總結出的規律我們當做“訓練好的模型”繼續預測更多人的答案。

通過以上描述我們可以看出, 機器學習和我們傳統的計算機工作流程有很大區別。 過去, 我們輸入指令, 讓電腦按照我們的指令執行出結果, 更強調因果, 越是資深的程式設計人員, 對這一點越是深信不疑,

時刻會強調邏輯關係。 而機器學習是利用資料得到結果, 從資料中“學”到規律, 而不是依靠指令, 於是機器學習更多考慮的是相關性, 而非因果。

其實這和我們的生活智慧很相似, 生活中處理很多事情上沒有絕對的對錯, 只有相對的合理與否, 如果我們可以理解透徹這一點, 不管是處理機器學習還是生活中的問題時, 都會有很大説明。

我們的祖先早已對機器學習的原理有所領悟, 唐太宗李世民曾說:“以史為鏡, 可以知興替”, 掌握了歷史興替的規律, 便可以指導未來的發展方向, 避免重蹈覆轍。 再推前至上古時代, 伏羲倚仗天地變化之術, 創建了先天八卦, 這不正是最強大的模型麼, 它歸納了萬物規律,

通過八卦模型便可預測未知結果, 讓人不得不驚歎它的神奇(有機會我們可以專門探討一下關於易經與電腦科學千絲萬縷的聯繫, 非常有趣)。

建立訓練建模的例子

這時, 有的同學可能會發現模型被提到了很多次, 但大多是抽象的描述, 那麼究竟什麼是模型?回答這個問題前我們不妨先來看一道小學數學題:“一艘船離開碼頭1公里後開始勻速前行, 1小時後船離碼頭10公里,請問2小時後船離碼頭幾公里?”

將這個問題轉化機器學習的描述就變成:我們希望通過兩個樣本(0,1) 和 (1,10)訓練出一個模型,然後輸入2,預測出離碼頭的距離。通過題目中的業務場景,我們可以分析出樣本是程線性關係的,於是我們可以考慮選用一個簡單的線性模型 “Y = aX + b” 來表示這種情況。接下來我們將樣本(0,1) 和 (1,10)代入模型訓練,求得參數a = 9,b = 1,於是訓練好的模型為 Y= 9X + 1(如果還有額外的樣本點,我們可以代入檢查一下這個模型的準確性),此時我們將想要預測的X = 2代入求得Y = 19,這樣我們便成功預測出2小時後船離碼頭19公里,今後不管是希望獲得幾小時的距離,我們都可以通過這個訓練好的模型進行預測了。

總結一下

我們首先會通過樣本的規律尋找合適的模型,再用樣本資料訓練模型(訓練時通常會將樣本分為兩部分,一部分用來訓練,另一部分用來檢驗訓練後模型的正確率,以評估模型的好壞),之後我們就可以通過訓練好的模型進行新資料的預測了。

雖然真實的業務並不會這麼簡單,樣本也不會如此規整,但我希望可以通過這樣一個理想狀態下的小例子讓大家更直觀地瞭解什麼是“模型”、“訓練”以及“預測”,我們後面將要學習的很多演算法模型的大多都是同樣的訓練過程。

現在,相信大家對機器學習已經有了更清晰的認識,其實機器學習學到的東西就是我們所謂的經驗或者規律,機器學習會把這些學到的東西固化到模型中,以便解決新的問題。

經過無數研究者的努力,我們已經擁有非常豐富的模型庫,而當前多樣的技術也將這些模型的訓練與使用變得非常容易。即便如此,很多人還是會擔心做機器學習對數學門檻會不會很高,其實不是所有的模型都用到了很高深的數學知識,很多時候我們知道這個模型演算法的大概思路以及它的應用場景就可以滿足我們的需求了,而走這樣的應用路線同樣會有很廣闊的前景和舞臺(當然如果想深入研究這個領域,數學越好會讓你走得越遠)。

最後

在後續的文章中我會陸續介紹一些常見的模型,我本人在學習機器學習的過程中秉著這樣一個觀念:我們學習這些模型並不是為了單純去做看起來高大上的事情,而是為了利用這種新的思想解決更多的問題,讓機器學習真正落地。

投稿郵箱:mm@zaodula.com

優秀人才不缺工作機會,只缺適合自己的好機會。但是他們往往沒有精力從海量機會中找到最適合的那個。

100offer 會對平臺上的人才和企業進行嚴格篩選,讓「最好的人才」和「最好的公司」相遇。

掃描下方二維碼,註冊 100offer,談談你對下一份工作的期待。一周內,收到 5-10 個滿足你要求的好機會!

1小時後船離碼頭10公里,請問2小時後船離碼頭幾公里?”

將這個問題轉化機器學習的描述就變成:我們希望通過兩個樣本(0,1) 和 (1,10)訓練出一個模型,然後輸入2,預測出離碼頭的距離。通過題目中的業務場景,我們可以分析出樣本是程線性關係的,於是我們可以考慮選用一個簡單的線性模型 “Y = aX + b” 來表示這種情況。接下來我們將樣本(0,1) 和 (1,10)代入模型訓練,求得參數a = 9,b = 1,於是訓練好的模型為 Y= 9X + 1(如果還有額外的樣本點,我們可以代入檢查一下這個模型的準確性),此時我們將想要預測的X = 2代入求得Y = 19,這樣我們便成功預測出2小時後船離碼頭19公里,今後不管是希望獲得幾小時的距離,我們都可以通過這個訓練好的模型進行預測了。

總結一下

我們首先會通過樣本的規律尋找合適的模型,再用樣本資料訓練模型(訓練時通常會將樣本分為兩部分,一部分用來訓練,另一部分用來檢驗訓練後模型的正確率,以評估模型的好壞),之後我們就可以通過訓練好的模型進行新資料的預測了。

雖然真實的業務並不會這麼簡單,樣本也不會如此規整,但我希望可以通過這樣一個理想狀態下的小例子讓大家更直觀地瞭解什麼是“模型”、“訓練”以及“預測”,我們後面將要學習的很多演算法模型的大多都是同樣的訓練過程。

現在,相信大家對機器學習已經有了更清晰的認識,其實機器學習學到的東西就是我們所謂的經驗或者規律,機器學習會把這些學到的東西固化到模型中,以便解決新的問題。

經過無數研究者的努力,我們已經擁有非常豐富的模型庫,而當前多樣的技術也將這些模型的訓練與使用變得非常容易。即便如此,很多人還是會擔心做機器學習對數學門檻會不會很高,其實不是所有的模型都用到了很高深的數學知識,很多時候我們知道這個模型演算法的大概思路以及它的應用場景就可以滿足我們的需求了,而走這樣的應用路線同樣會有很廣闊的前景和舞臺(當然如果想深入研究這個領域,數學越好會讓你走得越遠)。

最後

在後續的文章中我會陸續介紹一些常見的模型,我本人在學習機器學習的過程中秉著這樣一個觀念:我們學習這些模型並不是為了單純去做看起來高大上的事情,而是為了利用這種新的思想解決更多的問題,讓機器學習真正落地。

投稿郵箱:mm@zaodula.com

優秀人才不缺工作機會,只缺適合自己的好機會。但是他們往往沒有精力從海量機會中找到最適合的那個。

100offer 會對平臺上的人才和企業進行嚴格篩選,讓「最好的人才」和「最好的公司」相遇。

掃描下方二維碼,註冊 100offer,談談你對下一份工作的期待。一周內,收到 5-10 個滿足你要求的好機會!

同類文章
Next Article
喜欢就按个赞吧!!!
点击关闭提示