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

Nghiên cứu và thực hiện mạng nơ ron nhân tạo lan truyền thẳng nhiều lớp có kiến trúc tùy biến trên FPGA

27 240 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 27
Dung lượng 1,13 MB

Nội dung

Thách thức khi thực hiện các kiến trúc mạng nơ-ron sâu DNN là sự tăng vọt về số lượng lớp, số lượng nơ-ron trong từng lớp cũng như số lượng liên kết giữa các lớp, khi đó việc triển khai

Trang 1

CÓ KIẾN TRÚC TÙY BIẾN TRÊN FPGA

Chuyên ngành: Kỹ thuật điện tử

Mã số: 60.52.02.03

TÓM TẮT LUẬN VĂN THẠC SĨ KỸ THUẬT ĐIỆN TỬ

Trang 2

Luận văn sẽ được bảo vệ trước Hội đồng chấm Luận văn tốt nghiệp thạc sĩ Kỹ thuật điện tử họp tại Trường Đại học Bách

khoa vào ngày 15 tháng 07 năm 201

Có thể tìm hiểu luận văn tại:

 Trung tâm Học liệu, Đại học Đà Nẵng tại Trường Đại học

Bách khoa

 Thư viện Khoa Điện tử-Viễn thông, Trường Đại học Bách khoa – ĐHĐN

Trang 3

MỞ ĐẦU

1 Tính cấp thiết của đề tài

Mạng nơ-ron nhân tạo được sử dụng trong nhiều ứng dụng khoa học và công nghệ Thực thi mạng nơ-ron nhân tạo trên FPGA không những mang lại tính mềm dẻo mà còn tiết kiệm được thời gian thiết kế và chi phí sản xuất Thách thức khi thực hiện các kiến trúc mạng nơ-ron sâu DNN là sự tăng vọt về số lượng lớp, số lượng nơ-ron trong từng lớp cũng như số lượng liên kết giữa các lớp, khi đó việc triển khai mạng nơ-ron sâu trên phần cứng (chẳng hạn FPGA) đòi hỏi người kỹ sư thiết kế cần tính toán đến việc cân bằng giữa các yếu tố: tài nguyên phần cứng, thời gian tính toán của mạng, công suất tiêu thụ và tỉ lệ nhận dạng mong muốn

2 Mục tiêu nghiên cứu

Mục tiêu của đề tài là nghiên cứu kiến trúc mạng nơ-ron nhân tạo lan truyền thẳng nhiều lớp có kiến trúc tùy biến được và thử nghiệm trên FPGA, thực hiện và đánh giá các thông số về tài nguyên phần cứng và tốc độ tính toán, đồng thời ứng dụng kiến trúc mạng nơ-ron nhiều lớp trong nhận dạng mẫu

3 Đối tƣợng và phạm vi nghiên cứu

3.1 Đối tượng nghiên cứu

- Mô hình mạng nơ-ron nhân tạo lan truyền thẳng nhiều lớp và ứng dụng trong hệ thống nhận dạng mẫu

- Công nghệ FPGA, các công cụ hỗ trợ thiết kế số và phát triển hệ thống nhúng trên nền FPGA

- Cơ sở lý thuyết, kỹ thuật và công cụ để thực hiện tính toán với số thực dấu phẩy động trên FPGA

- Các tập dữ liệu để phục vụ bài toán nhận dạng mẫu

Trang 4

- Tiêu chí và phương pháp đánh giá mạng nơ-ron nhân tạo khi thực hiện trên phần cứng FPGA

3.2 Phạm vi nghiên cứu

- Thực hiện và đánh giá khối nhận dạng sử dụng mạng nơ-ron nhân tạo nhiều lớp trong hệ thống nhận dạng mẫu dựa trên FPGA

4 Phương pháp nghiên cứu và nội dung nghiên cứu

4.1 Phương pháp nghiên cứu

Phương pháp nghiên cứu xuyên suốt của luận văn là kết hợp nghiên cứu lý thuyết, tính toán, viết chương trình bằng VHDL, kết hợp mô phỏng bằng phần mềm, thực thi trên phần cứng để đánh giá các kết quả đạt được và so sánh với các công trình nghiên cứu liên quan đã được công bố

4.2 Nội dung nghiên cứu

- Thu thập và nghiên cứu tài liệu và công trình của các tác giả trong và ngoài nước có liên quan đến đề tài

- Nghiên cứu các lý thuyết: lý thuyết về mạng nơ-ron nhân tạo

và ứng dụng, thuật toán lan truyền ngược (Back Propagation) cho huấn luyện mạng nơ-ron, thư viện để thực hiện các phép toán dấu phẩy động trên FPGA

- Tìm hiểu kiến trúc và phân tích hoạt động của một kiến trúc mạng nơ-ron nhân tạo nhiều lớp (với ít nhất một lớp ẩn) trên FPGA

đã được thiết kế Phân tích, đánh giá hiệu năng của kiến trúc này thông qua các thông số về tài nguyên phần cứng, tốc độ tính toán tương ứng với các mô hình mạng nơ-ron khác nhau (thay đổi số lớp,

số nơ-ron trong mỗi lớp), đánh giá khả năng thực hiện kiến trúc mạng nơ-ron này trên các board mạch FPGA hiện có

Trang 5

nhận dạng mẫu bằng phần mềm Matlab để tìm bộ trọng số tối ưu, sau

đó tổng hợp và thực hiện kiến trúc này trên FPGA, mô phỏng kiểm

tra

- Thực thi và đánh giá mạng nơ-ron đã thiết kế trên board mạch

FPGA

5 Ý nghĩa khoa học và thực tiễn của đề tài

Việc nghiên cứu và thực thi mạng nơ-ron nhân tạo nhiều lớp

trên FPGA nhằm xây dựng mạng nơ-ron ứng dụng trong nhận dạng

mẫu Việc xây dựng mạng nơ-ron trên phần cứng FPGA sẽ làm cơ sở

cho việc hiện thực hóa các bài toán nhận dạng mẫu ứng dụng mạng

nơ-ron trên chip và từ đó có thể mở ra các hướng thiết kế và ứng

dụng mang tính thực tiễn cao với sự tích hợp các hệ thống xử lý

thông minh trên chip

6 Kết cấu của luận văn

Luận văn bao gồm có 4 chương được tóm tắt như sau:

Chương 1 - Tổng quan

Chương 2 - Cơ sở hiện thực hóa mạng nơ-ron nhân tạo trên FPGA

Chương 3 - Nghiên cứu kiến trúc mạng nơ-ron nhân tạo lan truyền

thẳng nhiều lớp tùy biến trên FPGA

Chương 4 - Thực hiện và đánh giá

CHƯƠNG 1-TỔNG QUAN 1.1 Mạng nơ-ron sinh học

1.2 Mạng nơ-ron nhân tạo

Xét về mặt toán học, trong một mạng nơ-ron nhân tạo lan

truyền thẳng với M lớp (không kể lớp vào), kết quả đầu ra tại lớp thứ

k được tính như sau:

xk+1 = f (Wkxk); k = 1, 2, 3…, M, (1.1)

Trang 6

trong đó: xk và Wk là vector dữ liệu vào và ma trận trọng số (đặc

trưng cho liên kết giữa hai lớp) của lớp thứ k; x k+1 là vector kết quả

đầu ra của lớp thứ k và cũng chính là vector dữ liệu vào cho lớp kế tiếp k+1; và f là hàm kích hoạt (activation function, thường là hàm

phi tuyến) Theo công thức (1.1), quá trình lan truyền thẳng trong mạng nơ-ron nhân tạo nhiều lớp chính là thực hiện phép nhân ma

trận – vector Wkxk sau đó áp dụng hàm kích hoạt đối với từng phần

tử của kết quả nhận được, và hai phép toán này sẽ được lặp lại cho từng lớp cho đến khi tính đến lớp cuối cùng

1.3 Thực hiện mạng nơ-ron nhân tạo trên phần cứng

Nhiều vấn đề kỹ thuật (cũng như kinh tế) cần được xem xét kỹ lưỡng và cân nhắc lựa chọn khi thiết kế và thực hiện mạng nơ-ron nhân tạo trên phần cứng hướng đến một ứng dụng hay một nhóm ứng dụng cụ thể, có thể kể ra như sau:

 Kiến trúc mạng (neural network architecture): mạng lan truyền thẳng hay mạng hồi quy, số lớp và số lượng nơ-ron ở mỗi lớp, dạng của hàm kích hoạt, mạng có chức năng học để

tự động cập nhật bộ trọng số hay việc học được thực hiện off-line trước đó trên máy tính

 Định dạng số (number format) phù hợp cho biểu diễn dữ liệu

và tính toán trong mạng nơ-ron: sử dụng số nguyên, sử dụng

số thực, hay sử dụng định dạng nhị phân; nếu sử dụng định dạng số thực thì dùng định dạng dấu chấm tĩnh (fixed-point format) hay định dạng dấu chấm động (floating-point format); số lượng bit tối thiểu (bitwidth) cho các toán hạng

và các phép toán; sử dụng đồng nhất một định dạng số cho

Trang 7

dữ liệu và các phép toán hay sử dụng nhiều định dạng khác nhau cho dữ liệu vào ra, trọng số và các phép toán

 Độ chính xác/Tỷ lệ nhận dạng đúng (accuracy/recognition rate) của ứng dụng yêu cầu

 Tốc độ xử lý yêu cầu của mạng nơ-ron (performance)

 Công suất

 Chi phí thiết kế và chế tạo

 Nền tảng phần cứng và tài nguyên phần cứng cần thiết để thực hiện thiết kế

 Khả năng thương mại hóa và các yếu tố khác có liên quan

1.4 Phạm vi và nhiệm vụ của luận văn

Với sự giới hạn về thời gian hoàn thành luận văn cũng như những hạn chế trong điều kiện tiến hành thực nghiệm nên luận văn này sẽ tập trung nghiên cứu các kiến trúc mạng nơ-ron lan truyền thẳng nhiều lớp, thực hiện kiến trúc trên nền tảng FPGA dựa vào các công cụ sẵn có, đánh giá các mạng nơ-ron được lựa chọn thực hiện cho bài toán nhận dạng chữ số viết tay dựa vào các tiêu chí đánh giá gồm tỉ lệ nhận dạng đúng, tài nguyên phần cứng sử dụng và hiệu năng, từ đó đánh giá khả năng ứng dụng của kiến trúc mạng nơ-ron

đã khảo sát trong ứng dụng thực tế

CHƯƠNG 2 - CƠ SỞ HIỆN THỰC HÓA MẠNG NƠ-RON

NHÂN TẠO TRÊN FPGA 2.1 Mở đầu chương

2.2 Hệ thống nhận dạng mẫu dựa trên mạng nơ-ron nhân tạo

Trong những năm gần đây, cùng với sự phát triển nhanh chóng trong lĩnh vực chip FPGA, toàn bộ cấu trúc ANN có thể thực

Trang 8

hiện được trên các mạch phần cứng, dẫn đến việc loại bỏ khối trích chọn đặc trưng Sơ đồ khối chức năng hệ thống nhận dạng chỉ sử dụng mạng nơ-ron nhân tạo ANN không có khối trích chọn đặc trưng như hình 2.2

2.3 Mô hình tính toán trong mạng nơ-ron nhân tạo lan truyền thẳng nhiều lớp

2.3.1 Nơ-ron nhân tạo

Tương tự như nơ-ron sinh học, nơ-ron nhân tạo là một đơn vị

xử lý thông tin và là thành phần cơ bản của một mạng nơ-ron nhân tạo Cấu trúc một nơ-ron nhân tạo được thể hiện trong hình 2.3.Xét

Trang 9

về mặt toán học, cấu trúc của một nơ-ron được mô tả bằng cặp biểu

thức sau:

2.3.2 Mô hình tính toán mạng nơ-ron nhân tạo [10]

2.3.2.1 Mô hình tính toán mạng nơ-ron một lớp

Vector đầu ra của mạng nơ-ron ở dạng ma trận:

2.3.2.2 Mạng nơ-ron nhiều lớp

2.3.3 Hàm truyền

2.4 Huấn luyện mạng nơ-ron nhân tạo nhiều lớp [12, 16]

Có nhiều thuật toán dùng để huấn luyện mạng, trong luận văn

tác giả nghiên cứu mạng lan truyền thẳng nhiều lớp để nhận dạng

nên thuật toán phù hợp để huấn luyện là thuật toán lan truyền ngược

BP (Back Propagation) với SGD (stochastic gradient descent)

2.4.1 Mô hình một nơ-ron

Trang 10

2.5.2.1 Giới thiệu về ngôn ngữ VHDL

2.5.2.2 Ưu điểm của ngôn ngữ VHDL

2.5.2.3 Mô tả thiết kế VHDL

2.6 Thực hiện các phép toán số thực dấu phẩy động trên FPGA

Kết quả nghiên cứu trong [7] cho thấy việc thực thi mạng rôn nhân tạo có bộ trọng số với định dạng số thực dấu chấm phẩy động bán chính xác 16-bit đảm bảo cho tỷ lệ nhận dạng và hiệu quả trong việc sử dụng tài nguyên FPGA

nơ-2.6.1 Thư viện mã nguồn mở FloPoCo [13]

2.6.2 Các phép toán số thực dấu phẩy động trên FPGA

Trang 11

2.7.1 Bộ nhân cộng tích lũy MAC

Sơ đồ khối MAC bao gồm khối nhân, khối cộng và thanh ghi DFF để lưu ngõ ra hiện tại của phép toán cộng, ngõ ra của khối nhân

được xác định bằng phép nhân của hai vec-tơ x và y sẽ đưa tới khối

cộng để thực hiện phép cộng với giá trị đưa ngược trở về từ DFF, hay nói cách khác chính là cộng tích lũy Tốc độ (latency) của phép nhân cộng tích lũy này là 12 chu kỳ máy

2.7.2 Bộ thực hiện hàm truyền Logsigmoid

Trang 12

Hàm truyền Logsigmoid được thiết kế theo sơ đồ khối ở hình 2.19, bao gồm ba khối: lấy mũ cơ số e, cộng và lấy nghịch đảo, được thực hiện tuần tự Đầu vào x và đầu ra r là các số thực dấu phẩy động

18 bit theo định dạng số thực dấu phẩy động của thư viện FloPoCo Tốc độ thực hiện của bộ hàm truyền này là 29 chu kỳ máy

3.2 Kiến trúc của một nơ-ron [6]

Sơ đồ khối nơ-ron tính toán được trình bày như trong hình 3.1, gồm các khối: khối bộ nhớ ROM để lưu trữ bộ trọng số và ngưỡng, khối nhân cộng tích lũy MAC và khối thực hiện hàm truyền Logsigmoid đã được giới thiệu trong chương 2 được nối tiếp với nhau

Trang 13

Một nơ-ron tính toán sẽ thực hiện tính toán công thức (2.5),

cụ thể sẽ sử dụng bộ nhân cộng tích lũy MAC để nhân 2 vector trọng

số w (được lưu trữ trong bộ nhớ ROM) và vector đầu vào x, kết quả

của bộ MAC được đưa vào bộ thực hiện hàm truyền Logsigmoid và cho kết quả đầu ra r

3.3 Kiến trúc mạng nơ-ron nhân tạo với nhiều lớp tính toán phần cứng

Sơ đồ khối chức năng của kiến trúc mạng nơ-ron nhân tạo với nhiều lớp tính toán phần cứng (MHL-ANN) để thực hiện tính toán cho cấu hình mạng nơ-ron 3 lớp N-M1-M2-M3 (Hình 2.6) với R

là số đầu vào, số nơ-ron của 3 lớp lần lượt là M1, M2, M3 được trình

Trang 14

hình ANN ba lớp R-M1-M2-M3 (Hình 2.6) Khác với kiến trúc

MHL-ANN, kiến trúc SHL-ANN chỉ có duy nhất một lớp phần cứng vật lý bao gồm M nơ-ron tính toán (với M là giá trị lớn nhất trong các giá

trị M1, M2, M3) để thực hiện tính toán chuyển tiếp cho các nơ-ron ở các lớp ẩn và các nơ-ron ở lớp ngõ ra trong ANN Kiến trúc SHL-ANN bao gồm 2 thành phần chính: khối nơ-ron tính toán Hardware Layer và khối điều khiển Control Unit

3.4.1 Khối nơ-ron tính toán Hardware_Layer

Khối nơ-ron tính toán Hardware_Layer thực hiện việc tính toán cho từng lớp nơ-ron theo tuần tự Ở lần tính toán đầu tiên, tín hiệu ngõ vào của mạng nơ-ron được chọn làm tín hiệu ngõ vào của Hardware_Layer Sau đó, tín hiệu ngõ ra của Hardware_Layer được

Trang 15

hồi tiếp về làm tín hiệu ngõ vào Hardware_Layer để thực hiện lần tính toán tiếp theo Theo tuần tự như vậy, khối nơ-ron tính toán sẽ

thực hiện các phép tính toán cho toàn mạng nơ-ron

3.4.2 Khối điều khiển Control Unit

Khối điều khiển Control Unit được sử dụng để kiểm soát tính toán chuyển tiếp của các lớp nơ-ron logic, như chọn đúng vector trọng số và vector đầu vào thích hợp cho lớp phần cứng vật lý Sơ đồ khối mức chuyển thanh ghi RTL được thể hiện trong hình 3.8

Khối điều khiển hoạt động như một máy trạng thái hữu hạn FSM (Finite State Machine), sơ đồ khối của FSM được mô tả trong hình 3.9

3.4.3 Kết quả mô phỏng

Sơ đồ khối mức chuyển thanh ghi RTL của kiến trúc SHL_ANN được thể hiện trong hình 3.10, các chân vào/ra của kiến trúc được mô

tả trong bảng 3.3

Trang 16

Mô phỏng dạng sóng của mạng nơ-ron có kiến trúc 40-10 cho ứng dụng nhận dạng chữ số viết tay, đầu vào là mẫu thử thứ 1 trong cơ sở dữ liệu MNIST Thời gian thực hiện tính toán một mẫu là 11371 chu kỳ máy Nơ-ron thứ 8 của lớp ngõ ra có giá trị lớn

Trang 17

784-40-nhất = 0.999 (tương ứng chuỗi nhị phân 010011101111111110), cho kết quả nhận dạng là chữ số “7” đúng với cơ sở dữ liệu MNIST

3.5 Công cụ AutogenDNN cho tùy biến kiến trúc mạng nơ-ron lan truyền thẳng nhiều lớp trên FPGA

Để thực thi mạng nơ-ron lan truyền thẳng nhiều lớp có cấu trúc tùy biến (về số lớp ẩn, số lượng nơ-ron trong các lớp) trên FPGA sử dụng kiến trúc SHL_ANN, luận văn sử dụng công cụ AutogenDNN để tạo tự động file mã mô tả phần cứng VHDL

Công cụ AutogenDNN là phần mềm phát triển trên MatLab bao gồm các file mẫu (template) VHDL của các component cấu thành nên kiến trúc SHL_ANN:

 Nơ-ron tính toán

 Khối bộ nhớ lưu trọng số

 Khối nơ-ron tính toán

 Khối điều khiển

Khi thực thi, AutogenDNN sẽ đọc ma trận lưu bộ trọng số và ngưỡng của một mạng nơ-ron có cấu trúc tùy biến (thu được từ huấn luyện mạng nơ-ron hoặc tạo ngẫu nhiên) kết hợp với các template để tạo thành 1 tập tin mã VHDL mô tả phần cứng của kiến trúc SHL_ANN

3.6 Kết luận chương

Tóm lại chương này giới thiệu và phân tích hoạt động kiến trúc mạng nơ-ron nhân tạo với một lớp tính toán phần cứng SHL-ANN (Single Hardware-Layer ANN) để thực thi mạng nơ-ron nhân tạo lan truyền thẳng nhiều lớp tùy biến được (thay đổi số lớp trong mạng hay số nơ-ron trong các lớp) trên FPGA Phần cuối chương giới thiệu công cụ AutogenDNN để tạo tự động file mã mô tả phần

Trang 18

cứng cấu trúc SHL_ANN để thực thi mạng nơ-ron nhân tạo lan truyền thẳng nhiều lớp tùy biến được trên FPGA

CHƯƠNG 4 - THỰC HIỆN VÀ ĐÁNH GIÁ

SHL-4.2.1 Huấn luyện các mạng nơ-ron trên MatLab

Luận văn thực hiện bài toán nhận dạng chữ số viết tay với cơ

sở dữ liệu MNIST [14] để đánh giá hiệu suất hệ thống Cơ sở dữ liệu MNIST của các chữ số viết tay gồm có tập 60000 mẫu huấn luyện và

10000 mẫu kiểm tra Có 10 chữ số khác nhau từ 0 đến 9 trong tập cơ

sở dữ liệu MNIST Mỗi số là một ảnh đa cấp xám được chuẩn hóa với kích thước là 28x28 hay có tổng cộng là 784 điểm ảnh đặc trưng Luận văn sử dụng 784 pixel hình ảnh làm đầu vào trực tiếp đưa vào mạng nơ-ron, do đó cho phép loại bỏ khối trích chọn đặc trưng (PCA) Kết quả là, mạng nơ-ron thiết kế có 784 đầu vào trong lớp đầu vào và 10 nơ-ron trong lớp đầu ra Số lớp ẩn và số nơ-ron trong các lớp ẩn sẽ khác nhau để nghiên cứu việc sử dụng tài nguyên và hiệu năng hệ thống

Ngày đăng: 15/05/2018, 13:11

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w