過春節(jié)前一周辩蛋,不知從哪里看到優(yōu)達(dá)學(xué)城(Udacity)的深度學(xué)習(xí)(Deep learning)課程在搞優(yōu)惠活動,抱著不出點血就學(xué)不下去的想法愉快的報了名,開始為期四個月的在線學(xué)習(xí)仇矾。這周終于完成了全部課程和五個項目作業(yè)潮孽,獲到納米學(xué)位證書,寫一下學(xué)習(xí)體會和心路歷程宇葱。
自己上研究生的專業(yè)就是模式識別與智能系統(tǒng)瘦真,無奈那時候這個領(lǐng)域還是偏理論研究,工程應(yīng)用雖然也有黍瞧,但是總給人感覺不是Artificial Intelligence (AI) 而是 Artificial Stupid诸尽。尤其氣人的是堂堂智能感知重點實驗室,裝的指紋鎖各種無法識別總是進(jìn)不去門印颤,心灰意冷投身軟件行業(yè)成了前端開發(fā)您机。彈指一揮間,沒想到短短幾年屬于人工智能的時代這么快就來了(昨天阿爾法狗又贏了柯潔)年局。
幸運的是际看,寫了幾年的代碼,倒是對重拾人工智能(主要是深度學(xué)習(xí))挺有幫助矢否,畢竟算法應(yīng)用還要靠軟件程序來實現(xiàn)的仲闽。另外以Tensorflow為代表的深度學(xué)習(xí)框架讓模型訓(xùn)練的過程變的更加工程化,不到五十行代碼就能實現(xiàn)一個文字翻譯或者圖片識別模型的訓(xùn)練全過程僵朗,所以編程技能對學(xué)這門課可以起到很大幫助赖欣。
但就像這個課一開始所介紹的屑彻,初學(xué)者不用擔(dān)心自己理論知識和編程水平的不足,邁出第一步并一直保持學(xué)習(xí)熱情才是最關(guān)鍵的顶吮。剛開始在線學(xué)習(xí)社牲,就想對優(yōu)達(dá)學(xué)城的課程設(shè)計點個贊。最大的優(yōu)點就是學(xué)著不累悴了!畢竟長達(dá)四個月的學(xué)習(xí)時間膳沽,好的體驗非常重要。
(他們家還有不少免費課程让禀,若有興趣可以去體驗一下)
這個課的主講是左邊的一位Google工程師Siraj(很逗比,經(jīng)常會在視頻里說rap)巡揍,后面還請了不少牛人(記得還包括GAN的發(fā)明者)在視頻里言傳身教痛阻。雖然中文網(wǎng)站里的主要內(nèi)容都是已經(jīng)翻譯的,但基本所有資料和論文還是英文的腮敌,不禁回憶起當(dāng)初啃論文的日子阱当。相關(guān)的訓(xùn)練數(shù)據(jù)和論文都有免費的網(wǎng)上資源,對于不在學(xué)校還想從事研究的人絕對是福利糜工。
差不多每個月,在每一個階段學(xué)習(xí)的最后都要完成一個有意思的實際項目捌木,而且必須在規(guī)定日期前完成油坝,否則就得不到學(xué)位了!提交的代碼會有專人review并提出有針對的修改意見和反饋刨裆,直到完全達(dá)到要求才算通過澈圈。審閱的人給出的意見都很具體,態(tài)度也非常nice帆啃。嗯瞬女,畢竟花了錢呀。
剛開始的項目相對容易诽偷,后面隨著模型的復(fù)雜訓(xùn)練起來就很耗計算機資源。我的所有項目都是用的Mac Air跑完的疯坤,不支持GPU加速报慕。后幾個項目的訓(xùn)練時間都以半天記。其實課程里專門有講如何申請和搭建AWS的實例做GPU加速贴膘,就是懶得去裝 ╰( ̄▽ ̄)╭
下面大概說說所學(xué)到的知識點吧卖子。
第一階段,新手入門刑峡。Python的簡單語法洋闽、numpy進(jìn)行多維向量操作、conda管理包依賴和環(huán)境突梦、梯度下降的優(yōu)化原理诫舅、多層神經(jīng)網(wǎng)絡(luò)模型的構(gòu)建。
項目:用多層神經(jīng)網(wǎng)絡(luò)預(yù)測共享單車數(shù)量宫患。
這個項目就是用歷史數(shù)據(jù)(日期刊懈、天氣等,當(dāng)日租車數(shù)量)訓(xùn)練模型娃闲,然后用另一部分?jǐn)?shù)據(jù)驗證模型的準(zhǔn)確性虚汛。
藍(lán)色是訓(xùn)練后模型(就是多層神經(jīng)網(wǎng)絡(luò))的預(yù)測,紅色是實際數(shù)據(jù)皇帮。前面吻合的很好卷哩,后面就不準(zhǔn)了。reviewer還問我:你知道為什么后面誤差很大么属拾?廢話将谊,圣誕節(jié)大家都放假了嘛 (o?v?)ノ
第二階段,使用Tensorflow構(gòu)建模型渐白、用于處理圖像的卷積神經(jīng)網(wǎng)絡(luò)(CNN)
還介紹了Prisma實現(xiàn)圖像內(nèi)容和樣式的合成原理尊浓。
項目:用Tensorflow實現(xiàn)卷積網(wǎng)絡(luò)(CNN)對圖片數(shù)據(jù)集進(jìn)行分類識別
這個就是用CNN(多層卷積神經(jīng)網(wǎng)絡(luò))識別圖像,結(jié)果是得到的每張圖片可能的類別概率纯衍。最后訓(xùn)練的結(jié)果可以達(dá)到56%準(zhǔn)確率栋齿,就是說一大半圖片都能識別出來里面是喵星人還是汪星人了。然后非常高興的另外去網(wǎng)上找了些圖片來試試襟诸,結(jié)果一個都沒認(rèn)對兄春。
(╯‵□′)╯︵┴─┴
第三階段,專門處理時序數(shù)據(jù)(比如語言)的循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)锻煌、LSTM--一種改進(jìn)的RNN結(jié)構(gòu)窝革、文字建模方法Word2Vec、同時用兩個RNN實現(xiàn)序列到序列轉(zhuǎn)化Seq2Seq应结。
項目1:用RNN生成辛普森一家臺詞
這階段的第一個項目是用LSTM(一種循環(huán)神經(jīng)網(wǎng)絡(luò))通過學(xué)習(xí)已有的《辛普森一家》臺詞刨疼,去生成新的臺詞。這個還是很有趣的鹅龄,在訓(xùn)練的過程中揩慕,可以觀察到模型慢慢學(xué)會句子的組成方式,單詞的相互關(guān)系扮休。
項目2:用兩個LSTM做英語-法語翻譯
第二個項目是用兩個LSTM分別作encoder和decoder來實現(xiàn)語言翻譯迎卤,結(jié)果真的不忍直視
(翻譯出來的法語好像是:I think it is easy to translate English and California)
?╮(╯_╰)╭?
畢竟可以用的翻譯模型需要大量數(shù)據(jù)長時間訓(xùn)練以及調(diào)優(yōu)。
第四階段玷坠,GAN模型(兩個神經(jīng)網(wǎng)絡(luò)相互對抗找到均衡解)對沒有標(biāo)記的數(shù)據(jù)進(jìn)行半監(jiān)督學(xué)習(xí)
項目:用GAN學(xué)習(xí)已有圖片生成新圖片
用GAN通過隨機信號生成的手寫數(shù)字圖片蜗搔。嗯劲藐,這個效果不錯。
用同樣的模型來生成人臉圖片樟凄,可以看到模型的優(yōu)化過程聘芜。這個訓(xùn)練起來超費電腦,邊跑邊心疼我的Air缝龄。如果用好電腦可以把模型做得更復(fù)雜效果會更好汰现。
最后一個項目截止日期是這個月25號,提交了結(jié)果隔了一天看到標(biāo)語:您已畢業(yè)叔壤。開心瞎饲!
然后就可以提交個人信息并填寫調(diào)查表,獲得畢業(yè)證書炼绘,撒花ヽ(??▽?)ノ
所以嗅战,一切結(jié)束了么?沒有饭望,甚至在標(biāo)題上用“入門”兩個字都感到挺心虛的仗哨。通過這次學(xué)習(xí),自己也僅僅是看到了深度學(xué)習(xí)這個領(lǐng)域的廣闊铅辞,更覺得自己掌握的東西少得可憐厌漂。這種感覺和剛接觸前端開發(fā)時候非常像,就是知道了哪些自己不知道的階段斟珊。
嗯苇倡,接下來的路還有很長。
最后想說的就是囤踩,人工智能的時代真的到來了旨椒。放心,在可以預(yù)見的未來電腦還不會統(tǒng)治人類的堵漱。但是用人工智能的方法加上代碼實現(xiàn)综慎,每個人都可以做出很多很酷的東西。比如我就想試著做一個去處圖片里玻璃反光的濾鏡勤庐,有了結(jié)果再分享了示惊。
寫完了。