【原創】深度神經網絡(Deep Neural Network, DNN)


線性模型通過特征間的現行組合來表達“結果-特征集合”之間的對應關系。由於線性模型的表達能力有限,在實踐中,只能通過增加“特征計算”的復雜度來優化模型。比如,在廣告CTR預估應用中,除了“標題長度、描述長度、位次、廣告id,cookie“等這樣的簡單原始特征,還有大量的組合特征(比如”位次-cookie“ 表示用戶對位次的偏好)。事實上,現在很多搜索引擎的廣告系統用的都是Logistic Regression模型(線性),而模型團隊最重要的工作之一就是“特征工程 (feature engineering)”。

線性模型的思路是“簡單模型+復雜特征”,用這樣的組合實現復雜非線性場景描述。由於模型結構簡單,這種做法的訓練/預估計算代價相對較小;但是,特征的選取是一個需要耗費大量人力的工作,且要求相關人員對業務有較深的理解。

模型工作的另外一個思路是"復雜模型+簡單特征“。即弱化特征工程的重要性,利用復雜的非線性模型來學習特征間的關系,增強表達能力。深度神經網絡模型就是這樣一個非線性模型。

 

 

上圖是一個具有一個輸入層,一個輸出層,兩個隱層的深度神經網路。該模型一個有9個節點。

 

神經網絡的介紹很多文獻都很詳盡,現在以上圖為例,重點講一下backpropagation算法的推導過程。

backpropagation與梯度法非常相似,本質上是求每一個參數的偏導數,然后在偏導數的方向上尋找下一個搜尋點,以${W_{04}}$為例:

將上述推導合並,就可以得到${W_{04}}$的梯度方向:

 其他迭代過程和梯度下降法差異不大。

值得注意的是,雖然DNN對特征工程的要求相對較低,但訓練時間復雜度較大,切權重可解釋性非常差,不易debug。因此,對於一個新的應用,比較好的方法是先用Logistic Regression這樣的線性模型開始應用,等迭代成熟了,再嘗試DNN模型。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM