Dựa vào dữ liệu ngõ vào là ảnh chụp trong điều kiện tối và ảnh của vật thể tương ứng trong điều kiện đầy đủ ánh sáng, hệ thống sẽ tiến hành huấn luyện để rút trích đặc trưng và xây dựng
Trang 1ĐẠI HỌC QUỐC GIA TP HCM TRƯỜNG ĐẠI HỌC BÁCH KHOA
Trang 2CÔNG TRÌNH ĐƯỢC HOÀN THÀNH TẠI TRƯỜNG ĐẠI HỌC BÁCH KHOA – ĐHQG - HCM
Cán bộ hướng dẫn khoa học: Tiến sĩ Trương Quang Vinh
Cán bộ chấm nhận xét 1: Tiến sĩ Nguyễn Minh Sơn
Cán bộ chấm nhận xét 2: Tiến sĩ Bùi Trọng Tú
Luận văn thạc sĩ được bảo vệ tại Trường Đại học Bách Khoa, ĐHQG Tp HCM ngày 17 tháng 09 năm 2020
Thành phần Hội đồng đánh giá luận văn thạc sĩ gồm:
(Ghi rõ họ, tên, học hàm, học vị của Hội đồng chấm bảo vệ luận văn thạc sĩ)
1 TS Hồ Văn Khương – Chủ tịch Hội đồng
2 TS Nguyễn Minh Sơn – Phản biện 1
3 TS Bùi Trọng Tú – Phản biện 2
4 TS Nguyễn Lý Thiên Trường – Thư ký
5 TS Trần Hoàng Linh – Uỷ viên
Xác nhận của Chủ tịch Hội đồng đánh giá LV và Trưởng Khoa quản lý chuyên ngành sau khi luận văn đã được sửa chữa (nếu có) CHỦ TỊCH HỘI ĐỒNG TRƯỞNG KHOA…………
Trang 3ĐẠI HỌC QUỐC GIA TP.HCM
TRƯỜNG ĐẠI HỌC BÁCH KHOA
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập - Tự do - Hạnh phúc
NHIỆM VỤ LUẬN VĂN THẠC SĨ
Họ tên học viên: Trần Thị Thu Trang MSHV: 1870649 Ngày, tháng, năm sinh: 04/04/1995 Nơi sinh: Long An Chuyên ngành: Kỹ thuật Điện tử Mã số: 8520203
I TÊN ĐỀ TÀI: Nâng cao chất lượng ảnh tối sử dụng thuật toán mạng thần kinh
Quaternion trên FPGA
II NHIỆM VỤ VÀ NỘI DUNG: Nghiên cứu mô hình neural network xử lý trên tập số
Quaternion Xây dựng mô hình training và mô phỏng trên phần mềm, hiện thực thiết kế trên phần cứng và kiểm tra kết quả lõi IP
III NGÀY GIAO NHIỆM VỤ : 01/2020
IV NGÀY HOÀN THÀNH NHIỆM VỤ: 09/2020
V CÁN BỘ HƯỚNG DẪN (Ghi rõ học hàm, học vị, họ, tên): TS Trương Quang Vinh
Trang 4Để hoàn thành được nghiên cứu này, tôi xin chân thành gửi lời cảm ơn đến thầy hướng dẫn – TS Trương Quang Vinh, người đã tận tình hỗ trợ tôi từ lúc chọn đề tài, định hướng phương pháp tiếp cận, cũng như cung cấp môi trường nghiên cứu để tôi có điều kiện tốt nhất triển khai ý tưởng và thực hiện đề tài của mình Cảm ơn thầy vì đã đồng hành và cùng tôi cố gắng đến cận ngày báo cáo để có một kết quả tốt nhất so với khả năng và điều kiện hiện tại
Từ tận đáy lòng, tôi cũng xin cảm ơn sự quan tâm sâu sắc của thầy TS Trần Hoàng Linh, thầy đã tạo điều kiện tốt nhất cho Học viên kịp tiến độ của mình và đặc biệt là cho tôi – sinh viên từ trường đại học khác một cái nhìn tốt đẹp về Bộ môn Điện tử, trường Đại học Bách khoa Tp Hồ Chí Minh với một không khí thân thiện, sẵn sàng hỗ trợ hết mình vì Học viên
Tôi cũng xin chân thành cảm ơn Quý Thầy Cô Bộ môn Điện tử nói riêng, khoa Điện – Điện tử nói chung đã truyền đạt cho tôi nhiều kiến thức hay và bổ ích để tôi có được nền tảng cần thiết trên con đường thực hiện đề tài cũng như ứng dụng vào công việc sau này
Cảm ơn trường Đại học Bách khoa Thành phố Hồ Chí Minh đã là ngôi trường tuyệt vời mà tôi gắn bó khi lựa chọn vào con đường học Cao học
Bên cạnh đó, tôi cũng xin cảm ơn người thầy cũ của mình, TS Lê Đức Hùng – người
đã bên cạnh động viên tôi khi gặp biến cố cá nhân trong quá trình thực hiện đề tài Nhờ những lời động viên, quan tâm của thầy, tôi mới có thể tiếp tục với đề tài và có mặt trong đợt báo cáo này (dù đề tài vẫn còn nhiều thiếu sót) Cảm ơn thầy vì đã hỗ trợ môi trường nghiên cứu tại DESLab để tôi trở về nghiên cứu và sử dụng thiết bị
Cảm ơn các đồng nghiệp tại công ty TNHH Ampere Computing Vietnam đã động viên
và hỗ trợ, thông cảm cho tôi về mặt công việc, tinh thần trong giai đoạn nước rút của luận văn
Và lời cảm ơn đặc biệt nhất là dành cho gia đình Con xin cảm ơn Ba Mẹ đã hết lòng quan tâm, chăm sóc để con có điều kiện tốt nhất trên con đường học vấn
Một lần nữa, tôi xin chân thành cảm ơn
Thành phố Hồ Chí Minh, Tháng 9 Năm 2020
Học viên thực hiện
Trang 5Báo cáo này trình bày quá trình hiện thực hóa phần cứng nâng cao chất lượng ảnh tối
sử dụng mạng thần kinh nhân tạo dựa trên tập số ảo Quarternion Dựa vào dữ liệu ngõ vào là ảnh chụp trong điều kiện tối và ảnh của vật thể tương ứng trong điều kiện đầy đủ ánh sáng, hệ thống sẽ tiến hành huấn luyện để rút trích đặc trưng và xây dựng mô hình phù hợp để nâng cao chất lượng ảnh Sau giai đoạn huấn luyện trên phần mềm, thuật toán dành cho quá trình này sẽ được hiện thực trên phần cứng Với ngõ vào là ảnh bất kì chụp trong điều kiện tối với định dạng ba kênh màu đỏ, xanh dương, xanh lá, hệ thống sẽ xử lý dựa vào mô hình đã xây dựng được và đưa ra kết quả ảnh sau khi được nâng cao chất lượng
Trang 6Tôi xin cam đoan Luận văn “Nâng cao chất lượng ảnh tối sử dụng mạng thần kinh Quaternion trên FPGA” là đề tài nghiên cứu của cá nhân tôi, được thầy TS Trương Quang Vinh hướng dẫn thực hiện Các nội dung có liên quan trong bài viết đều được ghi trích dẫn nguồn gốc rõ ràng Kết quả xây dựng phần cứng, kết quả mô phỏng là trung thực và do chính tôi thực hiện, không sao chép kết quả nghiên cứu của đề tài khác Tôi xin chịu hoàn toàn trách nhiệm với cam đoan của mình
Trang 7Đặt vấn đề 1
Đối tượng và phạm vi nghiên cứu 2
Đối tượng nghiên cứu 2
Phạm vi nghiên cứu 3
Mục tiêu và nội dung đề tài 3
AI và các khái niệm của AI 4
Neural Network 4
Deep Learning 6
Quaternion 10
Các phép toán của quaternion 11
Quaternion neural network 12
Dữ liệu ngõ vào và ngõ ra 15
Các giai đoạn của hệ thống tổng quan 15
Hệ thống phần cứng 18
Kiến trúc phần cứng chi tiết 22
Khối 9 to 1 22
Khối tính ma trận xoay và trọng số chuẩn hóa 23
Khối nhân ma trận 23
Khối chia CORDIC 25
Khối nhân MBWM 26
Khối tính căn bậc hai 28
Hàm activation RELU 28
Bộ tính tổng 10, tổng 6 29
Kiến trúc bộ tính bù 2 30
Trang 8Tiêu chí đánh giá chất lượng ảnh khôi phục 36
Kết quả tổng hợp trên FPGA 37
Kết luận 38
Định hướng phát triển 38
Trang 9Hình 1 Neural nhân tạo và mô hình neural sinh học 4
Hình 2 Các hàm activation cơ bản 5
Hình 3 Mô hình Neural Network 6
Hình 4 Mối quan hệ của AI, ML, NN và DL 6
Hình 5 Sự thay đổi trạng thái của mô hình huấn luyện ứng với số epoch 10
Hình 6 Mô hình tổng quát của QNN 13
Hình 7 Sơ đồ tổng quát các giai đoạn của hệ thống QNN 17
Hình 8 Sơ đồ tổng quát của bước feed-forward được dùng trong giai đoạn training và inference 18
Hình 9 Tổng quan thiết kế 19
Hình 10 Thứ tự quét ảnh ngõ vào 20
Hình 11 Sơ đồ tổng quan thiết kế lõi QNN 20
Hình 12 Mạch tuần tự của thiết kế lõi QNN 21
Hình 13 Sơ đồ mạch 9 to 1 22
Hình 14 Kiến trúc khối Neuron Line 22
Hình 15 Kiến trúc thuật toán của khối nhân ma trận 24
Hình 16 Các chế độ tính toán của thuật toán CORDIC 25
Hình 17 Sơ đồ phần cứng của mạch chia CORDIC 26
Hình 18 Số lượng partial của mạch nhân MBWM 27
Hình 19 Sơ đồ nguyên lý khối Booth-encoder 27
Hình 20 Kiến trúc khối RELU 29
Hình 21 Kiến trúc bộ Carry Select Adder 2-3-4-4-5 29
Hình 22 Kiến trúc bộ sum 10 và sum 6 30
Hình 23 Nguyên lý mạch bù 2 4-bit 30
Hình 24 Dữ liệu ảnh của quá trình training 31
Hình 25 Mô hình sau khi được training 32
Hình 26 Kết quả phục hồi ảnh mô phỏng trên MATLAB 32
Hình 27 Sơ đồ mô phỏng bộ QNN 33
Hình 28 Kết quả phục hồi ảnh trên mô phỏng phần cứng 34
Hình 29 Kết quả dạng sóng mô phỏng trên QuestaSim 35
Hình 30 Kết quả tổng hợp thiết kế trên FPGA 37
Trang 10Bảng 1 Cách biểu diễn dữ liệu khối tính ma trận xoay và trọng số chuẩn hóa 23
Bảng 2 Cách biểu diễn dữ liệu khối nhân ma trận 24
Bảng 3 Cách biểu diễn dữ liệu khối căn bậc hai 28
Bảng 4 Bảng tra khối tính căn bậc hai 28
Bảng 5 Giá trị PSNR của các ảnh dùng trong quá trình kiểm tra thiết kế 36
Bảng 6 Giá trị YBr của tập ảnh dùng trong quá trình kiểm tra thiết kế 37
Trang 11A
ABS Absolute value
AI Artificial Intelligent
ASIC Application-Specific Integrated Circuit
ANN Artificial Neural Network
C
CORDIC Coordinate Rotation Digital Computer
CSA Carry Select Adder
Trang 12Camera hoạt động dựa trên việc thu nhận dữ liệu của các cảm biến ảnh Nguyên lý hoạt động của cảm biến ảnh là chuyển đổi tín hiệu sóng ánh sáng thành tín hiệu điện, sau đó các tín hiệu điện được lưu trữ và hiển thị bởi các thiết bị điện tử Trong điều kiện thiếu sáng như ban đêm, độ rọi của ánh sáng– đại lượng đặc trưng cho lượng ánh sáng trên một đơn vị diện tích – rất thấp dẫn tới các cảm biến này không thể hoạt động hiệu quả Nếu chụp ảnh với thời gian phơi sáng ngắn, ảnh sẽ chịu tác động của nhiễu, ngược lại, khi tăng thời gian phơi sáng, ảnh sẽ có hiện tượng mờ do sự chuyển động của vật thể và mất đi tính chân thực
Hiện nay, trên thị trường có nhiều sản phẩm, phương pháp để khắc phục hiện tượng trên, có thể kể đến một số phương pháp như sau:
Ø Sử dụng camera có độ phân giải cao: Các hệ thống High ISO chỉ phù hợp trong việc tăng cường độ sáng, nhưng hệ thống này cũng gặp nhiều hạn chế là khuếch đại tín hiệu nhiễu
Ø Các loại camera ban đêm: night vision camera - loại camera được trang bị cảm biến ảnh chất lượng cao, nhạy với ánh sáng ngoài vùng khả kiến, hoặc camera hồng ngoại Tuy nhiên, hai phương pháp này loại có những nhược điểm là ảnh thu được là ảnh trắng đen, không thu được màu sắc chính xác của vật thể
Ø Tăng thời gian phơi sáng: là tăng thời gian để ánh sáng đi vào cảm biến ảnh Phương pháp này chỉ có thể áp dụng để chụp ảnh tĩnh, vật thể không di chuyển
Cùng với sự phát triển không ngừng của khoa học kỹ thuật, công nghệ trí tuệ nhân tạo Artificial Intelligent (AI) đã và đang chiếm hữu một vị trí cực kì quan trọng ở rất nhiều lĩnh vực AI có thể học hỏi và xây dựng mô hình toán học từ những dữ liệu của người dùng cung cấp và thực hiện kết quả với độ chính xác cao trên dữ liệu cần xử lý
Nắm được những đặc trưng đó, đã có nhiều nghiên cứu ra đời trong việc ứng dụng Neural Network vào xử lý ảnh ban đêm Có thể kể đến nghiên cứu “A New Scheme for Color
Trang 13Night Vision by Quaternion Neural Network” [1], nhóm tác giả đã đề xuất mô hình Quaternion Neural Network (QNN) – một biến thể của ANN và họ đã đạt được kết quả thực nghiệm tốt hơn các mô hình ANN thông thường và đây cũng là ý tưởng chính của đề tài này Tiếp đó,
“Learning to See in the Dark” [2] đã đề xuất một phương pháp khác là Fully-Convolutional Network (FCN), chất lượng ảnh hồi phục loại bỏ hầu hết nhiễu, khôi phục sinh động màu sắc của vật thể và thời gian, tốc độ xử lý tối ưu hơn các phương pháp xử lý truyền thống Đề tài này đã sử dụng bộ ảnh “See-in-the-Dark” – SID của nhóm tác giả Tuy nhiên, những nghiên cứu nói trên đều tương đối phức tạp, chủ yếu được triển khai trên phần mềm như nền tảng của Amazon [3]
Bên cạnh đó, có thể kể đến một số nghiên cứu thermal image colorization - “tô màu” cho ảnh hồng ngoại như “Learning to Colorize Infrared Images” [4] hay “Thermal Colorization using Deep Neural Network” [5] Trong điều kiện không có ánh sáng, camera hồng ngoại (thermal infrared camera) có thể hoạt động và thu thập ảnh trắng đen Với các phương pháp này, ảnh từ camera hồng ngoại sẽ được thêm màu nhằm tăng thêm độ sinh động cho vật thể Tuy nhiên, việc thêm màu không đảm bảo tính chính xác của thông tin thu thập được Hơn thế, với camera thường, hình ảnh thu được chất lượng tương đối thấp và việc tô màu như camera hồng ngoại gặp nhiều thách thức
Tổng hợp các vấn đề trên để hình thành ý tưởng xây dựng một phần cứng nâng cao chất lượng ảnh tối sử dụng Quaternion Neural Network Bởi lẽ, xu hướng hiện nay là triển khai hệ thống AI trên phần cứng FPGA và Application-Specific Integrated Circuit (ASIC), để tăng tốc xử lý Có thể kể đến các phần cứng phổ biến như Tensor Processing Unit (TPU) của Google [3], Deep Convolution Neural Network SoC của STMicroelectronics [6]
Hệ thống nâng cao chất lượng ảnh tối sử dụng thuật toán Quaternion Neural Network
sẽ bao gồm hai giai đoạn cơ bản: training (học) và inference (suy luận và đưa ra quyết định) Trong đó, giai đoạn traning là giai đoạn chỉ thực hiện một lần dựa trên những dữ liệu đã được chuẩn bị sẵn nên có thể thực hiện trên phần mềm, giai đoạn inference là giai đoạn thực hiện tính toán dựa trên dữ liệu ngõ vào, cho nên có thể tối ưu giai đoạn này trên phần cứng để tăng tốc độ xử lý
Đối tượng và phạm vi nghiên cứu
Đối tượng nghiên cứu
Để xây dựng thiết kế nâng cao chất lượng ảnh trong điều kiện thiếu sáng, cần khảo sát đặc điểm, tính chất của những đối tượng sau:
Ø Thuật toán Quaternion Neural Network: thuật toán AI xử lý dựa trên các số Quaternion
Trang 14Ø Tập dữ liệu training: tập dữ liệu bao gồm ảnh trong điều kiện sáng và ảnh trong điều kiện tối để làm dữ liệu mẫu
Ø Các thuật toán để xây dựng các phép trính trên phần cứng
Ø Kỹ thuật viết RTL code tối ưu cho kiến trúc phần cứng
và debug phần cứng
Thiết kế phần cứng bằng ngôn ngữ lập trình Verilog HDL và kiểm tra thiết kế để đảm bảo yêu cầu về chức năng cũng như tốc độ và tài nguyên
Mục tiêu và nội dung đề tài
Dựa trên những vấn đề thực tiễn và cơ sở khoa học, những nghiên cứu được trình bày phía trên, ta có thể xây dựng hệ thống “Nâng cao chất lượng ảnh tối sử dụng thuật toán mạng thần kinh Quaternion trên FPGA” với những đặc điểm và tính năng mong đợi như sau:
v Về nguyên lý hoạt động: Hệ thống là phần cứng có khả năng xử lý dữ liệu ảnh ngõ vào được chụp trong điều kiện thiếu sáng Ảnh sau khi qua hệ thống sẽ được khôi phục thành ảnh có hình dạng rõ ràng và có màu sắc của vật thể
v Về nội dung đề tài: Đề tài phải xây dựng được các thành phần cơ bản như bên dưới
Ø Thu thập tập dữ liệu đầu vào và đầu ra mong đợi cho quá trình training, có thể tham khảo tập dữ liệu SID của nghiên cứu [2]
Ø Hiện thực hoá việc training mô hình QNN với giai đoạn feed-forward là đưa dữ liệu thu thập được vào tính toán và giai đoạn Back-propagation trên C++ để cập nhật các thông số cho mô hình, tăng độ chính xác cho QNN
Ø Mô phỏng mô hình QNN trên phần mềm MATLAB để đánh giá độ chính xác của thuật toán
Ø Xây dựng thuật toán cho phần cứng, tìm hiểu các thuật toán xử lý tối ưu, phù hợp với thiết kế phần cứng FPGA
Trang 15TÌM HIỂU VỀ THUẬT TOÁN
AI và các khái niệm của AI
Artificial Intelligence (AI) là định nghĩa của trí tuệ nhân tạo và được ứng dụng trong công nghệ máy tính hiện nay Khái niệm AI được xuất hiện đầu tiên bởi John McCarthy – nhà khoa học máy tính Mỹ, năm 1956 tại Hội nghị The Dartmouth, từ đó đã mở ra một lĩnh vực nghiên cứu đầy thú vị và tiềm năng Mục đích của AI là dựa trên cách thức hoạt động của não
bộ con người, từ đó hình thành khả năng xử lý thông minh cho máy móc, thiết bị như trí thông minh của con người
Cùng với sự phát triển của AI, khái niệm Machine Learning (ML – máy học) cũng xuất hiện Máy học là một tập con của AI, thể hiện khả năng học hỏi dựa trên dữ liệu đầu vào rất lớn Đầu tiên, các phương pháp ML phải trải qua giai đoạn học (training) để rút trích đặc trưng
từ những dữ liệu này và xây dựng mô hình tổng quát Sau đó là giai đoạn suy luận (inference), lúc này các đặc trưng đã tổng quát thành mô hình, dữ liệu mới sẽ đi vào mô hình này và được đưa ra quyết định kết quả ngõ ra
Neural Network
Neural Network (NN) là mô hình toán học mô phỏng cách thức hoạt động của các nơ ron trong bộ não của con người Hình 1 là sự tương đồng giữa các Neural được toán học hóa
và các nơ ron trong não bộ con người
Hình 1 Neural nhân tạo và mô hình neural sinh học
Về cách thức hoạt động, khi nơ ron nhận tín hiệu đầu vào từ các sợi nhánh của tế bào thần kinh (dendrites), nếu tín hiệu vượt qua ngưỡng (threshold) thì nó sẽ được chuyển qua các
nơ ron khác theo đường đi là các sợi trục (axon) Dựa trên ý tưởng đó, neural nhân tạo sẽ nhận giá trị ngõ vào, sau đó tính toán dựa trên trọng số w (weight) và ngưỡng θ (threshold) để quyết
Trang 16định ngõ ra tương ứng Ngoài ra, để ngõ ra trở nên chính xác, cần bổ sung thêm một hàm chuẩn hóa output gọi là activation function a Hàm activation function thường là những hàm tiêu biểu như Step function, Linear function, Sigmoid function, Tanh function hoặc RELU Hình 2 là đồ thị của các hàm activation function
Từ những mô tả trên, với bias 𝑏 = − 𝜃, ta có thể biểu diễn ngõ ra của một nerural dưới dạng công thức như sau:
𝑦 = 𝑎(𝑤!𝑥!+ 𝑤" 𝑥"+ 𝑤#𝑥#+ 𝑏) (2.1)
Công thức trên chỉ là công thức tính ngõ ra của một đơn vị trong mô hình mạng lưới neural Một Neural Network phải bao gồm 3 tầng layer với mỗi node là một đơn vị thỏa mãn công thức (2.1) Tầng đầu tiên – tầng input thể hiện các ngõ vào của bài toán, tầng thứ hai – tầng Hidden biểu diễn các tính toán, suy luận logic của mạng, tầng thứ ba – tầng output đại diện cho các ngõ ra của mạng neural Tầng sau sẽ nhận ngõ ra của tầng trước để làm ngõ vào Hình 3 biểu diễn một mô hình NN
Hình 2 Các hàm activation cơ bản
Trang 17Nó thực hiện việc dự đoán ngõ ra dựa vào các tập dữ liệu đầu vào Có bốn nhóm phương pháp học đối với ML là Supervise learning (Học có giám sát), Unsupervised learning (học không giám sát), Semi-supervised lerning (Học bán giám sát) và Reinforcement learning (Học Củng Cố), các phương pháp này đều có thể sử dụng khi huấn luyện Deep Learning
Hình 4 Mối quan hệ của AI, ML, NN và DL
Trang 18Ø Supervise learning (Học có giám sát): Phương pháp này dự đoán dữ liệu đầu ra của một dữ liệu đưa vào bằng cách dựa trên các cặp dữ liệu ngõ vào, ngõ ra đã được cung cấp trước đó Để thực hiện phương pháp này, ta cần có một tập dữ liệu training chứa cặp (data, label) để thực hiện quá trình training Sau khi rút trích đặc trưng từ những cặp dữ liệu mẫu này, khi có một ngõ vào mới, DNN – Deep Neural Network
sẽ tính toán và quyết định ngõ ra tương ứng là gì Đây là phương pháp được sử dụng phổ biến nhất trong Machine Learning
Ø Unsupervised learning (Học không giám sát): Đối với phương pháp này, chúng ta không hề biết được ngõ ra tương ứng của các ngõ vào mẫu Thuật toán này chỉ có thể dựa vào đặc điểm, cấu trúc của các dữ liệu để thực hiện các công việc như phâm nhóm, giảm chiều Do đó, thuật toán này chỉ hỗ trợ tìm ra đặc trưng của cụm dữ liệu mà không dự đoán chính xác được kết quả tương ứng của dữ liệu đó là gì
Ø Semi-supervised lerning (Học bán giám sát): Thuật toán này áp dụng trong trường hợp dữ liệu đầu vào là một tập hợp lớn dữ liệu nhưng chỉ có một số lượng nhất định
dữ liệu được gán nhãn Đây là phương pháp có những đặc điểm của hai phương pháp bên trên
Ø Reinforcement learning (Học Củng Cố): Đây là phương pháp dựa trên các bài toán
để tự động đưa ra cách thức hoạt động dựa trên hoàn cảnh hiện tại nhằm đạt hiệu quả cao nhất Phương pháp này có thể áp dụng để huấn luyện các máy móc chơi game dựa trên các thuật toán để xác định bước đi tiếp theo nhằm đạt được chiến thắng hoặc điểm số cao nhất
Thách thức lớn nhất trong việc xây dựng một mạng Neural nhân tạo là quyết định số lượng các hidden layer, cũng như số các nơ ron trong mỗi layer là bao nhiêu Các giá trị trọng số w, giá trị bias b sẽ được cập nhật liên tục trong quá trình training Để training một Deep Neural Network (DNN) chúng ta cần có những yêu cầu quan trọng sau:
ü Tập dữ liệu training phải lớn (Dataset)
ü Máy tính training, tính toán phải có cấu hình mạnh
Bắt đầu với một bài toán nhận dạng sử dụng DNN, ta sử dụng phương pháp học có giám sát để training mô hình này Ta cần chuẩn bị hai tập dữ liệu: một tập dữ liệu cho việc training và một tập dữ liệu cho việc kiểm tra tính đúng đắn của thuật toán (cả hai đều được gắn nhãn) Quá trình học của DNN thực chất là quá trình dựa vào một hàm mất mát (loss function) để đánh giá và tìm cách tối ưu hàm mất mát đó sao cho đạt kết quả tốt nhất Hàm mất mát có thể tính theo công thức:
Trang 19Trong đó, m là số dữ liệu được huấn luyện, K là số nút ngõ ra, 𝑦%(') là ngõ ra thực tế của
dữ liệu thứ i tại nút thứ k trong tập dữ liệu, 𝑎%(') là ngõ ra mạng nhân tạo tính được ứng với
Ø Xác định ngõ ra do mạng nhân tạo tính toán theo công thức (2.2) cho các tầng 𝑙 =
Trong đó, 𝑎(,) và 𝑧(,) đã tính được ở bước trên
Ø Tính đạo hàm ngược từ 𝑙 = (𝐿 − 1) → 2 theo công thức sau:
Trong đó, 𝑧(&) và !#!"($%&) đã tính được
Ø Tính đạo hàm theo tham số w với công thức:
!# ($) tính được ở các bước trước
Tại đây, khi xác định được giá trị của đạo hàm, ta cần cập nhật lại các thông số như trọng số w, ngưỡng θ để đảm bảo hàm mất mát đạt giá trị nhỏ nhất Có thể thấy rằng, để tìm giá trị global minimum (giá trị nhỏ nhất) của một hàm số phức tạp hơn là tìm giá trị local minimum (giá trị cực tiểu) Do đó, để hàm mất mát đạt giá trị nhỏ nhất, ta có thể tìm các điểm local minimum bằng cách tìm nghiệm của phương trình đạo hàm bằng 0 Tuy nhiên, hàm mất mác rất phức tạp và việc tính đạo hàm, sau đó giải phương trình đạo hàm bằng 0 không phải là phương pháp khả thi Để giải quyết vấn đề này, người ta thường giải bài toán bằng phương pháp lặp, với việc xuất phát từ một điểm gần với nghiệm cần tìm, ta lặp lại phép tính toán để tiến gần tới điểm cần tìm Phương pháp này gọi là Gradient Descent (GD) Tùy theo từng trường hợp và mục đích cập nhật cụ thể mà Gradient Descent
Trang 20có những biến thể tối ưu của nó, có thể kể đến các loại như: Batch Gradient Descent (BGD), Stochastic Gradient Descent (SGD), Mini-batch Gradient Descent (MGD) và các thuật toán tối ưu bước lặp như Momentum, Adam, Nesterov accelerated gradient (NAG), Adagrad,…
Đề tài này sử dụng phương pháp Stochastic Gradient Descent (SGD) để cập nhật các giá trị w, θ Trong thuật toán Gradient Descent, tốc độ hội tụ không chỉ phụ thuộc vào điểm xuất phát mà còn có một thông số cực kì quan trọng là Learning rate Thông số này đặc trưng cho quá trình học của nhanh hay chậm của thuật toán Khi Learning rate nhỏ, tốc độ hội tụ sẽ rất chậm, ta cần tốn rất nhiều vòng lặp mới có thể đạt được giá trị mong muốn Điều này ảnh hưởng tới độ phức tạp và tốc độ của thuật toán Ngược lại, khi Learning rate lớn, thuật toán sẽ tiến nhanh đến điểm hội tụ, tuy nhiên, khi gần tới điểm ở đích, do bước nhảy của thuật toán lớn nên điểm hội tụ cũng sẽ không cố định mà chỉ có thể dao động xung quanh điểm hội tụ Do đó, việc chọn learning rate là cực kì quan trọng
Quay trở lại với thuật toán, khi đã chọn được learning rate 𝜂, ta có thể cập nhật giá trị của w, θ theo công thức sau
𝑤-.+ = 𝑤/&0 − 𝜂 !"
Trong đó, 1+12 tính từ công thức (2.4) Tương tự cho θ
Từ những bước trên, ta đã tính toán cũng như cập nhật được các giá trị trong mô hình Neural Network Việc còn lại là cách thức training dữ liệu và việc cập nhật các giá trị như thế nào là hiệu quả Việc sử dụng thuật toán nào để cập nhật giá trị trọng số và ngưỡng đóng vai trò quan trọng, vì nó sẽ quyết định cách phân chia dữ liệu như thế nào là hợp lí
Ví dụ, BGD sử dụng toàn bộ tập huấn luyện cho một lần cập nhật các giá trị (sử dụng tất
cả điểm dữ liệu để cập nhật), SGD cập nhật trên từng mẫu huấn luyện, MGD sử dụng một
số lượng mẫu ngẫu nhiên để cập nhật Từ đó, ta có các khái niệm sau:
Ø Epoch: là một lần quét qua tất cả số lượng mẫu trong tập huấn luyện Chúng ta cập nhật giá trị dựa trên thuật toán Gradient Descent, nên nếu chỉ dùng một epoch, kết quả không thể nào tối ưu Do đó, cần huấn luyện tập dữ liệu qua nhiều lần để đảm bảo thuật toán tối ưu Gradient Descent cho kết quả tốt nhất Khi sử dụng epoch, nếu
số lần lặp quá nhỏ, mô hình sẽ rơi vào trạng thái Underfitting, khi tăng dần số lượng epoch, mô hình sẽ chuyển từ underfitting sang optimal và khi số lượng epoch quá lượng, đã chạm ngưỡng giới hạn của những thông tin có thể khai thác, lúc này mô hình sẽ chuyển sang trạng thái overfitting Các trạng thái của mô hình được thể hiện như Hình 5 [7]
Trang 21Hình 5 Sự thay đổi trạng thái của mô hình huấn luyện ứng với số epoch
Ø Batch size: là số lượng dữ liệu training được chia nhỏ trong một epoch Khi dữ liệu quá lớn, chúng ta không thể đưa hết toàn bộ epoch vào để huấn luyện vì làm các phép tính toán trở nên vô cùng phức tạp Do đó, ta cần chia nhỏ epoch ra thành từng nhóm nhỏ hơn để việc training dễ dàng hơn Mỗi nhóm nhỏ như vậy gọi là một batch, kích thước của mỗi batch gọi là batch size
Ø Iterations: là số lượng batch trong một epoch Bằng số lượng mẫu chia cho kích thước batch
Trang 22với 𝑞(1) được gọi là phần thực hay phần vô hướng (scalar) và 𝒘 = 𝑞(')𝒊 + 𝑞(2)𝒋 +
𝑞(%)𝒌 được gọi là phần ảo hay phần có hướng (vector) Trường hợp thành phần thực của 𝒒 bằng 0, 𝒒 được gọi là pure quaternion, khi đó 𝒒 = 𝑞(')𝒊 + 𝑞(2)𝒋 + 𝑞(%)𝒌 ∈ 𝕀, với 𝕀 là tập hợp các pure quaternion Dạng biểu diễn bằng vector của pure quaternion là 𝒒 = I𝑞('), 𝑞(2), 𝑞(%)J4
Các phép toán của quaternion
Quaternion có các phép toán thông dụng như sau [8]:
Ø Liên hiệp (conjugate) của một số quaternion tương tự như liên hiệp của một số phức, với 𝒒 = (𝑞(1), 𝒗) = 𝑞(1)+ 𝑞(')𝒊 + 𝑞(2)𝒋 + 𝑞(%)𝒌, ta có:
𝒒∗ = 𝑞(1)− 𝑞(')𝒊 − 𝑞(2)𝒋 − 𝑞(%)𝒌 (2.11)
Ø Căn bậc hai của phép nhân quaternion với conjugate của nó được gọi là chuẩn hóa (norm) Nếu ‖𝒒‖ = 𝟏 thì q được gọi là quaternion đơn vị (unit quaternion) Giả sử q là một quaternion khác quaternion đơn vị, khi đó ‖6‖6 là một quaternion đơn vị Với 𝒒 =(𝑞(1), 𝒗) = 𝑎 + 𝑏𝒊 + 𝑐𝒋 + 𝑑𝒌, ta có:
Trang 23Quaternion neural network
Như đã đề cập trước đó, QNN là một biến thể của ANN Không sử dụng tập hợp các
số thực như ANN, QNN sử dụng tập hợp các số Quaternion như định nghĩa ở phần trước Hình 6 là mô hình tổng quát của QNN được xây dựng với 3 layer (1 input layer, 1 hidden layer
và 1 output layer) Các neuron của các lớp này lần lượt được gọi là input neuron, hidden neuron và output neuron Mỗi neuron chỉ có một output, các mũi tên đi ra khỏi neuron mang
ý nghĩa là một kết quả output được truyền tới nhiều neuron khác
Trang 24Hình 6 Mô hình tổng quát của QNN
Đối với input layer, input neuron sẽ có một input và nó được truyền trực tiếp đến output
threshold (ngưỡng) của hidden neuron 𝑚, 𝑓 là activation function, và 𝒔$, 𝜹$, 𝒉$ ∈ 𝕀, 𝒘$< ∈
Trang 25Có thể xem 𝑱 là một hàm nhiều biến theo 𝒘$<, 𝒘>$, 𝜹$, và 𝜹> Để ngắn gọn, gọi
giá trị nhỏ nhất Ứng với mỗi input trong lúc training, thuật toán gradient descent (GD) được
Trang 26đã được khảo sát để áp dụng Với 3x3 pixel, ta sẽ có 9 input neuron (1 ≤ 𝑙 ≤ 9), và 1 output neuron (𝑛 = 1) ứng với pixel được khôi phục, và có 5 hidden neuron (1 ≤ 𝑚 ≤ 5) Gọi là cấu trúc 9-5-1
Xét 𝑃< là giá trị của pixel 𝑙 trong khối 3 × 3 pixel 𝑃< chính là input của input neuron 𝑙 Đối với định dạng ảnh bitmap sử dụng 24 bit cho mỗi pixel (24 bpp), tương ứng 8 bit mỗi màu của 𝑃<, cụ thể là đỏ (𝑅<), lục (𝐺<), và lam (𝐵<), sẽ bao gồm 255 mức Khi đó input 𝒙< của input neuron 𝑙 được định nghĩa là:
Các giai đoạn của hệ thống tổng quan
Hệ thống sẽ bao gồm hai giai đoạn training và inference được mô tả như Hình 7
• Giai đoạn training: Input của giai đoạn này bao gồm 2 tập ảnh: (1) Tập các dữ liệu
ảnh được chụp ở điều kiện rọi thấp (ảnh tối), được gọi là input dataset (dữ liệu đầu vào) (2) Tập các ảnh được chụp trong điều kiện rọi bình thường (ảnh sáng), được gọi là reference dataset (tập tham chiếu) Mỗi ảnh trong input dataset sẽ tương ứng