非碼農(nóng)也能看懂的“機器學(xué)習(xí)”原理
我們先來說個老生常談的情景:某天你去買芒果,小販攤了滿滿一車芒果,你一個個選好,拿給小販稱重,然后論斤付錢。
自然,你的目標(biāo)是那些最甜最成熟的芒果,那怎么選呢?你想起來,啊外婆說過,明黃色的比淡黃色的甜。你就設(shè)了條標(biāo)準(zhǔn):只選明黃色的芒果。于是按顏色挑好、付錢、回家。啊哈,人生完整了?
呵呵呵。
告訴你吧人生就是各種麻煩
等你回到家,嘗了下芒果。有些確實挺甜,有些就不行了。額~顯然,外婆教的金科玉律還不夠用,光看顏色不靠譜哪。
閉關(guān)研究大半天以后,你得出結(jié)論:大個的明黃色芒果必然甜,小個的,就只有一半幾率會是甜的了。
于是下次,你滿意地帶著這個結(jié)論再去買芒果,卻發(fā)現(xiàn)你經(jīng)常光顧的那個小販關(guān)門度假去了。好吧,換家店,結(jié)果人家的進(jìn)貨渠道還不一樣,那芒果是另一個地方種的。你這套法則不管用了,又得從頭再來。好吧,這家店里每種芒果你都嘗了下,總結(jié)出來小個淡黃色的最甜。
還沒結(jié)束。你遠(yuǎn)房表妹又來找你玩了。要招待些好的吧?但她說了,她無所謂芒果甜不甜,汁水多就行。好唄,你還得再做一次實驗,找到芒果越軟汁水越多的規(guī)律。
接著你又移民了。一嘗這邊的芒果,咦,新世界的大門打開了。綠色的芒果居然比黃色的好吃……
最后,你結(jié)婚了,領(lǐng)導(dǎo)表示不愛吃芒果,要吃蘋果。于是你所有關(guān)于芒果的知識都沒用了。只能按老方法再重新研究遍蘋果的物理特征跟它味道好不好之間的關(guān)系。蘋果吃到吐?沒辦法,你愛老婆嘛。
有請碼農(nóng)
好了,現(xiàn)在想象下,這一路辛酸曲折的,你寫了組程序幫忙減輕負(fù)擔(dān)。那程序邏輯基本應(yīng)該類似這樣:
預(yù)設(shè)變量 顏色、大小、店家、硬度
如 顏色=明黃
大小=大
店家=經(jīng)常光顧的小販
則 芒果=甜
如 硬度=軟
則 芒果=多汁
用著很爽吧,你甚至可以把這套玩意兒發(fā)給你小弟,他挑來的芒果也包你滿意。
但每做一次新實驗,你就得人肉改一次程序邏輯。而且你得首先保證自己已經(jīng)理解了選芒果那套錯綜復(fù)雜的藝術(shù),才能把它寫進(jìn)程序里。如果要求太復(fù)雜、芒果種類太多,那光把所有挑選規(guī)則翻譯成程序邏輯就夠你出一身大汗,相當(dāng)于讀個“芒果學(xué)”博士了。
不是所有人都有“讀博”的功夫的。
有請“機器學(xué)習(xí)”算法
機器學(xué)習(xí)算法其實就是普通算法的進(jìn)化版。通過自動學(xué)習(xí)數(shù)據(jù)規(guī)律,讓你的程序變得更聰明些。
你從市場上隨機買一批芒果(訓(xùn)練數(shù)據(jù)),把每只芒果的物理屬性列一個表格出來,比如顏色、大小、形狀、產(chǎn)地、店家,等等(特征),對應(yīng)芒果的甜度、汁水多少、成熟度,等等(輸出變量)。然后把這些數(shù)據(jù)扔給機器學(xué)習(xí)算法(分類/回歸),它就會自己計算出一個芒果物理屬性與其品質(zhì)之間的相關(guān)性模型。
等下一次你去采購時,輸入店里在賣的芒果的物理屬性(測試數(shù)據(jù)),機器學(xué)習(xí)算法就會根據(jù)上次計算出來的模型來預(yù)測這些芒果品質(zhì)如何。機器用的算法可能跟你人肉寫的邏輯規(guī)則類似(比如決策樹),也有可能更先進(jìn),但反正基本上你不用多慮。
好啦,現(xiàn)在你可以信心滿滿去買芒果了,顏色大小啥的都是浮云,交給機器去操心唄。更妙的是,你的算法還會逐漸進(jìn)化(強化學(xué)習(xí)):根據(jù)其預(yù)測結(jié)果的正誤,算法會自行修正模型,那么隨著訓(xùn)練數(shù)據(jù)的積累,到后來它的預(yù)測就會越來越準(zhǔn)確。最妙的來了,用同一個算法,你可以做好幾個模型,蘋果桔子香蕉葡萄各給爺來上一套,不要說老婆有令,就是七大姑八大嬸各有所好,也再不用發(fā)愁了。
用一句話總結(jié)機器學(xué)習(xí)就是:走自己的屌絲路,讓你的算法牛逼去吧
不知道作者要說什么
這個。。。隨便看看就行,不要當(dāng)真