啊!聽說你總驚嘆于AI改變世界取代人類,卻不知道AI可以簡(jiǎn)單得掉渣!

????????????????????????????????? 「寫在前面

Hello,World!

這篇文章作為申請(qǐng)了蠻久的賬號(hào)的第一篇文章,如果你還沒有開始系統(tǒng)地學(xué)習(xí)過AI算法相關(guān)知識(shí),它應(yīng)該能夠讓你對(duì)AI有些新的認(rèn)知和理解,多些信心,至少你不會(huì)再覺得AI是那么高不可攀、觸不可及,相反,AI是普通人也可以理解、學(xué)習(xí)和實(shí)現(xiàn)的。

大概可以用以下幾個(gè)標(biāo)簽簡(jiǎn)單概括我:前互聯(lián)網(wǎng)產(chǎn)品經(jīng)理、大學(xué)學(xué)渣、非計(jì)算機(jī)專業(yè)、不懂編程,可以說是除了瞎逼逼,啥也不會(huì)...

跟點(diǎn)進(jìn)這篇文章的你一樣,我最開始也是驚嘆和憧憬于AI的神奇?zhèn)ゴ鬅o所不能,馬上就要改變世界取代人類啊。

不一樣的可能是,我當(dāng)時(shí)腦子一熱:放棄數(shù)年的產(chǎn)品經(jīng)驗(yàn),開始自學(xué)編程(python)和AI實(shí)現(xiàn)算法(傳統(tǒng)機(jī)器學(xué)習(xí)和深度學(xué)習(xí)算法),走上轉(zhuǎn)型AI之路。

最開始決定轉(zhuǎn)型其實(shí)也是蠻糾結(jié)的,初期在網(wǎng)上看到經(jīng)驗(yàn)分享感覺機(jī)器學(xué)習(xí)的門檻真的是高的一逼啊。

文章中各種出現(xiàn)高等數(shù)學(xué)、線性代數(shù)和概率論的東東,?把我這個(gè)學(xué)渣嚇得瑟瑟發(fā)抖.....

在某個(gè)周六晚上的酒吧里,喝掉幾杯啤酒后,借著酒意我做出了決定:搞,是個(gè)坑我也跳了...請(qǐng)稍稍腦補(bǔ)不懂編程還是學(xué)渣的我當(dāng)時(shí)那種略帶悲壯而又自我感動(dòng)的狀態(tài)!

然后就開始苦哈哈地補(bǔ)高數(shù)線代概率論,苦哈哈地學(xué)python編程,苦哈哈地看Andrew?Ng、Peter?Harrington、Siraj等一眾大神的書籍視頻學(xué)習(xí)機(jī)器學(xué)習(xí)....

苦哈哈的狀態(tài)持續(xù)了一段時(shí)間,隨著學(xué)習(xí)的推進(jìn),慢慢也可以熟練地使用python寫算法寫腳本,傳統(tǒng)機(jī)器學(xué)習(xí)和深度學(xué)習(xí)中經(jīng)典常用算法也基本都算學(xué)習(xí)和實(shí)踐過了。

我得到的結(jié)論是傳統(tǒng)機(jī)器學(xué)習(xí)和深度學(xué)習(xí)的門檻并沒有那么高,至少是以算法工程師為主要需求的工程應(yīng)用領(lǐng)域門檻是沒有那么高的。

網(wǎng)上確實(shí)有很多不錯(cuò)的資料,但是充斥著較多的數(shù)學(xué)、生澀的描述,其實(shí)并不是很適合作為小白的我們(請(qǐng)大牛自動(dòng)屏蔽哈)入門。

作為毫無技術(shù)背景從零開始入門機(jī)器學(xué)習(xí)的產(chǎn)品經(jīng)理,我或許更能理解同為小白的你的痛點(diǎn)和需求,“小白AI之路”的初衷也是希望能夠通過更有趣、更直觀、更少數(shù)學(xué)的方式跟零基礎(chǔ)的童鞋共同學(xué)習(xí)AI相關(guān)知識(shí)。

如果看完后覺得有些許收獲,記得關(guān)注公眾號(hào)“小白AI之路”,我后面還會(huì)推出相關(guān)系列文章。當(dāng)然也可以加我私人微信號(hào)mayiyanzhi做更多的交流和探討。

叨逼叨結(jié)束,下面進(jìn)入正題,快!上車吧!

??????????????????????????????? 「AI可以很簡(jiǎn)單」

讓我們先來說說AI是什么

首先,我們先來界定下接下來所要討論的AI的定義和范疇。

AIArtificial?Intelligentce的縮寫,中文是大家廣知的“人工智能”。AI可以理解為讓機(jī)器具備類似人的智能,從而代替人類去完成某些工作和任務(wù)。

很多小伙伴對(duì)AI的認(rèn)知可能來自于《西部世界》、《AI》、《超能陸戰(zhàn)隊(duì)》、《機(jī)器人總動(dòng)員》、《超能查派》等影視作品,這些作品中的AI都可以定義為“強(qiáng)人工智能”,因?yàn)樗麄兡軌?b>像人類一樣去思考和推理,且具備知覺和自我意識(shí)。

但強(qiáng)人工智能在現(xiàn)實(shí)中的發(fā)展基本處于停滯狀態(tài),目前AI的研究和應(yīng)用基本都集中在“弱人工智能”領(lǐng)域,弱人工智能可以理解為機(jī)器看起來像是智能的,但并不會(huì)具備知覺和意識(shí)。

弱人工智能領(lǐng)域的 AI實(shí)現(xiàn)可以分為兩種方式:

一種是通過對(duì)相關(guān)規(guī)則進(jìn)行編程,讓機(jī)器能夠按照程序中存在的邏輯處理特定任務(wù),從結(jié)果來上看機(jī)器是智能的;

另一種是我們不給機(jī)器規(guī)則,取而代之,我們喂給機(jī)器大量的針對(duì)某一任務(wù)的數(shù)據(jù),讓機(jī)器自己去學(xué)習(xí),繼而挖掘出規(guī)律,從而具備完成某一任務(wù)的智能,也就是使用我們今天的主角——機(jī)器學(xué)習(xí)的方式。

不好理解?舉一個(gè)簡(jiǎn)單的例子,如果我們需要讓機(jī)器具備識(shí)別狗的智能

第一種方式意味著我們需要將狗的特征(毛茸茸、四條腿、有尾巴...)告訴機(jī)器,機(jī)器將滿足這些規(guī)則的東西識(shí)別為狗

第二種方式意味著我們完全不告訴機(jī)器狗有什么特征,但我們喂給機(jī)器10萬張狗的圖片,機(jī)器就會(huì)自個(gè)兒從已有的圖片中學(xué)習(xí)到狗的特征,從而具備識(shí)別狗的智能。

此狗以一根火腿腸的身價(jià)友情出境...

AI可以說是跟機(jī)器學(xué)習(xí)緊密聯(lián)系在一起,那我們?cè)趤碚f下我們今天的主角——機(jī)器學(xué)習(xí)。

首先,機(jī)器學(xué)習(xí)從模型層次結(jié)構(gòu)的角度可以分為淺層學(xué)習(xí)深度學(xué)習(xí),簡(jiǎn)單介紹下兩者:

一.淺層學(xué)習(xí)(Shallow?Learning)

淺層學(xué)習(xí)與深度學(xué)習(xí)(Deep?Learning)相對(duì),它的模型層次較淺,通常沒有隱藏層或只有一層隱藏層。

淺層學(xué)習(xí)常見的算法有線性回歸、邏輯回歸、隨機(jī)森林、SVM、K-means、RBM、AutoEncoder、PCA、SOM等等。

隱藏層什么鬼?這些算法什么鬼?沒關(guān)系,能記上一兩個(gè)名字很好,暫時(shí)記不住也沒關(guān)系,我們以后會(huì)撿重要的來講。

淺層學(xué)習(xí)算法可以做一些預(yù)測(cè)、分類、聚類、降低數(shù)據(jù)維度、壓縮數(shù)據(jù)和商品推薦系統(tǒng)等工作。

二.深度學(xué)習(xí)(Deep?Learning)

深度學(xué)習(xí)的“深”是因?yàn)樗ǔ?huì)有較多的隱藏層,正是因?yàn)橛心敲炊嚯[藏層存在,深度學(xué)習(xí)網(wǎng)絡(luò)才擁有表達(dá)更復(fù)雜函數(shù)的能力,也才能夠識(shí)別更復(fù)雜的特征,繼而完成更復(fù)雜更amzaing的任務(wù)。

令很多童鞋總是驚嘆AI無所不能馬上就要改變世界取代人類的領(lǐng)域也基本都跟深度學(xué)習(xí)有關(guān)系。

目前深度學(xué)習(xí)研究和應(yīng)用主要集中在CNNRNN。跟著我狠狠地把這些名詞記下來(至少縮寫要記下來哈),他們會(huì)成為后續(xù)文章介紹的重點(diǎn)。

CNNConvolutional?Neural?Networks的縮寫,也就是卷積神經(jīng)網(wǎng)絡(luò),目前是計(jì)算機(jī)視覺、圖像分類領(lǐng)域最主要的算法,當(dāng)然也有人將它應(yīng)用于自然語言處理領(lǐng)域。

接下來舉些CNN應(yīng)用場(chǎng)景的例子,讓大家有個(gè)較直觀的印象:

1. 前兩年大火的Prisma可以將機(jī)器學(xué)習(xí)名畫的風(fēng)格并遷移到新的圖片上,比如這張白發(fā)女咖啡杯圖:

2. 深受妹紙喜愛各種美顏相機(jī)的濾鏡,也是會(huì)用到人臉檢測(cè),用上之后感覺自己萌萌噠,額...這個(gè)好像是個(gè)可愛的男孩子...

3.?交通監(jiān)控視頻識(shí)別來往車輛的車型,目前有些公司的產(chǎn)品還可以識(shí)別車牌號(hào):

4. 商場(chǎng)監(jiān)控視頻能夠識(shí)別人臉,順便還能根據(jù)已有數(shù)據(jù)判斷這個(gè)人是否以前來過商場(chǎng):

5. 當(dāng)下最火的無人車中,無人車需要用計(jì)算視覺去觀察和理解這個(gè)世界:

RNNRecurrent?Neural NetWorks的縮寫,也就是遞歸神經(jīng)網(wǎng)絡(luò),基于RNN還衍生出了LSTM(Long-Short-Term-Memerory)和GRU(Gated?Recurrent?Unit)等一系列算法,這些算法擁有記住過去的能力,所以可以用來處理一些有時(shí)間序列屬性的數(shù)據(jù),在處理語言、文字等方面有獨(dú)到的優(yōu)勢(shì)。

RNN及其衍生算法可用于語音識(shí)別、機(jī)器翻譯、合成音樂等等,我們?nèi)匀粊砗?jiǎn)單舉幾個(gè)的例子:

1. 以siri、小娜、小冰、小度為代表的對(duì)話機(jī)器人,調(diào)戲siri讓她bbox和唱歌講段子并不能充分體現(xiàn)你的無聊,下次你可以試試讓siri和小娜互相對(duì)話:

2. 以谷歌翻譯為代表的機(jī)器翻譯,不管是文字翻譯還是語音翻譯,都把可以把人類翻譯虐成渣渣:

3. 老羅在錘子發(fā)布會(huì)上大吹特吹的能夠以極高準(zhǔn)確率和極快速度將語音轉(zhuǎn)化為文字的訊飛輸入法

4. 有權(quán)游粉絲等不及喬治·馬丁老爺子寫《冰與火之歌》第六部,就自己用LSTM算法學(xué)習(xí)了《冰與火之歌》的前五部后續(xù)寫了第六部,據(jù)說AI在這部作品中還揭示了前幾部中埋了很久的懸念:

說AI簡(jiǎn)單,因?yàn)锳I本質(zhì)上都是一個(gè)函數(shù)

如果你堅(jiān)持看到這里,你對(duì)AI的理解和認(rèn)知大概率已經(jīng)擊敗了你朋友圈50%里面經(jīng)常分享AI將改變世界取代人類的好友們。

此刻你已經(jīng)可以在聊天中用對(duì)方大概率聽不懂的CNN、RNN、LSTM等一眾名詞來彰顯你的逼格了。

但是,作為穩(wěn)重踏實(shí),擁有內(nèi)涵、崇尚科學(xué)的新時(shí)代好青年的我們來說,這還遠(yuǎn)遠(yuǎn)不夠,我們總是希望能夠不動(dòng)聲色、低調(diào)內(nèi)斂、用對(duì)方看似都懂實(shí)則不懂的東西去裝更高規(guī)格的逼。

接下來,請(qǐng)跟我學(xué)習(xí)下正確的裝的方式:XX,你知道么?其實(shí),AI很簡(jiǎn)單,因?yàn)?b>AI本質(zhì)上都是一個(gè)函數(shù)。說的時(shí)候一定要有種云淡風(fēng)輕的狀態(tài),仿佛吃飯喝水那般自然。

看著對(duì)方有點(diǎn)迷離困惑的眼神,這個(gè)時(shí)候你要貼心去解釋一下,以彰顯你的善解人意,請(qǐng)?jiān)俅胃覍W(xué):

是這樣的,XX,這其實(shí)很好理解,AI其實(shí)就是我們喂給機(jī)器目前已有的數(shù)據(jù),機(jī)器就會(huì)從這些數(shù)據(jù)里去找出一個(gè)最能滿足(此處用“擬合”或可提升逼格)這些數(shù)據(jù)的函數(shù),當(dāng)有新的數(shù)據(jù)需要預(yù)測(cè)的時(shí)候,機(jī)器就可以通過這個(gè)函數(shù)去預(yù)測(cè)出這個(gè)新數(shù)據(jù)對(duì)應(yīng)的結(jié)果是什么。

說完之后,請(qǐng)微微抬頭看向遠(yuǎn)方,感慨一下:萬物自有其道,人世間多少復(fù)雜的東西到末了還是要?dú)w于純粹啊。

但是,裝逼有風(fēng)險(xiǎn),風(fēng)險(xiǎn)請(qǐng)自行承擔(dān)...

其實(shí)可能你暫時(shí)也沒有太理解,不要慌,我們偷偷繼續(xù)理解一下。

對(duì)于一個(gè)具備某種智能的模型而言,一般具備以下要素:數(shù)據(jù)+算法+模型,請(qǐng)狠狠地記住這三個(gè)詞,記住了AI的本質(zhì)你也就搞清楚了。

這個(gè)時(shí)候我們?cè)侔迅呃涞呢堃舱?qǐng)出來,我們來用一個(gè)能夠區(qū)分貓和狗圖片的分類器模型來幫助理解這個(gè)問題:

“數(shù)據(jù)”就是我們需要準(zhǔn)備大量的標(biāo)注得有是貓還是狗的圖片,為什么要強(qiáng)調(diào)大量,因?yàn)?b>只有數(shù)據(jù)量足夠大,模型才能夠?qū)W習(xí)到足夠多且準(zhǔn)確的區(qū)分貓和狗的特征,才能在區(qū)分貓狗這個(gè)任務(wù)上表現(xiàn)出足夠高的準(zhǔn)確性;當(dāng)然數(shù)據(jù)量不大的情況下我們也可以訓(xùn)練模型,不過在新數(shù)據(jù)集上預(yù)測(cè)出來的結(jié)果往往就會(huì)差很多。

“算法”指的是構(gòu)建模型時(shí)我們打算用淺層的網(wǎng)絡(luò)還是深層的,如果是深層的話我們要用多少層,每層有多少神經(jīng)元、功能是什么等等,也就是網(wǎng)絡(luò)架構(gòu)的設(shè)計(jì)。相當(dāng)于我們確定了我們的預(yù)測(cè)函數(shù)應(yīng)該大致結(jié)構(gòu)是什么樣的,我們用Y=f(W,X,b)來表示這一函數(shù),X是已有的用來訓(xùn)練的數(shù)據(jù)(貓和狗的圖片),Y是已有的圖片數(shù)據(jù)的標(biāo)簽(該圖片是貓還是狗),聰明的你會(huì)問:W和b呢?問得好,函數(shù)里的W(權(quán)重)和b(偏差)我們還不知道,這兩個(gè)參數(shù)是需要機(jī)器學(xué)習(xí)后自己找出來的,找的過程也就是模型訓(xùn)練的過程。

“模型”指的我們把數(shù)據(jù)帶入到算法中進(jìn)行訓(xùn)練,機(jī)器就會(huì)去不斷地學(xué)習(xí),當(dāng)機(jī)器找到最優(yōu)W(權(quán)重)和b(偏差)后,我們就說這個(gè)模型是train成功了,這個(gè)時(shí)候我們的函數(shù)Y=f(W,X,b)就完全確定下來了。然后我們就可以在已有的數(shù)據(jù)集外給模型一張新的貓或狗的圖片,那模型就能通過函數(shù)Y=f(W,X,b)算出來這張圖的標(biāo)簽究竟是貓還是狗,這也就是所謂的模型的預(yù)測(cè)功能

到這里,你應(yīng)該已經(jīng)能夠理解AI的本質(zhì)了。我們?cè)俸?jiǎn)單總結(jié)下:不管是最簡(jiǎn)單的線性回歸模型、還是較復(fù)雜的擁有幾十個(gè)甚至上百個(gè)隱藏層的深度神經(jīng)網(wǎng)絡(luò)模型,本質(zhì)都是尋找一個(gè)能夠良好擬合目前已有數(shù)據(jù)的函數(shù)Y=f(W,X,b),并且我們希望這個(gè)函數(shù)在新的未知數(shù)據(jù)上也能夠表現(xiàn)良好。

AI算法模型的實(shí)現(xiàn)可以說是相當(dāng)easy啦

如果你堅(jiān)持看到這里,那請(qǐng)你為自己打call!因?yàn)槟銓?duì)AI的理解和認(rèn)知應(yīng)該大概率已經(jīng)擊敗了你朋友圈里70%經(jīng)常分享AI將改變世界取代人類的好友們。

接下來我們?cè)偻白咭徊?,?jiǎn)單說一說實(shí)現(xiàn)一個(gè)AI模型可以多么簡(jiǎn)單,看完后,相信你會(huì)信心爆棚

其實(shí)李杰克(也就是我啦)最早也是抱著異常悲壯各種被虐地心情走進(jìn)AI的。學(xué)習(xí)大概分為三塊:

一.學(xué)習(xí)AI第一語言python:

這里我要為python瘋狂打call,因?yàn)閜ython作為萬能膠水語言能做的事情實(shí)在太多,并且..它還異常容易上手

我大概花了50個(gè)小時(shí)學(xué)習(xí)了python的基礎(chǔ)語法,然后就開始動(dòng)手寫代碼去爬小說、爬網(wǎng)易云音樂的評(píng)論等等程序。

額...據(jù)說很多人第一個(gè)python的爬蟲是去爬不可描述的網(wǎng)站上哪些沒穿衣服的可愛的女孩子們的相片...

總之,python是整個(gè)過程并不耗精力的環(huán)節(jié),但是剛開始背記語法確實(shí)是無聊無趣的,需要些許的小堅(jiān)持,給你提個(gè)醒喲...

二.學(xué)習(xí)傳統(tǒng)機(jī)器學(xué)習(xí)和深度學(xué)習(xí)相關(guān)算法:

這塊算是花費(fèi)我最多精力和時(shí)間的環(huán)節(jié),看了蠻多的視頻、書籍,還有網(wǎng)上的各種博文,還自己去補(bǔ)了高數(shù)線代概率論相關(guān)知識(shí)。

但結(jié)論是如果你僅僅關(guān)注工程領(lǐng)域?qū)崿F(xiàn)的話,其實(shí)很多算法壓根沒有必要用那么數(shù)學(xué)的東西去推導(dǎo),換種方式你的理解和時(shí)間成本會(huì)下降很多。我也希望之后能夠用盡可能簡(jiǎn)單有趣的方式跟大家分享和學(xué)習(xí)。

三.算法和模型的實(shí)現(xiàn):

最開始我盡可能去理解和推導(dǎo)算法,然后用python代碼去實(shí)現(xiàn)算法再train模型,那個(gè)時(shí)候覺得啊算法還是要吃透啊,代碼能力也要很重要啊,不然你TM的模型都建不起來啊,小伙砸你要靜下心來慢慢搞啊。

后來,我開始接觸到深度學(xué)習(xí)大殺器,Google的深度學(xué)習(xí)框架tensorflow,當(dāng)時(shí)我的心情是這樣的:

真的是一度有些蛋蛋的憂郁呢,我也算是鼓起了些勇氣、下了些決心、放棄了些機(jī)會(huì)開始轉(zhuǎn)型的,我還指著靠AI當(dāng)上CEO、迎娶白富美、走上人生巔峰呢。但是...

不是說好的有很高的數(shù)學(xué)門檻么?

不是說好的很高大上大家都搞不懂的么?

不是說好的需要深刻理解算法才能更好train出好model的么?

為什么算法模型損失函數(shù)優(yōu)化方法tensorflow都內(nèi)置好了,而且只需要異常簡(jiǎn)單的調(diào)用就好了?

再后來,我接觸到了keras,一個(gè)基于tensorflow構(gòu)建的深度學(xué)習(xí)框架,當(dāng)然也有基于Theano的版本(Theano什么鬼,暫時(shí)你也可以不用關(guān)心的)。

當(dāng)用keras寫完第一個(gè)模型后我的心情真的是...

如果說tensorflow是可以把一個(gè)模型代碼量大大減少的框架,那么keras就是讓模型代碼量可以少到掉渣的框架。

剛才跟大家說了那么多貓狗分類器模型,現(xiàn)在就給大家看下這個(gè)分類器模型代碼在Keras框架可以少到什么程度!??!

那么寥寥幾行代碼就把一個(gè)擁有著卷積層、池化層和全連接層并且使用Adam這個(gè)較高級(jí)優(yōu)化方法的深度學(xué)習(xí)網(wǎng)絡(luò)架構(gòu)寫出來了,你自己感受下在keras下實(shí)現(xiàn)深度學(xué)習(xí)算法模型有多簡(jiǎn)單了吧...

有沒有為自己的驚奇發(fā)現(xiàn)感到開心!

?????????????????????????????????? 「寫在最后」

小白AI之路”第一篇文章已經(jīng)快到了尾聲,如果你堅(jiān)持看到了這里,那大概率你對(duì)AI的理解和認(rèn)知已經(jīng)擊敗了你朋友圈里90%經(jīng)常分享AI將改變世界取代人類的好友們。

接下來我們的目標(biāo)是從剩下的10%里往上爬,我也希望能夠通過更有趣、更直觀、更少數(shù)學(xué)的方式跟大家分享和學(xué)習(xí)AI相關(guān)知識(shí)。當(dāng)然我也還是一個(gè)AI世界的小學(xué)生,也還在努力地學(xué)習(xí)和奔跑。如果大家想要繼續(xù)follow這一些系列文章或者想要與我交流的,可以關(guān)注我的公眾號(hào)“小白AI之路”,當(dāng)然也可以加我的私人微信號(hào)mayiyanzhi做更多的探討和交流!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容