wik δk (1-Ohi) Ohi(1-Ohi) wik.δk δhi Adder -1 Adder Multyle Multyle 1 Ok -Ok tk (1-Ok) (tk-Ok) (1-Ok)(tk-Ok) δk
GVHD: TS. HOÀNG TRANG 62 HV: Nguyễn Lâm Thương δh1 = Oh1 (1-Oh1) (w5)(δk) Trong đó: Oh1 là ngõ ra lớp ẩn Neural N1 δk là hàm lỗi lớp ngõ ra Tại Neural N2: δh2 = Oh2 (1-Oh2) (w6)(δk) Trong đó:
Oh2 là ngõ ra lớp ẩn Neural N2 δk là hàm lỗi lớp ngõ ra
4.4.5 C p nh t bộ trọng s .
Hình 4.7:Sơ đồ cập nhật bộ trọng số Cộngthức tính cập nhật bộ trọng số:
wij (new) = wij (old) + Δwij Δwij = η.δj.xij Multyle Multyle Adder xij δj xij .δj η ηδjxij wij (old) wij(new)
GVHD: TS. HOÀNG TRANG 63 HV: Nguyễn Lâm Thương Module cập nhật bộ trọng số gồm hai module thực hiện phép nhân tạo giá trị
Δwij, sau đó giá trị Δwij đưa vào module thực hiện phép cộng kết hợp với giá trị trọng số wij (old) để tạo ra giá trị trọng số wij (new).
Bộ 6 trọng số sau khi được cập nhật giá trị w (new ) = [w1 w2 w3 w4 w5 w6] sẽ được lưu trữ vào bộ đệm (register). Khi module control phát tín hiệu huấn luyện, giá trị bộ trọng số w (new) đưa vào module Pre-Backpropagation (khối thực hiện mạng) tiếp tục vòng lặp mới.
4.5 Thu t toán huấn luy n m ng.
Sơ đồ thuật toán huấn luyện mạng như sau:
Hình 4.8: Sơ đồ thuật toán huấn luyện mạng
Khi nhận tín hiệu ngõ vào clk_sys, rst_n, start, in1, in2, bộ 6 trọng số [w], khối Pre_Backpropagation nhận tín hiệu điều khiển ena_prebackpropagation được phát ra từ khối network_control và thực hiện thuật toán module Pre_Backpropagation. Sau đó phát tín hiệu is_cont_train về khối network_control.
Khối network_control nhận tín hiệu ngõ vào is_cont_train là bit 0, sẽ thực hiện xuất kết quả error, ngược lại tín hiệu ngõ vào là bit 1thì khối network_control phát tín hiệu ena_Backpropagation để thực hiện thuật toán Backpropagation , sau th i
clk_sys rst_n start in1 in2 clock_generation Network_control Pre- Backpropagation Backpropagation Update weight is_cont ena_backpropagation error ena_update weight ena_pre.. …
GVHD: TS. HOÀNG TRANG 64 HV: Nguyễn Lâm Thương gian 25 clk, khối network_control phát tín hiệu ena_update_weight đến ngõ vào
khối Update_weight tiến hành quá trình cập nhật trọng số và lưu vào register .
Bộ trọng số mới đưa vào ngõ vào khối Pre_Backpropagation và tiếp tục huấn luyện mạng cho ra tín hiệu is_cont_train. Module network_control sẽ xét điều kiện hội tụ (ngưng huấn luyện) và cho ra giá trị error.
Bộ trọng số w[w1 w2 w3 w4 w5 w6] sau khi mạng được huấn luyện đã hội tụ là những giá trị cần tìm nhằm tạo một kiến trúc vi mạch theo những ngõ vào và ngõ ra mong muốn.
Tóm tắt: Quá trình thực hiện cấu trúc vi mạch huấn luyện mạng Neural truyền thẳng theo giải thuật Backpropagation được chia thành ba giai đoạn: Pre- Backpropagation và Backpropagation và quá trình cập nhật bộ trọng số vào register.
+ Pre-Backpropagation: thực hiện mạng Neural lan truyền thẳng. + Backpropagation: thực hiện giải thuật Backpropagation.
+ Register: Bộ trọng số sau khi cập nhật được đưa vào register ch module control ra tín hiệu huấn luyện vòng lặp mới.
Cấu trúc vi mạch thực hiện dựa theo hai module floating_point_adder và module floating_point_multiple. Dữ liệu được trình bày là dữ liệu 32 bit, floating_point. Các module được đồng bộ qua xung clk được tạo từ module clock_generation.
GVHD: TS. HOÀNG TRANG 65 HV: Nguyễn Lâm Thương
CHƯƠNG 5
K T QU
Trong chương này trình bày những kết quả mô phỏng và kết quả thực nghiệm chạy trên kit DE2. Các kết quả này được chạy từng bước thực hiện quá trình huấn luyện mạng Neural lan truyền thẳng theo giải thuật Backpropagation.
5.1 S đ thực hi n các giai đo n mô ph ng.
Mạng Neural được huấn luyện có hai Neural lớp ngõ vào, một lớp ẩn với 2 Neural và một lớp ngõ ra với 1 Neural (Model 2x2x1). Các giai đoạn thực hiện được mô phỏng theo sơ đồ sau:
Hình 5.1:Sơ đồ thực hiện các giai đoạn mô phỏng mult 1 mult 2 adder 2 adder 1 mult tansig 1 tansig 2 adder
δk compar error sigmoid
δhi w3 w4 w5 w6 w2 w1 in 1 in 2
GVHD: TS. HOÀNG TRANG 66 HV: Nguyễn Lâm Thương
5.2 Bộ nhơn.
Hình 5.2:Bộ nhân mult
Bộ nhân này thực hiện phép nhân ngõ vào input và trọng số wnhư sau: input = (10111101110011001100110011001100)2=(-0.1)10
w = (00111101110011001100110011001100)2=(0.1)10 mult = (10111100001000111101011100001000)2=(-0.01)10
5.3 Bộ cộng.
Bộ cộng thực hiện phép cộng giữa hai bộ nhân ngõ vào, kết quảnhư sau: mult1 = (10111100001000111101011100001000)2=(-0.01)10
mult2 =(00111110000110011001100110011001)2=(0.15)10 add = (00111110000011110101110000101001)2=(0.14)10
GVHD: TS. HOÀNG TRANG 67 HV: Nguyễn Lâm Thương Hình 5.3:Bộ cộng
5.4 Tính Net.
GVHD: TS. HOÀNG TRANG 68 HV: Nguyễn Lâm Thương in1= (10111100001000111101011100001000)2=(-0.01)10 in2= (00111111110000000000000000000000)2=(1.5)10 w1= (00111110011101111100100010101001)2=(0.2420)10 w2= (00111110100010101010010011000110)2=(0.2708)10 net= in1.w1+in2.w2=(00111110110000111001001110000111)2=(0.3820)10 5.5 Tính tansig 1. Hình 5.5:Tính tansig 1 5.6 Tính tansig 2. Hình 5.6:Tính tansig 2
GVHD: TS. HOÀNG TRANG 69 HV: Nguyễn Lâm Thương
5.7 Tính Net 3.
Hình 5.7:Tính Net 3
5.8 Tính sigmoid.
GVHD: TS. HOÀNG TRANG 70 HV: Nguyễn Lâm Thương
5.9 Tính E.
Hình 5.9 :Tính E
5.10 Bộ compare.
GVHD: TS. HOÀNG TRANG 71 HV: Nguyễn Lâm Thương 5.11 Tính δk . Hình 5.11:Tính δk 5.12 Tính δh1. Hình 5.12:Tính δh1 5.13 Tính δh2.
GVHD: TS. HOÀNG TRANG 72 HV: Nguyễn Lâm Thương Hình 5.13:Tính δh2
5.14 C p nh t bộ trọng s .
GVHD: TS. HOÀNG TRANG 73 HV: Nguyễn Lâm Thương Hình 5.15:Cập nhật trọng số 2 (w2)
GVHD: TS. HOÀNG TRANG 74 HV: Nguyễn Lâm Thương Hình 5.17 :Cập nhật trọng số 4 (w4)
GVHD: TS. HOÀNG TRANG 75 HV: Nguyễn Lâm Thương Hình 5.19:Cập nhật trọng số 6 (w6)
Quá trình mô phỏng cập nhật bộ trọng số trên trình bày lần lượt các kết quả theo công thức như sau:
Wij (new) = wij (old ) + Δwij (cập nhật trọng số) Δwij = η .δ .xij (chọn η=15) Ví dụ: Xét trư ng hợp cập nhật trọng số w6 , ta tính: in = (00111111001101011001111001100000)2=(0.7094)10 δk =(00111101110100110000111100001010)2=(0.1032)10 w(old)= (00111111100111011001001001001111)2=(1.2310)10 w(new)= (01000000000101001111100101011111)2=(2.3277)10 Tính η = (2.3277-1.2310)/0.1.32/0.7.94 = 14.98. . . .
GVHD: TS. HOÀNG TRANG 76 HV: Nguyễn Lâm Thương
5.15 Kh i Pre-Backpropagation.
Khối này chủ yếu là tính hàm lỗi (error) , so sánh và sau đó phát tín hiệu về khối network control (tín hiệu is_cont_train) . Khối Pre-Backpropagation tiếp tục thực hiện vòng lặp mới nếu nhận tín hiệu ena_prebackpropagation.
Hình 5.20: Mô phỏng kết quả khối Pre-Backpropagation
input, weight, output1, output2, output, error
GVHD: TS. HOÀNG TRANG 77 HV: Nguyễn Lâm Thương
5.16 Kh i Backpropagation.
Hình 5.21:Mô phỏng kết quảkhối Backpropagation
Hình (5.21) trình bày dữ liệu các giá trị ngõ vào in , giá trị tính output các lớp ẩn và lớp ngõ ra , các giá trị δ lớp ngõ ra và lớp ẩn . input, output, output1, output2, weight(old), weight(new), Out_layer_cof, hid_layer_cof_ 01, Hid_layer_cof_ 02
GVHD: TS. HOÀNG TRANG 78 HV: Nguyễn Lâm Thương
5.17 Kh i weight_register.
Hình 5.22: Mô phỏng khối weight-register
Hình (5.22) trình bày các giá trị bộ trọng số w[w1, w2, w3, w4, w5, w6] đã được cập nhật, giá trị bộ trọng số mới sau đó đưa vào bộ đệm và khối network control phát tín hiệu thực hiện vòng lặp mới.
Updated_weight New_weight
GVHD: TS. HOÀNG TRANG 79 HV: Nguyễn Lâm Thương
5.18 K t qu thực nghi m trên Kit DE2.
Hình 5.23:Giá trị hàm Error (reset) Định dạng số floating point 32 bit như sau:
1 bit 8 bit 23 bit
S e m
Các chân kit DE2 gán giá trị hàm Error (E) như sau: Bit sign S (1 bit): LEDR 17
Phần mũ e (8 bit): LEDG
Phần định trị M (23 bit): LEDR 16 …. 0 dùng hiển thị giá trị phần trị từ bit 22 đến bit 6 (những bit 5….. 0 có giá trị rất nhỏ).
GVHD: TS. HOÀNG TRANG 80 HV: Nguyễn Lâm Thương Hình 5.24:Giá trị hàm Error (start)
Hình (5.24) hiển thị giá trị hàm lỗi E như sau : E: 0 0111 1001 01100110100110101 x x x x x x Bit S=0 , giá trị E là dương
Phần mũ (0111 1001)2 = (121)10 , e = 121-127 = -6
Phần trị m = 01100110100110101 , M = 1.01100110100110101
Giá tri E là 1.01100110100110101 x 2-6 = 0.00000101100110100110101 Vậy: giá trị e khoảng 0.0156
GVHD: TS. HOÀNG TRANG 81 HV: Nguyễn Lâm Thương
CHƯƠNG 6
K T LU N
Với những kết quả đạt được, đề tài đã đáp ứng được những mục tiêu nghiên cứu đặt ra ban đầu. Cụ thể, đề tài đạt được những kết quả sau đây.
Đề tài đã thiết kế cấu trúc vi mạch cho mạng Neural lan truyền thẳng huấn luyện theo giải thuật Backpropagation.
Đềtài đã thiết kế giải thuật được ứng dụng tạo một cấu trúc vi mạch với hai ngõ vào và một ngõ ra mong muốn.
Bên cạnh đó, sự giới hạn về th i gian hoàn thành luận văn, sự hạn chế về điều kiện tiến hành thực nghiệm đã không cho phép thực hiện được những nghiên cứu sâu hơn về lĩnh vực mới này. Chính vì vậy, xin đề xuất một số hướng nghiên cứu tiếp tục sau đây.
Mở rộng cấu trúcvi mạch cho mạng Neural đa lớp.
Tìm những phương pháp luận mới thực hiện tối ưu cấu trúcvi mạch.
Đề ra những biện pháp tính “sai số” trong huấn luyện mạng Neural trong thiết kế vi mạch ảnh hưởng đến tốc độ và chương trình.
Thực hiện cấu trúc vi mạnh cho đư ng sigmoid số (đây là vấn đề cần nghiên cứu trong tương lai).
Đây là những hướng nghiên cứu đang được triển khai trên thế giới. Những kết quả nghiên cứu trong lĩnh vực này có thể áp dụng trực tiếp vào sản xuất và ứng dụng trong giảng dạy bậc đại học. Để tiếp cận và phát triển những hướng nghiên cứu này, cần thực hiện các công việc sau.
Tập trung trí tuệ tập thể bằng cách xây dựng các nhóm nghiên cứu. Bên cạnh đó, thực hiện liên kết và trao đổi với các trư ng đại học hoặc viện nghiên cứu khác trong nước vàtrên thế giới về lĩnh vực này.
Sử dụng các công cụ tính toán, thiết kế, lập trình và mô phỏng chuyên nghiệp do các công ty hàng đầu trên thế giới cung cấp.
GVHD: TS. HOÀNG TRANG 82 HV: Nguyễn Lâm Thương
DANH MỤC TÀI LI U THAM KH O
[1] Sandige, R., “Top-Down Design Process for Gate-Level Combinational Logic Design”, IEEE Transactions on Education, Vol.35, No.3, August 1992,pp. 247-252.
[2] Wolf, W., “Synthesis Tools Help Teach Systems Concepts in VLSI Design”, IEEE Transactions on Education, Vol. 35, No.1, February 1992,pp. 11-16.
[3] Thomas, D., and Moorby, P., “The Verilog Hardware Description Language”, Kluwer Academic Publishers, Norwell, MA, 1991.
[4] Unnikrishnan, K. P. and Venugopal, K.P., “Alopex: A Correlation-Bassed Learning Algorithm for Feed-Forward and Recurrent Neural Networks”, Neural Computation, Vol.6,1994.
[5] Sternheim, E., Singh, R., Madhavan, R., Trivedi, Y., “Digital Design and Synthesis with Verilog HDL”, Automata, San Jose, CA, 1993.
[6] Ruiz, L., and Pandya, A., “VLSI Implementable parallel stochastic learning algorithm”, Proceedings of Conference on Neural, Morphological and Stochastic Methods in Image and Signal Processing, San Diego, 1995.
[7] Roberto L´opez Gonz´alez, “Neural Networks for Variational Problems in Engineering”, PhD Program in Artificial Intelligence Department of Computer Languages and Systems Technical University of Catalonia 2008.
[8] Andrel Dinu, Marcian N.Cirstea, and Silvia E.Cirstea, “Direct Neural_Network Hardware_Implementation Algorithm”, IEEE Transactions On Industrial Electronics, vol.57, no.5.may 2010.
[9] Alin TISAN, Stefan ONIGA, Daniel MIC, Attila BUCHMAN, “DIGITAL IMPLEMENTATION OF THE SIGMOID FUNCTION FOR FPGA
GVHD: TS. HOÀNG TRANG 83 HV: Nguyễn Lâm Thương
CIRCUITS”, Electronic and computer Department, North University of Baia Mare, Romania, Volume50, Number2, 2009.
[10] J-M. Muller et al., “Handbook of Floating-Point Arithmetic”, A part of Springer Science+Business Media, LLC 2010.
[11] Neelmani Chhedaiya, “Implementation of BackPropagation Algorithm in Verilog”, Int.j.Computer Technology & Applications, Vol 3 (1), 340-343, IJCTA| JAN-FEB 2012.
[12] Laura V. Ruiz, “ A VLSI Implementable Learning Algorithm”,Florida Atlantic University, 1996.
[13] Thamer M.Jamel, Ban M. Khammas, “ Implementation of A Sigmoid Activation Function for Neural Network Using FPGA”, Published in the 13 th Scientific Conference of AL-Ma‟moon University College-18 Aprill 2012.