隨著機器學習應用的蓬勃發展,深度神經網路的硬體實作是一個低功耗,高效能,且低面積的解決方案。實作上,為了減少高成本算數電路的使用,將神經網路作二元化的處理是一個很重要的步驟。現有的神經網路二元化方法,大致上需要依靠特殊的網路訓練方式或者利用隨機計算的技巧。給定網路拓樸架構的情況下,前者需要大量的實作經驗來找出適當的重新訓練步驟;而後者則是在不仰賴重新訓練網路的情形下,找出一個一般化且系統化的計算方法。在這篇論文中,透過上述的重新訓練以及隨機計算的方法,我們會探討如何將深度神經網路轉換並實作在現場可程式化邏輯閘陣列上。作為個案討論,我們將兩種訓練於MNIST手寫數字辨識資料集的深度神經網路實作在Xilinx Artix-7的現場可程式化邏輯閘陣列上,並且比較各實作方式之優劣。
Deploying deep neural networks (DNNs) in hardware is a common tactic to achieve energy, performance, and area efficiency for widespread applications. Binarizing neural networks is a key step to eliminate costly arithmetic computation from circuit implementation.Available neuron binarization methods are based on either special training or stochastic computation.The former requires expertise and experience to find a workable training procedure for a given network architecture;the latter decouples the training process and is generally and systematically applicable to a well-trained neural network. In this thesis, we study how to map DNNs for efficient FPGA realization through retraining parameters and stochastic computation. As a case study, a maxout DNN and ReLU DNN for MNIST dataset classification is trained and mapped onto Xilinx Artix-7 FPGA for efficient implementation.