Hệ Thống Tăng Tốc Mạng Nơ-ron Học Sâu Trên Nền Tảng FPGA

Luận văn thạc sĩ về hệ thống tăng tốc mạng nơ-ron học sâu trên nền tảng FPGA. Nghiên cứu khoa học máy tính, giải pháp tối ưu hiệu năng cho ứng dụng AI.

Trường đại học

Trường Đại học Bách Khoa

Chuyên ngành

Khoa học Máy tính

Người đăng

Ẩn danh

Thể loại

Luận văn thạc sĩ

2021

85
3
0

Phí lưu trữ

30 Point

Tóm tắt

I. Tổng Quan Về Tăng Tốc Mạng Nơ ron Học Sâu Trên FPGA 55 ký tự

Trong kỷ nguyên trí tuệ nhân tạo, mạng nơ-ron học sâu (DNN) đang chứng minh sức mạnh vượt trội trong nhiều lĩnh vực, từ thị giác máy tính đến xử lý ngôn ngữ tự nhiên. Tuy nhiên, sự phức tạp ngày càng tăng của các DNN đặt ra thách thức lớn về mặt tính toán, đặc biệt khi triển khai trên các thiết bị điện toán biên với nguồn tài nguyên hạn chế. Giải pháp tăng tốc phần cứng bằng FPGA nổi lên như một hướng đi đầy hứa hẹn. FPGA cho phép tùy chỉnh kiến trúc phần cứng, tối ưu hóa cho các phép toán đặc trưng của DNN, mang lại hiệu năng cao và tiết kiệm năng lượng so với các nền tảng truyền thống như CPU và GPU. Bài viết này đi sâu vào các phương pháp, kiến trúc và ứng dụng thực tiễn của việc tăng tốc mạng nơ-ron học sâu trên FPGA, mở ra tiềm năng to lớn cho AI trên FPGAEdge AI. Theo nghiên cứu của Nguyễn Xuân Quang (2021), "Rất khó khăn để triển khai các ứng dụng của chúng trên các thiết bị điện toán biên, nơi có nguồn tài nguyên tính toán hạn hẹp."

1.1. Vai trò của FPGA trong tăng tốc điện toán biên AI

Các thiết bị điện toán biên thường bị giới hạn về tài nguyên tính toán, năng lượng và băng thông. Do đó, việc tăng tốc mạng nơ-ron học sâu trên các thiết bị này đòi hỏi các giải pháp hiệu quả và tiết kiệm. FPGA cung cấp khả năng tái cấu hình phần cứng, cho phép tùy chỉnh kiến trúc xử lý dữ liệu theo yêu cầu cụ thể của từng mô hình mạng nơ-ron. Điều này giúp tối ưu hóa hiệu năng, giảm thời gian trễtiết kiệm năng lượng so với việc sử dụng CPU hoặc GPU. FPGA đóng vai trò then chốt trong việc đưa các ứng dụng AI phức tạp lên các thiết bị nhúngIoT.

1.2. Ưu điểm vượt trội của FPGA so với CPU và GPU

FPGA nổi bật với khả năng thực hiện các phép toán song song một cách hiệu quả, đặc biệt là các phép tích chập và phép nhân ma trận – các phép toán cốt lõi trong mạng nơ-ron học sâu. Khác với CPU có kiến trúc tuần tự và GPU tập trung vào xử lý đồ họa, FPGA cho phép xây dựng các bộ tăng tốc phần cứng chuyên dụng, tối ưu hóa cho các tác vụ học sâu. Điều này mang lại hiệu năng cao hơn đáng kể, đồng thời giảm thiểu tiêu thụ năng lượngthời gian trễ. Việc sử dụng FPGA còn cho phép tối ưu hóa bộ nhớ, một yếu tố quan trọng trong các ứng dụng điện toán biên.

II. Thách Thức Triển Khai Mạng Nơ ron Học Sâu Trên FPGA 59 ký tự

Mặc dù mang lại nhiều lợi ích, việc triển khai mạng nơ-ron học sâu trên FPGA không phải là một nhiệm vụ đơn giản. Một trong những thách thức lớn nhất là sự phức tạp trong việc thiết kế phần cứng và tối ưu hóa kiến trúc. Việc ánh xạ các thuật toán học sâu lên FPGA đòi hỏi kiến thức chuyên sâu về cả phần mềm và phần cứng. Bên cạnh đó, các mô hình mạng nơ-ron ngày càng lớn và phức tạp, đòi hỏi các kỹ thuật tối ưu hóa bộ nhớlượng tử hóa để giảm kích thước mô hình và tăng tốc độ xử lý. Theo Nguyễn Xuân Quang (2021), "Sự phức tạp trong tính toán này gây trở ngại trong việc triển khai các mô hình mạng nơ-ron nhân tạo trên các thiết bị điện toán biên do các thiết bị này thường có lượng tài nguyên tính toán rất giới hạn."

2.1. Khó khăn trong việc thiết kế và tối ưu hóa phần cứng FPGA

Thiết kế phần cứng cho FPGA đòi hỏi kỹ năng và kinh nghiệm chuyên sâu về các ngôn ngữ mô tả phần cứng như VerilogVHDL. Quá trình tối ưu hóa cũng rất phức tạp, đòi hỏi phải cân bằng giữa hiệu năng, tiêu thụ năng lượngdiện tích chip. Các công cụ phát triển FPGA như Xilinx Vivado và Intel Quartus cung cấp các phương tiện hỗ trợ, nhưng việc tận dụng tối đa tiềm năng của FPGA vẫn là một thách thức lớn.

2.2. Yêu cầu về tối ưu hóa bộ nhớ và lượng tử hóa mô hình

Các mô hình mạng nơ-ron học sâu thường có kích thước rất lớn, vượt quá khả năng lưu trữ của FPGA. Do đó, cần áp dụng các kỹ thuật tối ưu hóa bộ nhớ như chia sẻ bộ nhớ và tái sử dụng dữ liệu. Lượng tử hóa là một phương pháp hiệu quả để giảm kích thước mô hình và tăng tốc độ xử lý bằng cách chuyển đổi các tham số từ số thực sang số nguyên. Tuy nhiên, việc lượng tử hóa có thể ảnh hưởng đến độ chính xác của mô hình, đòi hỏi sự cân nhắc kỹ lưỡng.

2.3. Thách thức về độ chính xác và độ tin cậy của hệ thống

Đảm bảo độ chính xácđộ tin cậy của các hệ thống AI trên FPGA là một yêu cầu quan trọng, đặc biệt trong các ứng dụng quan trọng như xe tự lái và y tế. Việc xác minh và kiểm thử các thiết kế FPGA đòi hỏi các phương pháp và công cụ chuyên dụng. Cần đảm bảo rằng hệ thống hoạt động ổn định trong các điều kiện khác nhau và không bị ảnh hưởng bởi các yếu tố bên ngoài.

III. Phương Pháp Tăng Tốc Phép Tích Chập Trên FPGA Hiệu Quả 60 ký tự

Phép tích chập là một phép toán cốt lõi trong mạng nơ-ron tích chập (CNN). Tăng tốc phép tích chập trên FPGA là chìa khóa để cải thiện hiệu năng tổng thể của hệ thống. Các phương pháp tăng tốc phổ biến bao gồm song song hóa, tái sử dụng dữ liệutối ưu hóa kiến trúc. High-Level Synthesis (HLS) là một công cụ mạnh mẽ giúp tự động chuyển đổi mã C/C++ thành mã phần cứng, giảm thiểu thời gian phát triển và cho phép thử nghiệm nhanh chóng các kiến trúc khác nhau. Nguyễn Xuân Quang (2021) đã đề xuất "một kiến trúc tăng tốc phép tích chập bằng các phương pháp song song hóa, tái sử dụng dữ liệu."

3.1. Ứng dụng kỹ thuật song song hóa để tăng tốc xử lý

Song song hóa là một kỹ thuật quan trọng để tăng tốc phép tích chập trên FPGA. Bằng cách thực hiện nhiều phép toán đồng thời, có thể giảm đáng kể thời gian trễ và tăng hiệu năng. Có nhiều mức độ song song hóa, từ song song hóa mức bit đến song song hóa mức phép toán. Việc lựa chọn mức độ song song hóa phù hợp phụ thuộc vào tài nguyên có sẵn trên FPGA và yêu cầu về hiệu năng.

3.2. Tái sử dụng dữ liệu để giảm thiểu truy cập bộ nhớ

Truy cập bộ nhớ là một nút thắt cổ chai trong các hệ thống tăng tốc dựa trên FPGA. Tái sử dụng dữ liệu là một kỹ thuật hiệu quả để giảm thiểu số lần truy cập bộ nhớ và cải thiện hiệu năng. Bằng cách lưu trữ các dữ liệu cần thiết trong bộ nhớ cục bộ trên chip, có thể giảm thiểu thời gian trễtiết kiệm năng lượng.

3.3. Tối ưu hóa kiến trúc phần cứng cho phép tích chập

Việc tối ưu hóa kiến trúc phần cứng là rất quan trọng để đạt được hiệu năng tối đa khi tăng tốc phép tích chập trên FPGA. Kiến trúc phần cứng cần được thiết kế để tận dụng tối đa khả năng song song hóatái sử dụng dữ liệu. Các kiến trúc phổ biến bao gồm kiến trúc systolic array và kiến trúc dựa trên bộ tăng tốc phần cứng chuyên dụng.

IV. Xây Dựng Bộ Tăng Tốc Mạng Nơ ron trên FPGA Với HLS 55 ký tự

High-Level Synthesis (HLS) là một phương pháp tiếp cận hiệu quả để phát triển các bộ tăng tốc mạng nơ-ron trên FPGA. HLS cho phép các nhà thiết kế sử dụng các ngôn ngữ lập trình cấp cao như C/C++ để mô tả kiến trúc phần cứng, sau đó tự động chuyển đổi mã này thành mã phần cứng (RTL) cho FPGA. Điều này giúp giảm thiểu thời gian phát triển và cho phép thử nghiệm nhanh chóng các kiến trúc khác nhau. Theo Nguyễn Xuân Quang (2021), việc "hiện thực hệ thống trên phần cứng khả lập trình FPGA. Cụ thể dòng Zynq UltraScale+ MPSoC tích hợp sẵn lõi vi xử lí ARM cùng với phần logic khả lập trình được sử dụng để hiện thực và kiểm nghiệm thiết kế."

4.1. Lợi ích của việc sử dụng HLS trong thiết kế FPGA

HLS mang lại nhiều lợi ích so với phương pháp thiết kế truyền thống bằng Verilog hoặc VHDL. HLS giúp giảm thiểu thời gian phát triển, đơn giản hóa quá trình gỡ lỗi và cho phép các nhà thiết kế tập trung vào tối ưu hóa kiến trúc hơn là các chi tiết triển khai phần cứng. HLS cũng cho phép tái sử dụng mã và di chuyển thiết kế giữa các nền tảng FPGA khác nhau một cách dễ dàng hơn.

4.2. Quy trình thiết kế bộ tăng tốc bằng HLS

Quy trình thiết kế bộ tăng tốc bằng HLS bao gồm các bước sau: (1) Mô tả kiến trúc phần cứng bằng C/C++; (2) Sử dụng công cụ HLS để chuyển đổi mã C/C++ thành mã RTL; (3) Mô phỏng và kiểm tra mã RTL; (4) Triển khai mã RTL lên FPGA. Trong quá trình này, cần chú ý đến các ràng buộc về hiệu năng, tiêu thụ năng lượngdiện tích chip.

4.3. Các công cụ HLS phổ biến Xilinx Vitis HLS Intel HLS Compiler

Có nhiều công cụ HLS khác nhau trên thị trường, bao gồm Xilinx Vitis HLSIntel HLS Compiler. Các công cụ này cung cấp các tính năng và thư viện khác nhau để hỗ trợ quá trình thiết kế và tối ưu hóa các bộ tăng tốc trên FPGA. Việc lựa chọn công cụ HLS phù hợp phụ thuộc vào nền tảng FPGA được sử dụng và yêu cầu cụ thể của ứng dụng.

V. Ứng Dụng Thực Tế Của Tăng Tốc Mạng Nơ ron trên FPGA 58 ký tự

Việc tăng tốc mạng nơ-ron học sâu trên FPGA mang lại nhiều ứng dụng thực tế trong các lĩnh vực như xe tự lái, robot, y tế và giám sát an ninh. Trong xe tự lái, FPGA được sử dụng để xử lý các thuật toán nhận dạng vật thể và phân tích cảnh quan thời gian thực, đảm bảo an toàn và độ chính xác cao. Trong y tế, FPGA được sử dụng để phân tích ảnh y tế và hỗ trợ chẩn đoán bệnh. Trong giám sát an ninh, FPGA được sử dụng để nhận diện khuôn mặt và phát hiện các hành vi bất thường. Theo Nguyễn Xuân Quang (2021), "Từ những lợi ích của việc phát triển các bộ gia tốc dựa trên nền tảng FPGA, có thể thấy đây là lĩnh vực tiềm năng, sẽ ứng dụng nhiều vào đời sống trong tương lai."

5.1. Ứng dụng trong xe tự lái xử lý ảnh nhận dạng vật thể

Trong xe tự lái, FPGA đóng vai trò quan trọng trong việc xử lý dữ liệu từ các cảm biến như camera và lidar, thực hiện các thuật toán nhận dạng vật thể và phân tích cảnh quan. Tăng tốc các thuật toán này trên FPGA giúp giảm thời gian trễ và đảm bảo phản ứng nhanh chóng trong các tình huống nguy hiểm.

5.2. Ứng dụng trong y tế phân tích ảnh y tế hỗ trợ chẩn đoán

Trong y tế, FPGA được sử dụng để phân tích ảnh y tế như ảnh chụp X-quang, MRI và CT, giúp các bác sĩ chẩn đoán bệnh một cách nhanh chóng và chính xác hơn. Tăng tốc các thuật toán phân tích ảnh trên FPGA giúp giảm thời gian chờ đợi kết quả và cải thiện hiệu quả điều trị.

5.3. Ứng dụng trong giám sát an ninh nhận diện khuôn mặt

Trong giám sát an ninh, FPGA được sử dụng để nhận diện khuôn mặt và phát hiện các hành vi bất thường. Tăng tốc các thuật toán nhận diện khuôn mặt trên FPGA giúp tăng độ chính xác và giảm thời gian phản hồi, giúp phát hiện các mối đe dọa tiềm ẩn một cách kịp thời.

VI. Tương Lai Của Tăng Tốc Mạng Nơ ron Học Sâu Trên FPGA 59 ký tự

Việc tăng tốc mạng nơ-ron học sâu trên FPGA vẫn còn nhiều tiềm năng phát triển trong tương lai. Các xu hướng nghiên cứu hiện nay tập trung vào việc phát triển các kiến trúc phần cứng linh hoạt và có thể tái cấu hình, tối ưu hóa cho nhiều loại mạng nơ-ron khác nhau. Ngoài ra, việc tích hợp FPGA với các công nghệ mới như bộ nhớ kháng trở (RRAM) và bộ xử lý thần kinh (neuromorphic processors) hứa hẹn sẽ mang lại những bước tiến đột phá trong lĩnh vực AI trên FPGA. Nguyễn Xuân Quang (2021) đã đề xuất "đồng thời, chúng ta có thể tạo nên một xu hướng dịch chuyển việc triển khai các ứng dụng của mạng nơ-ron nhân tạo từ các nền tảng phần mềm hiện tại sang các nền tảng phần cứng vốn hiệu quả hơn về việc sử dụng tài nguyên, năng lượng, . góp phần tối ưu việc sử dụng các nền tảng phần mềm cho các tác vụ khác trong hệ thống và bảo vệ môi trường."

6.1. Xu hướng phát triển kiến trúc FPGA linh hoạt và tái cấu hình

Trong tương lai, các kiến trúc FPGA sẽ ngày càng trở nên linh hoạt và có thể tái cấu hình, cho phép tối ưu hóa cho nhiều loại mạng nơ-ron khác nhau. Điều này sẽ giúp giảm thiểu thời gian thiết kế và tăng tính linh hoạt của hệ thống.

6.2. Tích hợp FPGA với các công nghệ bộ nhớ mới RRAM

Việc tích hợp FPGA với các công nghệ bộ nhớ mới như bộ nhớ kháng trở (RRAM) hứa hẹn sẽ mang lại những bước tiến đột phá trong lĩnh vực AI trên FPGA. RRAM có mật độ lưu trữ cao và tiêu thụ năng lượng thấp, giúp giảm kích thước và tăng hiệu năng của hệ thống.

6.3. Kết hợp FPGA với bộ xử lý thần kinh neuromorphic processors

Việc kết hợp FPGA với bộ xử lý thần kinh (neuromorphic processors) có thể tạo ra các hệ thống AI có khả năng học hỏi và thích nghi với môi trường một cách tự nhiên hơn. Các bộ xử lý thần kinh mô phỏng hoạt động của não bộ, giúp tăng tốc các thuật toán học sâu và giảm tiêu thụ năng lượng.

16/05/2025

Trích đoạn nội dung tài liệu

Đặ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.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ