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

0 評(píng)論 1379 瀏覽 5 收藏 18 分鐘

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1. 感知器

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

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

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

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

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

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

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

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

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

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

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

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

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

修正偏差。

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

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

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

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

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

隨著深度學(xué)習(xí)技術(shù)的發(fā)展,現(xiàn)在已經(jīng)有了更多高級(jí)的激活函數(shù),如ReLU(Rectified Linear Unit),它們?cè)谠S多現(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ì)算,這被定義為“前饋神經(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ò)會(huì)通過內(nèi)部狀態(tài)(或稱為細(xì)胞狀態(tài))來存儲(chǔ)先前輸入的相關(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ù)和時(shí)間依賴性任務(wù)的研究和應(yīng)用中具有重要影響力。隨著深度學(xué)習(xí)技術(shù)的不斷發(fā)展,這兩種網(wǎng)絡(luò)模型都在不斷地被改進(jìn)和優(yōu)化,以適應(yīng)更多的應(yīng)用場(chǎng)景。

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

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

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

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

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

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

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

當(dāng)然,雖然我是這么設(shè)計(jì)的,但這一切都只是一種啟發(fā)。沒有說明識(shí)別數(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ò)的最終計(jì)算結(jié)果不出現(xiàn)偏差?

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

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

業(yè)內(nèi)會(huì)用“成本函數(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í)算法,是許多高級(jí)優(yōu)化技術(shù)的基礎(chǔ),也是機(jī)器學(xué)習(xí)中的一個(gè)核心概念,理解并掌握它對(duì)于構(gòu)建和優(yōu)化預(yù)測(cè)模型至關(guān)重要。

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

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

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

如何操作梯度下降:

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

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

五、總結(jié)

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

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

專欄作家

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

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

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

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