非碼農也能看懂的「機器學習」原理

咱們先來講個老生常談的情景:某天你去買芒果,小販攤了滿滿一車芒果,你一個個選好,拿給小販稱重,而後論斤付錢。
web

天然,你的目標是那些最甜最成熟的芒果,那怎麼選呢?你想起來,啊外婆說過,明黃色的比淡黃色的甜。你就設了條標準:只選明黃色的芒果。因而按顏色挑好、付錢、回家。啊哈,人生完整了?算法

呵呵呵。機器學習


告訴你吧人生就是各類麻煩學習

等你回到家,嚐了下芒果。有些確實挺甜,有些就不行了。額~顯然,外婆教的金科玉律還不夠用,光看顏色不靠譜哪。
測試

閉關研究大半天之後,你得出結論:大個的明黃色芒果必然甜,小個的,就只有一半概率會是甜的了。spa

因而下次,你滿意地帶着這個結論再去買芒果,卻發現你常常光顧的那個小販關門度假去了。好吧,換家店,結果人家的進貨渠道還不同,那芒果是另外一個地方種的。你這套法則無論用了,又得從頭再來。好吧,這家店裏每種芒果你都嚐了下,總結出來小個淡黃色的最甜。翻譯

還沒結束。你遠房表妹又來找你玩了。要招待些好的吧?但她說了,她無所謂芒果甜不甜,汁水多就行。好唄,你還得再作一次實驗,找到芒果越軟汁水越多的規律。orm

接着你又移民了。一嘗這邊的芒果,咦,新世界的大門打開了。綠色的芒果竟然比黃色的好吃……進程

最後,你結婚了,領導表示不愛吃芒果,要吃蘋果。因而你全部關於芒果的知識都沒用了。只能按老方法再從新研究遍蘋果的物理特徵跟它味道好很差之間的關係。蘋果吃到吐?沒辦法,你愛老婆嘛。it


有請碼農

好了,如今想象下,這一路辛酸曲折的,你寫了組程序幫忙減輕負擔。那程序邏輯基本應該相似這樣:

預設變量 顏色、大小、店家、硬度

如 顏色=明黃

   大小=大

   店家=常常光顧的小販

則 芒果=甜

如 硬度=軟

則 芒果=多汁

用着很爽吧,你甚至能夠把這套玩意兒發給你小弟,他挑來的芒果也包你滿意。

但每作一次新實驗,你就得人肉改一次程序邏輯。並且你得首先保證本身已經理解了選芒果那套錯綜複雜的藝術,才能把它寫進程序裏。若是要求太複雜、芒果種類太多,那光把全部挑選規則翻譯成程序邏輯就夠你出一身大汗,至關於讀個「芒果學」博士了。

不是全部人都有「讀博」的功夫的。


有請「機器學習」算法

機器學習算法其實就是普通算法的進化版。經過自動學習數據規律,讓你的程序變得更聰明些。

你從市場上隨機買一批芒果(訓練數據),把每隻芒果的物理屬性列一個表格出來,好比顏色、大小、形狀、產地、店家,等等(特徵),對應芒果的甜度、汁水多少、成熟度,等等(輸出變量)。而後把這些數據扔給機器學習算法(分類/迴歸),它就會本身計算出一個芒果物理屬性與其品質之間的相關性模型。

等下一次你去採購時,輸入店裏在賣的芒果的物理屬性(測試數據),機器學習算法就會根據上次計算出來的模型來預測這些芒果品質如何。機器用的算法可能跟你人肉寫的邏輯規則相似(好比決策樹),也有可能更先進,但反正基本上你不用多慮。

好啦,如今你能夠信心滿滿去買芒果了,顏色大小啥的都是浮雲,交給機器去操心唄。更妙的是,你的算法還會逐漸進化(強化學習):根據其預測結果的正誤,算法會自行修正模型,那麼隨着訓練數據的積累,到後來它的預測就會愈來愈準確。最妙的來了,用同一個算法,你能夠作好幾個模型,蘋果桔子香蕉葡萄各給爺來上一套,不要說老婆有令,就是七大姑八大嬸各有所好,也再不用發愁了。

用一句話總結機器學習就是:走本身的屌絲路,讓你的算法牛逼去吧。

相關文章
相關標籤/搜索