1. Trang chủ
  2. » Luận Văn - Báo Cáo

Luận văn thạc sĩ Kỹ thuật điện tử: 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

53 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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ội dung

Trang 1

ĐẠI HỌC QUỐC GIA TP HCM TRƯỜNG ĐẠI HỌC BÁCH KHOA

Trang 2

CÔ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 5

Bá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

This paper presents a hardware implementation of dark image enhancement using an artificial neural network on the Quaternion number system This design will conduct training to extract features and build the enhancement models base on the input data which are images taken in low light and corresponding image taken in suitable light condition After the training on the software, the algorithm for the ehancement process will be implemented on the hardware With the input of any images taken in dark conditions in red, green, blue channel format, the system will process based on the built-in model and give final the results

Trang 6

Tô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

Trang 8

Tiê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 9

Hì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 10

Bả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 12

Camera 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 13

Night 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

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 15

TÌ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 17

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:

𝐽(𝑊) = − !

$∑ ∑) (𝑦%(')𝑙𝑜𝑔3𝑎%(')4 + (1 − 𝑦%('))𝑙𝑜𝑔 (1 − 𝑎%(')))%*!

$

Trang 19

Trong đó, 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 dữ liệu thứ i của nút thứ k

Để tối ưu được hàm này, ta cần sử dụng các phương pháp đạo hàm Tuy nhiên, việc tính được đạo hàm cho mạng nhân tạo không hề đơn giản vì ngõ vào của nơ ron phía sau là ngõ ra của nơ ron phía trước, nên phép tính này thật chất là một chuỗi các phép tính chồng lên nhau Để giải quyết vấn đề này, người ta sử dụng một giải thuật được sáng tạo vào năm 1986 là backpropagation Có thể biểu diễn giải thuật này theo các bước sau đây:

Ø 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 𝑙 =2 → 𝐿

Ø Đặt z = w!x!+ w"x"+ … + w+x++ b Tính đạo hàm theo z ở ngõ ra như sau: !"

!#(") = !"!$(")

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: !"

!#($) = !"!#($%&)

!+($) = !"

!#($)#𝑎(&,()%* (2.5)

Trong đó, 𝑎(&,() và !"

!#($) 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 20

có 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 21

Hì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

Quaternion

Quaternion là hệ thống số mở rộng cho số phức được mô tả bởi nhà toán học William Rowan Hamilton năm 1843 Số phức này có một thành phần thực và ba thành phần ảo i, j, k Quaternion được định nghĩa như là một vector trong không gian 4 chiều như sau:

Trang 22

vớ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ó:

(2.14)

Ø Tổng và hiệu giữa hai quaternion 𝒑 và 𝒒, với 𝒑 = (𝑝(1), 𝒗) = 𝑝(1)+ 𝑝(')𝒊 + 𝑝(2)𝒋 +𝑝(%)𝒌, 𝒒 = (𝑞(1), 𝒘) = 𝑞(1)+ 𝑞(')𝒊 + 𝑞(2)𝒋 + 𝑞(%)𝒌

Trang 23

Trang 12 𝒑 ± 𝒒 = 3𝑝(1)± 𝑞(1)4 + (𝒗 ± 𝒘)

= 3𝑝(1)± 𝑞(1)4 + 3𝑝(') ± 𝑞(')4𝒊 + 3𝑝(2)± 𝑞(2)4𝒋 + 3𝑝(%)± 𝑞(%)4𝒌 (2.15) Ø Tích giữa quaternion 𝒒 và số thực 𝑛:

Quaternion 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 24

Hì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 Do đó 𝑦< = 𝑥< với (𝑥< ∈ 𝕀)

Đối với hidden layer, output 𝒉$ của hidden neuron 𝑚 được định nghĩa như sau: 𝒔$ = _𝒘$<𝒙<𝒘aaaaa$<

, 𝒚$ = 𝑓(𝒔$),

(2.22) (2.23)

threshold (ngưỡng) của hidden neuron 𝑚, 𝑓 là activation function, và 𝒔$, 𝜹$, 𝒉$ ∈ 𝕀, 𝒘$< ∈ℍ

Tương tự, output 𝒚> của output neuron 𝑛 được định nghĩa là:

𝒛> = _𝒘>$𝒚>𝒘aaaaaa>$

, 𝒚> = 𝑓(𝒛>),

(2.24) (2.25)

Trang 25

𝑱 = 12_|𝒅>− 𝒚>|">

2_ _3𝑑>

(?) − 𝑦>(?)4"?

, 𝜈 ∈ {𝑖, 𝑗, 𝑘} (2.27) Có 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 sử dụng để cập nhật 𝒑 theo cách sau:

Δ𝒑 = −𝜇 𝜕𝑱𝜕𝒑,

(2.29)

với 𝜇 𝜖 ℝ là learning rate Để tính đạo hàm riêng phần C𝑱

C𝒑, ta có thể sử dụng biến thể của thuận toán back-propagation (BP) dành cho quaternion [7]

Trang 26

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

Ngày đăng: 03/08/2024, 13:36