關燈 巨大 直達底部
親,雙擊螢幕即可自動滾動
第37章 構建神經網路

讀取原始資料,對其進行處理,轉化為神經網路能夠處理的張量格式。

劉天陽手指一揮,輸入處理模組便如臂指使般被他定位到演算法的起點。

之後便是依續遞進,眾多模組在他的指揮下像是長龍一般拼在後面。

卷積模型構建,啟用函式處理,再度卷積,再次啟用,多層神經網路的前向傳播此時便有了雛形。

不過如此一來模型很容易陷入過擬合的區域性最優點,劉天陽一揮手,神經網路中的一些層便變得虛幻起來。

但這並不代表其斷開了連線,而是意味著在訓練過程中,這些層會隨機的丟掉一些資料,減緩演算法梯度下降的速度,並帶來一定的隨機性。

這種被稱之為‘丟出’的操作正是代表著人腦中遺忘的功能,雖然做不到像人那般更有針對性,但對於一個可以無限試錯的演算法來說,足夠了。

不過僅僅是學習還不夠,劉天陽最終需要提取出整個神經網路中對於使用目標有用的結果。

這個時候需要的就是全連線層,也即池化層,劉天陽思考了一下,一個方塊在遠方消失,又憑空出現在他的面前。

墨紫色的方塊在他的指揮下落在演算法的最尾端,這裡就是輸出結果的地方。

如此一來,整個前向傳播神經網路的結構便確定了,下面要做的,就是把它們全部連線起來。

確定訓練目標的損失函式,定義!

為演算法執行提供動力,更新模型中各個引數的最佳化函式,定義!

隨著前向傳播流程的建立,離構建整個演算法流程也就只剩下一步之遙了,那就是建立反向傳播,閉環整個演算法迴圈模型。

不過相較於前向傳播時的諸多模組個組合,以及其中的各種經驗之舉,反向傳播就顯得簡單許多。

劉天陽手一揮,數根像是電纜一般的管線便從各個損失函式的環節引出,向演算法的頭部前進。

這些管線在中間不時連線到對應的卷積層上,並連結上其中的權重引數。

如此一來,整個演算法便徹底構建完畢,雖說非常簡陋,僅僅能實現對阿拉伯數字的辨認,但劉天陽卻從其中收穫頗豐。

因為剛剛的操作不僅僅是他所學知識的一個輸出,更是幫他完整梳理了這些天看到的所有知識。

以往那些只是知道,但卻無法理解的東西此時在劉天陽眼中變得具體起來。

為何使用這部分輸入,又為何增加這個求和模組,以及最後輸出的值到底被誰使用了,當整個流程都清晰以後,之前那些讓劉天陽做噩夢的公式此刻頓時變得和藹可親起來。

退出這種狀態,劉天陽用火熱的目光看著面前的顯示卡,如今有著能量投送器的遠端能源輸送,這塊顯示卡的視訊記憶體中正儲存著他剛剛搭建好的神經網路模組。

要驗證這個演算法也很簡單,劉天陽拔下電腦上的那塊顯示卡,將手上這塊插了上去。

電腦的桌面上瞬間多出一個專案工程,劉天陽點開,裡面的程式碼雖說不是他編寫的,但卻異常的熟悉。

因為這正是他剛剛一塊一塊,如搭積木般拼湊出來的神經網路。

瀏覽整個工程,以往那些需要全域性搜尋才能知道什麼意思的變數此刻對於劉天陽來說全無障礙,整個演算法對於他來說,已然瞭如指掌。

編譯,執行,訓練完成!

一套操作行雲流水,劉天陽將測試資料匯入,然後對比識別結果和真實答案。

100%正確!

和之前那個穩定把9認成1的演算法不同,劉天陽新搭建的演算法無論是識別速度,還是精準度都遠遠超過。

而且程式碼無比整潔規範,完全可以拿來當那些計算機專業大學生的教學範例來使用了。

只不過這個程式碼相較於系統對於製作人工智慧核心的要求,還有很長距離要走。

其神經元數量實在是太少,網路層級太過於簡單,評價函式也只是簡單的分類罷了。

不過這些問題如今卻已然不會讓劉天陽束手無策了,在系統的幫助下,他完全可以囫圇吞棗般吸收那些知識,然後再透過實踐的方式將其掌握,轉化為自己的東西。

不僅如此,劉天陽甚至還有了個更大膽的想法。

假如他掌握的知識網路足夠大,知識深度也足夠自成一體,那完全可以直接像之前拆解機床那般拆解市面上那些龐大無比的框架和知名的神經網路程式碼。

然後從中汲取專家們的經驗,學百家之所長,