AI技術(shù)入門學(xué)習(xí)(一):什么是神經(jīng)網(wǎng)絡(luò)?它是如何運(yùn)作的?

0 評論 1249 瀏覽 5 收藏 18 分鐘

出于對AI技術(shù)的興趣,我開始關(guān)注AI背后的技術(shù)研究內(nèi)容,對于產(chǎn)品經(jīng)理來說,及時介入新技術(shù)非常有必要,我會把輸出文章作為“費(fèi)曼學(xué)習(xí)法”的基礎(chǔ),除了督促我自己對這些技術(shù)深度理解,更希望我能將這些較為前沿甚至晦澀的技術(shù)內(nèi)容更通俗地介紹給大家。

一、神經(jīng)網(wǎng)絡(luò)因何而生?

神經(jīng)網(wǎng)絡(luò),是計算機(jī)技術(shù)基于生物學(xué)技術(shù)提出的理念。

很多文章會重點(diǎn)強(qiáng)調(diào)這種計算模型是受到人類大腦結(jié)構(gòu)和功能的啟發(fā),但不止于此,其實(shí)這種計算模型與人類視覺系統(tǒng)關(guān)系也非常大。

人類視覺系統(tǒng)非常復(fù)雜,包含數(shù)億個神經(jīng)元和連接,舉個例子來說,在我們的認(rèn)知領(lǐng)域,識別手寫數(shù)字很容易,但這項工作對計算機(jī)程序來說卻非常困難。

如圖例,人會先通過視覺去看到數(shù)字,然后迅速傳導(dǎo)到大腦進(jìn)行辨析,輸出結(jié)論——這是數(shù)字5。

即使這些5的長相各異,但人類出于某些原因仍能夠精準(zhǔn)判斷,比如認(rèn)識第一個5,自然而然對后續(xù)的符號產(chǎn)生聯(lián)想,理解后續(xù)的符號都是數(shù)字,然后歸類于5。

或者比如第三個5,獨(dú)立去看,奇形怪狀的,但若某人曾看見過某個5是這樣書寫的,也會自然而然將其認(rèn)識為5。

識別手寫數(shù)字并不容易,但人類非常擅長理解視覺所見,這種辨析往往在幾分之一秒就不知不覺地完成。因此,我們通常不會意識到我們的視覺系統(tǒng)解決的問題有多復(fù)雜。

但對于計算機(jī)來說,這是一個全新的領(lǐng)域,計算機(jī)沒有所謂的“視覺神經(jīng)”,攝像頭起到的作用僅僅是“看”而不是“迅速地想”,那么,該如何識別這個手寫數(shù)字為5呢?

這就是神經(jīng)網(wǎng)絡(luò)所解決的問題,神經(jīng)網(wǎng)絡(luò)是存在于計算機(jī)中的、模擬了人類判斷辨析事物的方法的運(yùn)算集合,它可以依據(jù)這種運(yùn)算能力去處理和模擬復(fù)雜的問題,如圖像識別、語音識別、自然語言處理等。

這也是為什么AI會可以替代人,因?yàn)樗募夹g(shù)基礎(chǔ)——神經(jīng)網(wǎng)絡(luò),就是在模仿人。

二、神經(jīng)網(wǎng)絡(luò)是什么?其中有什么?

科學(xué)家們將人的判斷步驟分為三塊:輸入-分析-輸出,所以,神經(jīng)網(wǎng)絡(luò)也由輸入層、隱藏層(我愿意稱之為分析層)和輸出層組成。

依據(jù)這種階段的概念,制造出了存在于計算機(jī)中的人工神經(jīng)元,將這些人工神經(jīng)元,布置在輸入層、隱藏層和輸出層之中,人工神經(jīng)元之間交叉著利用函數(shù)構(gòu)建起來的關(guān)聯(lián)線,最終形成了有結(jié)構(gòu)的神經(jīng)網(wǎng)絡(luò)。

我會介紹兩種重要的人工神經(jīng)元模型:感知器和S型神經(jīng)元。

1. 感知器

在輸入層,最重要的就是該如何去獲取有效信息,并輸入到計算機(jī)之中。這點(diǎn)我們可以理解為,我們在看到某個事物時,并不是純粹機(jī)械地在“看”,而是有主次意識地在“看”。

依然以這組數(shù)字為例,我們在“看”的時候,會重點(diǎn)看黑色的字體“5”,其次關(guān)注到周圍的“·”以及其與“5”的排列關(guān)系,背景的灰色在思維慣性下會被忽視。

但對于計算機(jī)來說,如果不進(jìn)行“感知”而是單純?nèi)タ?,這張圖對于它就是這樣的(甚至更夸張一些,但我不知道該如何形容這種虛無):

而感知器的存在,就像是為計算機(jī)提供了一種優(yōu)先級識別的能力。

感知器中會有一套二進(jìn)制的運(yùn)算方式,以圖片中的各個“元素優(yōu)先級(權(quán)重)”搭配“是/否判斷”,來達(dá)成“識別感知”的目的。

比如,以上面的數(shù)字圖為基礎(chǔ),感知器會這樣幫助計算器識別圖片中有文字。

中間的圓圈就是感知器,而在這個過程中,“黑色”和“線條”都要經(jīng)過感知器的“是/否判斷”,并且還會對應(yīng)權(quán)重,比如“線條”的權(quán)重就應(yīng)該略高于“黑色”,因?yàn)閳D中還有非線條的“·”存在,如果單純以黑色為判斷基礎(chǔ),“·”也會被定義為“數(shù)字”。

這就是感知器的工作原理。

當(dāng)然,實(shí)際層面的判斷不會如我介紹的這么簡單,各種判斷條件及權(quán)重的交叉是很復(fù)雜的,如下圖,感知器會接力運(yùn)行計算,最終輸出結(jié)果。

這也是為什么會有人說,AI模型很考驗(yàn)“算力”,因?yàn)楦兄餍枰谒查g完成大量判斷運(yùn)算。

這里需要注意的是,感知器只有“單個條件”輸出的能力,也就是說,一個感知器最終只會輸出一個結(jié)果,如圖中的這種輸出多個結(jié)果的形式,是因?yàn)橄乱涣械亩鄠€感知器都會使用這個感知器輸出的同一個結(jié)果來進(jìn)行判斷。

2. S型神經(jīng)元

上文提到的感知器,很容易爆發(fā)出一個致命問題:其中細(xì)小的一些權(quán)重變化,就會對后續(xù)結(jié)果造成很大影響。那么我們該如何保證最終輸出的結(jié)果能滿足我們的要求呢?

修正偏差。

我們可以利用結(jié)果來反向修改權(quán)重,就像是工作中經(jīng)常會做的“復(fù)盤”,這會使神經(jīng)網(wǎng)絡(luò)表現(xiàn)得如我們所愿。

S 形神經(jīng)元(Sigmoid神經(jīng)元)就是這種可以自行復(fù)盤的人工神經(jīng)元,是對早期感知器模型的改進(jìn),表面看與感知器很類似,但經(jīng)過機(jī)器自行的復(fù)盤修正,其權(quán)重和偏差的微小變化僅會導(dǎo)致其輸出的微小變化,這也是一直所討論的機(jī)器學(xué)習(xí)的關(guān)鍵基礎(chǔ)——通過不斷修正偏差來不斷逼近有效結(jié)果。

這種修正能力的基礎(chǔ)來源于Sigmoid函數(shù),該函數(shù)的特點(diǎn)是連續(xù)且可微、非線性,具體解釋比較復(fù)雜,屬于數(shù)學(xué)概念,簡單了解一下即可。

連續(xù)且可微:“連續(xù)且可微”是描述函數(shù)性質(zhì)的兩個重要概念,在機(jī)器學(xué)習(xí)中,連續(xù)且可微的激活函數(shù)(如Sigmoid或Tanh)允許使用基于梯度的優(yōu)化算法來訓(xùn)練神經(jīng)網(wǎng)絡(luò)。

非線性:這個函數(shù)使得神經(jīng)網(wǎng)絡(luò)能夠?qū)W習(xí)和模擬非線性數(shù)據(jù)關(guān)系,顯著擴(kuò)展了網(wǎng)絡(luò)的功能和應(yīng)用范圍。它不遵循線性原則,即其輸出與輸入之間的關(guān)系不是簡單的、成比例的關(guān)系。更具體地說,如果一個函數(shù) ??(??)f(x) 對于其變量 ??x 的變化不是成倍增加或減少的,那么這個函數(shù)就被認(rèn)為是非線性的。

隨著深度學(xué)習(xí)技術(shù)的發(fā)展,現(xiàn)在已經(jīng)有了更多高級的激活函數(shù),如ReLU(Rectified Linear Unit),它們在許多現(xiàn)代深度學(xué)習(xí)架構(gòu)中更為常用,但S型神經(jīng)元依然在神經(jīng)網(wǎng)絡(luò)的歷史發(fā)展中占有重要地位,它激發(fā)了其他函數(shù)的誕生。

3. 補(bǔ)充信息:前饋神經(jīng)網(wǎng)絡(luò)和循環(huán)神經(jīng)網(wǎng)絡(luò)

前文我們所介紹的,一直都是單向循環(huán)的網(wǎng)絡(luò)結(jié)構(gòu),從輸入-分析-輸出的鏈路完成計算,這被定義為“前饋神經(jīng)網(wǎng)絡(luò)”(Feedforward Neural Networks,F(xiàn)FNNs)。

但人腦的結(jié)構(gòu)真的是這樣嗎?

實(shí)際上,目前更接近于人腦的神經(jīng)網(wǎng)絡(luò)是循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN),與傳統(tǒng)的前饋神經(jīng)網(wǎng)絡(luò)不同,循環(huán)神經(jīng)網(wǎng)絡(luò)會通過內(nèi)部狀態(tài)(或稱為細(xì)胞狀態(tài))來存儲先前輸入的相關(guān)信息,并且允許信息在網(wǎng)絡(luò)中循環(huán),這意味著網(wǎng)絡(luò)的當(dāng)前輸出不僅依賴于當(dāng)前的輸入,還可能依賴于之前的輸入。而且,神經(jīng)元不僅接收來自前一層的輸入,還可以接收來自同一層的神經(jīng)元的輸入,形成了復(fù)雜的循環(huán)連接。

循環(huán)神經(jīng)網(wǎng)絡(luò)目前的影響力不如前饋網(wǎng)絡(luò),前饋網(wǎng)絡(luò)在商業(yè)和工業(yè)應(yīng)用中的影響力更大,特別是在圖像和視頻處理領(lǐng)域。

但循環(huán)神經(jīng)網(wǎng)絡(luò)在需要處理序列數(shù)據(jù)和時間依賴性任務(wù)的研究和應(yīng)用中具有重要影響力。隨著深度學(xué)習(xí)技術(shù)的不斷發(fā)展,這兩種網(wǎng)絡(luò)模型都在不斷地被改進(jìn)和優(yōu)化,以適應(yīng)更多的應(yīng)用場景。

三、實(shí)戰(zhàn):利用神經(jīng)網(wǎng)絡(luò)分析該數(shù)字是5

還是以前文提到的數(shù)字5為例。

首先,我們可以對數(shù)字進(jìn)行識別,即黑色+線條的概念,將所有數(shù)字提取出來。

緊接著,先把數(shù)字與數(shù)字分隔開,再去分割數(shù)字本身。

最終我們得到的數(shù)字碎片,會有可判斷的屬性,也會有對應(yīng)的權(quán)重區(qū)分。

我們已經(jīng)圈定范圍為這些線條組成了一個數(shù)字,接下來我們需要判斷的,就是這個數(shù)字到底是幾,已知單個數(shù)字共有9個,也就是說會輸出9種結(jié)果,我們以結(jié)果反推,每個數(shù)字都有對應(yīng)特征,這些特征就是判斷的條件和權(quán)重基礎(chǔ),而每一個碎片都會被經(jīng)歷數(shù)輪的判斷,最終將這些碎片得出的結(jié)果再計算,得到結(jié)果,如圖,我使用了四層神經(jīng)網(wǎng)絡(luò)來判斷數(shù)字碎片的特征,最終導(dǎo)向識別結(jié)果,如果加上前面的識別分割,神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)會更密集:

輸出層包含9個神經(jīng)元。如果第五個神經(jīng)元有輸出概率≈1,就表明該神經(jīng)網(wǎng)絡(luò)認(rèn)為該數(shù)字是5。

當(dāng)然,雖然我是這么設(shè)計的,但這一切都只是一種啟發(fā)。沒有說明識別數(shù)字的神經(jīng)網(wǎng)絡(luò)必須按照我描述的方式運(yùn)行,也不一定是四層結(jié)構(gòu),這只是一種基于實(shí)例所做的思維方式的延伸。

四、訓(xùn)練神經(jīng)網(wǎng)絡(luò):梯度下降算法

基于前文,我們已經(jīng)基本了解了神經(jīng)網(wǎng)絡(luò)的概念和架構(gòu)邏輯。那么,神經(jīng)網(wǎng)絡(luò)如何才能更精準(zhǔn)地達(dá)成我們想要達(dá)成的目標(biāo)?我們?nèi)绾伪苊馍窠?jīng)網(wǎng)絡(luò)的最終計算結(jié)果不出現(xiàn)偏差?

答案就是不斷訓(xùn)練它。

在訓(xùn)練中測試,以最小化成本在測試中盡快找到權(quán)重和偏差并進(jìn)行修正,使結(jié)果無線趨近于正確,即使初始結(jié)果不佳,通過調(diào)整參數(shù),依然可以逐步提高神經(jīng)網(wǎng)絡(luò)的性能。

業(yè)內(nèi)會用“成本函數(shù)”(也稱為損失函數(shù)或目標(biāo)函數(shù))的概念來衡量網(wǎng)絡(luò)輸出與實(shí)際值之間的差異,梯度下降算法是一種強(qiáng)大的優(yōu)化工具,它在機(jī)器學(xué)習(xí)和深度學(xué)習(xí)中用于最小化成本函數(shù),從而找到模型參數(shù)的最佳值。

梯度下降不僅用于神經(jīng)網(wǎng)絡(luò),還用于線性回歸、支持向量機(jī)等多種機(jī)器學(xué)習(xí)算法,是許多高級優(yōu)化技術(shù)的基礎(chǔ),也是機(jī)器學(xué)習(xí)中的一個核心概念,理解并掌握它對于構(gòu)建和優(yōu)化預(yù)測模型至關(guān)重要。

這個概念比較復(fù)雜,所以我用一個比喻來解釋:想象你站在一座山的山頂,并想要到達(dá)山谷的最低點(diǎn)。由于你只能看到周圍的一小段距離,你通過觀察周圍地形的斜率(即梯度)來決定每一步的移動方向。你總是朝著斜率最陡峭的下降方向走,這樣就能逐漸走到山谷的最低點(diǎn)。

在這個比喻中,山的高度代表成本函數(shù)的值,而你的位置代表神經(jīng)網(wǎng)絡(luò)的參數(shù)(權(quán)重和偏差)。

成本函數(shù)越低,山越低,你到達(dá)山谷最低點(diǎn)的成本就越低,而梯度下降算法在這個過程中的作用,就是幫你加速度到達(dá)山谷最低點(diǎn),進(jìn)一步降低成本。

如何操作梯度下降:

  1. 初始化參數(shù):為模型的權(quán)重和偏差選擇初始值,通常這些值是隨機(jī)的。
  2. 定義損失函數(shù):選擇一個能夠量化模型預(yù)測與實(shí)際結(jié)果差異的損失函數(shù),如均方誤差(MSE,它計算了預(yù)測值與實(shí)際值之間差的平方的平均)。
  3. 計算梯度:計算損失函數(shù)相對于每個參數(shù)的梯度,即偏導(dǎo)數(shù),這指示了損失函數(shù)在參數(shù)空間中增加最快的方向。
  4. 更新參數(shù):根據(jù)梯度和預(yù)設(shè)的學(xué)習(xí)率,更新每個參數(shù)。更新的方向是梯度的相反方向,因?yàn)槲覀円獪p少損失。
  5. 迭代過程:重復(fù)步驟3和4,直到損失函數(shù)的值收斂到一個較小的值,或者達(dá)到預(yù)設(shè)的迭代次數(shù)。
  6. 學(xué)習(xí)率調(diào)整:學(xué)習(xí)率決定了每次更新參數(shù)的步長??赡苄枰鶕?jù)模型的學(xué)習(xí)情況調(diào)整學(xué)習(xí)率。
  7. 隨機(jī)梯度下降:在實(shí)際應(yīng)用中,為了提高效率,通常使用隨機(jī)梯度下降,即每次更新只使用一個小批量的訓(xùn)練數(shù)據(jù)來計算梯度。
  8. 監(jiān)控和調(diào)試:在訓(xùn)練過程中監(jiān)控?fù)p失函數(shù)的值,確保它在下降而不是增加。如果損失函數(shù)沒有下降,可能需要調(diào)整學(xué)習(xí)率或檢查模型是否有其他問題。

在很多情況下,簡單的學(xué)習(xí)算法+良好的訓(xùn)練數(shù)據(jù)>=復(fù)雜算法,所以機(jī)器訓(xùn)練是非常重要的。

五、總結(jié)

通過將復(fù)雜問題分解為多個簡單的子問題,我們就可以構(gòu)建一個神經(jīng)網(wǎng)絡(luò)。其中每一層網(wǎng)絡(luò)的回答都簡單具體,我們是通過多個層次的網(wǎng)絡(luò)疊加來解決復(fù)雜問題的。

而深度學(xué)習(xí)技術(shù)則是神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)真正飛躍的重點(diǎn),允許神經(jīng)網(wǎng)絡(luò)自動從訓(xùn)練數(shù)據(jù)中學(xué)習(xí)該如何調(diào)整權(quán)重和偏差,并進(jìn)行基于梯度下降算法進(jìn)行快速調(diào)整,是AI技術(shù)得以鋪開在各個領(lǐng)域的重要基礎(chǔ)。

專欄作家

瑞瑞女士,人人都是產(chǎn)品經(jīng)理專欄作家。關(guān)注人文、心理、傳播學(xué)領(lǐng)域,樂于思考技術(shù)發(fā)展過程中衍生的現(xiàn)代社會文化問題,擅長內(nèi)容運(yùn)營及產(chǎn)品設(shè)計。

題圖來自 Unsplash,基于 CC0 協(xié)議

該文觀點(diǎn)僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺僅提供信息存儲空間服務(wù)。

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 目前還沒評論,等你發(fā)揮!