關(guān)于神經(jīng)網(wǎng)絡(luò)的一些思考與感受 原創(chuàng)
“ 神經(jīng)網(wǎng)絡(luò)模型并不是通用模型,不同的問題需要設(shè)計(jì)不同的神經(jīng)網(wǎng)絡(luò)模型,千萬不要想著一個(gè)模型打天下 ”
神經(jīng)網(wǎng)絡(luò)作為當(dāng)前人工智能領(lǐng)域最炙手可熱的技術(shù),其技術(shù)原理也相對(duì)比較復(fù)雜;而在學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)的過程中也面臨著很多問題和感受,因此這里就簡(jiǎn)單記錄一下。
關(guān)于神經(jīng)網(wǎng)絡(luò)
從本質(zhì)上來說,所謂的神經(jīng)網(wǎng)絡(luò)就是一個(gè)模擬人類大腦的數(shù)學(xué)模型;而為了解決不同的問題,技術(shù)專家們也設(shè)計(jì)了多種不同的神經(jīng)網(wǎng)絡(luò)模型,比如RNN,CNN以及Transformer等模型,以及基于這些模型的變種。
不同的神經(jīng)網(wǎng)絡(luò)模型擅長(zhǎng)解決不同領(lǐng)域的具體問題;比如CNN——卷積神經(jīng)網(wǎng)絡(luò)就比較適合處理圖像任務(wù);Transformer擅長(zhǎng)處理自然語言問題。
當(dāng)然,受限于目前的技術(shù)問題,還沒有一種通用的神經(jīng)網(wǎng)絡(luò)模型能夠解決所有問題;因此,根據(jù)不同的任務(wù)就只能設(shè)計(jì)不同的神經(jīng)網(wǎng)絡(luò)模型;以上三種神經(jīng)網(wǎng)絡(luò)架構(gòu)只是目前市面上比較常見的,比較通用的神經(jīng)網(wǎng)絡(luò)架構(gòu);并且在處理具體任務(wù)時(shí),不同的網(wǎng)絡(luò)架構(gòu)也可以嵌套使用。
其次,從技術(shù)的實(shí)現(xiàn)角度來說,目前市面上有兩大技術(shù)框架;一個(gè)是谷歌公司開發(fā)的Tensorflow框架,以及Meta公司開發(fā)的PyTorch框架。
當(dāng)然,神經(jīng)網(wǎng)絡(luò)最重要的是其實(shí)現(xiàn)思想,所以使用什么語言,以及什么技術(shù)都可以根據(jù)自己的喜好進(jìn)行選擇;而不論是Tensorflow還是pyTorch框架,只是方便技術(shù)人員的開發(fā);使得技術(shù)人員不需要所有東西都從0開始。簡(jiǎn)單來說就是,你用這兩個(gè)框架也可以,不用這兩個(gè)框架也可以。
神經(jīng)網(wǎng)絡(luò)的實(shí)現(xiàn)流程:
要想設(shè)計(jì)和實(shí)現(xiàn)一個(gè)能夠解決具體問題的神經(jīng)網(wǎng)絡(luò)模型,需要經(jīng)過以下幾個(gè)步驟:
- 明確任務(wù)目標(biāo),即你想設(shè)計(jì)一個(gè)具備什么功能的神經(jīng)網(wǎng)絡(luò)模型
- 構(gòu)建模型 即使用什么架構(gòu),以及具體的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),就是神經(jīng)網(wǎng)絡(luò)的具體實(shí)現(xiàn)
- 數(shù)據(jù)準(zhǔn)備 收集任務(wù)目標(biāo)所需要的訓(xùn)練數(shù)據(jù)集和測(cè)試數(shù)據(jù)集等
- 模型訓(xùn)練 驗(yàn)證與測(cè)試使用等
神經(jīng)網(wǎng)絡(luò)的實(shí)現(xiàn)比較復(fù)雜,不但要設(shè)計(jì)神經(jīng)網(wǎng)絡(luò)的輸入輸出,還要設(shè)計(jì)神經(jīng)網(wǎng)絡(luò)有哪些層,每層的功能實(shí)現(xiàn)是什么樣的;并且,由于神經(jīng)網(wǎng)絡(luò)主要以向量格式為主,因此還需要對(duì)訓(xùn)練數(shù)據(jù)進(jìn)行處理,比如構(gòu)建詞匯表,分詞,向量化等操作。
而一個(gè)神經(jīng)網(wǎng)絡(luò)的好壞,一是看神經(jīng)網(wǎng)絡(luò)模型的設(shè)計(jì);二就是訓(xùn)練數(shù)據(jù)的質(zhì)量;因此,要想訓(xùn)練一個(gè)神經(jīng)網(wǎng)絡(luò)就需要收集大量的高質(zhì)量的訓(xùn)練數(shù)據(jù)。而數(shù)據(jù)收集到之后還不能直接使用,還需要經(jīng)過清洗,格式化等操作。
目前神經(jīng)網(wǎng)絡(luò)模型除了受限于算力問題之外,還一個(gè)非常嚴(yán)重的問題就是訓(xùn)練數(shù)據(jù)的問題;傳說openAI在訓(xùn)練GPT-4時(shí)已經(jīng)把能找到的所有數(shù)據(jù)都用完了。
受限于自己的基礎(chǔ)問題,雖然從網(wǎng)上找了一些博客手動(dòng)實(shí)現(xiàn)一個(gè)神經(jīng)網(wǎng)絡(luò)模型;但到現(xiàn)在也沒想明白,為什么這些數(shù)據(jù)在神經(jīng)網(wǎng)絡(luò)里七顛八倒之后,就能夠?qū)W習(xí)到數(shù)據(jù)的規(guī)律。
總之,學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)最重要的不是看理論,最好的方式就是自己手動(dòng)實(shí)踐,根據(jù)自己的實(shí)際問題,去設(shè)計(jì)和實(shí)現(xiàn)一個(gè)神經(jīng)網(wǎng)絡(luò);這樣你就能明白神經(jīng)網(wǎng)絡(luò)到底是怎么運(yùn)作的。
在使用神經(jīng)網(wǎng)絡(luò)解決實(shí)際問題的過程中,切記不可指望一個(gè)神經(jīng)網(wǎng)絡(luò)模型就能套用到所有問題中,那是不可能的;基本上每個(gè)問題都需要設(shè)計(jì)一個(gè)不同的神經(jīng)網(wǎng)絡(luò);區(qū)別可能就是有些相似度比較高的問題,可能在現(xiàn)有的神經(jīng)網(wǎng)絡(luò)模型上進(jìn)行適當(dāng)?shù)恼{(diào)整與修改。
本文轉(zhuǎn)載自公眾號(hào)AI探索時(shí)代 作者:DFires
