ĐỒ ÁN THIẾT KẾ NEURAL NETWORK TRÊN FPGA ĐỂ NHẬN DẠNG CHỮ SỐ VIẾT TAY

71 1 0
ĐỒ ÁN THIẾT KẾ NEURAL NETWORK TRÊN FPGA ĐỂ NHẬN DẠNG CHỮ SỐ VIẾT TAY

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

ĐỒ ÁN THIẾT KẾ NEURAL NETWORK TRÊN FPGA ĐỂ NHẬN DẠNG CHỮ SỐ VIẾT TAY Trong đồ án này, trước hết, em triển khai Neural Network trên Matlab để nghiên cứu về độ chính xác cũng như tính khả thi trong việc triển khai trên thiết bị FPGA là kit Altera DE2 – EP2C35F672C6. Sau khi triển khai thành công trên Matlab, em đã tìm cách tối ưu hóa về kích thước và độ chính xác để có thể triển khai trên thiết bị FPGA đó. Thiết kế trên FPGA nhận đầu vào là vector chứa các điểm ảnh của ảnh đã qua tiền xử lý, và chỉ làm nhiệm vụ nhận dạng chữ số. Đầu ra là vector thể hiện chữ số nào đang được biểu diễn trên ảnh. Kết quả thu được là độ chính xác trên tập kiểm tra MNIST đạt 94.02%. Việc huấn luyện trên Matlab đã được thực hiện nhiều lần, trước mỗi lần huấn luyện thì kích thước của Neural Network được giảm xuống. Mục tiêu của huấn luyện trên Matlab là để tìm ra mạng có kích thước nhỏ nhất có thể mà vẫn đảm bảo được độ chính xác trên 90%. Sau khi huấn luyện thành công trên Matlab thì Neural Network đó được triển khai trên FPGA với những yêu cầu kỹ thuật cho phần cứng. Từ yêu cầu kỹ thuật, em xây dựng kế hoạch kiểm chứng và tuân theo nó để kiểm chứng thiết kế. Thiết kế đã đạt yêu cầu kỹ thuật khi đã đạt được độ bao phủ chức năng là 100%. Ngoài ra, em còn thống kê trễ xử lý trung bình khi thực hiện nhận dạng từng loại chữ số, từ đó rút ra được một số nhận xét về tính khả thi khi sử dụng thiết kế này trong một hệ thống nhận dạng theo thời gian thực.

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN ĐIỆN TỬ - VIỄN THÔNG ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC Đề tài: THIẾT KẾ NEURAL NETWORK TRÊN FPGA ĐỂ NHẬN DẠNG CHỮ SỐ VIẾT TAY Sinh viên thực hiện: ĐẶNG TÙNG LONG Lớp ĐT2 – K59 Giảng viên hướng dẫn: ThS NGUYỄN THỊ KIM THOA Hà Nội, 06-2019 TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN ĐIỆN TỬ - VIỄN THÔNG ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC Đề tài: THIẾT KẾ NEURAL NETWORK TRÊN FPGA ĐỂ NHẬN DẠNG CHỮ SỐ VIẾT TAY Sinh viên thực hiện: ĐẶNG TÙNG LONG Lớp ĐT2 – K59 Giảng viên hướng dẫn: ThS NGUYỄN THỊ KIM THOA Cán phản biện: Hà Nội, 06-2019 ĐÁNH GIÁ QUYỂN ĐỒ ÁN TỐT NGHIỆP (Dùng cho giảng viên hướng dẫn) Tên giảng viên đánh giá: Họ tên Sinh viên: MSSV: Tên đồ án: Chọn mức điểm phù hợp cho sinh viên trình bày theo tiêu chí đây: Rất (1); Kém (2); Đạt (3); Giỏi (4); Xuất sắc (5) Có kết hợp lý thuyết thực hành (20) Nêu rõ tính cấp thiết quan trọng đề tài, vấn đề giả thuyết (bao gồm mục đích tính phù hợp) phạm vi ứng dụng đồ án Cập nhật kết nghiên cứu gần (trong nước/quốc tế) Nêu rõ chi tiết phương pháp nghiên cứu/giải vấn đề Có kết mơ phỏng/thưc nghiệm trình bày rõ ràng kết đạt Có khả phân tích đánh giá kết (15) Kế hoạch làm việc rõ ràng bao gồm mục tiêu phương pháp thực dựa kết nghiên cứu lý thuyết cách có hệ thống Kết trình bày cách logic dễ hiểu, tất kết phân tích đánh giá thỏa đáng Trong phần kết luận, tác giả rõ khác biệt (nếu có) kết đạt mục tiêu ban đầu đề đồng thời cung cấp lập luận để đề xuất hướng giải thực tương lai Kỹ viết đồ án (10) Đồ án trình bày mẫu quy định với cấu trúc chương logic đẹp mắt (bảng biểu, hình ảnh rõ ràng, có tiêu đề, đánh số thứ tự giải thích hay đề cập đến đồ án, có lề, dấu cách sau dấu chấm, dấu phẩy v.v), có mở đầu chương kết luận chương, có liệt kê tài liệu tham khảo có trích dẫn quy định Kỹ viết xuất sắc (cấu trúc câu chuẩn, văn phong khoa học, lập luận logic có sở, từ vựng sử dụng phù hợp v.v.) Thành tựu nghiên cứu khoa học (5) (chọn trường hợp) Có báo khoa học đăng chấp nhận đăng/đạt giải SVNC khoa 10a học giải cấp Viện trở lên/các giải thưởng khoa học (quốc tế/trong nước) từ giải trở lên/ Có đăng ký phát minh sáng chế Được báo cáo hội đồng cấp Viện hội nghị sinh viên nghiên cứu 10b khoa học không đạt giải từ giải trở lên/Đạt giải khuyến khích kỳ thi quốc gia quốc tế khác chuyên ngành TI contest 10c Khơng có thành tích nghiên cứu khoa học Điểm tổng 1 2 3 4 5 5 5 5 /50 Điểm tổng quy đổi thang 10 Nhận xét khác (về thái độ tinh thần làm việc sinh viên) Ngày: … / … / 20… Người nhận xét (Ký ghi rõ họ tên) ĐÁNH GIÁ QUYỂN ĐỒ ÁN TỐT NGHIỆP (Dùng cho cán phản biện) Giảng viên đánh giá: Họ tên sinh viên: MSSV: Tên đồ án: Chọn mức điểm phù hợp cho sinh viên trình bày theo tiêu chí đây: Rất (1); Kém (2); Đạt (3); Giỏi (4); Xuất sắc (5) Có kết hợp lý thuyết thực hành (20) Nêu rõ tính cấp thiết quan trọng đề tài, vấn đề giả thuyết (bao gồm mục đích tính phù hợp) phạm vi ứng dụng đồ án Cập nhật kết nghiên cứu gần (trong nước/quốc tế) Nêu rõ chi tiết phương pháp nghiên cứu/giải vấn đề Có kết mơ phỏng/thưc nghiệm trình bày rõ ràng kết đạt Có khả phân tích đánh giá kết (15) Kế hoạch làm việc rõ ràng bao gồm mục tiêu phương pháp thực dựa kết nghiên cứu lý thuyết cách có hệ thống Kết trình bày cách logic dễ hiểu, tất kết phân tích đánh giá thỏa đáng Trong phần kết luận, tác giả rõ khác biệt (nếu có) kết đạt mục tiêu ban đầu đề đồng thời cung cấp lập luận để đề xuất hướng giải thực tương lai Kỹ viết đồ án (10) Đồ án trình bày mẫu quy định với cấu trúc chương logic đẹp mắt (bảng biểu, hình ảnh rõ ràng, có tiêu đề, đánh số thứ tự giải thích hay đề cập đến đồ án, có lề, dấu cách sau dấu chấm, dấu phẩy v.v), có mở đầu chương kết luận chương, có liệt kê tài liệu tham khảo có trích dẫn quy định Kỹ viết xuất sắc (cấu trúc câu chuẩn, văn phong khoa học, lập luận logic có sở, từ vựng sử dụng phù hợp v.v.) Thành tựu nghiên cứu khoa học (5) (chọn trường hợp) Có báo khoa học đăng chấp nhận đăng/đạt giải SVNC khoa 10a học giải cấp Viện trở lên/các giải thưởng khoa học (quốc tế/trong nước) từ giải trở lên/ Có đăng ký phát minh sáng chế Được báo cáo hội đồng cấp Viện hội nghị sinh viên nghiên cứu 10b khoa học không đạt giải từ giải trở lên/Đạt giải khuyến khích kỳ thi quốc gia quốc tế khác chuyên ngành TI contest 10c Khơng có thành tích nghiên cứu khoa học Điểm tổng 1 2 3 4 5 5 5 5 /50 Điểm tổng quy đổi thang 10 Nhận xét khác cán phản biện Ngày: … / … / 20… Người nhận xét (Ký ghi rõ họ tên) LỜI NÓI ĐẦU Trước trình bày nội dung phần báo cáo đồ án mình, em xin gửi lời cảm ơn chân thành tới Th.S Nguyễn Thị Kim Thoa, người trực tiếp hướng dẫn, cung cấp tài liệu cho em suốt trình thực đồ án Em xin gửi lời cảm ơn chân thành đến Lab ESRC cho em mượn thiết bị để hoàn thành đồ án Do thời gian có hạn hạn chế mặt kiến thức, báo cáo không tránh khỏi vài sai sót nhỏ Vì vậy, em mong nhận ý kiến đóng góp thầy giáo bạn để đề tài hoàn thiện Hà Nội, tháng 06 năm 2019 Sinh viên thực Đặng Tùng Long LỜI CAM ĐOAN Tôi Đặng Tùng Long, mã số sinh viên 20142642, sinh viên lớp Điện tử 2, khóa K59 Người hướng dẫn Th.S Nguyễn Thị Kim Thoa Tơi xin cam đoan tồn nội dung trình bày đồ án Thiết kế neural network FPGA để nhận dạng chữ số viết tay kết trình tìm hiểu nghiên cứu Các liệu nêu đồ án hoàn toàn trung thực, phản ánh kết đo đạc thực tế Mọi thơng tin trích dẫn tuân thủ quy định sở hữu trí tuệ; tài liệu tham khảo liệt kê rõ ràng Tơi xin chịu hồn tồn trách nhiệm với nội dung viết đồ án Hà Nội, tháng 06 năm 2019 Người cam đoan Đặng Tùng Long MỤC LỤC DANH MỤC KÝ HIỆU VÀ CHỮ VIẾT TẮT i DANH MỤC HÌNH VẼ ii DANH MỤC BẢNG BIỂU iii TÓM TẮT ĐỒ ÁN iv PHẦN MỞ ĐẦU .1 CHƯƠNG GIỚI THIỆU .2 1.1 Giới thiệu Artificial Neural Network 1.1.1 Lịch sử hình thành phát triển 1.1.2 Nguyên lý hoạt động .3 1.1.3 Thuật toán Gradient Descent 1.2 Giới thiệu FPGA 10 1.2.1 Khái niệm FPGA 10 1.2.2 Schematic-based flow 11 1.2.3 HDL-based flow 13 1.4 Giới thiệu SystemVerilog 14 1.5 Giới thiệu mô hình FSMD .14 1.6 Giới thiệu kiểm chứng thiết kế 16 1.7 Kết luận chương 17 CHƯƠNG THIẾT KẾ NEURAL NETWORK VỚI MATLAB 18 2.1 Thuật toán thiết kế 18 2.2 Huấn luyện Matlab 19 2.2.1 Chuẩn bị sở liệu 19 2.2.2 Tiền xử lý huấn luyện 20 2.2.3 Huấn luyện Neural Network 21 2.3 Kiểm tra Matlab 25 2.3.1 Chuẩn bị sở liệu 25 2.3.2 Tiền xử lý kiểm tra 25 2.3.3 Kiểm tra Neural Network 26 2.4 Kết luận chương 27 CHƯƠNG THIẾT KẾ NEURAL NETWORK TRÊN FPGA 28 3.1 Yêu cầu kỹ thuật 28 3.1.1 Đầu vào đầu 28 3.1.2 Hoạt động 29 3.2 Kế hoạch kiểm chứng 31 3.3 Thiết kế RTL 32 3.3.1 Khối DUT 32 3.3.2 Khối ann 34 3.3.3 Biểu diễn tham số Neural Network FPGA 45 3.4 Thiết kế testbench 46 3.4.1 Kiến trúc testbench 46 3.4.2 Kết kiểm chứng thiết kế 49 3.5 Kết luận chương 51 KẾT LUẬN 52 TÀI LIỆU THAM KHẢO 53 BẢNG ĐỐI CHIẾU THUẬT NGỮ ANH VIỆT 54 start_add_parallel Bắt đầu cộng hai vector, phần tử tương ứng cộng thời điểm clr_tansig Xóa giá trị lưu ghi khối tansig start_tansig Bắt đầu tính tansig clr_layer Đưa giá trị layer start_hard_max Bắt đầu tính hard_max done_st Thơng báo cho data path biết hồn thành q trình nhận dạng Nhóm tín hiệu đóng vai trị internal status ann trình bày Bảng 3.7 Nhìn chung tín hiệu internal status làm nhiệm vụ phản hổi từ data path cho control path biết q trình tính tốn khối hồn thành, nhờ mà control path chuyển trạng thái lệnh cho khối làm việc Bảng 3.7 Các tín hiệu internal status khối ann Tên tín hiệu Ý nghĩa rd_done Phản hồi việc đọc từ single_port_ram_with_init thành cơng, liệu rd_data sử dụng loaded_reg_num_1 Phản hồi khối save_reg_blk_1 có ghi nạp giá trị từ rd_data Vì khối save_reg_blk_1 có ghi nhận giá trị từ rd_data nên giá trị đếm lớn loaded_reg_num_1 độ rộng tối thiểu bit mul_vec_done Phản hồi khối mul_vec nhân xong hai vector add_acc_done Phản hồi khối add_float_acc cộng xong số vào giá trị mà tích lũy acc_cnt_times Phản hồi khối add_float_acc cộng tích lũy lần Như trình bày khối add_float_acc cộng tích lũy 15 lần nên giá trị đếm lớn acc_cnt_times 15 độ rộng tối thiểu bit add_par_done Phản hồi khối add_float_parallel cộng xong hai vector tansig_done Phản hồi khối tansig tính xong hàm tansig vector đầu vào hard_max_done Phản hồi khối hard_max tính xong hàm hard_max, kết digit sử dụng layer Phản hồi việc tính tốn lớp thứ Nếu layer = việc tính tốn lớp lớp ẩn, tức tính cơng thức (3.1) (3.2) Nếu layer = việc tính tốn lớp lớp đầu ra, tức tính cơng thức (3.3) (3.4) 41 3.3.2.7 Sơ đồ FSM Sơ đồ FSM control path diễn tả chi tiết việc phối hợp hoạt động khối data path ST_START F start == T ST_HOLD F start == T ST_ADDR_BLK ST_MEM_CTL ST_WAIT_MEM_CTL F F T layer == rd_done == rd_done == F T T T loaded_reg_num_2 == 10 T ST_PAR_ADD loaded_reg_num_2 == 15 F F ST_LOAD_REG_BLK_1 T ST_MUL_VEC loaded_reg_num_1 == F ST_WAIT_MUL_VEC F F T layer == mul_vec_done == mul_vec_done == T F T ST_LOAD_REG_BLK_2 ST_ADD_ACC ST_WAIT_ADD_ACC F add_acc_done == T T acc_cnt_times == 15 F Hình 3.9 Sơ đồ FSM ann_fsm 42 ST_PAR_ADD ST_WAIT_PAR_ADD F F add_par_done == layer == T add_par_done == T T F ST_HARD_MAX ST_TANSIG ST_WAIT_HARD_MAX ST_WAIT_TANSIG hard_max_done == tansig_done == F T T ST_DONE F ST_ADDR_BLK ST_START Hình 3.10 Sơ đồ FSM ann_fsm (tiếp tục) Trên Hình 3.9 Hình 3.10 sơ đồ FSM khối ann_fsm, với cặp state trùng tên hai hình (ST_START, ST_PAR_ADD, ST_ADDR_BLK) trạng thái Ta coi rst_n dù trạng thái mạch quay trạng thái ST_START, rst_n sườn lên clk, mạch chuyển sang trạng thái hình vẽ Các đầu ann_fsm control signal FSMD Loại FSM sử dụng FSM loại Moore với giá trị đầu trạng thái liệt kê Bảng 3.8 Ứng với trạng thái, đầu liệt kê cột Tín hiệu khẳng định nhận giá trị 1, đầu không liệt kê nhận giá trị 43 Bảng 3.8 Giá trị đầu trạng thái ann_fsm Trạng thái Cơng việc ann Tín hiệu khẳng định ST_START Khơng làm ST_HOLD Chờ để bắt đầu tính tốn ST_ADDR_BLK Tính tốn dải địa cần đọc từ load_addr_blk single_port_ram_with_init clr_mul_vec ST_MEM_CTL Bắt đầu đọc liệu từ start_mem_ctl single_port_ram_with_init ST_WAIT_MEM_CTL Đợi trình đọc liệu từ single_port_ram_with_init kết thúc ST_LOAD_REG_BLK_1 Lưu liệu vừa đọc từ load_reg_blk_1 single_port_ram_with_init vào ghi ST_MUL_VEC Bắt đầu nhân hai vector start_mul_vec clr_add_parallel ST_WAIT_MUL_VEC Đợi trình nhân hai vector kết thúc ST_ADD_ACC Bắt đầu cộng tích lũy tích cặp vector add_acc clr_reg_blk_1 ST_WAIT_ADD_ACC Đợi q trình cộng tích lũy kết thúc ST_LOAD_REG_BLK_2 Lưu giá trị tổng vừa cộng tích lũy load_reg_blk_2 tích hai vector vào ghi clr_add_acc ST_PAR_ADD Bắt đầu cộng hai vector start_add_parallel clr_mul_vec ST_WAIT_PAR_ADD Đợi trình cộng hai vector kết thúc ST_TANSIG Bắt đầu tính tansig vector start_tansig clr_reg_blk_2 ST_WAIT_TANSIG Đợi q trình tính tansig kết thúc ST_HARD_MAX Bắt đầu tính hàm hard_max vector start_hard_max ST_WAIT_HARD_MAX Đợi q trình tính hàm hard_max kết thúc ST_DONE Kết thúc nhận dạng done_st clr_layer clr_addr_blk clr_reg_blk_1 clr_mul_vec clr_add_acc clr_reg_blk_2 clr_add_parallel clr_tansig 44 Trên Hình 3.7 ta thấy khối ann_dp gồm nhiều khối con, khối xây dựng theo mơ hình FSMD Như vậy, DUT thiết kế gồm có nhiều tầng FSMD 3.3.3 Biểu diễn tham số Neural Network FPGA Như biết, Neural Network có tham số: - W2 ma trận chứa weight lớp ẩn, cỡ 15x717 B2 ma trận chứa bias lớp ẩn, cỡ 15x1 W3 ma trận chứa weight lớp đầu ra, cỡ 10x15 B3 ma trận chứa bias lớp đầu ra, cỡ 10x1 Vậy tổng cộng mạng có chứa 10930 phần tử Khối single_port_ram_with_init cần phải lưu 10930 phần tử đó, cộng với 717 phần tử ảnh cần nhận dạng, tổng 11647 số Để lưu 11647 số vào nhớ kit DE2, ta cần phải có cách biểu diễn số phù hợp, để cân đối kích thước bit độ xác số Trước tiên, phần trình bày cách biểu diễn số thực theo chuẩn IEEE 754 singleprecision binary floating-point format [9], gọi biểu diễn số thực dấu phẩy động 32 bit theo chuẩn IEEE 754 Số thực 32 bit chia thành trường theo thứ tự từ trái qua phải - Sign: rộng bit, ký hiệu s Exponent: rộng bit, ký hiệu e Fraction: rộng 23 bit, ký hiệu f Riêng số 0, ta biểu diễn 32 bit mà không tuân theo công thức (3.8) Đối với số khác 0, ta quy đổi theo công thức (3.8), với v số cần quy đổi 𝑣 = (−1)𝑠 × 2𝑒−127 × (1 𝑓)2 (3.8) Ví dụ số +0.15625 biểu diễn theo chuẩn kết Hình 3.11 Hình 3.11 Kết biểu diễn số 0.15625 [9] Thật vậy, ta có: 𝑣 = (−1)0 × 2(01111100)2−127 × (1.010 … 0)2 = × 2124−127 × 1.25 = 0.15625 (3.9) Dựa vào chuẩn trên, ta hình thành ý tưởng biểu diễn tham số Neural Network FPGA Ta biểu diễn số thực dạng dấu phẩy động 16 bit gần giống với cách Cụ thể ta chia 16 bit thành trường: 45 - Sign: rộng bit, ký hiệu s Exponent: rộng bit, ký hiệu e Fraction: rộng bit, ký hiệu f Công thức quy đổi cơng thức (3.8) Thực tế cách biểu diễn số nhớ máy tính Matlab dấu phẩy động 64 bit, nên với cách biểu diễn 16 bit chắn gây sai số FPGA với Matlab Nhưng biểu diễn số 64 bit Matlab kit DE2 bị thiếu tài nguyên, ta phải đánh đổi độ xác kích thước 3.4 Thiết kế testbench 3.4.1 Kiến trúc testbench Testbench thiết kế theo kế hoạch kiểm chứng trình bày phần 3.2 Về testbench testbench có nhiều lớp, xây dựng dựa lý thuyết trình bày phần 1.5, tùy biến số lớp để phù hợp Hình 3.12 sơ đồ khối testbench 46 top img_inv_tst img_env img_agent_0 img_generator transaction img_drv label img_scoreboard img_agent_1 img_generator transaction img_drv label img_scoreboard img_agent_9 img_generator transaction img_drv label img_scoreboard intf DUT Hình 3.12 Sơ đồ khối testbench 47 Chức khối trình bày Bảng 3.9 SystemVerilog có hỗ trợ kiểu liệu phù hợp cho khối, điểm mạnh ngôn ngữ Bảng 3.9 Chức khối testbench Khối Loại Kiểu Chức liệu top top module module cao project, bao gồm DUT, interface test img_inv_tst test program Chứa enviroment cấu hình agent enviroment đưa transaction vào DUT thông qua interface img_env enviroment class Bao gồm 10 agent từ img_agent_0 đến img_agent_9 từ img_agent_0 agent class Bao gồm generator, driver scoreboard Mỗi đến img_agent_9 agent chứa loại chữ số Các mẫu img_agent_0 có label số 0, mẫu img_agent_1 có label số 1, … Các mẫu img_agent_9 có label số img_generator generator class Tạo transaction img_drv driver class Biến đổi transaction thành tín hiệu logic để gán vào chân input DUT img_transaction transaction class Chứa giá trị điểm ảnh ảnh cần nhận dạng img_scoreboard scoreboard class Lấy đầu từ DUT để so sánh với giá trị mong muốn intf interface interface Nhóm chân tín hiệu DUT lại thành đối tượng để DUT dễ giao tiếp với test Về coi luồng liệu img_transaction testbench từ img_generator, qua img_driver đến DUT, cuối đến img_scoreboard Với img_transaction có label tương ứng Tại img_scoreboard so sánh label với đầu DUT, tức nhận dạng đúng, khác tức nhận dạng sai Tại img_scoreboard tiến hành kiểm tra Đặc tính kế hoạch kiểm chứng, là: Khi we = 0, tiến hành hoạt động nhận dạng, từ nhận dạng xong (done = 1) đến lúc start trở giá trị digit không thay đổi Trong testbench khơng có khối assertion u cầu kỹ thuật khơng đề cập đến mối quan hệ thời gian tín hiệu DUT Khối functional coverage khơng có testbench theo dõi thủ cơng theo thời gian để biết tiến độ kiểm chứng 48 3.4.2 Kết kiểm chứng thiết kế Trong phần kế hoạch kiểm chứng nói kịch hoạt động testbench Sau sử dụng kịch đó, tức kiểm tra tất mẫu tập kiểm tra MNIST, ta kết thống kê Bảng 3.10 Bảng 3.10 Kết kiểm chứng thiết kế Chữ số SUM PASS FAIL % PASS CHANGE 980 959 21 97.86 1135 1117 18 98.41 1032 963 69 93.31 1010 935 75 92.57 982 932 50 94.91 892 806 86 90.36 958 913 45 95.30 1028 966 62 93.97 974 892 82 91.58 1009 928 81 91.97 Cột SUM tổng số mẫu ứng với chữ số, cột PASS thể có mẫu nhận dạng đúng, cột FAIL thể có mẫu bị nhận dạng sai Độ xác trung bình trung bình cộng cột (% PASS) 94.02% Độ xác trung bình đạt 90% chứng tỏ Đặc tính 2, Cột CHANGE bảng thể có mẫu vi phạm Đặc tính 5, kết khơng có mẫu bị vi phạm, thiết kế thỏa mãn Đặc tính Đặc tính reset quan sát thủ cơng sóng cho kết Sau kiểm tra thấy thỏa mãn Đặc tính 1, 2, 3, 5, ta tiến hành biên dịch mã nguồn RTL phần mềm Quartus với thiết bị đích kit DE2 – 2C35F672C6N hãng Altera, mục đích để kiểm tra Đặc tính Kết biên dịch thành cơng Hình 3.13 Thiết kế chiếm 74% thành phần logic 54% nhớ kit 49 Hình 3.13 Biên dịch thành cơng cho kit EP2C35F672C6 Vậy tất Đặc tính thỏa mãn, thiết kế đạt yêu cầu kỹ thuật, ta có độ bao phủ chức đạt 100% Ngồi ta cịn thống kê trễ xử lý trung bình theo đơn vị số lượng xung clk, thống kê Bảng 3.11 Bảng 3.11 Trễ xử lý trung bình với chữ số Chữ số Trễ xử lý trung bình 99380 99073 99228 99189 99171 99196 99260 99122 99158 99074 50 Từ việc tính trễ xử lý ta có nhận xét sau: Hiện video thường chạy với tốc độ 30 fps (30 frames per second), tức giây có 30 hình ảnh phát, hay tốc độ thay đổi hình ảnh 30 giây Giả sử với hình ảnh ta đưa qua hệ thống để nhận dạng chữ số theo real time Các trễ xử lý thống kê khơng có số vượt q 100000 chu kỳ clk Ngay làm tròn trễ xử lý vừa thống kê lên thành 100000 số chu kỳ clk, độ dài chu kỳ tối đa để chạy real time là: 30 100000 = 3000000 (s), hay tần số tối thiểu để chạy real time MHz Tần số MHz tần số thấp thiết bị FPGA thị trường nay, thường chạy với tần số tối thiểu khoảng vài chục MHz Do việc áp dụng thiết kế vào hệ thống nhận dạng theo real time khả thi mặt công nghệ 3.5 Kết luận chương Thiết kế Neural Network FPGA thỏa mãn tất yêu cầu kỹ thuật So với độ xác 94.08% Matlab, độ xác FPGA đạt thấp chút 94.02%, nhiên đạt 90% yêu cầu đề Sự khác cách biểu diễn tham số Matlab 64 bit, cách biểu diễn tham số FPGA 16 bit Độ xác nêu độ xác tập kiểm tra MNIST, tập liệu cụ thể khơng phải độ xác theo cách nói chung chung khơng có cụ thể, người dùng hình dung tin cậy thiết kế Kiến trúc RTL thiết kế xây dựng dựa theo mơ hình FSMD gồm nhiều tầng Tầng cao thiết kế gồm control path data path, data path lại xây dựng từ nhiều module mà module lại FSMD có control path data path riêng Chương khơng sâu vào trình bày module có kiến trúc FSMD cụ thể nào, trình bày tổng quan chức module con, người đọc dễ dàng hình dung hoạt động hệ thống Bên cạnh mã nguồn RTL thiết kế cịn có mã nguồn testbench, testbench có nhiều tầng, viết ngôn ngữ SystemVerilog theo kiểu hướng đối tượng Quá trình kiểm chứng thiết kế đạt độ bao phủ chức 100% 51 KẾT LUẬN Trong báo cáo này¸ em trình bày vấn đề Neural Network FPGA Từ việc triển khai Neural Network Matlab, em triển khai thành công Neural Network FPGA để nhận dạng chữ số viết tay Kết thu độ xác đạt 94.02% tập kiểm tra MNIST Thiết kế chưa thể áp dụng vào lĩnh vực cụ thể sống, chưa thể tạo giá trị thương mại khoảng thời gian mà em học tập nhiều Neural Network FPGA Đó khoảng thời gian để thân em cải thiện nhiều kỹ sử dụng ngôn ngữ SystemVerilog, kỹ thiết kế phần cứng kỹ sử dụng phần mềm QuestaSim hệ điều hành Centos Tuy đạt mục tiêu đề ra, hạn chế mặt thời gian thực hiện, đồ án chưa phát triển hết tính Neural Network, cụ thể triển khai việc nhận dạng, cịn việc huấn luyện Neural Network chưa triển khai Trong tương lai, có hội, em tiếp tục nghiên cứu phát triển loại Neural Network FPGA với nhiều tính 52 TÀI LIỆU THAM KHẢO [1] David Kriesel (2005, May 27) A brief introduction to neural network [Online] Available : http://www.dkriesel.com/en/science/neural_networks [2] http://www.lsi-contest.com/2018/shiyou_3e.html, truy nhập cuối ngày 29/4/2019 [3] Vũ Hữu Tiệp (2018, March 27) Machine learning [Online] Available : https://machinelearningcoban.com/ebook/ [4] Clive Maxfield, The design warrior’s guide to FPGAs Elsevier’s Science and Technology Right Department, Oxford, UK, 2004 [5] Stuart Sutherland, Simon Davidmann, Peter Flake, SystemVerilog For Design, Second Edition Springer Science+Business Media, LLC, 233 Spring Street, New York, NY 10013, USA, 2006 [6] Pong P.Chu, FPGA prototyping by verilog examples (Xilinx SpartanTM-3 Version) A John Wiley & Sons, 111 River Sheet, Hoboken, 2008 [7] Chris Spear, SystemVerilog for verification (Second Edition) Springer Science+Business Media, LLC, 233 Spring Street, New York, NY 10013, USA, 2006 [8] http://yann.lecun.com/exdb/mnist/, truy nhập cuối ngày 13/05/2019 [9] https://en.wikipedia.org/wiki/Single-precision_floating-point_format, truy nhập cuối ngày 13/05/2019 53 BẢNG ĐỐI CHIẾU THUẬT NGỮ ANH VIỆT Thuật ngữ tiếng Anh Thuật ngữ tiếng Việt Arfitical Neural Network Mạng neuron nhân tạo Neural Network Mạng neuron (nhân tạo) Latency Trễ xử lý Input Layer Lớp đầu vào Hidden Layer Lớp ẩn Output Layer Lớp đầu Supervisor Giám sát viên Weight Trọng số Bias Hạng tử tự Activate function Hàm kích hoạt Square error function Hàm lỗi bình phương Cost function Hàm giá Backpropagation Lan truyền ngược Learning rate Tốc độ học Local minimum Cực tiểu cục Schematic-based flow Luồng thiết kế dựa sơ đồ nguyên lý HDL-based flow Luồng thiết kế dựa HDL Verification Kiểm chứng thiết kế Verification Plan Kế hoạch kiểm chứng Specification Yêu cầu kỹ thuật Functional Coverage Bao phủ chức 54 Grayscale Ảnh xám Pixel Điểm ảnh Train set Bộ huấn luyện Validation set Bộ xác nhận Test set Bộ kiểm tra Compile Biên dịch 55

Ngày đăng: 28/04/2023, 07:14

Tài liệu cùng người dùng

Tài liệu liên quan