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

Khóa luận tốt nghiệp Kỹ thuật máy tính: Thiết kế bộ tăng tốc tính toán CNN

72 2 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

Thông tin cơ bản

Tiêu đề Thiết kế Bộ tăng tốc tính toán CNN
Tác giả Trần Quang Diệu, Trương Anh Hào
Người hướng dẫn ThS. Hồ Ngọc Diễm
Trường học Trường Đại học Công nghệ Thông tin
Chuyên ngành Kỹ thuật Máy tính
Thể loại Khóa luận tốt nghiệp
Năm xuất bản 2021
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 72
Dung lượng 26,36 MB

Nội dung

DANH MỤC BANGBảng 2.1: Mô ta chức năng của từng ký hiệu Bảng 4.1: Mô tả tín hiệu khối Input Layer Bảng 4.2: Mô tả tín hiệu khối Broadcaster Bảng 4.3: Mô tả tín hiệu khối Hidden Layer Bản

Trang 1

ĐẠI HỌC QUỐC GIA TP HÒ CHÍ MINH

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

KHOA KỸ THUẬT MÁY TÍNH

Trang 2

ĐẠI HỌC QUỐC GIA TP HÒ CHÍ MINH

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

KHOA KỸ THUẬT MÁY TÍNH

TRAN QUANG DIEU - 16520213

TRƯƠNG ANH HÀO - 16520353

KHÓA LUẬN TÓT NGHIỆP

THIET KE BỘ TANG TÓC TÍNH TOÁN CNN

DESIGN CNN ACCELERATOR

KỸ SƯ NGÀNH KỸ THUAT MAY TÍNH

GIẢNG VIÊN HƯỚNG DẪN

ThS HO NGỌC DIEM

TP HÒ CHÍ MINH, 2021

Trang 3

THONG TIN HOI DONG CHAM KHÓA LUẬN TOT NGHIỆP

Hội đồng cham khóa luận tốt nghiệp, thành lập theo Quyết định số 70/QD-DHCNTT

ngày 27 tháng 01 năm 2021 của Hiệu trưởng Trường Dai học Công nghệ Thông tin.

Trang 4

LỜI CẢM ƠN

Đầu tiên, em muốn cảm ơn các quý thầy, cô và các giảng viên đã và đang giảng dạy tại

trường Dai học Công nghệ Thông tin — Dai học Quốc gia Thành phố Hồ Chí Minh đã

góp công xây dựng trường của chúng ta ngày hôm nay.

Trong quá trình học tập và rèn luyện tại trường, em nhận được sự chỉ bảo tận tình, nhận

được những kiến thức, kinh nghiệm quý báu của các thay, cô, từ đó đã giúp em có được

kiến thức chuyên môn, sâu rộng như ngày hôm nay Ngoài ra, em còn được trang bị kỹ năng mềm trong quá trình theo học tại trường, giúp em có thé bước vững trong cuộc sống và trong tương lai.

Tiếp theo, em xin cám ơn các thầy cô thuộc Khoa Kỹ thuật Máy tính đã giúp đỡ em trong những lúc khó khăn về học vụ, đăng ký học phần và hỗ trợ hết mình để em có thể mượn thiết bị trong lúc làm khoá luận.

Dé có thể hoàn thành khoá luận này, em xin cám ơn thay Trần Dai Dương đã luôn luôn

giúp đỡ tận tình hướng dẫn từ lúc em là sinh viên năm ba đang thực hiện Đồ án 1.

Sau cùng, em muốn gửi lời cám ơn đến gia đình và bạn bè đã luôn là hậu phương vững chắc, là chỗ dựa tinh thần giúp em có thé hoàn thành khoá luận.

Thành phố Hồ Chí Minh, tháng 01 năm 2021

Sinh viên thực hiện

Trần Quang Diệu Trương Anh Hào

Trang 5

MỤC LỤC

CHƯƠNG I GIGI THIỆU TONG QUAN DE TÀI

CHUONG 2 CƠ SỞ LÝ THUYET

CHƯƠNG 3 THIET KE HE THONG

CHUONG 4 THIET KE CHI TIẾT

6.1 Phát hiện ký tự “X” trong Bang chữ cái

6.2 Nhận diện các số 0-9 trong MNIST

CHƯƠNG 7 KET LUẬN VÀ HƯỚNG PHAT TRIEN ĐÈ TÀI

44

48 51 55 55 58 60 60

60

61 62

Trang 6

Pipeline Register

Hidden Layer 0 và 1 Multiply and accumulate circuit ForwardMaccum Multiply and accumulate circuit BackwardMaccum Activation function circuit

Hinh 4.10: Error back propagation circuit

Hinh 4.11: Load / bias circuit

Hinh 4.12: Output Layer

Quy trình mô phỏng và cách đánh giá

Sơ đồ khối mạng nơ ron Testbench

Input Layer (TEST mode /no BURST).

Hidden Layer 0 (TEST mode / no BURST).

Hidden Layer 1 (TEST mode / no BURST).

Output Layer (TEST mode / no BURST).

Valid signal and Ready signal (learning mode).

Valid signal and Ready signal (inference mode / normal mode).

Valid signal and Ready signal (inference mode / burst mode).

Hình 5.10: Pipeline hệ thống

Hình 5.11: Pipeline ForwardMaccum

Trang 7

Hình 5.12: Kết qua mô phỏng post-synthesis 1

Hình 5.13: Kết quả mô phỏng post-synthesis 2

Hình 5.14: Thiết kế của nhóm

Hình 5.15: Thiết kế của đề tài [15]

Hình 6.1: Hình biểu điễn chữ cái alphabet 9x9

Hình 6.2: Hình chữ số 0 viết tay

Hình 6.3: Hình chữ viết tay sau khi đã được chuyền sang ma trận

Hình 6.4: Tài nguyên và độ trễ của mạch

Hình 6.5: Năng lượng sử dụng của mạch

Hình 7.1: Mô hình hệ thống sử dụng thuật toán YOLO lên mang CNN [16]

48 49 Bi

51

55 58

58

59 59 61

Trang 8

DANH MỤC BANG

Bảng 2.1: Mô ta chức năng của từng ký hiệu

Bảng 4.1: Mô tả tín hiệu khối Input Layer

Bảng 4.2: Mô tả tín hiệu khối Broadcaster

Bảng 4.3: Mô tả tín hiệu khối Hidden Layer

Bảng 4.4: Mô tả tín hiệu khối Forward Maccum của Hidden Layer

Bảng 4.5: Mô tả tín hiệu khối Backward Maccum

Bảng 4.6: Mô tả tín hiệu khối Neuron (ReLU) của Hidden Layer

Bảng 4.7: Mô tả tín hiệu khối Delta của Hidden Layer

Bảng 4.8: Mô tả tín hiệu khối Bias Weight của Hidden Layer

Bảng 4.9: Mô tả tín hiệu khối Output Layer

Bảng 4.10: Mô tả tín hiệu khối ForwardMaccum của Output Layer

Bảng 4.11: Mô tả tín hiệu khối Neuron của Output Layer

Bảng 4.12: Mô tả tín hiệu khối Delta của Output Layer

Bảng 4.13: Mô tả tín hiệu khối BiasWeight của Output Layer

Bảng 5.1: Một số trường hợp thử nghiệm trong chế độ TEST / không có BURST.

Bang 5.2: Kết quả tổng hợp logic

Bảng 5.3: Một số trường hợp Test case post-synthesis

33 33 34

40

44 50 52 53 56 57

Trang 9

DANH MỤC TU VIET TAT

Các từ viết tắt Các từ viết đầy đủ

CNN Convolutional Neural Network

NI Number of neurons in the input layer

NHO Number of neurons in hidden layer 0

NHI Number of neurons in hidden layer 1

NO Number of neurons in the output layer

WV Bit width of neuron output value

Trang 10

TÓM TẮT KHÓA LUẬN

Trong khoá luận này, nhóm đề xuất kiến trúc thiết kế mạng nơ ron tích chập trên FPGA.

Trong đó, mạng sử dụng trọng số đã được huấn luyện bằng chính chức năng Backward

Function của mạch để nạp vào hệ thống Kiến trúc mạng nơ ron tích chập có thể thay đổi

được các thông số đầu vào từ đó có thể điều chỉnh luôn cả phần cứng tùy thuộc vào nhu cầu của mỗi bài toán, và sau đó tự động tạo mã Verilog HDL cho mạng đó Cuối cùng,

mang sẽ được tổng hợp và nạp trên Virtex7 FPGA board.

Bên trong kiến trúc, nhóm sử dụng kiểu dữ liệu là số nguyên Thiết kế của nhóm đã thử nghiệm trên một thiết kế mạng bốn lớp, trên tập dữ liệu chữ sé viết tay MNIST.

Kết quả sẽ được đánh giá theo hai tiêu chí:

¢ Tinh chính xác của thuật toán: Kết quả sẽ được đánh giá dựa vào kết quả tính toán

của mạch (hardware) và so sánh với kết quả dựa trên mô hình cơ sở lý thuyết

(software).

¢ Tai nguyên phan cứng: Việc đánh giá các thông số này sẽ được thực hiện trên phần

mêm tool vivado của Xilinx.

Trang 11

MỞ ĐÀU

Hiện nay, các mạng nơ ron tích chập đang được sử dụng rộng rãi trong các ứng dụng liên

quan đến thị giác máy tính, AI, Da số các mạng nơ ron tích chập đều được thiết kế để

triển khai trên CPU, GPU và Server Đối với dữ liệu thu thập từ camera, các ứng dụng thường sẽ được triển khai theo mô hình xử lý tập trung tại Server, từ đó, gây ra các trường hợp tắc nghẽn Server nếu dữ liệu cần được xử lý cùng lúc quá lớn Ngoài ra, quá trình

truyền dữ liệu từ Client sang Server và ngược lại khiến cho dữ liệu không đáp ứng được

thời gian thực.

Do đó, dé khắc phục những nhược điểm đó, nhóm mong muốn hiện thực mạng nơ ron tích

chập trên FPGA, và xem nó như một end-device, dữ liệu đưa vào và trả về ngay tại Client,

không thông qua quá trình truyền dữ liệu nào khác.

Hiện nay, các phương pháp đã được nghiên cứu liên quan đến đề tài thường chỉ triển khai

một phần của mạng nơ ron tích chập Chính vì vậy, mục tiêu của khoá luận được đề ra là

thiết kế mạng nơ ron tích chập có khả năng tăng tốc tính toán, sử dụng kiểu dữ liệu số nguyên và hiện thực đầy đủ các lớp cơ bản của mạng nơ ron tích chập.

Các phần tiếp theo của khóa luận sẽ được tô chức như sau:

© Chương | trình bày về tông quan đề tài, tính cấp thiết của dé tài cũng như là nghiên

cứu nồi bậc liên quan đến đề tài của nhóm.

© Chương 2 giới thiệu cơ bản về cơ sở lý thuyết của mạng no ron tích chập cũng như

là các thành phần bên trong nó.

© Chương 3 đưa ra thiết kế tổng quan của hệ thống, mô tả cơ bản về cách hệ thống

hoạt động.

© - Chương 4 tập trung đi sâu vào thiết kế chỉ tiết các thành phan trong thiết kế hệ thống.

© _ Chương 5 cho biết quy trình dé chạy kết quả mô phỏng của mạch, kết quả tổng hợp

logic và đánh giá kết quả đề tài dựa trên sự so sánh với 1 vài nghiên cứu khác.

Trang 12

Chương 6 liệt kê một vài ứng dụng mà nhóm đã thực hiện trong quá trình làm thực

hiện đề tài.

Chương 7 tông kết, đưa ra kết luận, những khó khăn gặp phải và hướng phát triển

tiếp theo của đề tài.

Trang 13

CHƯƠNG 1 GIỚI THIỆU TONG QUAN DE TÀI

Trong những năm gan đây, mạng no ron tích chập (CNNs) đã đạt được những thành tưu to lớn trong các ứng dụng thị giác máy tính như phân loại hình ảnh [1], phát hiện đối

tượng [2] và nhận diện gương mặt [3] CNNs đã áp dung chủ yếu trên ảnh 2D dé tự động trích xuất các đặc điểm không gian và đã nâng cao đáng kê độ chính xác sự phân loại hình

ảnh.

CNNs yêu cầu 1 lượng lớn bộ nhớ vì có hàng triệu tham số trong 1 CNNs điền hình.

Trong khi đó, việc tính toán CNN với hơn hàng tỉ phép toán để chỉ để suy luận một đầu vào Ví dụ, VGG16 [4], một CNN 2D nhận diện hình ảnh với 16-layer cần khoảng 31

GOp/s (Giga Operation per second) để nhận diện Do đó, các chương trình tính toán CNN thường được chạy trên 1 server bao gồm rất nhiều CPU va GPU Hơn nữa, với

Deeplearning framework tương thích bao gồm như Caffe [5], Theano [6], and TensorFlow [7] việc training va testing trên CNNs trở nên hiệu quả hon trên những nền tang nay Trong

khi những CPU và GPU là những nền tảng quan trọng đối với CNNs, việc tối ưu bộ tính tính toán đề có hiệu suất tốt hơn và năng lượng tiêu hao tốt hơn là vấn đề cần được quan

tâm Ví dụ, trường hợp hệ thống nhúng cho xe ô tô điều khién tự động và rô bot, năng liệu

tiêu hao ít là rất cần thiết dé có thé áp dụng được CNN.

Nhờ những lợi thế về hiệu suất cao, tiết kiệm năng lượng và sự linh hoạt FPGA đã

được xem như là nền tang dé tăng tốc CNNs Như đã báo cáo trong các cuộc khảo sát gần

đây [8,9], nhiều bộ tăng tốc CNN dựa trên FPGA đã được sử dụng cho CNN 2D và nhiều công cụ hỗ trợ cho việc ánh xạ CNN 2D trên FPGA đã được làm ra Thiết kế [10] trong

việc tính toán tích chập 2D với thuật toán Fast Fourier Transform (FFT) Hướng tiếp cận nay đã chứng minh rằng nó chỉ hiệu quả với các tích chập 11x11, 7x7 và kém hiệu quả hơn đối với tích chập 3x3, 1x1 Một số thiết kế bộ gia tốc tinh toán tích chập 2D bằng cách

giảm số lượng tính toán như thuật toán Winograd [11], và thiết kế [12] còn mở rộng ra đối

với tích chập 3D Tuy nhiên, thuật toán Winograd rất nhạy cảm đối với các kernel tích chập Đối với các kernel tích chập với kích thước khác nhau thì cần sử dụng những ma trận

khác nhau Do đó thuật toán Winograd hoàn toàn phù hợp mô hình CNN với các kernel có

—<$—$

Trang 14

kích thước tích chập đồng nhất như VGG trong khi nó lại không phù hợp với mô hình CNN với các kernel có nhiều kích thước tích chập như AlexNet Một cách tiếp cận khác là ánh

xạ CNN vào các ma trận như việc triển khai CPU và GPU [13.14] áp dụng cách tiếp cận này vào trong thiết kế bộ gia tốc tính toán CNN trên FPGA sử dụng OpenCL framework.

Mối quan tâm chính ở đây là nó tạo nên độ sao chép các thuộc tính đầu vào có thé dẫn đến

sự kém hiệu quả trong việc lưu trữ cũng như việc truy cập các kiến trúc bộ nhớ phức tạp.

Đặc biệt, Weight Matrix và feature Matrix đều được mở rộng ra bởi kernel 3D convolution, điều này làm tăng đáng kể yêu cầu bộ nhớ.

Một layer tích chập với 1 lượng lớn kênh đầu vào sẽ được chia thành nhiều layer

tích chập với kênh đầu vào ít hơn Thách thức ở đây là làm sao đề tính toán các phép nhân

ma trận hiệu quả trên FPGA Sự khác nhau với tính toán dựa trên OpenCL framework

[13,14], việc ứng dụng mảng 2D MAC cho việc nhân các ma trận Mang 2D MAC có thể

mở rộng và kích thước chủ yếu phụ thuộc vào phần cứng, độ rộng của bộ nhớ, độ lớn của

sự ánh xạ.

'Vào năm 2019, sinh viên Huỳnh Vĩnh Phú - Trường Đại học Công nghệ Thông tin

đã công bó dé tài thiết kế và hiện thực mạng noron tích chập trên FPGA [15] với các tính

năng như sau:

Khối Forward

Active function: ReLU

Khối floating point 32 bits

Trang 15

e Active function: ReLU

e Tan số hoạt dong 170MHz

Trong khóa luận này nhóm sẽ trình bài thiết kế bộ tăng tốc CNN dựa trên những

mục tiêu mà nhóm đã dé ra.

Trang 16

CHƯƠNG2 ˆ CƠ SỞ LÝ THUYÉT

Bộ não con người có nhiều tế bào thần kinh Chúng nhận tín hiệu đầu vào và xử lý

để tạo ra một kết quả khác Ví dụ, khi chúng ta chạm vào vật nóng, đầu vào nóng này sẽ

được gửi đến tủy sống thông qua các tế bào thần kinh cảm giác (interneurons) và sau đó sẽ

phan ứng dé nhanh chóng rút tay ra khỏi vật nóng.

Mạng lưới thần kinh là các tế bào thần kinh của con người bắt chước bằng cách sử

dụng mô hình toán học Mạng nơ-ron về cơ bản có ba layer, tức là (1) input layer (2) hidden layer (3) output layer, câu trúc này được gọi là cấu trúc 3 layer Có những mô hình trong

đó hidden layer bao gồm hai hoặc nhiều layer Hình 2.1 cho thấy một mô hình mạng

nơ-ron có cau trúc 4-layer với 2 hidden layer.

* [OO

®D 2 ®

Hình 2.1: Cầu trúc mạng nơ ron 4 layer

Mạng noron chuyền đổi một số tín hiệu đầu vào (tín hiệu này được chuyển qua mô hình mạng nơron) Và ở cuối đầu ra, có một supervisor (đầu ra lý tưởng) mà chúng tôi đã

đưa ra trước đó như Hình 2.2.

Trang 17

Lấy giá trị chênh lệch giữa đầu ra va supervisor, tham số mạng nơron sẽ thay đổi đồng thời cho đến khi đầu ra giống với tín hiệu giám sát.

ans =1

ans =0

Hình 2.3 cho thấy mô hình mạng nơ-ron với mỗi tham số trong layer tương ứng của nó.

Định nghĩa của từng tham số như mô tả ở Bảng 2.1

Bang 2.1: Mô tả chức năng cua từng ký hiệu

Ký hiệu Mô tả

ki tín hiệu dau vào

wis trọng so giữa dau ra thứ i của input layer va dau vào thứ j của hidden layer 1

b? bias thứ i của hidden layer 1

đầu vào thứ i của hidden layer 1

a? đầu ra thứ i của hidden layer 1

wis trong so giữa đầu ra thứ ¡ của hidden layer 1 và đầu vào thứ j của hidden layer 2 b3 bias thứ i của hidden layer 2

đầu vào thứ i của hidden layer 2

Trang 18

a} đầu ra thứ i của hidden layer 2

wij trong số giữa dau ra thứ i của hidden layer 2 va đầu vào thứ j của output layer

bệ bias thứ i của output layer

zt đầu vào thứ i của output layer

a} đầu ra thứ i của output layer

zc, zi” va z là tông cua bias và tích của mỗi trọng sô từ tín hiệu dau vào và chính

tín hiệu đầu vào Các tính toán được mô tả ở công thức (2.1), (2.2) (2.3):

Z? = Wijk + Wik, + Wks + bệ (2.1)

Z2 = WSa? + Wa? + W3a? + bệ (2.2)

:

Zi = Wa? + Wa} + Wa? + bệ (2.3)

a’, a? va ai! là activation function cho zi”, z¡ và z¡ một cách tương ứng Chúng ta

có thé sử dụng bat ky function nào có thé phân biệt và chuẩn hóa như activation function.

Ví dụ: nếu chúng ta sử dụng hàm ReLU, các phương trình cho a? và p(z7) được tính toán

bằng công thức (2.4) và (2.5):

2 2a? = a(z?) = fi @ > 9) (2.4)

Trang 19

Từ đây, chúng ta sẽ sử dụng phương pháp truyền ngược trong đó tham sé weight và bias thay đổi đồng thời với hàm chi phi dé tối ưu hóa việc tính toán tham số mới từ đầu ra

đến đầu vào Bằng cách sử dụng giá trị C, chúng ta có thé tính toán độ đốc (gradient descent) của weight and bias Khái niệm của các phép tính được hiển thị ở công thức (2.8)

và (2.9).

(Awïi , Awii , Awii , Abƒ , AbÏ , Abƒ ,) =

( ac ac ac ac ac oe 8)

n Swi! Đưậy wh bE aoe ang) (2:

aC O(Cy+ Cot ac, ac:

Ma2& = Gt Ger) Or } 2 + = 52h, (2.9)

Ow, owt, owt, owt,

6) là giá trị sai số cho weight và bias Từ các phương trình này, chúng ta có thể sử dụng nó để tính giá trị delta từ hàm chỉ phí (cost function) Ví dụ, nhóm tính toán hàm

gradient của oe va 2e được mô ta ở công thức (2.13) va (2.14) Cách hoạt động của hàm

aw?, ab?

Cost Function được mô ta như trong Hình 2.4.

Cost function

ans = 0

Trang 20

Các sai số õj được tính toán bằng các công thức (2.10), (2.11), (2.12):

5} = (at — tị)a'(Z7) (2.10)

ðÏ = (6w + btw ++ )a’ (zz) (2.11)

Of = (ðÏwä + ð$wä + ¬:)đ'(2Ÿ) (2.12)

ac 2 jay = 0Ÿ: (2.13)

TT = 6? (2.14)

Từ day, chúng ta có thé thay đổi weight va bias thành một giá trị mới Các tính toán dùng để cập nhật giá trị weight và bias mới được tính toán bằng công thức (2.15), (2.16),

(2.17), (2.18), (2.19), (2.20):

(new) wi, = (old)wj + Awj (2.15)

(new)wÄ = (old)wj + Awỷ (2.16)

(new)wä = (old)wj + Awỷ (2.17)

(new)bj; = (old)bj; + Abt (2.18)

(mew)bậ, = (old)b3, + Ab} (2.19) (new)bj; = (old)bj + Abj (2.20)

Sau khi thay đổi thành tham số mới, chúng ta có thé bắt dau lại dé chèn tín hiệu đầu vào và phép tính sẽ tiếp tục cho đến khi kết quả đầu ra cho giá trị gần nhất, tức là sự khác

biệt nhỏ nhất giữa giá trị đầu ra và giá trị giám sát.

Do đó, sơ đồ của hệ thống mạng nơ-ron này sẽ hoạt động theo như Hình 2.5 Tính

toán sẽ dừng khi giá trị đầu ra giống với giá trị của supervisor.

Trang 21

Set initial value of weight and

bias as random number

Calculate gradient descent of

weight and bias

Trang 22

CHƯƠNG 3 THIET KE HE THONG

Hình 3.1 cho thấy một cách tổng quan nhất data flow toàn bộ thiết kế của nhóm.

iData AM Input iData_AM_State0 iData AM StateO iData AM StateO loData BM Output

iData_AS_Statel Hidden iData_AS_State1 Hidden iData_AS_Statel

Layer Layer Input

Layer ‘oData_BM_Weight

Output Layer oData_BM_Weight (oData_BM_Weight|

0Data_BM_Deltad joData_BM_Deltad) Data_BM_Deltad)

iData_AS_Teacher

Hinh 3.1: Thiét ké tong quan

Dựa vào Hình 3.1, nhóm sẽ trình bày một cách tổng quan về data flow của từng layer:

¢ Input Layer: dùng dé chuyền dữ liệu data input đến cho Hidden Layer 0

¢ Hidden Layer 0 va 1: Sau khi nhận được data input, layer này sẽ thực hiện tinh

toán product-sum rồi dùng hàm kích hoạt dé xuất ra data output cho layer tiếp theo

¢ Output Layer: cũng tương tự như Hidden Layer, kết quả tính toán ở lớp này sẽ là

output của toàn bộ hệ thông

Quy trình thé hiện data flow của mạch dé thực hiện các bước tính toán mạng nơ ron

back propagation bao gồm 6 bước cơ bản:

e Bước 1: Chon data Teacher

e Bước 2: Thực hiện tính toán Forward

e Bước 3: So sánh output va data Teacher

e Bước 4: Thực hiện tính toán Backward

e Bước 5: Cập nhật lại trọng số

¢ Bước 6: Lap lại bước 2 cho đến khi nào ta nhận được kết quả output và data

teacher gần hội tụ lại với nhau, lúc đó ta sẽ thu được kết quả như mong muốn

Trang 23

CHƯƠNG 4 THIET KE CHI TIẾT

4.1 Thiết kế tong quan

Hình 4.1 cho thay mot so đồ khối của mạch mạng nơ-ron mà nhóm thiết kế Hình 4.1 cho thấy một Multi-Layer Perceptron (MLP) bao gồm hai hidden layer và một output layer Mỗi layer bao gồm bốn loại kết hợp mô-đun mach sau đây:

Multiply and accumulate circuit (Maccum)

Activation function circuit (Neuron)

Error back propagation circuit (Delta)

Load / Bias circuit (BiasWeight)

Tất cả các layer cũng như là mô-đun tạo nên mạch đều đã được tham số hóa Mạch có

các thông số chính có thé được điều chỉnh như sau:

NI: Số lượng tế bào thần kinh trong input layer

NH0: Số lượng tế bào thần kinh trong hidden layer 0

NHI: Số lượng tế bào thần kinh trong hidden layer 1

NO: Số lượng tế bào thần kinh trong output layer

WV: Độ rộng bit của giá tri dau ra của noron

Mỗi mô-đun được kết nối bằng phương pháp handshake sử dụng tín hiệu Valid và tín

hiệu Ready Các mũi tên trong Hình 4.1 chỉ ra kết nối của từng mô-đun Phan kết nói được biểu thị bằng mũi tên cham chỉ giao tiếp trong chế độ suy luận Giao diện chỉ tiết của từng

module sẽ được mô tả ở Hình 4.1.

Trang 24

— a ¬ ra:

-f Input Layer 7 _ Hidden Layer 0 `, i Hidden Layer 1 ì / Output Layer \

Ị cự HN 0m,

Ị f |

[iDah AM Input | AM | Forward Rau [| Ì ¡ [Forward ReLU | | | | Forward ReLU | |

+ Brats Maccum| Hidden ¡ Maccum Hidcen| | | ¡_ Masam Output j

Ị Ị ị i

i | ! Ị Ị

| Ì | Ï |

Ị | _ | i i

i LAS ; | | iData AS Sael | iDaa AS Statel ị

i oi 7 + | wwe | | ï & ị Lạy ¡

| i |_| Weight Weight {na BM Weigh |_| Weight Ï

i i i | ola Backword| PD BM Dela) | Det i

i i | Hidden Maccum [1 | Ouput i

Trang 25

Mạch product-sum, Activation function circuit và Load / Bias circuit được sử dụng để

tính toán sự lan truyền thuận của MLP Mạch product-sum (đối với truyền tiến forward)

của mỗi layer nhận cả đầu ra của layer trước đó và Weight and bias được cung cấp bởi

mạch load / bias, sau đó tính toán trạng thái bên trong của nơron bằng phép product-sum Trang thái bên trong của no-ron được đưa vào Activation function circuit và giá trị đầu ra

của nơ-ron được tính toán Quá trình này được thực hiện cho tất cả các layer.

Mach error back-propagation được sử dụng dé tính toán back-propagation của output layer của MLP Mạch error back-propagation nhận đầu ra của noron (output layer nhận

trạng thái bên trong của noron vì nó không áp dụng activation function) và tín hiệu teacher.

Mạch này tính toán sự khác biệt giữa đầu ra của nơ-ron và tín hiệu teacher Điều này tương

ứng với sự khác biệt của Mean Squared Error được thiết lập như một error function.

Mạch error propagation và mạch product-sum được sử dụng để tính toán propagation của layer MLP ẩn Đầu tiên, mạch product-sum sản phẩm nhận cả trọng số

back-của layer tiếp theo và sai số back-của layer tiếp theo, và thực hiện phép product-sum Tiếp theo, mạch error backpropagation nhận kết quả của phép toán tổng tích và trạng thái bên trong

của nơ-ron, và tính toán lỗi Ở đây, trạng thái bên trong của nơ-ron được sử dụng để kiểm

tra giá trị vi phân của hàm kích hoạt trong layer đó Quá trình này được thực hiện cho tất

cả các hidden layer.

Weight và bias MLP được cập nhật bởi mạch load / bias của mỗi layer Load / Bias circuit có một thanh ghi để lưu giữ weight va bias Mạch này nhận được cả lỗi do mạch error backpropagation đưa ra và đầu vào được cung cấp bởi Activation function circuit của

layer trước, sau đó tính toán lượng cập nhật của weight va bias, đồng thời ghi lại weight và

bias đã cập nhật.

Trang 26

Hinh 4.2: Input Layer

Bang 4.1: Mô tả tín hiệu khối Input Layer

Input Layer Name port Function

input iData_AM_Input Lưu trữ đầu vào của mạch

output oData_BM_State0 | Truyén dau vào tới ForwardMaccum của Hidden

Layer dé tinh product-sum

oData_BM_Statel Truyền đầu vào đến BiasWeight của Hidden Layer

để tính toán cập nhật weight

"mm

Trang 27

Bảng 4.2: Mô tả tín hiệu khối Broadcaster

Broadcaster 0 Name port Function

input iData_AM Lưu trữ đầu vào của mạch

output oData_BMO Truyén dau vào tới ForwardMaccum của layer tiếp theo

oData_BM1 Truyén dau vao dén Broadcaster 1

Broadcaster 1 Name port Function

input iData_AM Lưu trữ đầu vào từ Broadcaster 0Oufput oData_BMO Truyén dau vao dén BiasWeight cua layer tiép theo

Trang 28

Broadcaster là một mô-đun dé truyền dữ liệu nhận được từ một nguồn dữ liệu đếnhai chỗ dữ liệu Khi nó nhận dữ liệu từ một nguồn dữ liệu, nó sẽ chuyên dữ liệu đến từng

phần trong hai chỗ chứa dữ liệu Cho đến khi hai chỗ dữ liệu nhận được dữ liệu, chúng

không nhận dữ liệu từ nguồn dữ liệu và làm ngưng tré luồng dit liệu

Broadcaster và Combiner có một Register tích hợp (một hàng đợi có độ sâu là 1) và

hoạt động như một trình điều khiển của giao thức handshake Mô-đun Register có chế độ

bình thường và chế độ liên tục Trong chế độ bình thường, truyền dữ liệu chỉ có thể đượcthực hiện sau mỗi hai chu kỳ xung clock, nhưng nó có thể được thực hiện với một lượngnhỏ tài nguyên mạch Mặt khác, trong chế độ liên tục, dữ liệu có thé được truyền mỗi chu

kỳ xung nhịp, nhưng số lượng tài nguyên mạch cần thiết để gắn kết sẽ tăng lên

19

Trang 29

4.2.1.2 Pipeline Register

Hình 4.5 mô tả sơ đồ khối mạch của Pipeline Register Pipeline Register được sử

dung dé chia quá trình xử lý trong một mô-đun thành nhiều giai đoạn và thực hiện xử lý

pipeline Pipeline Register được đặt giữa mỗi giai đoạn và chuyên di liệu từ giai đoạn này

sang giai đoạn tiếp theo Khi tín hiệu Ready ở phía đầu ra là CAO và tín hiệu Valid ở phíađầu vào là CAO, dữ liệu được chuyền sang giai đoạn tiếp theo

Hình 4.6 cho thấy thiết kế chi tiết cua Hidden Layer 0 và 1 Nó bao gồm 5 khối

chính: Forward Maccum, Backward Maccum, Bias Weight, Delta va Neuron Ca Forward

Maccum va Backward Maccum đều được sử dung dé tinh product-sum, nhưng khối

forward sẽ tinh toán giữa dữ liệu đầu vào va weight bias và khối backward tính toán giữa

dữ liệu sai số và weight Khối bias weight được sử dung dé tao trong số va cap nhat trong

số Delta được sử dụng dé tính toán sự lan truyền lỗi giữa dữ liệu đầu ra của nơ ron và dữliệu sai số Khối Neuron (ReLU) được sử dụng để activation function cho đầu ra củaForward Maccum Chi tiết chức năng của từng port được mô tả ở Bảng 4.3

20

Trang 30

Hinh 4.6: Hidden Layer 0 va 1

Bang 4.3: Mô tả tín hiệu khối Hidden Layer

Hidden Layer 0 Name port Function

va 1

input iData_AM_StateO Lưu trữ đầu vào từ Layer trước vào

ForwardMaccum

1Data_AS_ Statel Lưu trữ đầu vào từ Layer trước vào BiasWeight

1Data_AM_ Weight Lay weight dé tinh BackMaccum

iData_AM_Delta0 Lay delta dé tính toán BackwardMaccum (port này

chỉ có trong Hidden Layer 1)

output oData_BM_Delta0 Truyền giá tri delta đến Layer trước

theo

trong Hidden Layer 1)

sneer

21

Trang 31

4.2.2.1 Product-sum operation circuit (Forward Maccum)

Sơ đồ khối của mach product-sum được hién thị ở Hình 4.7 Hình 4.7 cho thấy mạch tính toán giá trị đầu vào cho mạch nơ-ron (FowardMaccum) Chi tiết chức năng của từng

port được mô tả ở Bảng 4.4.

Hình 4.7: Multiply and accumulate circuit ForwardMaccum

Mach product-sum là mạch thực hiện phép product-sum can thiết dé tinh giá trị đầuvào cho mạch nơron và mạch truyền lỗi Mạch product-sum bao gồm nhiều mô-đun

Maccum và nó có cùng sô lượng với sô phân tử ở phía đâu ra Maccum bao gôm một mạch

nhân (Mul) có cùng sỐ phần tử với số phần tử đầu vào và một mạch product-sum (Sum)

22

Trang 32

Trong mạch product-sum, các mạch cộng được sắp xếp theo hình cây Tat cả các mô-đuntrong mạch product-sum được kết nối bằng giao thức handshake và độ lệch của thời gian

dữ liệu đo sự khác biệt về số lượng giai đoạn của mạch tính toán được hấp thụ.

Công thức được sử dụng trong mạch này là (2.1), (2.2), (2.3)

Đối với Hidden layer 0

e FordwardMaccum: Z? = Wik, + W3k, + Wk; + bệ (2.1)

Đối với Hidden Layer 1

e FordwardMaccum: Zÿ = Wa? + Wa? + Wa? + b (2.2)

Đối voi Output Layer

e ForwordMaccum: Z* = W1aÿ + Wa? + Wjaÿ + b‡ (2.3)Bang 4.4: Mô tả tín hiệu khối Forward Maccum cua Hidden Layer

Forward Name port Function

Maccum

input iData_AM_WeightBias Nhận trong sô dé tính product-sum

iData_AM_State0 | Nhận dữ liệu dau vào dé tinh product-sum

output oData_BM_Accum0 Truyén đầu ra tới Neuron

oData_BM_ Accuml Truyền đầu ra tới delta

4.2.2.2 Product-sum operation circuit (Backward Maccum)

Sơ đồ khối của mach product-sum được hiển thi ở Hình 4.8 Hình 4.8 cho thấy mạchtính toán giá tri đầu vào cho mạch truyền lỗi (BackwardMaccum) không cộng thêm giá trịbias sau khi tính toán product-sum Chi tiết chức năng của từng port được mô tả ở Bảng

4.5.

23

Trang 33

iData_AM_Deltla0 [proadcaste L Maccum

Hinh 4.8: Multiply and accumulate circuit BackwardMaccum

Mach product-sum là mạch thực hiện phép product-sum cần thiết dé tinh giá trị đầuvào cho mạch nơron và mạch truyền lỗi Mạch product-sum bao gồm nhiều mô-đun

Maccum và nó có cùng số lượng với số phần tử ở phía đầu ra Maccum bao gồm một mạch

nhân (Mul) có cùng số phần tử với số phần tử đầu vào và một mạch product-sum (Sum)

Trong mạch product-sum, các mạch cộng được sắp xếp theo hình cây Tất cả các mô-đun

trong mạch product-sum được kết nối bằng giao thức handshake và độ lệch của thời gian

dữ liệu đo sự khác biệt về số lượng giai đoạn của mạch tính toán được hấp thụ.

24

Trang 34

Công thức được sử dụng trong mạch này là (2.12) và (2.11)

Đối với Hidden layer 0

e© BackwardMaccum: ôÿW7;, + d3w3, + - (2.12)

Đối với Hidden Layer 1

e BackwardMaccum: ổ/W{ + 6¢w3, + - (2.11)

Bang 4.5: Mô tả tín hiệu khối Backward Maccum

Backward Name port Function

Maccum

input iData_AM_Weight | Nhận weight dé tinh BackwardMaccum

iData_AM_Delta0 Nhận delta dé tính BackwardMaccum

output oData_BM_Accum2 | Tính toán product-sum cho delta tiếp theo

4.2.2.3 Activation Function Circuit (Neuron)

Hình 4.9 cho thay so đồ khối của Activation function circuit Activation functioncircuit chấp nhận đầu vào từ mach product-sum cua layer riêng của nó Dau vào tín hiệu

cho Activation function circuit được chia theo trạng thái bên trong của nơ-ron, và mỗi tín

hiệu được đưa vào khối ReLU được thé hiện trong hình Chi tiết chức năng của từng port

được mô tả ở Bảng 4.6.

Khối ReLU cắt tín hiệu đầu vào từ 0 đến MAX (giá trị lớn nhất có thê được lấy với

độ rộng bit của tín hiệu đầu ra) Hàm ReLU ban đầu không có giới hạn trên đối với giá trịđầu ra Tuy nhiên, trong mạch thiết kế này, đặc điểm kỹ thuật là giới hạn độ rộng bit củagiá tri đầu ra của hàm kích hoạt Điều nay là do độ rộng bit của tín hiệu đầu vào của nơ-

ron không tăng theo từng layer của mạng nơ-ron.

25

Trang 35

Hình 4.9: Activation function circuit

Tat ca các giá trị được tính toán bởi môi khôi ReLU được đưa vào Broadcaster Bởi

Broadcaster, dau ra cua Activation function circuit được đưa vào mạch product-sum của

layer tiếp theo va Load / Bias circuit của chính nó

Công thức được sử dụng trong mach này là (2.4), (2.5)

Z¿ (z? > 0)

0œ? <0)

of = a) = |

(2?) = max(0,zŸ) (2.5)

Bang 4.6: Mô tả tín hiệu khối Neuron (ReLU) của Hidden Layer

Neuron Name port Function

input iData_AM_ Accum0 | Nhận đầu vào từ ForwardMaccum đề tinh toán ReLU

output oData_BM_ State0 Truyền đầu ra tới Layer tiếp theo

oData_BM_ Statel Truyền đâu ra tới BiasWeight của layer tiếp theo

—mm—>>==s==ễ=ễễễễ=ễ==esamm>->œ>aạzẽ2z<s-ỶỲỶ-.-.- ——————————

26

Trang 36

4.2.2.4 Error propagation circuit (Delta)

Hình 4.10 cho thấy so đồ khối của Error propagation circuit Mach truyền lỗi sẽnhận tính hiệu từ khối Forward và khối Backward (Output Layer không có khối này) détính toán sai số cần thiết dé cập nhật giá trị tai của mạng CalcDelta là một mô-đun tínhtoán các lỗi Chỉ tiết chức năng của từng port được mô tả ở Bảng 4.7

Đối với hidden layer:

So sánh giá trị không đổi 1 và 0 với giá trị đầu ra (al) của mach product-sum của

quá trình lan truyền thuận (forward)

e 0<al <l > Giá trị đầu ra của mạch product-sum giống (a2)

e ngược lại > Đầu ra 0

Đối với output layer:

(Giá trị đầu ra của mạch product-sum của quá trình lan truyền thuận (a1)) - (Gia tri

đầu ra của mạch product-sum của quá trình back-propagation (a2)) là đầu ra.

Ngoài ra, kết quả product-sum có thé nhỏ hơn -1 hoặc lớn hơn 1, do đó machSaturation thực hiện xử lý bão hòa giá tri đầu ra

Công thức được sử dụng trong mạch này là (2.10), (2.11), (2.12)

Đối với Output Layer

e DeltaOutput: ổ‡ = (af — tf;)a'(zŸ) (2.10)

Đối với Hidden Layer 1

e Delta Hidden Layer 1:6? = (ổ‡Wj# + Sfw, + -)đ'(Zÿ) (2.11)Đối voi Hidden Layer 0

e Delta Hidden Layer0: 5? = (ổÿwï + d3w3, + -)@'(Z?) (2.12)

27

Ngày đăng: 02/10/2024, 08:35

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN