學(xué)習(xí)大綱:兩周搭建Demo理解機(jī)器學(xué)習(xí)
很多互聯(lián)網(wǎng)PM都想轉(zhuǎn)型到人工智能產(chǎn)品經(jīng)理,作者也一樣,還是零編程基礎(chǔ)、零算法基礎(chǔ)、零AI實(shí)戰(zhàn)經(jīng)驗(yàn)。渴望對(duì)神經(jīng)網(wǎng)絡(luò)和機(jī)器學(xué)習(xí)理解得多一點(diǎn),就親自驗(yàn)證了一條有效的極簡(jiǎn)路徑:40-50小時(shí),學(xué)會(huì)搭建幾種簡(jiǎn)單的神經(jīng)網(wǎng)絡(luò)。理解原理的同時(shí),還能增強(qiáng)信心和興趣。
對(duì)互聯(lián)網(wǎng)PM來(lái)說(shuō),做Demo就是本能。雖然AIPM崗的職責(zé)不涉及代碼操作,但目前還沒(méi)有專用的Demo工具。所以用Python實(shí)操理解ML,是個(gè)踏實(shí)高效的切入口。這套極簡(jiǎn)路徑,總共有三步:淺學(xué)Python–>入門(mén)Tensorflow–>入門(mén)Keras。
淺學(xué)Python【20小時(shí)】
配置環(huán)境:如果不想安裝虛擬機(jī),沒(méi)Mac電腦,推薦Windows環(huán)境下用Python_3.5.4 + PyCharm_2017 編輯器。
學(xué)習(xí)節(jié)奏:選用莫煩或小甲魚(yú)的免費(fèi)視頻(約7小時(shí)),學(xué)到函數(shù)就停下,按心情決定是否把函數(shù)全學(xué)完。下載一款A(yù)PP:Python利器,有空就瞅幾眼。再抽空看看與機(jī)器學(xué)習(xí)相關(guān)的文章,找找感覺(jué)。
牢記初心:目的是理解ML,用Python操作Tensorflow、Keras構(gòu)建神經(jīng)網(wǎng)絡(luò)。所以暫時(shí)不學(xué)爬蟲(chóng)、游戲等。多敲代碼,不苛求閉眼睛敲出30行以上,熟悉語(yǔ)法就OK。
入門(mén)Tensorflow【25小時(shí)-重點(diǎn)】
2.1 配置環(huán)境:用pip安裝Tensorflow1.4_cpu版,和numpy、matplotlib、sklearn等類(lèi)庫(kù),白天安裝pip下載快。
2.2 學(xué)習(xí)節(jié)奏:選用莫煩的Tensorflow入門(mén)免費(fèi)教程,視頻共5個(gè)小時(shí)。跟著老師敲代碼,怕忘的地方用#標(biāo)注,遇到不懂就上網(wǎng)查或問(wèn)朋友。
2.3 時(shí)間分配:主要時(shí)間用來(lái)理解ANN的結(jié)構(gòu),還有調(diào)試BUG。Pycharm可以智能提示語(yǔ)法BUG,困擾初學(xué)者的往往是邏輯BUG,比如哪個(gè)參數(shù)傳錯(cuò)了。這種情況查一下原版教學(xué)代碼,用文件對(duì)比工具找到原因,就可以解決問(wèn)題。
2.4 執(zhí)行標(biāo)準(zhǔn):理解Tensorflow的框架結(jié)構(gòu)和操作思路,能讀懂每行代碼,順利運(yùn)行就OK。
第2個(gè)小時(shí):能擬合出一條線性函數(shù)曲線
第3個(gè)小時(shí):可以創(chuàng)建傳說(shuō)中的神經(jīng)網(wǎng)絡(luò)
第5個(gè)小時(shí):可視化損失函數(shù)和神經(jīng)網(wǎng)絡(luò)
當(dāng)我們輸出了Graph時(shí),一切都變得直觀了。就這樣一步步實(shí)現(xiàn)Tensorboard、過(guò)擬合、CNN、RNN、無(wú)監(jiān)督等案例,整個(gè)人會(huì)越來(lái)越有信心。
20-30小時(shí):我們能實(shí)現(xiàn)上圖的LSTM。
可以一邊操作,一邊想象過(guò)程:比如點(diǎn)擊上圖中第一個(gè)隱藏層in_hidden,展開(kāi)后能清晰地看到神經(jīng)元和流動(dòng)的張量。輸入信號(hào)的shape先從3維轉(zhuǎn)到2維,優(yōu)化器參與梯度優(yōu)化,shape從2維升到3維,最終將輸出信號(hào)給到LSTM。
LSTM中每個(gè)cell選擇性接收前一個(gè)cell的記憶和輸入信號(hào),再選擇性輸出給下個(gè)cell。循環(huán)往復(fù)類(lèi)似的過(guò)程,模型就擁有了長(zhǎng)久記憶能力。通過(guò)下面的結(jié)果圖,可以直觀地看到藍(lán)線始終在學(xué)習(xí)紅線的軌跡。經(jīng)過(guò)不斷的循環(huán),藍(lán)線最終擬合到接近紅線的程度。
淺學(xué)Keras【5小時(shí)】
依然用莫煩的視頻教程,比較簡(jiǎn)單就不細(xì)說(shuō)了。可能有人覺(jué)得學(xué)習(xí)50小時(shí)依然很長(zhǎng),都?jí)蛲?20盤(pán)王者榮耀了。也可以跨過(guò)Tensorflow直接上Keras,大約30小時(shí)內(nèi)出模型。這里作者還是推薦學(xué)習(xí)Tensorflow,有助于更深入理解細(xì)節(jié)。
以上就是入門(mén)神經(jīng)網(wǎng)絡(luò)Demo的三步走。如果你與我一樣是工作兼學(xué)習(xí),只要每天投入4小時(shí),堅(jiān)持2-3周,就可以有這5項(xiàng)收獲:
- 理解概念:張量、激勵(lì)函數(shù)、優(yōu)化器、損失函數(shù)、梯度下降、反向傳播、學(xué)習(xí)率、批標(biāo)準(zhǔn)化等。
- 理解模型:CNN–>卷積、池化、全連接;RNN–>分類(lèi)、回歸、LSTM;非監(jiān)督學(xué)習(xí)–>聚類(lèi)、降維。
- 了解工程:采集標(biāo)注、設(shè)計(jì)模型、構(gòu)建模型、訓(xùn)練模型、測(cè)試調(diào)優(yōu)等流程,有助于跟工程師更好地交流配合。
- 抽象能力:構(gòu)建神經(jīng)網(wǎng)絡(luò)會(huì)思考數(shù)據(jù)的特征、模型的結(jié)構(gòu),不知不覺(jué)間就經(jīng)歷了抽象特征–>可視化的全過(guò)程。
- 類(lèi)機(jī)器思維:本文的寫(xiě)作思路,就模仿了機(jī)器學(xué)習(xí)過(guò)程。以理解原理(result)為導(dǎo)向,從學(xué)習(xí)資源(data)中提取特征,對(duì)信息做過(guò)濾、降維處理。然后通過(guò)實(shí)踐(training)優(yōu)化認(rèn)知(optimizer),再將個(gè)人推測(cè)(prediction)與真相對(duì)比印證(loss)。自從接觸了AI,類(lèi)機(jī)器學(xué)習(xí)的思維模式就開(kāi)始賦能我生活、工作的場(chǎng)景。它幫助我不斷進(jìn)化,越來(lái)越高效。
寫(xiě)在最后
關(guān)于學(xué)習(xí),我最在乎的就是速度,唯快不破!現(xiàn)實(shí)中每條賽道終點(diǎn)幸存者寥寥無(wú)幾,參賽者都在拼命減少犯錯(cuò)的可能性。全民拼命的背景下,誰(shuí)犯錯(cuò)少誰(shuí)就勝出。
AI的范疇比較大,我轉(zhuǎn)型的策略是先模擬項(xiàng)目、模擬Demo,“一石多鳥(niǎo)”的學(xué)習(xí)方式,保持較廣的視野。而不是一頭扎進(jìn)某個(gè)深坑,管中窺豹,很久都爬不上船。
不管AI的泡沫何時(shí)被戳破,我們上船的速度都非常重要。速度決定我們未來(lái)能喝到啤酒,還是隨泡沫一起被吹散。我覺(jué)得要轉(zhuǎn)型AIPM的、零AI基礎(chǔ)的朋友們,可以先切入幾個(gè)相對(duì)容易獲取的能力維度:
- 產(chǎn)業(yè)、場(chǎng)景分析能力
- 大數(shù)據(jù)、知識(shí)圖譜能力
- 理解機(jī)器學(xué)習(xí)、神經(jīng)網(wǎng)絡(luò)原理
- 理解NLP、CV、推薦系統(tǒng)等技術(shù)
- 理解常用算法
這也是為什么我復(fù)盤(pán)3周的學(xué)習(xí)后,先輸出一篇場(chǎng)景分析,再輸出本篇Demo。
這條路徑受到前輩們的啟發(fā),很幸運(yùn)地借鑒了@李杰克的經(jīng)驗(yàn),少走很多彎路。歡迎朋友們提問(wèn)和建議,轉(zhuǎn)型路上,讓我們一起加油吧!
作者:于長(zhǎng)弘,公眾號(hào):AI小宇宙(ID:AI_endless)
本文由 @于長(zhǎng)弘 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載
題圖來(lái)自 Unsplash ,基于 CC0 協(xié)議
最亮的仔
求學(xué)習(xí)資料