博客專欄

EEPW首頁 > 博客 > 萬字長文解釋 ChatGPT 在做什么,以及為什么它能發(fā)揮作用?(3)

萬字長文解釋 ChatGPT 在做什么,以及為什么它能發(fā)揮作用?(3)

發(fā)布人:AI科技大本營 時間:2023-02-21 來源:工程師 發(fā)布文章

圖片

機(jī)器學(xué)習(xí)和神經(jīng)網(wǎng)絡(luò)的訓(xùn)練


到目前為止,我們一直在談?wù)撃切?“已經(jīng)知道” 如何完成特定任務(wù)的神經(jīng)網(wǎng)絡(luò)。但是,神經(jīng)網(wǎng)絡(luò)之所以如此有用(估計也是在大腦中),是因為它們不僅在原則上可以完成各種任務(wù),而且可以逐步 “根據(jù)實例訓(xùn)練” 來完成這些任務(wù)。

當(dāng)我們制作一個區(qū)分貓和狗的神經(jīng)網(wǎng)絡(luò)時,我們實際上不需要寫一個程序來(比如說)明確地找到胡須;相反,我們只需要展示大量關(guān)于什么是貓和什么是狗的例子,然后讓網(wǎng)絡(luò)從這些例子中 “機(jī)器學(xué)習(xí)” 如何去區(qū)分它們。

重點是,訓(xùn)練有素的網(wǎng)絡(luò)從它所展示的特定例子中 “概括” 出來。正如我們在上面看到的,這并不是簡單地讓網(wǎng)絡(luò)識別它所看到的貓咪圖像的特定像素模式;而是讓神經(jīng)網(wǎng)絡(luò)以某種方式設(shè)法在我們認(rèn)為是某種 “一般貓性” 的基礎(chǔ)上區(qū)分圖像。

那么,神經(jīng)網(wǎng)絡(luò)的訓(xùn)練究竟是如何進(jìn)行的呢?從本質(zhì)上講,我們一直在努力尋找能夠使神經(jīng)網(wǎng)絡(luò)成功重現(xiàn)我們所給的例子的權(quán)重。然后,我們依靠神經(jīng)網(wǎng)絡(luò)以 “合理” 的方式在這些例子之間進(jìn)行 “插值”(或 “概括”)。

讓我們看看一個比上面的最近點的問題更簡單的問題。讓我們只嘗試讓一個神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)函數(shù):

圖片

對于這個任務(wù),我們需要一個只有一個輸入和一個輸出的網(wǎng)絡(luò),比如:

圖片

但我們應(yīng)該使用什么權(quán)重等?在每一組可能的權(quán)重下,神經(jīng)網(wǎng)絡(luò)都會計算出一些函數(shù)。例如,這里是它用幾組隨機(jī)選擇的權(quán)重所做的事情:

圖片

是的,我們可以清楚地看到,在這些情況下,它甚至都沒有接近再現(xiàn)我們想要的函數(shù)。那么,我們?nèi)绾握业侥軌蛑噩F(xiàn)該函數(shù)的權(quán)重呢?

基本的想法是提供大量的 “輸入→輸出” 的例子來 “學(xué)習(xí)” —— 然后嘗試找到能重現(xiàn)這些例子的權(quán)重。下面是用逐漸增多的例子來做的結(jié)果:

圖片

這個 “訓(xùn)練” 的每個階段,網(wǎng)絡(luò)中的權(quán)重都被逐步調(diào)整 —— 我們看到,最終我們得到了一個能成功重現(xiàn)我們想要的函數(shù)的網(wǎng)絡(luò)。那么,我們是如何調(diào)整權(quán)重的呢?基本的想法是在每個階段看看我們離得到我們想要的函數(shù) “有多遠(yuǎn)”,然后以這樣的方式更新權(quán)重,使之更接近。

為了找出 “我們有多遠(yuǎn)”,我們計算通常被稱為 “損失函數(shù)”(或有時稱為 “成本函數(shù)”)的東西。這里我們使用的是一個簡單的(L2)損失函數(shù),它只是我們得到的值與真實值之間的差異的平方之和。我們看到的是,隨著我們訓(xùn)練過程的進(jìn)展,損失函數(shù)逐漸減少(遵循一定的 “學(xué)習(xí)曲線”,不同的任務(wù)是不同的) —— 直到我們達(dá)到一個點,網(wǎng)絡(luò)(至少是一個很好的近似值)成功再現(xiàn)了我們想要的函數(shù):

圖片

好了,最后要解釋的重要部分是如何調(diào)整權(quán)重以減少損失函數(shù)。正如我們所說,損失函數(shù)給我們提供了我們得到的值與真實值之間的 “距離”。但是 “我們得到的值” 在每個階段都是由當(dāng)前版本的神經(jīng)網(wǎng)絡(luò)和其中的權(quán)重決定的。但現(xiàn)在想象一下,這些權(quán)重是變量 —— 比如說 wi。我們想找出如何調(diào)整這些變量的值,以使取決于這些變量的損失最小。

例如,想象一下(對實踐中使用的典型神經(jīng)網(wǎng)絡(luò)進(jìn)行了不可思議的簡化),我們只有兩個權(quán)重 w1 和 w2。那么我們可能有一個損失,作為 w1 和 w2 的函數(shù),看起來像這樣:

圖片

數(shù)值分析提供了各種技術(shù)來尋找這樣的情況下的最小值。但一個典型的方法是,從之前的 w1、w2 開始,逐步遵循最陡峭的下降路徑:

圖片

就像水從山上流下來一樣,所能保證的是這個過程最終會在地表的某個局部最小值(“一個山湖”);它很可能達(dá)不到最終的全球最小值。

在 “重量景觀” 上找到最陡峭的下降路徑并不明顯,這是不可行的。但是,微積分可以幫助我們。正如我們上面提到的,我們總是可以把神經(jīng)網(wǎng)看作是在計算一個數(shù)學(xué)函數(shù) —— 它取決于它的輸入和權(quán)重。但現(xiàn)在考慮對這些權(quán)重進(jìn)行微分。事實證明,微積分的連鎖法則實際上可以讓我們 “解開” 神經(jīng)網(wǎng)中連續(xù)幾層所做的運(yùn)算。其結(jié)果是,我們可以 —— 至少在某些局部近似中 —— “反轉(zhuǎn)” 神經(jīng)網(wǎng)的操作,并逐步找到使與輸出相關(guān)的損失最小的權(quán)重。

上圖顯示了在只有 2 個權(quán)重的不現(xiàn)實的簡單情況下,我們可能需要做的最小化工作。但事實證明,即使有更多的權(quán)重(ChatGPT 使用了 1750 億個),仍有可能做到最小化,至少在某種程度上是近似的。事實上,2011 年左右發(fā)生的 “深度學(xué)習(xí)” 的重大突破與以下發(fā)現(xiàn)有關(guān):從某種意義上說,當(dāng)有很多權(quán)重參與時,做(至少是近似)最小化比有相當(dāng)少的權(quán)重更容易。

換句話說 —— 有點反直覺 —— 用神經(jīng)網(wǎng)絡(luò)解決更復(fù)雜的問題比簡單的問題更容易。其大致原因似乎是,當(dāng)一個人有很多 “權(quán)重變量” 時,他有一個高維空間,有 “很多不同的方向”,可以把他引向最小值 —— 而如果變量較少,則更容易陷入一個局部最小值(“山湖”),沒有 “方向可以出去”。

值得指出的是,在典型的情況下,有許多不同的權(quán)重集合,它們都能使神經(jīng)網(wǎng)絡(luò)具有幾乎相同的性能。而在實際的神經(jīng)網(wǎng)絡(luò)訓(xùn)練中,通常會有很多隨機(jī)的選擇,導(dǎo)致 “不同但等同的解決方案”,就像這些:

圖片

但每一個這樣的 “不同的解決方案” 至少會有輕微的不同行為。如果我們要求,比如說,在我們提供訓(xùn)練實例的區(qū)域之外進(jìn)行 “外推”,我們可以得到極大的不同結(jié)果:

圖片

但是哪一個是 “正確的” 呢?真的沒有辦法說。它們都 “與觀察到的數(shù)據(jù)一致”。但它們都對應(yīng)著不同的 “先天” 方式來 “思考” 如何在 “盒子外” 做什么。對我們?nèi)祟悂碚f,有些可能比其他的看起來 “更合理”。


圖片

神經(jīng)網(wǎng)絡(luò)訓(xùn)練的實踐與理論


特別是在過去的十年里,在訓(xùn)練神經(jīng)網(wǎng)絡(luò)的藝術(shù)方面取得了許多進(jìn)展。而且,是的,這基本上是一門藝術(shù)。有時,特別是在回顧中,人們至少可以看到正在做的事情有一絲 “科學(xué)解釋” 的影子。但大多數(shù)情況下,事情都是通過試驗和錯誤發(fā)現(xiàn)的,增加了一些想法和技巧,逐步建立了一個關(guān)于如何使用神經(jīng)網(wǎng)絡(luò)的重要傳說。

有幾個關(guān)鍵部分。首先,對于一個特定的任務(wù),應(yīng)該使用什么架構(gòu)的神經(jīng)網(wǎng)絡(luò)。然后,還有一個關(guān)鍵問題,即如何獲得訓(xùn)練神經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)。而且,人們越來越多地不是在處理從頭開始訓(xùn)練一個網(wǎng)絡(luò)的問題:相反,一個新的網(wǎng)絡(luò)可以直接納入另一個已經(jīng)訓(xùn)練好的網(wǎng)絡(luò),或者至少可以使用該網(wǎng)絡(luò)為自己產(chǎn)生更多的訓(xùn)練實例。

人們可能認(rèn)為,對于每一種特定的任務(wù),人們都需要一個不同的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。但人們發(fā)現(xiàn),即使是對于明顯不同的任務(wù),相同的架構(gòu)似乎也能發(fā)揮作用。在某種程度上,這讓人想起了通用計算的想法(以及我的計算等價原則),但是,正如我將在后面討論的那樣,我認(rèn)為這更多地反映了這樣一個事實,即我們通常試圖讓神經(jīng)網(wǎng)絡(luò)做的任務(wù)是 “類似人類” 的,而神經(jīng)網(wǎng)絡(luò)可以捕獲相當(dāng)普遍的 “類似人類的過程”。

在早期的神經(jīng)網(wǎng)絡(luò)中,人們傾向于認(rèn)為應(yīng)該 “讓神經(jīng)網(wǎng)絡(luò)盡可能地少做”。例如,在將語音轉(zhuǎn)換為文本時,人們認(rèn)為應(yīng)該首先分析語音的音頻,將其分解為音素,等等。但人們發(fā)現(xiàn),至少對于 “類似人類的任務(wù)” 來說,通常更好的做法是嘗試在 “端到端問題” 上訓(xùn)練神經(jīng)網(wǎng)絡(luò),讓它自己 “發(fā)現(xiàn)” 必要的中間特征、編碼等。

還有一個想法是,我們應(yīng)該在神經(jīng)網(wǎng)絡(luò)中引入復(fù)雜的單獨組件,讓它實際上 “明確地實現(xiàn)特定的算法想法”。但是,這又一次被證明是不值得的;相反,最好只是處理非常簡單的組件,讓它們 “自我組織”(盡管通常是以我們無法理解的方式)來實現(xiàn)(大概)那些算法想法的等價物。

這并不是說沒有與神經(jīng)網(wǎng)絡(luò)相關(guān)的 “結(jié)構(gòu)化思想”。因此,例如,具有局部連接的二維神經(jīng)元陣列似乎至少在處理圖像的早期階段非常有用。而擁有專注于 “回顧序列” 的連接模式似乎很有用 —— 我們將在后面看到 —— 在處理人類語言等事物時,例如在 ChatGPT 中。

但神經(jīng)網(wǎng)絡(luò)的一個重要特點是,像一般的計算機(jī)一樣,它們最終只是在處理數(shù)據(jù)。而目前的神經(jīng)網(wǎng)絡(luò) —— 目前的神經(jīng)網(wǎng)絡(luò)訓(xùn)練方法 —— 是專門處理數(shù)字陣列的。但在處理過程中,這些數(shù)組可以被完全重新排列和重塑。舉個例子,我們上面用來識別數(shù)字的網(wǎng)絡(luò)從一個二維的 “圖像” 陣列開始,迅速 “增厚” 到許多通道,但隨后 “濃縮” 成一個一維陣列,最終將包含代表不同可能輸出數(shù)字的元素:

圖片

但是,好吧,如何判斷一個特定的任務(wù)需要多大的神經(jīng)網(wǎng)?這是一門藝術(shù)。在某種程度上,關(guān)鍵是要知道 “這個任務(wù)有多難”。但對于類似人類的任務(wù)來說,這通常是很難估計的。是的,可能有一種系統(tǒng)的方法可以通過計算機(jī)非常 “機(jī)械” 地完成任務(wù)。但很難知道是否存在人們認(rèn)為的技巧或捷徑,使人們至少在 “類似人類的水平” 上更容易地完成這項任務(wù)。可能需要列舉一個巨大的游戲樹來 “機(jī)械地” 玩某個游戲;但可能有一個更容易(“啟發(fā)式”)的方法來實現(xiàn) “人類水平的游戲”。

當(dāng)人們在處理微小的神經(jīng)網(wǎng)絡(luò)和簡單的任務(wù)時,有時可以明確地看到 “從這里不能到達(dá)那里”。例如,這是人們在上一節(jié)的任務(wù)中用幾個小的神經(jīng)網(wǎng)絡(luò)似乎能做到的最好的結(jié)果:

圖片

而我們的情況是,如果網(wǎng)太小,它就不能再現(xiàn)我們想要的函數(shù)。但如果超過一定的規(guī)模,它就沒有問題了 —— 至少如果一個人用足夠長的時間和足夠多的例子訓(xùn)練它。順便說一下,這些圖片說明了一個神經(jīng)網(wǎng)絡(luò)的傳說:如果中間有一個 “擠壓”,迫使所有東西都通過一個較小的中間神經(jīng)元數(shù)量,那么我們往往可以用一個較小的網(wǎng)絡(luò)。(值得一提的是,“無中間層” —— 或所謂的 “感知器” —— 網(wǎng)絡(luò)只能學(xué)習(xí)本質(zhì)上的線性函數(shù) —— 但只要有一個中間層,原則上就可以任意很好地近似任何函數(shù),至少如果有足夠的神經(jīng)元,盡管為了使其可行地訓(xùn)練,通常需要某種正則化或規(guī)范化)。

好吧,讓我們假設(shè)我們已經(jīng)確定了某種神經(jīng)網(wǎng)絡(luò)架構(gòu)。現(xiàn)在有一個問題,就是如何獲得數(shù)據(jù)來訓(xùn)練網(wǎng)絡(luò)。圍繞神經(jīng)網(wǎng)絡(luò)和一般機(jī)器學(xué)習(xí)的許多實際挑戰(zhàn)都集中在獲取或準(zhǔn)備必要的訓(xùn)練數(shù)據(jù)上。在許多情況下(“監(jiān)督學(xué)習(xí)”),人們希望獲得明確的輸入和期望的輸出的例子。因此,舉例來說,人們可能希望通過圖像中的內(nèi)容或一些其他屬性來標(biāo)記圖像。也許我們必須明確地去做 —— 通常是費(fèi)盡心機(jī)地去做標(biāo)記。但是很多時候,我們可以借助已經(jīng)完成的工作,或者將其作為某種代理。因此,舉例來說,我們可以使用網(wǎng)絡(luò)上已經(jīng)提供的圖片的 alt 標(biāo)簽?;蛘?,在另一個領(lǐng)域,我們可以使用為視頻創(chuàng)建的封閉式字幕?;蛘咴谡Z言翻譯訓(xùn)練中,可以使用不同語言的網(wǎng)頁或其他文件的平行版本。

你需要向神經(jīng)網(wǎng)絡(luò)展示多少數(shù)據(jù)來訓(xùn)練它完成一項特定任務(wù)?同樣,這很難從第一原理上估計。當(dāng)然,通過使用 “轉(zhuǎn)移學(xué)習(xí)” 來 “轉(zhuǎn)移” 諸如已經(jīng)在另一個網(wǎng)絡(luò)中學(xué)習(xí)過的重要特征列表的東西,可以大大降低要求。但一般來說,神經(jīng)網(wǎng)絡(luò)需要 “看到大量的例子” 才能訓(xùn)練好。而至少對于某些任務(wù)來說,神經(jīng)網(wǎng)絡(luò)的一個重要傳說是,這些例子可能是非常重復(fù)的。事實上,向神經(jīng)網(wǎng)絡(luò)展示所有的例子是一個標(biāo)準(zhǔn)的策略,一遍又一遍。在每個 “訓(xùn)練回合”(或 “epochs”)中,神經(jīng)網(wǎng)絡(luò)至少會處于一個稍微不同的狀態(tài),而以某種方式 “提醒” 它某個特定的例子對于讓它 “記住那個例子” 是很有用的。(是的,也許這類似于人類記憶中的重復(fù)的有用性)。

但往往只是反復(fù)重復(fù)同一個例子是不夠的。還需要向神經(jīng)網(wǎng)絡(luò)展示這個例子的變化。而神經(jīng)網(wǎng)絡(luò)理論的一個特點是,這些 “數(shù)據(jù)增強(qiáng)” 的變化不一定要復(fù)雜才有用。只要用基本的圖像處理方法稍微修改一下圖像,就可以使它們在神經(jīng)網(wǎng)絡(luò)訓(xùn)練中基本上 “像新的一樣好”。同樣,當(dāng)人們沒有實際的視頻等來訓(xùn)練自動駕駛汽車時,人們可以繼續(xù)從模擬的視頻游戲環(huán)境中獲得數(shù)據(jù),而不需要實際的真實世界場景的所有細(xì)節(jié)。

像 ChatGPT 這樣的東西如何呢?嗯,它有一個很好的特點,那就是它可以進(jìn)行 “無監(jiān)督學(xué)習(xí)”,這使得它更容易得到用于訓(xùn)練的例子?;仡櫼幌?,ChatGPT 的基本任務(wù)是找出如何繼續(xù)它所給的一段文字。因此,為了獲得 “訓(xùn)練實例”,我們所要做的就是獲得一段文本,并將其結(jié)尾遮蓋起來,然后將其作為 “訓(xùn)練的輸入” —— “輸出” 是完整的、未被遮蓋的文本。我們稍后會詳細(xì)討論這個問題,但主要的一點是,與學(xué)習(xí)圖片中的內(nèi)容不同,不需要 “明確的標(biāo)簽”;ChatGPT 實際上可以直接從它所得到的任何文本例子中學(xué)習(xí)。

好吧,那么神經(jīng)網(wǎng)絡(luò)的實際學(xué)習(xí)過程是怎樣的呢?歸根結(jié)底,這都是為了確定什么權(quán)重能夠最好地捕捉所給的訓(xùn)練實例。有各種詳細(xì)的選擇和 “超參數(shù)設(shè)置”(之所以被稱為超參數(shù),是因為可以把權(quán)重看作是 “參數(shù)”),可以用來調(diào)整如何完成這一過程。有不同的損失函數(shù)選擇(平方之和、絕對值之和,等等)。有不同的方法來進(jìn)行損失最小化(每一步要在權(quán)重空間中移動多遠(yuǎn),等等)。然后還有一些問題,比如要展示多大的 “一批” 例子來獲得每一個試圖最小化的損失的連續(xù)估計。而且,是的,人們可以應(yīng)用機(jī)器學(xué)習(xí)(例如,我們在 Wolfram 語言中所做的)來實現(xiàn)機(jī)器學(xué)習(xí)的自動化 —— 自動設(shè)置超參數(shù)等東西。

但最終,整個訓(xùn)練過程的特點是看到損失是如何逐漸減少的(如這個 Wolfram Language 的小型訓(xùn)練的進(jìn)度監(jiān)視器):

圖片

而人們通??吹降氖?,損失在一段時間內(nèi)減少,但最終在某個恒定值上趨于平緩。如果這個值足夠小,那么可以認(rèn)為訓(xùn)練是成功的;否則,這可能是一個應(yīng)該嘗試改變網(wǎng)絡(luò)結(jié)構(gòu)的信號。

能否告訴我們 “學(xué)習(xí)曲線” 要花多長時間才能變平?就像許多其他事情一樣,似乎有近似的冪律縮放關(guān)系,這取決于神經(jīng)網(wǎng)絡(luò)的大小和使用的數(shù)據(jù)量。但一般的結(jié)論是,訓(xùn)練一個神經(jīng)網(wǎng)絡(luò)是很難的,需要大量的計算努力。作為一個實際問題,這些努力的絕大部分都花在了對數(shù)字陣列的操作上,而這正是 GPU 所擅長的 —— 這就是為什么神經(jīng)網(wǎng)絡(luò)訓(xùn)練通常受限于 GPU 的可用性。

在未來,是否會有從根本上更好的方法來訓(xùn)練神經(jīng)網(wǎng)絡(luò),或者一般地做神經(jīng)網(wǎng)絡(luò)的工作?我認(rèn)為,幾乎可以肯定。神經(jīng)網(wǎng)絡(luò)的基本理念是用大量簡單(本質(zhì)上相同)的組件創(chuàng)建一個靈活的 “計算結(jié)構(gòu)”,并讓這個 “結(jié)構(gòu)” 能夠被逐步修改,以便從實例中學(xué)習(xí)。在目前的神經(jīng)網(wǎng)絡(luò)中,人們基本上是使用微積分的思想 —— 應(yīng)用于實數(shù) —— 來做這種增量修改。但越來越清楚的是,擁有高精度的數(shù)字并不重要;即使用目前的方法,8 位或更少的數(shù)字可能也足夠了。

像蜂窩自動機(jī)這樣的計算系統(tǒng),基本上是在許多單獨的比特上并行操作的,如何做這種增量修改從來都不清楚,但沒有理由認(rèn)為它不可能。事實上,就像 “2012 年深度學(xué)習(xí)的突破” 一樣,這種增量修改在更復(fù)雜的情況下可能比簡單的情況下更容易。

神經(jīng)網(wǎng)絡(luò) —— 也許有點像大腦 —— 被設(shè)定為擁有一個基本固定的神經(jīng)元網(wǎng)絡(luò),被修改的是它們之間連接的強(qiáng)度(“重量”)。(也許至少在年輕的大腦中,大量的完全新的連接也可以增長。) 但是,雖然這對生物學(xué)來說可能是一個方便的設(shè)置,但并不清楚它是否是實現(xiàn)我們所需函數(shù)的最佳方式。而涉及漸進(jìn)式網(wǎng)絡(luò)重寫的東西(也許讓人想起我們的物理項目)最終可能會更好。

但即使在現(xiàn)有的神經(jīng)網(wǎng)絡(luò)框架內(nèi),目前也有一個關(guān)鍵的限制:現(xiàn)在的神經(jīng)網(wǎng)絡(luò)訓(xùn)練從根本上說是連續(xù)的,每一批例子的效果都被傳播回來以更新權(quán)重。事實上,就目前的計算機(jī)硬件而言 —— 即使考慮到 GPU —— 在訓(xùn)練期間,神經(jīng)網(wǎng)絡(luò)的大部分時間都是 “閑置” 的,每次只有一個部分被更新。從某種意義上說,這是因為我們目前的計算機(jī)往往有獨立于 CPU(或 GPU)的內(nèi)存。但在大腦中,這大概是不同的 —— 每一個 “記憶元素”(即神經(jīng)元)也是一個潛在的活躍的計算元素。如果我們能夠以這種方式設(shè)置我們未來的計算機(jī)硬件,就有可能更有效地進(jìn)行訓(xùn)練。

“當(dāng)然,一個足夠大的網(wǎng)絡(luò)可以做任何事情!”

像 ChatGPT 這樣的能力似乎令人印象深刻,人們可能會想象,如果人們能夠 “繼續(xù)下去”,訓(xùn)練越來越大的神經(jīng)網(wǎng)絡(luò),那么它們最終將能夠 “做任何事情”。如果人們關(guān)注的是那些容易被人類直接思考的事物,那么很有可能是這樣的。但是,過去幾百年科學(xué)的教訓(xùn)是,有些東西可以通過形式化的過程來計算出來,但并不容易被人類的直接思維所獲得。

非瑣碎的數(shù)學(xué)就是一個大例子。但一般的情況其實是計算。而最終的問題是計算的不可還原性現(xiàn)象。有一些計算,人們可能認(rèn)為需要很多步驟才能完成,但事實上可以 “簡化” 為相當(dāng)直接的東西。但計算的不可簡化性的發(fā)現(xiàn)意味著這并不總是有效的。相反,有些過程 —— 可能就像下面這個過程 —— 要弄清楚發(fā)生了什么,必然需要對每個計算步驟進(jìn)行追蹤:

圖片

我們通常用大腦做的那些事情,大概是專門為避免計算的不可還原性而選擇的。在一個人的大腦中做數(shù)學(xué)需要特別的努力。而且,在實踐中,僅僅在一個人的大腦中 “思考” 任何非微觀程序的操作步驟,在很大程度上是不可能的。

當(dāng)然,為此我們有計算機(jī)。有了計算機(jī),我們可以很容易地做很長的、計算上不可簡化的事情。而關(guān)鍵的一點是,這些事情一般來說沒有捷徑。

是的,我們可以記住很多關(guān)于在某個特定計算系統(tǒng)中發(fā)生的具體例子。也許我們甚至可以看到一些(“計算上可還原的”)模式,使我們可以做一點概括。但問題是,計算上的不可還原性意味著我們永遠(yuǎn)無法保證意外不會發(fā)生 —— 只有通過明確地進(jìn)行計算,你才能知道在任何特定情況下實際發(fā)生了什么。

最后,在可學(xué)習(xí)性和計算的不可重復(fù)性之間存在著一種基本的緊張關(guān)系。學(xué)習(xí)實際上是通過利用規(guī)則性來壓縮數(shù)據(jù)。但計算上的不可復(fù)制性意味著最終對可能存在的規(guī)律性有一個限制。

作為一個實際問題,我們可以想象將一些小的計算設(shè)備 —— 如蜂窩自動機(jī)或圖靈機(jī) —— 構(gòu)建成像神經(jīng)網(wǎng)絡(luò)這樣的可訓(xùn)練系統(tǒng)。而且,這種設(shè)備確實可以作為神經(jīng)網(wǎng)的好 “工具”,就像 Wolfram|Alpha 可以作為 ChatGPT 的好工具。但計算的不可簡化性意味著我們不能指望 “進(jìn)入” 這些設(shè)備并讓它們學(xué)習(xí)。

或者換句話說,在能力和可訓(xùn)練性之間有一個最終的權(quán)衡:你越想讓一個系統(tǒng) “真正利用” 它的計算能力,它就越會顯示出計算的不可復(fù)制性,它的可訓(xùn)練性就越低。而它越是從根本上可訓(xùn)練,它就越不能做復(fù)雜的計算。(對于目前的 ChatGPT 來說,情況實際上要極端得多,因為用于生成每個輸出符號的神經(jīng)網(wǎng)絡(luò)是一個純粹的 “前饋” 網(wǎng)絡(luò),沒有循環(huán),因此沒有能力做任何具有非復(fù)雜 “控制流” 的計算)。

當(dāng)然,人們可能會問,能夠做不可還原的計算是否真的很重要。事實上,在人類歷史的大部分時間里,這并不特別重要。但我們的現(xiàn)代技術(shù)世界是建立在至少使用數(shù)學(xué)計算的工程之上的,而且越來越多地使用更普遍的計算。如果我們看一下自然界,它充滿了不可簡化的計算 —— 我們正在慢慢理解如何模仿并用于我們的技術(shù)目的。

是的,一個神經(jīng)網(wǎng)絡(luò)當(dāng)然可以注意到自然世界中的各種規(guī)律性,而我們也可能很容易通過 “無助的人類思維” 注意到這些規(guī)律性。但是,如果我們想要解決屬于數(shù)學(xué)或計算科學(xué)范疇的事情,神經(jīng)網(wǎng)絡(luò)是無法做到的 —— 除非它有效地 “作為工具” 使用一個 “普通” 的計算系統(tǒng)。

但是,這一切都有一些潛在的混淆之處。在過去,有很多任務(wù) —— 包括寫文章 —— 我們認(rèn)為對計算機(jī)來說 “從根本上說太難了”。而現(xiàn)在我們看到這些任務(wù)是由 ChatGPT 等完成的,我們傾向于突然認(rèn)為計算機(jī)一定是變得更加強(qiáng)大了,特別是超越了它們已經(jīng)基本能夠做到的事情(比如逐步計算蜂窩自動機(jī)等計算系統(tǒng)的行為)。

但這并不是正確的結(jié)論。計算上不可還原的過程仍然是計算上不可還原的,而且對計算機(jī)來說仍然是根本性的困難 —— 即使計算機(jī)可以輕易地計算它們的單個步驟。相反,我們應(yīng)該得出的結(jié)論是,我們?nèi)祟惪梢宰龅模覀儾徽J(rèn)為計算機(jī)可以做的任務(wù),比如寫文章,實際上在某種意義上比我們想象的更容易計算。

換句話說,神經(jīng)網(wǎng)絡(luò)之所以能夠成功地寫出一篇文章,是因為寫一篇文章被證明是一個比我們想象的 “計算上更淺” 的問題。從某種意義上說,這使我們更接近于 “擁有一種理論”,即我們?nèi)祟愂侨绾巫龅较駥懳恼逻@樣的事情的,或在一般情況下處理語言。

如果你有一個足夠大的神經(jīng)網(wǎng)絡(luò),那么,是的,你可能能夠做任何人類能夠輕易做到的事情。但是,你不會捕捉到自然界一般能做的事情 —— 或者我們從自然界塑造的工具能做的事情。而正是這些工具的使用 —— 無論是實用的還是概念性的 —— 使得我們在近幾個世紀(jì)里能夠超越 “純粹的無助的人類思維” 所能達(dá)到的界限,并為人類的目的捕捉到物理和計算宇宙中的更多東西。


*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。



關(guān)鍵詞: AI

相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉