關于神經網絡的一些思考與感受 原創
“ 神經網絡模型并不是通用模型,不同的問題需要設計不同的神經網絡模型,千萬不要想著一個模型打天下 ”
神經網絡作為當前人工智能領域最炙手可熱的技術,其技術原理也相對比較復雜;而在學習神經網絡的過程中也面臨著很多問題和感受,因此這里就簡單記錄一下。
關于神經網絡
從本質上來說,所謂的神經網絡就是一個模擬人類大腦的數學模型;而為了解決不同的問題,技術專家們也設計了多種不同的神經網絡模型,比如RNN,CNN以及Transformer等模型,以及基于這些模型的變種。
不同的神經網絡模型擅長解決不同領域的具體問題;比如CNN——卷積神經網絡就比較適合處理圖像任務;Transformer擅長處理自然語言問題。

當然,受限于目前的技術問題,還沒有一種通用的神經網絡模型能夠解決所有問題;因此,根據不同的任務就只能設計不同的神經網絡模型;以上三種神經網絡架構只是目前市面上比較常見的,比較通用的神經網絡架構;并且在處理具體任務時,不同的網絡架構也可以嵌套使用。
其次,從技術的實現角度來說,目前市面上有兩大技術框架;一個是谷歌公司開發的Tensorflow框架,以及Meta公司開發的PyTorch框架。
當然,神經網絡最重要的是其實現思想,所以使用什么語言,以及什么技術都可以根據自己的喜好進行選擇;而不論是Tensorflow還是pyTorch框架,只是方便技術人員的開發;使得技術人員不需要所有東西都從0開始。簡單來說就是,你用這兩個框架也可以,不用這兩個框架也可以。

神經網絡的實現流程:
要想設計和實現一個能夠解決具體問題的神經網絡模型,需要經過以下幾個步驟:
- 明確任務目標,即你想設計一個具備什么功能的神經網絡模型
- 構建模型 即使用什么架構,以及具體的神經網絡結構,就是神經網絡的具體實現
- 數據準備 收集任務目標所需要的訓練數據集和測試數據集等
- 模型訓練 驗證與測試使用等
神經網絡的實現比較復雜,不但要設計神經網絡的輸入輸出,還要設計神經網絡有哪些層,每層的功能實現是什么樣的;并且,由于神經網絡主要以向量格式為主,因此還需要對訓練數據進行處理,比如構建詞匯表,分詞,向量化等操作。
而一個神經網絡的好壞,一是看神經網絡模型的設計;二就是訓練數據的質量;因此,要想訓練一個神經網絡就需要收集大量的高質量的訓練數據。而數據收集到之后還不能直接使用,還需要經過清洗,格式化等操作。
目前神經網絡模型除了受限于算力問題之外,還一個非常嚴重的問題就是訓練數據的問題;傳說openAI在訓練GPT-4時已經把能找到的所有數據都用完了。
受限于自己的基礎問題,雖然從網上找了一些博客手動實現一個神經網絡模型;但到現在也沒想明白,為什么這些數據在神經網絡里七顛八倒之后,就能夠學習到數據的規律。

總之,學習神經網絡最重要的不是看理論,最好的方式就是自己手動實踐,根據自己的實際問題,去設計和實現一個神經網絡;這樣你就能明白神經網絡到底是怎么運作的。
在使用神經網絡解決實際問題的過程中,切記不可指望一個神經網絡模型就能套用到所有問題中,那是不可能的;基本上每個問題都需要設計一個不同的神經網絡;區別可能就是有些相似度比較高的問題,可能在現有的神經網絡模型上進行適當的調整與修改。
本文轉載自公眾號AI探索時代 作者:DFires

















