人工智能和機(jī)器學(xué)習(xí)是現(xiàn)如今最熱門的話題了。
“人工智能”這個詞每天被到處亂用。你聽到開發(fā)者們說他們要學(xué)習(xí)人工智能。你也會聽到管理者說他們要把人工智能技術(shù)應(yīng)用他們的服務(wù)中。但他們往往并不了解人工智能。
讀完這篇文章,你將會了解到人工智能和機(jī)器學(xué)習(xí)的基礎(chǔ)知識。更重要的是你將會了解到最流行的一種機(jī)器學(xué)習(xí)技術(shù)——深度學(xué)習(xí)是如何工作的。
這篇指引是面向大眾的,所以文中不會出現(xiàn)高等數(shù)學(xué)的內(nèi)容。
理解學(xué)習(xí)深度的第一步是掌握重要術(shù)語之間的差異。
人工智能是人類智能在計(jì)算機(jī)中的復(fù)現(xiàn)。
在人工智能研究的起步階段,研究人員正試圖在計(jì)算機(jī)上復(fù)現(xiàn)人類智能的具體任務(wù)?——?比如玩游戲。
他們引入了計(jì)算機(jī)需要遵守的大量規(guī)則。計(jì)算機(jī)有一個具體的可能行動清單,并根據(jù)這些規(guī)則做出決定。
機(jī)器學(xué)習(xí)指的是機(jī)器學(xué)習(xí)使用大數(shù)據(jù)集而不是硬編碼規(guī)則的能力。
機(jī)器學(xué)習(xí)允許計(jì)算機(jī)自己學(xué)習(xí)。這種學(xué)習(xí)利用了現(xiàn)代計(jì)算機(jī)的處理能力,它可以很容易地處理大型數(shù)據(jù)集。
監(jiān)督學(xué)習(xí)涉及使用具有輸入和期望輸出的標(biāo)記數(shù)據(jù)集。
當(dāng)你使用監(jiān)督學(xué)習(xí)訓(xùn)練人工智能時(shí),你給計(jì)算機(jī)一個輸入內(nèi)容并告訴計(jì)算機(jī)預(yù)期的輸出內(nèi)容。
如果人工智能產(chǎn)生的輸出是錯誤的,它將調(diào)整計(jì)算方法。這個過程在數(shù)據(jù)集上迭代完成,直到 AI 不再犯錯誤為止。
監(jiān)督學(xué)習(xí)的一個例子是天氣預(yù)報(bào)人工智能。它學(xué)習(xí)用歷史數(shù)據(jù)預(yù)測天氣。訓(xùn)練數(shù)據(jù)有輸入(壓力、濕度、風(fēng)速)和輸出(溫度)。
無監(jiān)督學(xué)習(xí)是使用沒有特定結(jié)構(gòu)的數(shù)據(jù)集進(jìn)行機(jī)器學(xué)習(xí)的任務(wù)。
當(dāng)你使用無監(jiān)督學(xué)習(xí)訓(xùn)練人工智能時(shí),你讓人工智能對數(shù)據(jù)進(jìn)行邏輯分類。
無監(jiān)督學(xué)習(xí)的一個例子是一個電子商務(wù)網(wǎng)站的行為預(yù)測人工智能。它不會通過使用標(biāo)記的輸入和輸出數(shù)據(jù)集來學(xué)習(xí)。
相反,它將創(chuàng)建自己的輸入數(shù)據(jù)分類。它會告訴你哪種用戶最有可能購買不同的產(chǎn)品。
現(xiàn)在你有了足夠的預(yù)備知識去理解深度學(xué)習(xí)是什么,以及深度學(xué)習(xí)是怎樣工作的。
深度學(xué)習(xí)是一種機(jī)器學(xué)習(xí)的方法。深度學(xué)習(xí)允許我們訓(xùn)練一個人工智能系統(tǒng)通過給定一個輸入數(shù)據(jù)集,去預(yù)測輸出數(shù)據(jù)。監(jiān)督和無監(jiān)督學(xué)習(xí)都可以運(yùn)用到訓(xùn)練人工智能上。
我們將會通過一個飛機(jī)票價(jià)評估服務(wù)來學(xué)習(xí)深度學(xué)習(xí)是如何工作的。我們會使用監(jiān)督學(xué)習(xí)方法來訓(xùn)練這個系統(tǒng)。
我們希望我們的飛機(jī)票價(jià)評估系統(tǒng)通過以下數(shù)據(jù)來預(yù)測票價(jià)(為了系統(tǒng)的簡單,我們沒有使用返程票價(jià)的數(shù)據(jù)):
始發(fā)機(jī)場
目的地機(jī)場
啟程日期
航空公司
讓我們看看人工智能的大腦。
像動物一樣,我們的評估系統(tǒng) AI 的大腦有神經(jīng)元。它們以圓圈表示。這些神經(jīng)元之間相互連接。
神經(jīng)元被分成三組不同的層級:
輸入層
隱含層
輸出層
輸入層接收輸入數(shù)據(jù)。在我們的例子中,輸入層有四個神經(jīng)元:始發(fā)機(jī)場、目的地機(jī)場、啟程日期和航空公司。輸入層將輸入傳遞給第一個隱含層。
隱含層對輸入數(shù)據(jù)進(jìn)行數(shù)學(xué)計(jì)算。創(chuàng)建神經(jīng)網(wǎng)絡(luò)所面臨的挑戰(zhàn)之一是決定隱含層的數(shù)目,以及每個層的神經(jīng)元數(shù)目。
深度學(xué)習(xí)中的“深度”指的就是因?yàn)樗幸粋€以上的隱藏層。
輸出層返回輸出數(shù)據(jù)。在我們的例子中,它給了我們對于價(jià)格的預(yù)測。
那么深度學(xué)習(xí)系統(tǒng)如何給出對于價(jià)格的預(yù)測呢?
這就是深度學(xué)習(xí)的魔力所在。
在每個神經(jīng)元之間都有一個“權(quán)重”。這個權(quán)重描述了輸入數(shù)據(jù)的重要性,初始權(quán)重是隨機(jī)設(shè)置的。
當(dāng)預(yù)測機(jī)票價(jià)格的時(shí)候,啟程日期是一個重要的因素。因此,啟程日期神經(jīng)元連接將會有高的權(quán)重。
每個神經(jīng)元都有一個激活函數(shù)。如果沒有數(shù)學(xué)推到,這些函數(shù)很難理解。
簡單來說,激活函數(shù)的目的是標(biāo)準(zhǔn)化來自神經(jīng)元的輸出。
一旦一個數(shù)據(jù)集被傳入到神經(jīng)網(wǎng)絡(luò)的所有的層,激活函數(shù)將通過輸出層返回?cái)?shù)據(jù)。
這沒什么難的,對吧?
訓(xùn)練人工智能是深度學(xué)習(xí)中最困難的部分。為什么?
你需要一個很大的數(shù)據(jù)集。
你需要強(qiáng)大的計(jì)算能力。
對于我們的機(jī)票價(jià)格估計(jì)系統(tǒng),我們需要找到機(jī)票價(jià)格的歷史數(shù)據(jù)。由于機(jī)場和起飛日期的可能組合有很多,因此我們需要一個非常大的機(jī)票價(jià)格清單。
為了訓(xùn)練人工智能,我們需要從數(shù)據(jù)集中輸入它,并將其輸出與數(shù)據(jù)集的輸出進(jìn)行比較。由于人工智能還未經(jīng)訓(xùn)練,其輸出將是錯誤的。
一旦我們完成了整個數(shù)據(jù)集,我們就可以創(chuàng)建一個函數(shù),告訴我們?nèi)斯ぶ悄芟到y(tǒng)的輸出與我們需要的輸出的差距有多大。這個函數(shù)叫做成本函數(shù)。
理想情況下,我們希望我們的成本函數(shù)為零。這要求人工智能的輸出數(shù)據(jù)和數(shù)據(jù)集的輸出數(shù)據(jù)完全相同。
我們可以改變神經(jīng)元之間的權(quán)重。我們可以隨機(jī)地改變權(quán)重,直到我們的成本函數(shù)是低的,但這個方法效率不高。
相反,我們將使用一種稱為梯度下降的技術(shù)。
梯度下降是一種允許我們找到函數(shù)最小值的技術(shù)。在我們的例子中,我們在尋找最小的成本函數(shù)。
它通過在每次數(shù)據(jù)集迭代后以較小的增量改變權(quán)重。在一定的權(quán)重集上通過計(jì)算成本函數(shù)曲線的導(dǎo)數(shù)(或梯度),我們可以看到降低成本函數(shù)的方向是什么。
為了最小化成本函數(shù),你需要多次迭代你的數(shù)據(jù)集。這就是為什么你需要大量的計(jì)算能力。
使用梯度下降調(diào)整權(quán)重是自動完成的。這就是深度學(xué)習(xí)的魔力!
一旦我們訓(xùn)練了我們的機(jī)票價(jià)格估計(jì)AI,我們就可以用它來預(yù)測機(jī)票未來的價(jià)格。
還有許多其他類型的神經(jīng)網(wǎng)絡(luò):用于計(jì)算機(jī)視覺的卷積神經(jīng)網(wǎng)絡(luò)和用于自然語言處理的遞歸神經(jīng)網(wǎng)絡(luò)。
如果你想學(xué)習(xí)深度學(xué)習(xí)的技術(shù)方面,我建議你參加一個在線網(wǎng)絡(luò)課程。
目前,學(xué)習(xí)深度學(xué)習(xí)最好的課程是吳恩達(dá)(Andrew Ng)的深度學(xué)習(xí)課程。如果你對獲得證書不感興趣,你不需要為課程付錢。你可以免費(fèi)旁聽。
如果你有任何的問題,或者需要更多的技術(shù)概念的解釋,請?jiān)谙旅嬖儐枴?/p>
深度學(xué)習(xí)利用神經(jīng)網(wǎng)絡(luò)來模仿動物的智力。
一個神經(jīng)網(wǎng)絡(luò)鐘有三種類型的層級神經(jīng)元:輸入層,隱含層和輸出層。
神經(jīng)元之間的聯(lián)系與權(quán)重有關(guān),權(quán)重來指示輸入值的重要性。
神經(jīng)元在數(shù)據(jù)上應(yīng)用一個激活函數(shù)來“標(biāo)準(zhǔn)化”神經(jīng)元的輸出。
訓(xùn)練一個神經(jīng)網(wǎng)絡(luò),你需要一個很大數(shù)據(jù)集。
迭代數(shù)據(jù)集和比較輸出將產(chǎn)生一個成本函數(shù),表明人工智能與實(shí)際輸出有多大的差距。
每次迭代后,通過梯度下降調(diào)整神經(jīng)元之間的權(quán)值,降低代價(jià)函數(shù)。
End
聯(lián)系客服