使用對數系統加速CNN電路之設計
全文
(2) 2.
(3) 摘要 隨著人工智慧與神經網路技術崛起,許多設備運用這類技術精進更加準確計 算出所需的答案、數值,但在硬體設備上卻很少人注意計算成本問題,由於目前 計算的部分大多使用 GPU 做運算所以會注意到這部分的人也跟著變少,而在論 文最後我們不只做了捲積神經網絡(CNN)電路雛型比較,也做了一個平面座標轉 極座標的實驗來與牛頓求根法做比較。. 在本篇論文中,將先敘述深度學習與捲積神經網路如何運行,並依序講解做 介紹,在以本研究室所提出的對數轉換系統(LNS)開發出 CNN 電路雛形來做 區域延遲面積(ADP)的比較。 通過採用基於 LNS 的方案,可以極大地減少 CNN 電路中所需的大量傳統乘法器的面積開銷。以 Python 作為分析模擬工具, 隨機輸入 1000000 筆測試資料仿真結果表明,與傳統的基於乘法器的設計相比, 我們提出的設計可以實現更低誤差,ADP 節省近 60%,適用於深度學習應用。. 除此之外我們也比較了笛卡爾座標轉極座標的電路架構,在基於 LNS 的方 式求根與牛頓求根法區域延遲面積的較,在這種傳統面積與 LNS 的方法比較下 可以更加地確定我們的對數轉換系統可以應用在 CNN 架構延伸上其效果也相當 的好,可以節省下更多的 ADP,硬體實做的部分都是用 Verilog 硬體描述語言來 做模組設計,以 Synopsys 公司所開發的 Design Vision TSMC 0.18μm 製程下進行 合成,在進行面積與延遲的比較。. 關鍵字:對數運算、CNN 電路雛形、平面座標轉極座標、牛頓求根法. I.
(4) Abstract With the rise of artificial intelligence and neural network technology, many devices use this kind of technology to accurately calculate the required solutions and numerical values. However, few people pay attention to the calculation cost problem about hardware devices. Since most of the current calculations using the GPU to perform the calculations is less noticed. In this thesis, we not only design the CNN prototype comparison, but also plane rotators and related comparisons with the Newton root method. In this thesis, we will first describe the concept of deep learning and convolutional neural networks work, then we develop a convolutional neural network (CNN) using the log-transformation system (LNS) previously proposed by our Lab. The circuit prototype is used to compare the area delay product (ADP). By employing an LNS-based scheme, the area overhead of a large number of conventional multipliers required in a CNN circuit can be greatly reduced. Using Python as an analysis simulation tool, random input of 1,000,000 test data simulation results show that compared with the traditional multiplier-based design, our proposed design can achieve lower error, ADP saves nearly 60%, suitable for deep learning applications. In addition, we also compare the circuit architecture of the Cartesian coordinate to the polar coordinates, in the (LNS)-based method to find the root and Newton root method area delay area (ADP), in this traditional area compared with the LNS method It can be more certain that our logarithmic conversion system (LNS) can be applied to the CNN architecture, and achieving more efficiency. It can save more area delay product (ADP). The hardware is designed using Verilog hardware description language and synthesized using Design Vision developed by Synopsys with TSMC 0.18 μm process technologies to compare the delay and area performance.. Keywords: logarithmic operation, CNN circuit prototype, plane coordinate rotator coordinate, Newton root method. II.
(5) 目錄 摘要................................................................................................................................. I Abstract .......................................................................................................................... II 目錄............................................................................................................................... III 圖目錄.......................................................................................................................... IV 表目錄............................................................................................................................V 第一章 深度學習系統簡介.......................................................................................... 1 第二章 卷積神經網路方法介紹.................................................................................. 7 2.1 卷積神經網路的架構..................................................................................... 7 2.2 卷積層.............................................................................................................. 8 2.3 池化層.............................................................................................................. 9 2.4 全連接層........................................................................................................ 10 第三章 利用對數轉換系統簡化 CNN 之方法 .......................................................... 12 3.1 對數系統(LNS)之簡介 ............................................................................... 12 3.2 對數轉換架構 ............................................................................................. 13 3.5 卷積層運算 ................................................................................................. 16 3.6 補償電路 ..................................................................................................... 17 第四章 利用對數轉換系統簡化運算應用之方法 .................................................... 18 4.1 笛卡爾座標轉極座標轉換之介紹............................................................... 18 4.2 牛頓求根法................................................................................................... 19 4.3 基於 LNS 的笛卡爾到極坐標轉換器 ......................................................... 21 第五章 電路分析與比較 ............................................................................................ 24 第六章 結論................................................................................................................ 28 參考文獻 ...................................................................................................................... 29. III.
(6) 圖目錄 圖 1-1:人類神經網路圖 ...................................... 1 圖 1-2:類神經網路示意圖[3] ................................. 2 圖 1-3:單一神經元模型[2] ................................... 3 圖 2-1:卷積神經網路的架構[7,8] ............................. 7 圖 2-2:卷積層模擬示意圖[11] ................................ 8 圖 2-3:池化層示意圖 ........................................ 9 圖 2-4:全連接層扁平化示意圖 ............................... 10 圖 3-1:對數系統整體架構圖 ................................. 12 圖 3-2:對數轉換器架構圖 ................................... 13 圖 3-3:反對數轉換架構圖[14] ............................... 15 圖 3-4:卷積架構圖[15] ..................................... 15 圖 3-5:a 與 b 求𝐵1與𝐵2之值的圖示[15] ....................... 16 圖 4-1:極座標示意圖 ....................................... 18 圖 4-2:平面座標示意圖 ..................................... 18 圖 4-3:公式第一部分電路架構圖 ............................. 19 圖 4-4:牛頓求根法架構圖 ................................... 20 圖 4-5:以 LNS 計算根號架構圖 .............................. 22 圖 4-6:以 LNS 計算 θ 角度架構圖 ............................ 22 圖 5-1:小數點 26 位元百分比示意圖 .......................... 26. IV.
(7) 表目錄 表 4-1:對數轉換系統運算轉換表 ........................................................... 21 表 5-1:所提出基於 LNS 的 CNN 架構之比較 ........................................ 24 表 5-2:基於 LNS 的 CNN 架構誤差分析 ............................................... 24 表 5-3:基於 LNS 與傳統根號運算之比較.............................................. 25 表 5-4:基於 LNS 計算等式 4.1 半徑 r 精確度分析 ............................... 25 表 5-5:小數點 26 位百分比 ..................................................................... 26 表 5-6:基於 LNS 計算 θ 角度架構之比較 .............................................. 27. V.
(8) 第一章 深度學習系統簡介 深度學習是一種機器學習人類動作的一種技術,而這些動作非常的廣泛,舉 例來說,在這個臉書盛行的時代,與好友拍張照上傳至 Facebook 上面,系統將 自動的辨識出與你拍照的人是誰是否加以標記好友,這部分就是一種依靠深度學 習所完成的臉部辨識系統,不只如此在 2016 年時有個以深度學習所做出來的 AI AlphaGo 這項技術在當時候挑戰了世界知名的韓國圍棋高手以四戰三勝的戰績, 在圍棋界投下一顆震撼彈,最令人驚訝的是 AlphaGo 連贏了三場,但在隔年就 被自家的 AlphaGo Zero 給打敗,而這次所開發的 AlphaGo Zero 只有給它圍棋規 則讓它自我訓練,在這個例子出現後更多的人看見了深度學習得厲害之處。. 所謂深度學習這個名詞,對一般人而言會有一種「深」就是巨量海量資料的 意思,會運用到大數據,但其實並非如此。因為以數據來訓練學習數據永遠都嫌 少,所以才需要深度的學習在有限的資料量中計算出更精準的數據,比起海量資 料所分析出來的更為精確,若以深度學習與海量資料一併使用,所訓練出的資料 精確度將會比單純由大數據所計算出的精確度更高。. 圖 1-1:人類神經網路圖 1.
(9) 然而談到深度學習就必須先知道類神經網路,一般只要說道深度學習就會想 到這項技術,而類神經網路這項技術的架構起源於人類腦中神經細胞結構,在人 類的大腦結構中有非常多的神經細胞,已一位成年人來說約有 10. 11. 次方,每個. 細胞再由 104 次方的突觸與其它細胞連接再一起而類神經網路的架構就是在模擬 大腦當中的指令傳達,人類思考的階段相當於神經細胞運作,類神經網路的輸入 輸出就相當於人類思考反應當中,以圖 1-1 來表示人類的思考神經示意圖,藉由 感知層,如眼耳鼻等等,將感知所接收的訊息經由神經傳送給大腦去做判斷,判 斷之後再藉由神經傳送給器官層,這一來一往的傳遞為人體內所構成的神經網 路。. 但此類神經網路系統可以簡單的以三個階段去表示,也就是簡單的輸入、計 算、輸出其中計算的部分在類神經網路系統當中我們稱為隱藏層,在人類的快速 反應當中不會經過太多的時間來做出該有的反應,例如要把飲料倒入杯中,給大 腦的簡單指令將會是,「打開瓶蓋,倒入飲品,關起瓶蓋」簡單的三個指令就可 以完成,因為人腦當中的神經細胞相當的多連結也相當的緊密,所以不用太多的 思考就可以完成,但類神經網路系統就不一樣了,需要經過計算流程相當的複雜 才可以完成一些對人類來說簡單的判斷,從下圖 1-2 可以知道類神經網路大概的 判斷是如何生成。. 圖 1-2:類神經網路示意圖[3] 2.
(10) 在一開始發展類神經網路的時期,當時的電腦設備運算能力還不如近期發展 的 CPU 那麼強大所以初期發展多以學裡部分作研究,學者們無法精確地實現他 們所想計算的實驗數據,而且當時的電腦計算一次類神經網路系統校幾天到幾個 月的時間,一直到大約 2012 年之後出現重大轉類點,也就是 GPU 加上深度學習 的出現,才讓廣大的學者們能繼續朝著人工智慧這條道路邁進,已圖 1-2 的示意 圖一樣繼續的深入學習的研究,若隱藏層的部分只有一層那我們就只會說它是淺 層的學習,深度學習的隱藏層要兩層或是兩層以上才會稱作為深度學習。. 簡單的說深度學習是有層次性的機器學習語法,一種給它規則會自我學習的 語法,它可以透過一層一層的處理大量又沒有順序的訊號,逐漸的轉換為有用的 數據資訊來解決許多問題,不過通常在提到深度學習時,人們所想到的會是某一 種特定的機器學習與法,而不是整體的架構或是單一神經元,在剛才所看到的圖 1-2 代表著整體類神經網路的架構,而單一神經元的計算會與其有所不同,如圖 1-3 所顯示的是單一神經元。. 圖 1-3:單一神經元模型[2] 3.
(11) 單一神經元所能做的運算範圍遠遠不及類神經網路,那是因為類神經網路是 將許多神經元所連接起來的,類神經網路中間的隱藏層是拿來增加神經元的複雜 度,以便能夠讓類神經網路模擬更多更複雜的函數。每個神經元與神經元當中都 有互相連結,在那之中各自都有著各自的權重來處理輸入訊號的加權,而類神經 網路的學習和訓練過程都是為了找到最佳的權重設定。. 在前面總是訴說著類神經網路的架構跟單一神經元的架構,但這只不過是實 現深度學習所用到的架構,深度學習的訓練鏈也是相當重要的,一般來說深度學 習的訓練大致是分成三個部分 (1)定義網路架構 (2)定義學習目標 (3)透過數值方法進行訓練. 首先是先定義網路的架構,要先定義出適當的往架構才可以透過訓練來產生 出一個有效的深度學習模型,如果沒有定義網路架構的話那麼這部分學習所產生 出來的值將會有不小的誤差,模型也會不清楚你想要它學習以及處理的範圍有大 或多小,再來就進入第二步驟的定義學目標了,定義學習目標是在深度學習當中 重要的環節之一,此步驟用來描述數值對模型造成的好壞,通常都會稱這數值為 目標函數,有了這個目標函數之後經由第三步驟的透過數值方法進行訓練來產生 出符合我們所需求的深度學習模型,在訓練的過程裡會使用特定的數值,從定義 好的網路架構當中找出最佳的權種組合。[1]. 給一個簡單點的例子,這感覺就像是給予適當的比例可以養殖出品質優良的 魚一樣,輸入值的部分是水、陽光、空氣、品種等等,權重則是比例相加之後進 行稅適當的調整最後得到養殖出來的魚,在經過多次學習養殖後,紀錄每次的數. 4.
(12) 值變化,就會得到水質陽光空氣比例完美的情況之下養出來的魚最為完美,而只 要這個架構與目標不同的話相對的結果值將會不一樣,無法在最後訓練出最優質 的數值結果,也就是說養魚的水中含氧量太少或太多魚都會死亡,其他條件養是 相同的道理,由此範例可以知道深度學習類神經網路系統架構目的是多麼的重要, 才能計算出最完美的值來使用。經過那簡單的例子應介紹後可以知道深度學習訓 練三步驟的互相以及關聯性的重要了。. 而深度學習的應用相當的廣泛,在它強大的能力之下配合著計算能力優越的 GPU 可以在相當快的時間之內就知道訓練內容以及結果,不會像過去深度學習 初期一樣,想要完成一個架構的計算可能要花上 10 天半個月,然後如果還有發 現錯誤修改之後還是需要花上相當久的時間去做改良以及修正,而不是像現在樣 可以在較短的時間之內就得到訓練過後有效的值,在深度學習架構與 GPU 結合 的強大能力下,可以讓深度學習應用在不同的人工智慧框架之下扮演更多不同的 角色,讓更多不同領域的研究者們都可以有效的應用,也是短短幾年之間深度學 習這個詞彙經常出現在各媒體,被大眾加以關注討論的技術。. 而我們上面介紹的深度學習僅用到類神經網路系統神經元,但深度學習的應 用廣泛到不止類神經網路系,還有許多不同的網路架構例如遞歸神經網路這網路 架構也是在近年來蓬勃發展的網路架構之一,此神經網路的神經元之中有個記憶 體的空間存在,在這個站存記憶體當中可以先將輸入資料產生的狀態儲存在這, 神經元在那之後就可以根據處存狀態計算出不同的輸出值,因為遞歸神經網路可 以儲存先前資料狀態的原因,所以在某些需要記憶體處理不同資料長度的研究上 相當的有幫助,像自然語言或語音辨識等。但在這看似完美的網路當中存在著實 務訓練上的問題,會因為隨機梯度下降法在全種組合空間上不利,會讓隨機梯度 下降法無法在最佳的範圍停留,使得隨機梯度下降法節骨不穩定。. 5.
(13) 但這問題在另外一種神經網路也就是長短記憶體神經網路(Long-shot term memory, LSM)此網路結構當中解決了,與遞歸網路神經不同的地方是他在神經 元裡加入了另外三個可控制的開關有寫入、遺忘、輸出這些開關擁有各自的權重, 會根據輸入資料在經過權重計算後來決定是否要開啟,這三個開關加入之後能減 少在遞歸神網路經在使用隨機梯度下降法所遇到的問題。[1,5]. 除了以上所述的類神經網路、遞歸神經網路、長短記憶體神經網路,以外還 有許多的網路架構可以應用在深度學習上,本論文研究所運用的也是在深度學習 當中相當熱門且最為知名的一種,卷積神經網路(Convolutional Neural Network) 此網路方法將在第二章作詳細說明。. 6.
(14) 第二章 卷積神經網路方法介紹 卷積神經網路(Convolutional neural network, CNN)跟類神經網路一樣是在模 擬人類的大腦,不同的地方在於卷積神經網路拿來辨識圖像、語音或是影像辨識, 細節的地方會裡的比類神經網路更加優秀,而在近年來攸關視覺運用競賽優獲獎 的幾乎都是採用深度學習卷積神經網路,由此可知將卷積神經網路應用在圖像、 語音跟影像辨識上是多麼合適,而提到卷積神經網路就不能夠忽略這個網路系統 當中重要的兩層核心,這兩層分別是卷積層以及池化層,也因為有這兩層在圖像 辨識上優於一般類神經網路許多。[6,10,12]. 2.1 卷積神經網路的架構. 在提及卷積神經網路之前要先知道一般的深度學習網路有個問題存在,那就 是它會忽略掉資料型態,比方說影像資料在輸入時,通常都會有垂直水平顏色通 道等三種資,一次輸入三維資訊對卷積神經網路是一件稀鬆平常的事,但對於一 般的深度學習來說它只能夠接收一維的資料處理,也就是說如果一般深度學習要 處理影像資料需要轉成一維才有辦法處理。而除了可以處理三維以外,在整體架 構上我們可以由下面的圖 2-1 來表示。. 圖 2-1:卷積神經網路的架構[7,8] 7.
(15) 2.2 卷積層. 一般而言如果要使用深度學習網路來辨識圖像的話,都需要興將原本的二維 資料打散轉換成一維資料,然後再將打散的像素視為特徵值再丟入深度學習網路 當中進行分析處理,由於這些被打散的像素以丟失原本空間排列順序資訊造之後 運算上容易有誤,但這點卷積神經網路的卷積層就是為了將原本所需的空間排列 順序資訊給保留下來並取得局部圖象資料作為輸入的特徵,在運算上面可以比一 般的深度學習網路有著更高的正確性以及效率。而卷積層處理的方式與影像處已 的方式相似,都是用滑動視窗運算法給卷積核不同的組合,讓它可以去偵測各形 狀的邊邊角角,也可以去除噪音和銳化的成效,取特徵當作辨識依據。. 關於卷積層我們要先了解卷積是怎麼運作的,以下圖 2-2 來表示,假設步長 為 1 的卷積操作,卷積核每次向右移動一個像素,移動到界後會回到最左端向下 移動一格之後繼續往右移動。每個卷積核當中都有權重,而在卷積核移動的過程 當中都會將向素以及卷積核相乘最後再將所有鄉城結果相加得到一個輸出。. 圖 2-2:卷積層模擬示意圖[11]. 8.
(16) 2.3 池化層 池化層主要功能[5]在於有效的將輸入圖片尺寸縮小,並保留下重要的特徵, 執行的方式主要是將該層所劃分出來的區塊取出最大值,原本的圖像在經過池化 以後,值會降低原本的四分之一,但是因為池化以後的圖像包含著原本池化前各 範圍的最大值,保留池化的圖片資訊更專注在圖像中相符的特徵,它的好處是在 於當圖像整個平移幾個像素的話,對判斷上完全不會造成影響,以及有很好的抗 雜訊功能。以下圖 2-3 做表示。. 圖 2-3:池化層示意圖 9.
(17) 2.4 全連接層. 全連接層這部分基本上就如同字面意思,把先前的池化成果扁平化之後接到 最基本的神經網路,也就是將二維矩陣轉換為一維清單如圖 2-4 所示,一維清單 中的每個值都能決定圖像中的資料,不過這種選擇還是依據一般深度學習權重做 為判斷 ,所以當卷積神經網路在判斷一張圖片時,這圖像會經過卷積層池化層 以後才會抵達全連接層,在經過池化後再做一次特徵資料更高的神經網路,來提 高最後輸出值的正確率。. 圖 2-4:全連接層扁平化示意圖. 10.
(18) 在經過以上介紹後已經可以知道卷積神經網路與類神經網路應用在深度學 習系統當中兩者的差異性,以及他們應用範圍與層面有所不同,若要將此類的深 度學習網路應用在硬體設備上,目前軟體的部分可以依靠 CPU 或是 GPU 的強大 運算能力來解決,但在硬體設備上實現會消耗掉大量的資源。. 在第三章當中我們將會講解一般傳統的卷積架構與我們所運用之方法以及 在第四章中會介紹延伸應用,在第五章節理會說明實驗比較與結果。. 11.
(19) 第三章 利用對數轉換系統簡化 CNN 之方法 由如先前所提到的在使用卷積神經網路時是依靠 CPU 或是 GPU 做為計算, 在硬體上少數研究者可以完全以硬體的方式呈現出來,畢竟入整個卷積神經網路 用硬體方式做出將會消耗掉相當大量的資源,所以我們運用對數系統(LNS)來設 計卷積神經網路(CNN)電路來達到減少區域延遲面積之有效設計。我們會在下面 先介紹對數轉換器以及我們所做的雛型電路在第五章時做比較跟分析。. 3.1 對數系統(LNS)之簡介. 在本研究之中我們所運用的 LNS 是由本研究室所成功設計出來[13,14],它可 以有效地降低運算成本,如圖 3-1 為 LNS 架構。會選用此架構是為了減少需多電 路的面積成本,以一個乘法器來說所需的面積跟 LNS 所做出來的乘法相較之下 可以節省相當多的面積,若將此架構套用在需要大量乘法運算所組成的卷積神經 網路之上必定會節省下許多資源。. 圖 3-1:對數系統整體架構圖 12.
(20) 3.2 對數轉換架構. 這架構主要是將二進位數以一個 32 位元的方式輸入值,將此輸入值定義一 個給予 LNS 運算用的格式,這格式為整數 6 位元小數 26 位元的專屬格式,如果 不是使用這格式的話計算出來的答案將會有所不同,會使用 LNS 也是因為在乘 法架構之下所需要的電路成本跟一般乘法器相差較大,以一個單一乘法器來說架 構上會需要很多的加法器才能組成一個乘法器,但若以 LNS 來做乘法,他只需 要將輸入值轉換成 log2 之後做一個加法再轉回原本的二進位就能夠得到一個乘 法的效果。. 圖 3-2:對數轉換器架構圖. 13.
(21) 這樣的簡單說明可能還是無法讓讀者知道整個 LNS 的運作方式,尤其在轉 換與反轉換的部分以圖 3-2 簡單表示對數轉換,首先會將輸入的 32 位元以(6.26) 的方式表示著整數與小數的部分,以左半邊的 CLZ 與 IntGen 來作為 2 進制轉換 為對數整數部分而右邊的 BSH 與 FPGen 則是處理小數的部分,此篇所運用的小 數轉換 FPGen 部分為本實驗室所開發的低誤差方法[13],方法公式如下(3.1)所 示。. …...(3.1). 3.3 反對數轉換架構. 反對數轉換的架構就沒有對數轉換來的複雜,在剛剛對數轉換完畢之後經過 一個加法運算輸出時已格式(6.26)進入反對數轉換即可得到兩數相乘的運算結果。 而做反轉換的部分參考[14]所得來,這部分反對數轉換也是由本實驗室改良出來 的有效減少反對數面積簡化公式如下(3.2)。圖 3-3 所示。. ...........(3.2). 14.
(22) 圖 3-3:反對數轉換架構圖[14]. 3.4 基於 LNS 的 CNN 電路架構. 根據圖 3-4 執行 CNN 的部分輸入為 4x4 大小的矩陣,其中輸入的每個值都 限制在 1 至 2 之間使後面的硬體設計更加方便,接著透過三個事先規劃好數值的 2x2 Filter 分別做三層卷積運算,最終得到 1x1 矩陣大小的輸出,已一般乘法器 需要操作 56 次乘法和 42 次加法,如果以基於 LNS 的方式進行乘法器動作,可 以減少許多面積成本輸入。此架構的用途是為了測試新型乘法器與一般乘法器的 差異,為了簡化運算此架構只有卷積神經網路的卷積層作為實測的實驗架構。. 圖 3-4:卷積架構圖[15] 15.
(23) 3.5 卷積層運算. 卷積層將 Filter 重疊於該層的輸入並將輸入與 Filter 對應的值相乘接著加總 所有乘積來取得該層的單一個輸出,藉由滑過該層全部的輸入並重複前述的計算 便可得出該層所有輸出。以圖 3-5 做為本架構的第一層範例,首先將 Filter1 覆蓋 於 Input 之左上角,並將相同位子的值相乘並加總所有乘積,得到𝐵1 = 𝐴1 × 𝐹1 + 𝐴2 × 𝐹2 + 𝐴3 × 𝐹3 + 𝐴4 × 𝐹4。接著將 Filter1 向右滑動一個單位,做相同的運算便 可得到𝐵2 = 𝐴2 × 𝐹1 + 𝐴3 × 𝐹2 + 𝐴6 × 𝐹3 + 𝐴7 × 𝐹4。最後依此類推,求出𝐵1 ~𝐵9 。. (a). (b) 圖 3-5:a 與 b 求𝐵1 與𝐵2 之值的圖示[15]. 16.
(24) 3.6 補償電路. 由於新型乘法器的電路設計整數大小為 6 位元,而模型最終輸出時會因為二 進制的進位關西變成為 8 位元,但這樣的話就會與原先的輸入歸個不同,因此我 們再做第三層卷積的時候先將輸入右移 2 位元,待做完卷積運算後再將輸出左移 兩位還原回來。 這麼一來就不會造成電路計算的錯誤,完成以上步驟就可以模 擬出新型乘法器應用在圖 3-4 測試架構卷積層上,這麼一來就可以與一般架構做 面積比較。[14]. 在這章當中我們使用了 LNS 做 CNN 運算的架構雛型,也在這雛型當中加入 了補償電路的部分,並且做了分析與比較以及延伸應用的部分會在第四章做介紹, 而分析比較的結果將會在第五章裡說明。. 17.
(25) 第四章 利用對數轉換系統簡化運算應用之方法 誠如上一章節所介紹之對數轉換系統來做為此章節應用架構,應用於笛卡爾 座標與平面座標轉極座標有效電路之設計,這方面的應用在於 CNN 架構與笛卡 爾坐標系做應用但是對於如何節省電路面積與時間這方面研究人員還是只有少 數部份,所以我們將應用基於 LNS 的方法可以有效大幅減少電路的延遲時間及 面積,我們提出的設計與一般電路還有 CPU 運算經實驗後比較後減少了極大的 面積以及時間, 這部分會在第五章節做比較分析。. 4.1 笛卡爾座標轉極座標轉換之介紹. 一般來說要描述某個點的時候,通常都會以直角坐標系來表示某點,而在描 述之前會先定義出原點以及 X 軸與 Y 軸的方向跟單位長度如圖 4-1 所示,做好 以上約定時就可以應用這座標系來描述該點位置,而描述出點之後就可以定義出 一個完整的三角形進行計算,求出笛卡爾座標與極座標所需的半徑 r 值與角度 θ, 如圖 4-2 所示。. 圖 4-2:平面座標示意圖. 圖 4-1:極座標示意圖 18.
(26) 這個 r 就是電路化簡的主要的計算公式之一,另外一個是主要的角度 θ 在做 這兩者的計算後就可以得到笛卡爾座標需要的 θ 角度以及極座標所需要的 r 半徑, 如等式(4.1). …………………………………(4.1). 4.2 牛頓求根法. 此方法主要是應用在傳統電路開根號時的計算,在傳統電路當中開根號這問 題在計算上有相當大的難易度,我們將等式(4.1)的 r 拆成兩個部分,第一個部分 為根號內計算平方與相加的部分。如圖 4-3。第二部分就是就是有使用到牛頓法 的部分了。如圖 4-4。而在牛頓法的部分所運用到的除法器我們之後做兩種合成 上的比較,一種是一般的除法另外一種除法器是移位相簡除法器,也是在硬體計 算上比較慢的一種。[15]. 圖 4-3:公式第一部分電路架構圖 19.
(27) 圖 4-4:牛頓求根法架構圖 牛頓求根法的計算主要是以微分切線的方式進行迭代計算求出趨近於 0 的 數值。迭代越多次可求得的小數點後位元數就越高也可以求出更精確的小數值, 只要迭代計算到第 5 次就可以跟此範例√1.2 = 1.09544511501一樣,下列範例 計算套用牛頓法公式(4.2)如果有需要求到更高位元小術可以迭代更多次只要迭 代到第七次就可以計算到小數點後 60 位元。 牛頓求根法公式: 𝑥 = 0.5 ∗ 𝑎 b = 0.5 ∗ (𝑥 + 𝑎⁄𝑥 )…………………………………………………………...(4.2) 公式舉例:求根號 1.2 的值 0.5*1.2=0.6 第一次迭代 0.5*(0.6+1.2⁄0.6)= 1.3 第二次迭代 0.5*(1.3+1.2⁄1.3)= 1.111538461538 第三次迭代 0.5*(1.111538461538 +1.2⁄1.111538461538)= 1.097484695233 第四次迭代 0.5*(1.097484695233 +1.2⁄1.097484695233) =1.0954470102019 第五次迭代 0.5*(1.0954470102019 +1.2⁄1.0954470102019) =1.09544511501 20.
(28) 4.3 基於 LNS 的笛卡爾到極坐標轉換器. 為了節省傳統電路計算電路的延遲時間與面積,所以我們用了實驗室所開發 的對數轉換系統,有效降低計算成本,在我們的方法當中可以將公式(4.1)拆解分 成幾個部分,而我們所需要用到的對數部分會在下表 3 表示。而架構如圖 4-5 與 圖 4-6。圖 4-5 當中的第一部分是先將根號內的平方做處理,在來輸出之後將平 方的部分相加,在第二部分將相加後的數值開根。而圖 4-6 的部分就麻煩許多了 因為這角度的計算是經由[16]的近似方式如公式(4.3)方式計算,而計算模擬速度 是與 CPU 做比較,比較部分會在第五章統一說明。. ….….(4.3). 表 4-1:對數轉換系統運算轉換表. operation. Normal Arithmetic. Logarithmic Arithmetic. 乘法. MUL. 𝑧 = 𝑥.𝑦. X+Y. 除法. DIV. 𝑧 =𝑥/𝑦. X-Y. 開根號. SQRT. z = √𝑥. X>>1. 平方. SQR. z = 𝑥2. X<<1. 次方. POW. z = 𝑥𝑦. Y+log2X. 21.
(29) 圖 4-5:以 LNS 計算根號架構圖. 圖 4-6:以 LNS 計算 θ 角度架構圖 22.
(30) 在本章當中我們做了基於 LNS 簡化運算應用的方法,做出了笛卡爾坐標系 與平面座標轉極座標的電路之設計,在設計電路時,一般電路部分找了牛頓求根 法的部分來做根號處理與我們實驗室所開發的 LNS 系統計算根號做比較,這部 份是比較計算 r 半徑,也找到了符合我們的 LNS 系統架構所可以應用的 θ 角度 計算的近似方法[16]來設計出以 LNS 計算的電路與應用 CPU 模擬電路計算來做 電路運算所需的時間比較,而電路分析與比較的部分將在第五章做說明。. 23.
(31) 第五章 電路分析與比較 我們在第三章時提到以圖 3-4 作為雛型來製作的 CNN 電路架構,可以看到 一般成法器之 CNN 電路與利用 LNS 簡化 CNN 之電路的面積與延遲時間比較, 在下方表 5-1 的部分表示的是我們提出的基於 LNS 的 CNN 架構與一般乘法器的 比較結果,以結果看來我們的方法節省了大約 60%的 ADP (Area-Delay Product). 表 5-1:所提出基於 LNS 的 CNN 架構之比較. Area(μm2). Delay(ns). ADP. 一般乘法器之 CNN 電路. 23697540.81. 70.68. 100%. 利用 LNS 簡化 CNN 電路. 5604353.60. 124.95. 41.80%. 表 5-2 是我們研究當中使用 python 產生出 1000000 筆隨機數據輸入至圖 3-4 模型中,並依照硬體的計算方式模擬出基於 LNS 的架構執行 CNN 電路與原始乘 法器執行 CNN 鏈路兩者計算後比較的誤差模擬。. 表 5-2:基於 LNS 的 CNN 架構誤差分析. Maximum Errors. 10.22. Minimum Errors. 1.11. Maximum Error Percent. 5.07%. Minimum Error Percent. 0.75%. Average Errors. 5.08. 24.
(32) 而在第四章節所提到的笛卡爾座標轉極座標這部分在下面表 5-3 當中可以看 計算半徑 r 的部分,這當中一般電路應計算根號當中所使用的牛頓法以移位相減 除法與一般除法以及我們的對數轉換架構三者的比較,若以移位相減最為比較對 象,我們的方法減少了大約 99.8%的 ADP,若以一般除法的牛頓法做比較也是節 省了 99.5%左右的 ADP。 表 5-3:基於 LNS 與傳統根號運算之比較. Area(μm2) 以移位相減除法器. Delay(ns). ADP. 4336090.849331. 1915.20. 100%. 1830791.136135. 1233.69. 27.1%. 269585.252001. 38.19. (1)0.12% (2)0.45%. 做牛頓法(1) 以一般除法器做牛 頓法做處理(2) 以 LNS 做公式處理. 表 5-4 是我們研究當中使用 python 產生出 1000000 筆隨機數據輸入至圖 4-5 模型中,並依照硬體的計算方式模擬出基於 LNS 的架構執行等式(4.1)當中計算 半徑 r 的電路與牛頓法計算根號兩者計算後比較的誤差模擬。 表 5-4:基於 LNS 計算等式 4.1 半徑 r 精確度分析 最低精確位元. 小數點後第 4 位元. 最高精確位元. 小數點後第 26 位元. 平均精確位元. 小數點後第 5 位元. 誤差佔輸出百分比. 2.28%. 表 5-5 是我們針對小數點 26 位元,每位元的誤差分析百分比由於牛頓法計 算根號的部分大多數的人都習慣以小數點第幾位表示所以我們在這部分特別以 表 5-4 表 5-5 與圖 5-1 表示,這樣可以方便讀者清楚知道 26 位元百分比狀況。. 25.
(33) 表 5-5:小數點 26 位百分比 1. 0.00000%. 10. 1.78330%. 19. 4.60000%. 2. 0.00000%. 11. 9.87500%. 20. 2.10000%. 3. 0.00000%. 12. 5.62500%. 21. 1.30000%. 4. 0.00000%. 13. 2.82100%. 22. 1.00000%. 5. 5.88540%. 14. 1.45300%. 23. 5.00000%. 6. 4.72504%. 15. 7.32000%. 24. 1.00000%. 7. 2.95252%. 16. 3.79000%. 25. 3.00000%. 8. 1.00079%. 17. 1.73000%. 26. 0.00000%. 9. 3.42350%. 18. 8.60000%. 圖 5-1:小數點 26 位元百分比示意圖 26.
(34) 而圖 4-6 為計算 θ 角度的硬體電路圖,這部份我們直接以 Python 來撰寫模 擬電路運作,以 CPU 來模擬電路執行之後的計算 θ 繳所需的速度,而 CPU 是用 Intel 的 i7-6700 執行速度為 3.40GHz,與一般大多數人所使用的電腦是一樣的, 而在這樣的條件之下雖然無法估算出面積,但是以執行時間來說,我們所採用 LNS 的方式在計算 θ 角度所需的時間上快了許多可以由表 5-6 所看到。. 表 5-6:基於 LNS 計算 θ 角度架構之比較. Area (m2). Delay(ns). Average Errors. 以 Python 模擬電路. -. 2.68 s. -. 以 LNS 架構運算角度. 389832.69. 44.01 ns. 2-5. 在本章裡可以看到我們所提出以 LNS 的方法可以有效又快速的應用在 CNN 運算上,可以節省下許多運算電路所消耗的時間以及面積,第六章結論當中將會 做結論說明。. 27.
(35) 第六章 結論 在本論文章中我們所研究的 CNN 架構與笛卡爾座標轉極座標的部分是現在 在研究各項 AI 深度學習開發會應用的的部分,畢竟在這個想以 AI 取代傳統的 時代當中這部分研究是不能或缺的,我們所提出基於 LNS 的架構所設計的 CNN 電路以及笛卡爾座標轉極座標的部分,在整體硬體計算上我們節省了許多時間, 在前面 CNN 架構雛型上雖然慢了一些,但在做之後的延續運算時間快了許多, 所以整體來說本論文所完成的研究方法比傳統電路方式要來的更加節省總電路 面積與時間,這些成果都可以在第五章電路分析與比較當中得知。. 以前面介紹過的方法來說,我們在基於 CNN 電路雛形這部分的 ADP 就節 省近 60%,在笛卡爾轉極座標的部分節省近 99%在整體 CNN 架構應用上與傳統 電路相比節省了相當龐大的 ADP,這部份對於未來的 AI 開發在計算上可以更加 的節省運算時間以及其所需耗費的電路面積,若要將此實體化應用相信可以將電 路面積縮小許多。. 28.
(36) 參考文獻 [1] Aylin Sevik, Pakize Erdogmus, Erdi Yalcin,“Font and Turkish Letter Recognition in Images with Deep Learning,”2018 International Congress on Big Data, Deep Learning and Fighting Cyber Terrorism (IBIGDELFT), pp.61-64, Dec. 2018. [2] 國立台灣大學計算機及資訊網路中心電子報-淺談 Deep Learning 原理及應 用,http://www.cc.ntu.edu.tw/chinese/epaper/0038/20160920_3805.html. [3] Jianfeng Wang, Daming Pei,“Kernel-Based Deep Learning for Intelligent Data Analysis,”2017 First International Conference on Electronics Instrumentation & Information Systems (EIIS), June. 2017. [4] Zeydin Pala, Veysi Yamli, İbrahim Halil Ü nlük,“Deep Learning Researches in Turkey: An Academic Approach,” 2017 XIIIth International Conference on Perspective Technologies and Methods in MEMS Design (MEMSTECH),pp.120-123, April. 2017. [5] Akihiko Kasagi, Tsuguchika Tabaru, Hirotaka Tamura, “Fast algorithm using summed area tables with unified layer performing convolution and averagw pooling,” 2017 IEEE 27th International Workshop on Machine Learning for Signal Processing (MLSP),September. 2017.. [6] Chun-Hsien Yu,Chun-Nan Chou, Emily Chang,“Distributed Layer-Partitioned Training for Privacy-Preserved Deep Learning,” 2019 IEEE Conference on Multimedia Information Processing and Retrieval (MIPR),pp.343-346,March. 2019.. [7] Kavitha D, Mr. Ramachandra Hebbar, Mr. P V Vinod, Harsheetha M P, Jyothi L, Madhu S H,“CNN Based Technique for Systematic Classification of Field Photographs,” 2018 International Conference on Design Innovations for 3Cs Compute Communicate Control,pp.59-63,April. 2018.. 29.
(37) [8] Arpit Sunilkumar Modi,“ Review Article on Deep Learning approaches,” 2018 Second International Conference on Intelligent Computing and Control Systems (ICICCS),pp.1635-1639,June. 2018.. [9] Jae Hyeon Park, Jeong Hyeon Kim, and Sung In Cho,“The Analysis of CNN Structure for Image Denoising,”International SoC Design Conference(ISOCC),pp.220-221,November. 2018.. [10] Liang Zou , Jiannan Zheng, Chunyan Miao, Martin J. Mckeown, Z. Jane Wang,“3D CNN Based Automatic Diagnosis of Attention Deficit Hyperactivity Disorder Using Functional and Structural MRI,” IEEE Access, vol.5,pp.23626-23636,October. 2017.. [11] Li Chen, Song Wang, Wei Fan, Jun Sun, Satoshi Naoi,“Cascading Training for Relaxation CNN on Handwritten Character Recognition,”2016 15th International Conference on Frontiers in Handwriting Recognition, pp.162-167,October. 2016.. [12] Chao Dong, Chen Change Loy,Kaiming He, Xiaoou Tang,“Image Super-Resolution Using Deep Convolutional Networks,” IEEE Transactions on Pattern Analysis and Machine Intelligence,vol.38, no.2, pp.295-307,Feb. 2016. [13] Tso-Bing Juang, Pramod Kumar Meher and Kai-Shiang Jan, “High-Performance Logarithmic Converters Using Novel Two-Region Bit-Level Manipulation Schemes,” Proc. of VLSI-DAT (VLSI Symposium on Design, Automation, and Testing), pp. 390-393, April. 2011.. [14] Tso-Bing Juang, Han-Lung Kuo and Kai-Shiang Jan,“Lower-Error and Area-Efficient Antilogarithmic Converters with Bit-Correction Schemes,” Journal of the Chinese Institute of Engineers, Vol. 39, No. 1, pp. 57-63, Jan. 2016.. [15] Tso-Bing Juang, Cong-Yi. Lin and Guan-Zhong Lin,“Area-Delay Product. Efficient Design for Convolutional Neural Network Circuits Using Logarithmic Number Systems,”International SoC Design Conference(ISOCC), pp.170-171, Nov. 2018.. 30.
(38) [16] S. G. Johnson, “Square Roots via Newton’s Method,” MIT Course 18.335 February 4, 2015, https://math.mit.edu/~stevenj/18.335/newton-sqrt.pdf [17] https://math.stackexchange.com/questions/982838/asymptotic-approximation-ofthe-arctangent.. 31.
(39)
數據
Outline
相關文件
The Model-Driven Simulation (MDS) derives performance information based on the application model by analyzing the data flow, working set, cache utilization, work- load, degree
• In the present work, we confine our discussions to mass spectro metry-based proteomics, and to study design and data resources, tools and analysis in a research
With λ selected by the universal rule, our stochastic volatility model (1)–(3) can be seen as a functional data generating process in the sense that it leads to an estimated
Results indicate that the proposed scheme reduces the development cost, numbers of design change, and project schedule of the products, and consequently improve the efficiency of
This study, analysis of numerical simulation software Flovent within five transient flow field,explore the different design of large high-temperature thermostat room
Using the DMAIC approach in the CF manufacturing process, the results show that the process capability as well as the conforming rate of the color image in
Our preliminary analysis and experimental results of the proposed method on mapping data to logical grid nodes show improvement of communication costs and conduce to better
通常在研究賽格威這類之平衡系統時在於機構之設計是十分的昂貴,本論文