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