神經網絡的通用訓練流程 原創
“ 神經網絡模型核心有三步,模型搭建,數據處理,模型訓練評估”
今天總結一下神經網絡模型的通用訓練步驟和流程,以及其作用。
模型通用訓練流程
從功能上來說,所有基于神經網絡搭建的模型都要經過以下三個步驟:
- 模型搭建
- 數據處理
- 模型訓練及評估
模型搭建需要經過以下幾個步驟:
- 模型定義
根據任務需求,可以設計不同的網絡層,比如嵌入層,卷積層等。一般的神經網絡模型都由多層網絡層組成。
網絡層實現了對輸入信號的處理,比如卷積層是怎么卷積的,活動的神經元是哪些。本質上是一個函數,有一個輸入就有一個輸出。
- 前向傳播算法
前向傳播算法是神經網絡模型的核心模塊,用來對傳入的神經信號進行處理。比如一個輸入,需要經過那幾個網絡層計算,最后的輸出結果是什么等。
- 損失函數
損失函數是用來計算模式執行結果是否正確的判官,損失函數結果越小,說明網絡模型訓練效果越好。
- 優化器
優化器的作用就是,根據損失函數計算的結果,通過反向傳播算法使用優化器對模型的參數(權重)進行調整優化,以達到最小損失。比如,梯度下降算法。
梯度下降
- 數據處理
數據處理屬于模型訓練的準備階段,其主要作用就是整理出一份能滿足某種訓練需求,并且能夠讓神經網絡模型處理的數據。
數據一般會分為訓練數據集和測試數據集。
主要步驟分為:
- 數據清洗
- 數據統一格式
比如,在NLP(自然語言處理)中,數據需要經過清洗,刪除一些無效數據,亂碼等;清洗之后需要進行分詞處理,構建詞匯表等。
而在CV(計算機視覺)中同樣需要對圖片和視頻進行清洗和裁剪,以及格式統一。
而根據不同的需求可以進行適當的調整,但主要必須經過這兩步處理,主要表現形式為Dataset數據集。
- 模型訓練及評估
模型訓練的本質就是通過訓練數據,及損失函數和優化器不斷調整模型參數的過程。
- 數據加載
準備訓練的數據需要經過加載才能傳入到神經網絡中,而加載的過程也需要解決幾個問題:
能夠加載的數據格式文本,圖片,視頻等,數據結構,結構化數據與非結構化數據,以及數據的加載來源,是本地加載,還是從網絡中加載等;還有大規模訓練數據的拆分等。
最重要的是,要把數據轉換成神經網絡能夠識別的形式——張量(tensor)/向量(vector)
- 分批次處理
分批處理是因為大模型的訓練數據量比較大,需要分批次加載,每次加載部分數據,否則會導致系統崩潰。
- 模型訓練
模型的訓練就是把訓練數據輸入到模型中,并且使用損失函數根據輸出計算損失差,最后使用優化器優化網絡模型參數的過程。
模型根據數據量會進行多次訓練。
- 模型保存與加載
訓練過程中或訓練好的模型,需要被保存下來后續使用;而使用模型需要先加載模型。
而模型的保存與加載有多種形式,比如模型和參數是一塊保存還是分開保存,保存的模型和參數的格式是什么樣的,是否需要分布式保存等;加載模型的方式是什么樣的,以及從哪里加載模型。
- 模型評估?
模型評估的作用就是使用測試數據集,對訓練好的模型進行測試,測試其訓練成果。如果未通過測試,則說明模型訓練有問題,需要進行調整。
而模型評估的方式方法,以及評估標準是需要考慮的問題。
本文轉載自公眾號AI探索時代 作者:DFires
