退後一步
在前向步驟中,輸入經由神經網路傳遞,處理輸入後產生輸出。在後向傳遞中,我們根據前向傳遞中得到的誤差來更新神經網路的權重。
這兩種運算本質上都是矩陣乘法。
如何更快訓練你的神經網路?在這裡,我們可以看到第一個矩陣的一行中的每個元素都乘以第二個矩陣的一列。因此,在神經網路中,我們可以將第一個矩陣視為神經網路的輸入,第二個矩陣可以視為網路的權重。
這似乎是一個簡單的任務。現在只是為了讓您了解深度學習是什麼樣的規模,VGG16(深度學習應用中經常使用的 16 個隱藏層卷積神經網路)大約有 1.4 億個參數;別名權重和偏差。現在考慮您必須執行的所有矩陣乘法,以便僅將一個輸入傳遞到該網路!如果我們採用傳統方法,則需要數年時間來訓練這些類型的系統。
如何更快訓練你的神經網路?
我們看到神經網路的運算密集部分 瓜地馬拉 whatsapp 負責人 由多個矩陣乘法組成。那我們要怎麼做才能做得更快呢?
我們可以透過同時執行所有操作而不是一個接一個地執行來簡單地做到這一點。簡而言之,這就是為什麼我們使用 GPU(圖形處理單元)而不是 CPU(中央處理單元)來訓練神經網路。
為了給您一些直覺的感受,我們回顧一下歷史,證明 GPU 比 CPU 更適合執行任務。
在深度學習興起之前,Google擁有一個極其強大的系統來處理,這是他們專門為訓練巨大的網路而建造的。這個系統非常龐大,總共耗資 50 億美元,擁有多個 CPU 叢集。
現在,史丹佛大學的研究人員在運算方面建立了相同的系統,以使用 GPU 訓練他們的深度網路。你猜怎麼著;他們將成本降低至僅 33,000 美元!該系統是使用 GPU 構建的,具有與Google系統相同的處理能力。相當令人印象深刻吧?
另請閱讀: GPGPU CPU 和圖形處理單元的工作;世界上最強大的超級電腦;GPU 與 CPU 的異同。