Đặt vấn đề, giới thiệu tổng quan đề tài, mục tiêu, tính cấp thiết, ý nghĩa khoa học và thực tiễn. Ngoài ra còn trình bày cấu trúc nội dung luận văn. Chương 2 – Cơ sở lý thuyết: Các kiến thức nền tảng về các giải thuật mạng nơ-ron nhân tạo. Một số phương pháp tăng tốc thực thi mạng nơ-ron nhân tạo.
Chương 3 – Các công trình liên quan: Các công trình về hiện thực phần cứng tăng tốc các giải thuật học máy, học sâu trên nền tảng FPGA. Chương 4 – Kiến trúc hệ thống: Trình bày thiết kế kiến trúc hệ thống đề xuất của hệ thống tăng tốc mạng nơ-ron trên nền tảng FPGA SoC. Sử dụng các sơ đồ khối ở mức tổng quan và giải thích để dễ dàng nắm bắt nhiệm vụ của các thành phần trong hệ thống. Chương 5 – Hiện thực hệ thống: Trình bày các thiết kế chi tiết của các khối trong hệ thống.
Chương 6 – Kết quả thực nghiệm: Nêu các kết quả thực nghiệm của hệ thống đã hiện thực, kết quả sử dụng tài nguyên sau tổng hợp. So sánh kết quả trong các trường hợp khác nhau. Chương 7 – Kết luận: Nêu ra kết luận về khả năng và mức độ hiệu quả cũng như những điểm yếu của hệ thống, đồng thời đề xuất giải pháp khắc phục và hướng phát triển trong tương lai. Danh mục công trình đã công bố: Liệt kê các bài báo khoa học đã công bố từ luận văn.
Danh mục tài liệu tham khảo: Trích dẫn các tài liệu được tham khảo.1 Mạng nơ-ron nhân tạo 2.1 Thuật toán perceptron Mạng nơ-ron nhân tạo được lấy ý tưởng từ mạng nơ-ron sinh học. Trong đó, một nơ-ron sẽ nhận các tín hiệu từ các nơ-ron khác, các tín hiệu này được tổng hợp và lưu chuyển đến nơ-ron tiếp theo. Trong mạng nơ-ron nhân tạo, mỗi nốt đơn vị được gọi là 1 perceptron. Mỗi peceptron có cấu tạo như Hình 2.
y wn xn b Hình 2.1: Các thành phần của một perceptron Trong đó, các giá trị đầu vào là một véc-tơ X = (x0 , x1 , ., xn ) gọi là các đặc trưng đầu vào; các giá trị w0 , w1 , ., wn là các trọng số, thể hiện độ mạnh yếu của các tín hiệu đặc trưng, được biểu diễn bằng véc-tơ W = (w0 , w1 , ., wn ); b là bias, đóng vai trò như hệ số tự do điều chỉnh khoảng giá trị khi tổng hợp các input. Khi đi vào perceptron, các đặc trưng đầu vào sẽ được tổng hợp lại theo trọng số, thông qua Công thức 1; n là số chiều của dữ liệu đầu vào; y là kết quả đầu ra sau khi áp dụng một hàm số đối với giá trị z tổng hợp được 5 theo Công thức 2, hàm f gọi là hàm kích hoạt, là một hàm phi tuyến bất kỳ.wi + b = W T X + b (1) i=0 y = f (z) (2) Kết quả của hàm kích hoạt sẽ được so sánh với một ngưỡng, nhằm xác định xem perceptron này có được kích hoạt hay không. Thông thường, giá ngưỡng trị ngưỡng được chọn là 0 và khoảng giá trị của hàm kích hoạt thường nằm trong (-1, 1).2 Các thành phần của mạng nơ-ron nhân tạo Với 1 perceptron, ta đã có một mạng nơ-ron nhân tạo giải quyết được bài toán phân loại tuyến tính. Đối với các bài toán phức tạp hơn, ta có thể dùng nhiều perceptron sắp xếp lại với nhau thành từng tầng, tầng sau nối với tầng trước, tạo thành một mạng kết nối đầy đủ như Hình 2.2 gọi là Fully-connected.
xn input hidden 1 hidden 2 output Hình 2.2: Mạng nơ-ron đa tầng với 2 tầng ẩn 6 Một mạng nơ-ron đa tầng gồm: + Tầng input (input layer): tầng đầu tiên trong mạng, thể hiện các đặc trưng đầu vào. + Tầng ẩn (hidden layer): các tầng ở giữa, có thể 1 hoặc nhiều tầng, chịu trách nhiệm tính toán chính trong mạng. + Tầng output (output layer): tầng ở vị trí sau cùng, thể hiện các giá trị đầu ra của mạng. Số tầng của một mạng nơ-ron đa tầng được tính bằng số tầng ẩn cộng thêm 1.
Một mạng nơ-ron có từ 3 tầng trở lên được gọi là mạng nơ-ron học sâu (DNN).2 Mạng nơ-ron tích chập 2.1 Phép tích chập Trong miền rời rạc, phép tích chập giữa 2 hàm số f (n) đại diện cho một tín hiệu một chiều và g(n) đại diện cho bộ lọc (filter), hay còn gọi là nhân (kernel), được biểu diễn bởi Công thức 3.g(n − i) (3) i=−∞ Trong mạng nơ-ron, phép tích chập được biểu diễn khác đi một chút để thể hiện mối tương quan chéo giữa các giá trị đầu vào X = (x0 , x1 , ., xn ) và các giá trị trọng số W = (w0 , w1 , ., wm ) theo Công thức 4, kết quả đầu ra của phép tích chập này được minh họa ở Hình 2. m yn = ∑ xn+i · wi (4) i=0 Trong Hình 2.3, ta đặt bộ lọc vào vị trí đầu của vec-tơ đầu vào, thực hiện phép tích vô hướng trên đó để tạo ra giá trị đầu ra ở vị trí đầu tiên.3: Phép tích chập một chiều ta trượt bộ lọc đến vị trí cuối của véc-tơ đầu vào để tính tất cả các giá trị đầu ra. Đối với đầu vào là một ma trận, ta cũng có cách làm tương tự, được minh họa trong Hình 2. Ma trận trọng số (bộ lọc) W trượt lần lượt theo chiều ngang và chiều dọc qua tất cả các vị trí của ma trận đầu vào X.
Tại mỗi vị trí, các giá trị tương ứng của 2 ma trận này được nhân với nhau, sau đó cộng lại để tạo ra giá trị ở một vị trí trong ma trận đầu ra Y theo Công thức 5, với i, j là các chỉ số biểu thị cho hàng và cột của ma trận đầu vào, a, b là chỉ số đại diện cho hàng, cột của ma trận trọng số. yi, j = ∑ ∑ wa,b · xi+a, j+b (5) a b Phép tích chập 2 chiều này phù hợp với các ma trận đầu vào là các bức ảnh. Đối với ảnh màu, thông thường được biểu diễn bởi 3 ma trận, đại diện cho 3 kênh. Khi đó, để áp dụng phép tích chập 2 chiều, bộ lọc cũng được mở rộng với số kênh tương ứng.
Lúc này, ta thực hiện 3 phép tích chập 2 chiều giữa ma trận đầu vào và ma trận trọng số với kênh tương ứng. Sau đó, các ma trận đầu ra được cộng lại để tạo ra ma trận đầu ra sau cùng. Phép tích chập 2 chiều đa kênh được minh họa trên Hình 2. Khi đó, công thức phép tích chập 8 x3 * = x3 x3 Hình 2.4: Phép tích chập hai chiều 2 chiều được mở rộng thành Công thức 6, với c là chỉ số biểu thị cho kênh.
yi, j = ∑ ∑ ∑ wa,b,c · xi+a, j+b,c (6) c a b 2.2 Đệm và sải bước Trong các phép tích chập ở trên, dễ dàng thấy được kích thước ma trận đầu ra nhỏ hơn kích thước của ma trận đầu vào. Trong trường hợp cần ma trận đầu ra có cùng kích thước với ma trận đầu vào, hay để không làm mất các thông tin ở biên của ma trận đầu vào, ta chèn thêm các cột, hàng xung quanh biên của ma trận đầu vào. Thông thường, giá trị ở các vị trí trong các hàng, cột được thêm vào là 0 để tránh làm sai lệch, nhiễu thông tin của ma trận đầu vào. Các hàng, cột này gọi là các hàng, cột đệm (padding), số hàng hoặc cột 9 * = + Hình 2.5: Phép tích chập hai chiều đa kênh được thêm vào ở mỗi biên được ký hiệu là P.6 thể hiện phép tích chập 2 chiều với đệm để tạo ra ma trận đầu ra có cùng kích thước với ma trận đầu vào.6: Phép tích chập hai chiều với đệm P = 1 Đối với mạng nơ-ron tích chập, các bộ lọc thường là các ma trận vuông có kích thước [m × m], và m thường được chọn là số lẻ.
Để thuận tiện trong việc tính toán, dữ liệu đặc trưng đầu vào cũng thường được cấu tạo thành ma trận vuông có kích thước [n × n]. Mặc dù P có thể được chọn là một số tự nhiên bất kỳ, nhưng để kích thước ma trận đầu ra bằng ma trận đầu vào, ta cần được chọn thêm m − 1 hàng và cột vào ma trận đầu vào, với m là kích thước ma trận bộ lọc. Khi m là số lẻ thì ta thêm mỗi bên P = (m−1)/2 hàng, cột các giá trị 0. Ngược lại với đệm nhằm tránh mất thông tin của ma trận đầu vào, sải bước (stride) bỏ qua một số hàng, cột của ma trận đầu vào khi trượt cửa sổ bộ lọc trên đó nhằm giảm bớt khối lượng tính toán trên phép tích chập.
Khi trượt bộ lọc trên ma trận đầu vào, ta dịch chuyển bộ lọc theo từng hàng, cột, tuy nhiên, ta có thể bỏ qua một lượng hàng, cột tương ứng với sải bước khi dịch chuyển bộ lọc này. Số hàng, cột được bỏ qua gọi là sải bước, ký hiệu S. Khi đó, công thức tích chập 2 chiều (5) sẽ được mở rộng thành Công thức 7. yi, j = ∑ ∑ wa,b · xi.S+b (7) a b Thông thường, P và S sẽ được chọn sao cho bộ lọc có thể trượt vừa khít với biên trên ma trận đầu vào sau khi đã được đệm, tức biểu thức (n + 2P − m)/S phải là số nguyên.
Từ đây ta có thể tính được kích thước ma trận đầu ra q 11 tương ứng với đệm và sải bước được chọn theo Công thức 8.7 minh họa phép tích chập 2 chiều với đệm P = 1 và sải bước S = 3.7: Phép tích chập hai chiều với đệm P = 1, sải bước S = 3 12 2.3 Mạng nơ-ron tích chập CNN Với một mạng nơ-ron nhân tạo, dữ liệu đầu vào là các đặc trưng đã được rút trích từ các dữ liệu thô. Tuy nhiên, trong một số bài toán, ta có thể không xác định được trước các đặc trưng của dữ liệu thô đầu vào, ví dụ như một bức ảnh. Trong trường hợp này, phép tích chập được sử dụng nhờ vào khả năng tự động rút trích các đặc trưng của mình. Một mạng nơ-ron tích chập từ đó sẽ có một tầng tích chập (Conv layer) dùng để rút trích đặc trưng.
Sau đó, các đặc trưng này được đưa vào tầng kết nối đầy đủ (FC layer) là một mạng full-connected tương tự như các mạng nơ-ron nhân tạo thông thường để thực hiện tính toán đầu ra cho bài toán. Lúc này, khối lượng tính toán trong mạng tăng lên rất nhiều.