牛頓與人工智能:人工智能、神經(jīng)網(wǎng)絡(luò)與自我意識(shí)的通俗科普(一)

關(guān)于人工智能的諸多事項(xiàng)往往并不像它所表現(xiàn)的那么簡(jiǎn)單,其中存在許多誤解,所以開(kāi)個(gè)科普,忽略掉一些不重要的細(xì)節(jié),力圖形象。用通俗的語(yǔ)言帶大家了解AI。
神經(jīng)網(wǎng)絡(luò)是什么
目前在人工智能上走的最遠(yuǎn)的是人工神經(jīng)網(wǎng)絡(luò)技術(shù),目前表現(xiàn)出較高水平智能的也都是神經(jīng)網(wǎng)絡(luò)
函數(shù)是一種對(duì)于關(guān)系的表達(dá),無(wú)論關(guān)系多復(fù)雜,我們都可以定義那么個(gè)函數(shù)滿(mǎn)足它們的關(guān)系。譬如我定義一個(gè)彩票函數(shù)Lottery(date),當(dāng)我們輸入日期,就能得到日期對(duì)應(yīng)當(dāng)天的頭獎(jiǎng)號(hào)碼。從定義的角度,這樣的函數(shù)是存在的,但是要求出這個(gè)函數(shù)基本上相當(dāng)于預(yù)測(cè)未來(lái)。
神經(jīng)網(wǎng)絡(luò)本質(zhì)上是一個(gè)有巨量參數(shù)的函數(shù),我們知道,改變一個(gè)函數(shù)的參數(shù),函數(shù)的形狀會(huì)發(fā)生改變。當(dāng)我們有大量輸入,和對(duì)應(yīng)的輸出(術(shù)語(yǔ)叫標(biāo)簽),就可以用算法自動(dòng)調(diào)整參數(shù)來(lái)擬合我們所需要的關(guān)系。
如何實(shí)現(xiàn)
這個(gè)算法叫梯度下降法,雖然這個(gè)名稱(chēng)很抽象,但是要理解起來(lái)很容易。在山頂放一個(gè)球,它會(huì)在重力作用下在最終穩(wěn)定在谷底,這基本上就是梯度下降的過(guò)程,也是神經(jīng)網(wǎng)絡(luò)的核心技術(shù)。
來(lái)回顧一下我們的目標(biāo):通過(guò)調(diào)整參數(shù)讓神經(jīng)網(wǎng)絡(luò)這個(gè)非常復(fù)雜的函數(shù)變成我們所需要的彩票函數(shù)。
那么該如何調(diào)整參數(shù)?神經(jīng)網(wǎng)絡(luò)本身是一個(gè)函數(shù),雖然它現(xiàn)在跟彩票函數(shù)沒(méi)有什么關(guān)系,但是我們依然可以把代入一組輸入得到一組輸出。這組輸出就是神經(jīng)網(wǎng)絡(luò)的預(yù)測(cè)值,然后通過(guò)數(shù)學(xué)方法計(jì)算一下預(yù)測(cè)值和正確結(jié)果之間的誤差(計(jì)算這個(gè)誤差的式子被稱(chēng)為損失函數(shù))?,F(xiàn)在我們把神經(jīng)網(wǎng)絡(luò)的巨量參數(shù)看成自變量,損失函數(shù)的值看做因變量。這是一個(gè)幾萬(wàn)維甚至幾百萬(wàn)維的函數(shù),但是我們不需要想象那么多,把所有的自變量就看做一個(gè)面(術(shù)語(yǔ)叫超平面),損失函數(shù)的值就是縱軸,這樣就形成了一個(gè)曲面,可以在三維坐標(biāo)系里表達(dá)。如果把這個(gè)函數(shù)畫(huà)出來(lái),大概會(huì)是無(wú)數(shù)高高低低的山丘?;叵胍幌露x,高的地方代表預(yù)測(cè)值與真實(shí)值相差甚遠(yuǎn),低的地方代表它們較為接近,如果達(dá)到了0,那可以看做我們找到了這個(gè)函數(shù)。
所以我們尋找彩票函數(shù)的問(wèn)題就變成了尋找損失函數(shù)的最小值。我們可以從曲面上隨機(jī)選出來(lái)一個(gè)點(diǎn),在這一點(diǎn)放一個(gè)球,它最終會(huì)掉在某個(gè)坑底,這就是訓(xùn)練神經(jīng)網(wǎng)絡(luò)的過(guò)程。ChatGPT、NovelAI都用到了類(lèi)似的方法。
當(dāng)小球穩(wěn)定在谷底之后,對(duì)神經(jīng)網(wǎng)絡(luò)的訓(xùn)練就可以結(jié)束了。這時(shí)神經(jīng)網(wǎng)絡(luò)已經(jīng)可以看做對(duì)我們所構(gòu)思的理想函數(shù)的近似。使用神經(jīng)網(wǎng)絡(luò)的過(guò)程叫“神經(jīng)網(wǎng)絡(luò)的推理”,其實(shí)就是代入輸入得到神經(jīng)網(wǎng)絡(luò)的預(yù)測(cè)輸出。