以“點(diǎn)一份披薩外賣”為例:了解機(jī)器學(xué)習(xí)工作流程
我們有沒有想過在點(diǎn)一份外賣的背后,有哪些工作流程呢?
想象一下你點(diǎn)了一份披薩外賣,過了一會(huì)兒美味熱騰騰的披薩就送到家門口了。
你有沒有想過從下單點(diǎn)外賣到披薩送過來當(dāng)中的工作流程呢?我指的是完成的工作流程,包括從種下披薩上的西紅柿到外賣騎手送單到你的樓下。其實(shí)這一系列過程與與機(jī)器學(xué)習(xí)工作流程并沒有什么不同,不妨讓我們來看看。
1. 播種
農(nóng)民播種的種子之后會(huì)長(zhǎng)為披薩的配料,比如:西紅柿等。
這相當(dāng)于數(shù)據(jù)生成過程,例如:用戶操作、移動(dòng)、觸發(fā)傳感器等。
2. 收獲
接著到了收獲的時(shí)節(jié),也就是蔬菜或水果成熟的時(shí)候。
這相當(dāng)于數(shù)據(jù)收集,也就是瀏覽器或傳感器將用戶操作或觸發(fā)傳感器的事件轉(zhuǎn)換為實(shí)際數(shù)據(jù)。
3. 運(yùn)輸
收獲后,產(chǎn)品會(huì)被運(yùn)到目的地,作為披薩中的原料。
這相當(dāng)于將數(shù)據(jù)提取到存儲(chǔ)庫中,以便之后從中獲取數(shù)據(jù)庫,如數(shù)據(jù)庫或數(shù)據(jù)湖。
4. 選擇廚具和設(shè)備
每種原料都需要適合的用具來處理。如果要切片,就用刀;如果要攪拌,就用勺子。設(shè)備方面也是如此,如果要烤,就用烤箱;如果要炒,就用爐子,你還可以使微波爐等更復(fù)雜的設(shè)備。
在機(jī)器學(xué)習(xí)中,廚具是用于預(yù)處理數(shù)據(jù)的技術(shù),而設(shè)備就相當(dāng)于線性回歸、隨機(jī)森林等算法。你也可以使用微波爐等復(fù)雜的設(shè)備,這也就相當(dāng)于深度學(xué)習(xí)。當(dāng)中不同的就是超參數(shù),在簡(jiǎn)單的設(shè)備(算法)中只有少數(shù)參數(shù)。而復(fù)雜設(shè)備(算法)中,涉及到的參數(shù)更多,但這并不意味著復(fù)雜的算法就能提供更好的性能。因此,你需要明智地選擇算法。
5. 選擇菜譜
僅有原料和用具是不夠的。你還需要菜譜,當(dāng)中包括你準(zhǔn)備這道菜的所有步驟。
這就是模型,記住模型與算法不同,模型包括所有算法需要的預(yù)處理和之后的處理過程。
6. 準(zhǔn)備配料
我敢打賭,大多數(shù)菜譜的第一條指令都是:“切片”,削皮等等。而不是洗蔬菜等,因?yàn)檫@是理所當(dāng)然的,沒人想吃沒洗的蔬菜。
同樣,數(shù)據(jù)也是如此,沒有人想要臟數(shù)據(jù)。你必須清理數(shù)據(jù),即處理缺失值和異常值。然后需要進(jìn)行削皮和切片,也就是進(jìn)行預(yù)處理,對(duì)變量進(jìn)行分類(例如:男性或女性)編碼為數(shù)字變量(0或1)。
沒有人喜歡清洗這個(gè)部分,無論是數(shù)據(jù)科學(xué)家還是廚師。
7. 特別準(zhǔn)備
有時(shí)你可以用原料來創(chuàng)新,以達(dá)到更好的品味或更復(fù)雜的表現(xiàn)。你可以將牛排風(fēng)干獲得不同的風(fēng)味,或者將胡蘿卜削成玫瑰的形狀作為裝飾。
這就是特征工程。這是一個(gè)重要的步驟,如果完成得好能夠顯著提高模型的性能。
幾乎每個(gè)數(shù)據(jù)科學(xué)家都喜歡這個(gè)環(huán)節(jié),我猜廚師們也是如此。
8. 烹飪
這是最重要的步驟,如果不開火炒菜一切都是徒勞。你將準(zhǔn)備好的配料放入炊具中,調(diào)節(jié)油溫等等。
這就模型訓(xùn)練的環(huán)節(jié)。你將數(shù)據(jù)提供給算法,調(diào)整其超參數(shù)并等待一段時(shí)間再重新檢查。
9. 嘗一嘗
即使你嚴(yán)格按照菜譜來做菜,你也不能保證一切都是完全正確的。那么,怎么知道你是否做對(duì)了?品嘗它!如果不好你可以添加更多鹽來調(diào)味。或者調(diào)解下火力,繼續(xù)烹飪。
但有時(shí)披薩會(huì)燒糊,或者味道糟糕到難以挽救。那么只能扔進(jìn)垃圾箱,吸取教訓(xùn)并重新開始。堅(jiān)持不懈加上一點(diǎn)點(diǎn)運(yùn)氣就能做出美味的披薩。
品嘗就是評(píng)估過程。你需要評(píng)估模型,檢查它是否運(yùn)行正常。如果沒有,你需要添加更多特征,還可以更改超參數(shù),但你繼續(xù)訓(xùn)練!
不幸的是,有時(shí)你的模型不會(huì)得出合適的解決方案,或者做出錯(cuò)誤的預(yù)測(cè),沒有任何辦法修改和挽救。那么這時(shí)你只能放棄這個(gè)模型,從中吸取教訓(xùn)然后重新開始。
堅(jiān)持不懈和一點(diǎn)點(diǎn)運(yùn)氣將會(huì)產(chǎn)生一個(gè)高性能的模型。
10. 送餐
在廚師看來,他的工作已經(jīng)完成了,做好了一道美味的披薩。但是,如果披薩沒有及時(shí)送到顧客的手中也是不成功的。
披薩做好后必須立即包裝,保持溫度,及時(shí)送給顧客。如果外賣騎手沒有到達(dá)目的地,或在途中丟失了披薩,或者把披薩顛簸得面目全非,之前所有的功夫都將是徒勞的。
送餐就相當(dāng)于部署。不是部署披薩,而是預(yù)測(cè)。預(yù)測(cè)必須好好包裝,不是用餐盒,而是包裝成數(shù)據(jù)產(chǎn)品,因此才能送到用戶手里。如果這個(gè)流程出了問題,中間崩潰了或者預(yù)測(cè)發(fā)生了變動(dòng),那么前面花費(fèi)力氣所做的模型訓(xùn)練和驗(yàn)證工作也就沒有價(jià)值了。
結(jié)語
就是這樣,機(jī)器學(xué)習(xí)就像點(diǎn)外賣一樣,當(dāng)中需要許多人參與,合作付出努力,但最終結(jié)果都很美味!
總結(jié)幾個(gè)要點(diǎn):
- 如果原料有問題,菜品也會(huì)有問題。沒有任何菜譜或炊具能解決這個(gè)問題。
- 如果你是廚師,那不要忘了,如果沒有送餐這一步,烹飪就沒有意義,因?yàn)闆]有人會(huì)品嘗到美味的食物 ;
- 如果你是餐館老板,不要強(qiáng)迫你的廚師使用某種炊具或設(shè)備,有時(shí)微波爐并不是最好的選擇。如果讓廚師花大量的時(shí)間在清洗和切食材上,這也會(huì)讓廚師很不開心。
好了不說了,去點(diǎn)披薩吃了。
作者:Daniel Godoy
翻譯:Mika
本文由 @Mika 翻譯發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載
題圖來自Unsplash,基于CC0協(xié)議
來來來