FPGA tabanlı IQ-math sayı standardında YSA aktivasyon fonksiyonlarının tasarımı ve gerçeklenmesi
Design and implementation of FPGA-based ANN activation functions in IQ-math number standard
Yazar: MEHMET ŞAMİL AKÇAY
Danışman: DOÇ. DR. İSMAİL KOYUNCU
Afyon Kocatepe Üniversitesi / Fen Bilimleri Enstitüsü / Elektrik-Elektronik Mühendisliği Ana Bilim Dalı
Derece: Yüksek Lisans, 2021
Konu: Elektrik ve Elektronik Mühendisliği = Electrical and Electronics Engineering
Dizin: Yapay sinir ağları = Artificial neural networks

Özet:
Yapay Sinir Ağları (YSA), insan beyninin öğrenme ve karar verme gibi yetenekleri referans alınarak geliştirilmiş yapay zekanın bir alt alanıdır. İnsan beyninde mevcut olan öğrenme, sınıflandırma, tahmin etme ve karar verme gibi birçok özellik YSA için birer çalışma alanıdır. YSA, öğrenme ve adaptasyon yeteneği, paralel veri işleme ve doğrusal olmayan sistemlerde kullanılma gibi önemli özelliklere sahiptir. Bu özellikleri sayesinde, YSA, günümüzde sinyal ve görüntü işleme, kontrol, hata tespiti, sınıflandırma, optimizasyon, tahmin, karar verme, güvenli haberleşme, uzay teknolojisi, kaotik osilatör tasarımı ve tıp gibi birçok farklı alanda yaygın olarak kullanılmaktadır. YSA çalışmalarında, ağ çıkışını, gerekli sonlu aralıklarda sınırlamak için AF (Activation Function-Aktivasyon Fonksiyonları) kullanılmaktadır. YSA yapısında kullanılan AF, YSA çıkışını doğrudan etkilediği için AF seçimi büyük önem taşımaktadır.
Bu tez çalışmasında birinci aşamada, doğrusal AF olan TriBas (Triangular Basis), HardLim (Hard-Limit), HardLims (Symmetric Hard-Limit), PosLin (Positive Linear), SatLin (Saturating Linear) ve SatLins (Symmetric Saturating Linear) fonksiyonları VHDL (Very High Speed Integrated Circuit Hardware Description Language-Çok Yüksek Hızlı Tümleşik Devre Donanım Tanımlama Dili) dilinde kodlanarak 32 bit (16I-16Q) IQ-Math sayı standardında tasarlanmıştır. Tasarımları test etmek için Xilinx ISE Design Suite 14.7 programı kullanılmıştır. Test işleminden elde edilen simülasyon test sonuçları sunulmuştur. Ardından, tüm doğrusal AF tasarımları Xilinx Kintex-7 ailesinin XC7K70T-3FBG676 FPGA (Field Programmable Gate Array-Alanda Programlanabilir Kapı Dizileri) çipi için sentezlenmiştir. Sentez işleminden sonra Place & Route işlemi yapılarak FPGA çip istatistikleri sunulmuştur. Çip istatistikleri incelendiğinde, HardLim ve HardLims fonksiyonlarının en az çip kaynağı tükettiği görülmüştür. Ayrıca, doğrusal AF tasarımları içerisinde 1379.172 MHz ile en yüksek çalışma frekansına SatLin AF'nin sahip olduğu tespit edilmiştir.
Bu tez çalışmasının ikinci aşamasında, YSA uygulamalarında oldukça yaygın bir şekilde kullanılan ve doğrusal olmayan AF olan RadBas (Radial Basis), LogSig (Logarithmic Sigmoid) ve TanSig (Tangent Sigmoid) AF, 32 bit (16I-16Q) IQ-Math sayı standardında VHDL dili ile tasarlanmıştır. Doğrusal olmayan üç AF içerisinde bulunan ex üstel fonksiyonu tasarımında CORDIC-LUT (COordinate Rotation DIgital Computer-Look-Up Table) yaklaşımı kullanılmıştır. Tasarımlar Xilinx ISE Design Suite 14.7 programında test edilerek simülasyon test sonuçları sunulmuştur. Daha sonra doğrusal olmayan üç AF tasarımları Xilinx Kintex-7 XC7K70T-3FBG676 FPGA çipi için sentezlenmiştir. Ardından, Place & Route işlemi yapılarak FPGA çip istatistikleri sunulmuştur. Ayrıca, bu üç FPGA tabanlı AF tasarımlarının MSE (Mean Square Error-Ortalama Karesel Hata) ve RMSE (Root Mean Square Error-Ortalama Karesel Hatanın Karekökü) hata analizleri, nümerik tabanlı AF kullanılarak gerçekleştirilmiş ve elde edilen sonuçlar sunulmuştur. Yapılan bu doğrusal ve doğrusal olmayan AF tasarımları ile bir aktivasyon fonksiyonları kütüphanesi oluşturulmuştur.
Tez çalışmasının üçüncü aşamasında, FPGA tabanlı örnek bir üç girişli ve üç çıkışlı ileri beslemeli YSA tasarımı gerçekleştirilmiştir. YSA tasarımının gizli katmanında 8 nöron bulunmaktadır. Tasarımın gizli katmanında LogSig AF ve çıkış katmanında PureLin (Pure Linear) AF kullanılmıştır. Örnek YSA tasarımı 32 bit (16I-16Q) IQ-Math sayı standardında VHDL dilinde kodlanmıştır. Tasarım Xilinx ISE Design Suite 14.7 programında VHDL dilinde bir testbench oluşturularak test edilmiştir. Test işleminden elde edilen tasarıma ait simülasyon sonuçları için MSE ve RMSE hata analizleri yapılmış ve sonuçlar değerlendirilmiştir. Test işleminden sonra yapılan tasarım Kintex-7 XC7K70T-3FBG676 FPGA çipi için sentezlenmiş ve Place & Route işleminin ardından FPGA çip istatistikleri sunulmuştur.

Abstract:
Artificial Neural Networks (ANN) is a subfield of artificial intelligence developed by referencing the working structure of the human brain. Many features that exist in the human brain such as learning, classification, estimation, and decision making are the areas of study for ANN. ANN has important features such as learning and adaptation capability, parallel data processing, and the ability to be used in nonlinear systems. Due to these features, ANN has been widely used nowadays in many different fields such as image and sound processing, control, error detection, classification, optimization, prediction, decision making, secure communication, space technology, chaotic oscillator design, and medicine. Activation functions (AF) have been used in ANN studies to limit network output at the required finite intervals. Therefore, AF directly affects the result. For this reason, the choice of AF is very important. 
In the first stage of this thesis, linear AF TriBas (Triangular Basis), HardLim (Hard-Limit), HardLims (Symmetric Hard-Limit), PosLin (Positive Linear), SatLin (Saturating Linear), and SatLins (Symmetric Saturating Linear) functions have been coded in VHDL (Very High Speed Integrated Circuit Hardware Description Language) and designed in 32 bit (16I-16Q) IQ-Math number standard. Xilinx ISE Design Suite 14.7 program was used to test the designs. Xilinx's ISE Design Suite 14.7 program was used to test the designs. The simulation test results obtained from the testing process are presented. Then, all linear AF designs were synthesized for the XC7K70T-3FBG676 FPGA (Field Programmable Gate Arrays) chip of the Xilinx Kintex-7 family. After the synthesis process, the FPGA chip statistics are presented by performing the Place & Route process. When the chip statistics are examined, it is seen that the HardLim and HardLims functions consume the least chip resources. Besides, SatLin AF has been found to have the highest operating frequency as 1379.172 MHz among linear AF designs.
In the second phase of this thesis, RadBas (Radial Basis), LogSig (Logarithmic Sigmoid), and TanSig (Tangent Sigmoid) AF, which are non-linear AF and widely used in ANN applications, are coded with VHDL in 32-bit (16I-16Q) IQ Math number standard. The CORDIC-LUT (COordinate Rotation DIgital Computer-Look Up Table) approach was used in the design of the ex exponential function in three non-linear AFs. The designs were tested in Xilinx ISE Design Suite 14.7 program and simulation test results were presented. Later, three non-linear AF designs were synthesized for the Xilinx Kintex-7 XC7K70T-3FBG676 FPGA chip. Then, the FPGA chip statistics were presented by performing the Place & Route process. Besides, MSE (Mean Square Error) and RMSE (Root Mean Square Error) error analyses of these three FPGA-based AF designs were implemented using numerical-based AF and the acquired results are presented. With these linear and non-linear AF designs, a library of activation functions has been created.
In the third stage of the thesis, a sample of FPGA-based three-input and three-output feedforward ANN design has been implemented. There are 8 neurons in the hidden layer of the ANN design. LogSig AF is used in the hidden layer of the design and PureLin (Pure Linear) AF is used in the output layer. The sample ANN design has been coded in VHDL in 32 bit (16I-16Q) IQ-Math number standard. The design was tested by creating a testbench in VHDL in Xilinx ISE Design Suite 14.7 program. For the simulation results of the design obtained from the test process, MSE and RMSE error analyses were performed and the results were evaluated. After the test process, the design was synthesized for the Kintex-7 XC7K70T-3FBG676 FPGA chip, and FPGA chip statistics were presented after the Place & Route process.