Tải bản đầy đủ - 0 (trang)
Chương 3. CƠ SỞ LÝ THUYẾT VỀ CONVOLUTIONAL NEURAL NETWORK VÀ RECURRENT NEURAL NETWORK

Chương 3. CƠ SỞ LÝ THUYẾT VỀ CONVOLUTIONAL NEURAL NETWORK VÀ RECURRENT NEURAL NETWORK

Tải bản đầy đủ - 0trang

Chương 2. Cơ sở lý thuyết về định danh người dùng bằng đặc trưng chuyển động



danh người sử dụng đặc trưng gait ứng dụng kỹ thuật CNN được đề xuất trong các

Chương 4 và Chương 5. Trong chương kế tiếp, chúng tơi trình bày các kiến thức liên

quan đến Neural Network, Convolution Neural Network (CNN) và Recurrent Neural

Network (RNN) – là cơ sở lý thuyết cho việc sử dụng CNN và RNN vào việc trích rút

đặc trưng gait phục vụ cho phép định danh người dùng được thể hiện trong Chương 4 và

Chương 5.



28



Chương 3. Cơ sở lý thuyết về Convolutional Neural Network và Recurrent Neural Network



Chương 3. CƠ SỞ LÝ THUYẾT VỀ CONVOLUTIONAL NEURAL

NETWORK VÀ RECURRENT NEURAL NETWORK

Nội dung Chương 3 giới thiệu tổng quan về Neural Network, từ đó

trình bày các kiến thức chun sâu về Convolutional Neural Network

(CNN) và Recurrent Neural Network (RNN). Đây chính là nền tảng cho

việc đề xuất các kiến trúc sử dụng CNN và RNN phục vụ cho việc trích rút

đặc trưng cấp cao tự động được trình bày ở các chương kế tiếp.



3.1 Giới thiệu về Neural Network

Neural Network là một trong những phương pháp học có giám sát (supervised

learning) phổ biến nhất, lấy cảm hứng từ mơ hình hoạt động của các tế bào thần kinh

trong sinh học. Neural network được cấu tạo từ các neuron, tổ chức thành lớp (layer) cho

phép học được các tham số từ dữ liệu huấn luyện sau đó sử dụng các thơng tin này để dự

đoán cho dữ liệu mới. Neural network và các kiến trúc liên quan được ứng dụng thành

công trong nhiều bài toán liên quan đến xử lý ảnh và thị giác máy tính, xử lý tiếng nói

và xử lý ngơn ngữ tự nhiên (NLP – Natural Language Processing).

3.1.1 Cấu trúc của một neuron



Hình 3.1 Cấu trúc của một neuron.



29



Chương 3. Cơ sở lý thuyết về Convolutional Neural Network và Recurrent Neural Network



Như thể hiện trong hình 3.1, một neuron nhân tạo gồm các thành phần chính như sau:

▪ Dữ liệu vào (input): là các giá trị 𝑥1 , 𝑥2 , 𝑥3 , … , 𝑥𝑛 tương ứng với các thuộc tính

của dữ liệu đầu vào.



▪ Dữ liệu ra (output): là kết quả đầu ra cuối cùng của neuron sau quá trình tính

tốn.

▪ Trọng số (weight): mỗi giá trị 𝑥1 , 𝑥2 , 𝑥3 , … , 𝑥𝑛 trong dữ liệu vào có một trọng số

(weight) tương ứng 𝑤1 , 𝑤2 , 𝑤3 , … , 𝑤𝑛 . Mỗi trọng số ứng với một giá trị đầu vào



thể hiện cho mức độ ảnh hưởng (mức độ quan trọng) của giá trị đầu vào đó với

kết quả đầu ra.

▪ Hàm tổng(Summation Function): Hàm tổng tính tổng giá trị các tích của từng

giá trị đầu vào với trọng số tương ứng, cộng với giá trị độ lệch 𝑏 (bias), theo công

thức sau:



𝑆𝑢𝑚 = ∑𝑖 𝑤𝑖 𝑥𝑖 + 𝑏



▪ Hàm kích hoạt (Activation Function): Kết quả của hàm tổng là dữ liệu đầu vào

cho hàm kích hoạt để tính tốn ra kết quả đầu ra (output) của neuron. Hàm kích

hoạt là các hàm dạng phi tuyến (non-linear function), được sử dụng giúp cho

Neural Network tăng cường sức mạnh, có thể học và biểu diễn các ánh xạ phức

tạp từ dữ liệu đầu vào và đầu ra.

output = 𝑓(𝑆𝑢𝑚) = 𝑓(∑𝑖 𝑤𝑖 𝑥𝑖 + 𝑏)



trong đó f là hàm kích hoạt (activation function).



❖ Dưới đây liệt kê một số hàm kích hoạt phổ biến thường được sử dụng:

▪ Hàm 𝒔𝒊𝒈𝒎𝒐𝒊𝒅: là một dạng hàm phi tuyến theo công thức 𝑓(𝑧) = 𝜎(𝑧) =

1



1 + 𝑒 −𝑧



. Hàm này nhận vào giá trị thực và trả về kết quả là một giá trị nằm trong



đoạn [0,1].



30



Chương 3. Cơ sở lý thuyết về Convolutional Neural Network và Recurrent Neural Network



Hình 3.2 Biểu diễn hàm kích hoạt 𝑺𝒊𝒈𝒎𝒐𝒊𝒅 [35].



▪ Hàm 𝒕𝒂𝒏𝒉: tương tự đây cũng là một dạng hàm phi tuyến theo công thức

𝑓(𝑧) = 𝑡𝑎𝑛ℎ(𝑧) =



𝑒 𝑧 − 𝑒 −𝑧

𝑒 𝑧 + 𝑒 −𝑧



. Hàm này biến đổi giá trị đầu vào thành giá



trị đầu ra nằm trong đoạn [-1, 1].



Hình 3.3 Biểu diễn hàm kích hoạt 𝒕𝒂𝒏𝒉 [35].



▪ Hàm 𝑹𝒆𝑳𝑼: Hàm 𝑅𝑒𝐿𝑈 (Rectified Linear Unit) là một hàm kích hoạt phi tuyến



phổ biến thường được sử dụng trong những năm gần đây. Kết quả đầu ra được

tính theo công thức 𝑓(𝑧) = 𝑅𝑒𝐿𝑈(𝑧) = 𝑚𝑎𝑥(0, 𝑧).

31



Chương 3. Cơ sở lý thuyết về Convolutional Neural Network và Recurrent Neural Network



Hình 3.4 Biểu diễn hàm kích hoạt 𝑹𝒆𝑳𝑼 (Rectified Linear Unit) [35].



3.1.2 Kiến trúc của Neural network



Neural network mô phỏng cấu trúc và cách thức hoạt động của não người do đó

kiến trúc của Neural Network thơng dụng gồm nhiều neuron (nút - node), được xếp thành

lớp (layer) và có liên kết giữa các neuron với nhau; trong đó đầu ra của neuron trong lớp

liền trước là đầu vào cho neuron trong lớp liền sau.



Hình 3.5 Một kiến trúc của Neural Network với lớp đầu vào gồm 3 neuron,

1 lớp ẩn với 4 neuron và lớp đầu ra với 2 neuron [35].



32



Chương 3. Cơ sở lý thuyết về Convolutional Neural Network và Recurrent Neural Network



Như thể hiện trong Hình 3.5, một Neural Network thường gồm 3 thành phần chính:

lớp đầu vào (input layer), lớp đầu ra (output layer) và các lớp trung gian (hidden

layer). Trong một neural network thông thường, dạng lớp (layer) phổ biến nhất là lớp

kết nối đầy đủ (fully-connected layer), trong đó tất cả các neuron trong hai lớp liền kề

đều được kết nối đầy đủ với nhau nhưng khơng có kết nối giữa các neuron trong cùng

một lớp (layer).

Số lượng neuron trong lớp đầu vào và lớp đầu ra tùy thuộc vào bài toán, trong khi

đó số lượng lớp trung gian và số lượng neuron trong mỗi lớp trung gian cần được thiết

kế một cách cẩn thận do khơng có phương pháp tổng qt cho việc xác định các thông

số này.

Độ phức tạp của một Neural Network phụ thuộc vào số lượng lớp trung gian

(hidden layer). Khi dữ liệu đi qua càng nhiều tầng trung gian, các đặc trưng thu được

ngày càng trừu tượng và phức tạp hơn. Bên cạnh đó, số lượng neuron ở mỗi lớp (layer)

cũng ảnh hưởng đến khả năng trích rút đặc trưng của lớp đó. Lớp càng nhiều neuron thì

có khả năng trích rút được càng được nhiều đặc trưng.

3.1.3 Huấn luyện Neural Network

Huấn luyện Neural Network là việc điều chỉnh các tham số của mạng (các trọng số

- weight và các giá trị độ lệch - bias) sao cho khớp với dữ liệu dùng để huấn luyện.

Phương pháp Gradient Descent là phương pháp phổ biến nhất để cập nhật các giá trị

tham số của mạng giúp giảm độ lỗi của kết quả dự đoán.

❖ Thuật toán Gradient Descent

Giả sử ta có hàm chi phí 𝐽(𝜃), trong đó 𝜃 là tập hợp các tham số. Bài toán đặt ra là



chọn tập 𝜃 sao cho hàm chi phí 𝐽(𝜃) đạt giá trị nhỏ nhất. Để làm được điều này, ta có thể

khởi tạo giá trị ban đầu cho tập 𝜃, sau đó lặp lại việc thay đổi các tham số trong tập 𝜃



giúp làm cho giá trị của 𝐽(𝜃) ngày càng nhỏ hơn (sử dụng Gradient Descent). Giải thuật

này được mô tả như sau:



33



Chương 3. Cơ sở lý thuyết về Convolutional Neural Network và Recurrent Neural Network



1. Khởi tạo các tham số trong tập 𝜃 = 𝜃0



2. Cập nhật 𝜃 cho đến khi 𝐽(𝜃) gần như không đổi (hội tụ) theo cơng thức:

trong đó,



𝜕



𝜕𝜃𝑗



𝜃𝑗 ∶= 𝜃𝑗 − 𝛼



𝜕

𝐽(𝜃)

𝜕𝜃𝑗



𝐽(𝜃) là đạo hàm riêng (partial derivative) của 𝐽(𝜃) theo 𝜃𝑗 và việc cập



nhật diễn ra đồng thời cho các giá trị của j = 0, 1, …, n.



Ở đây, 𝛼 được gọi là hệ số huấn luyện (learning rate). Đây là một thông số cần được

thiết lập trong quá trình huấn luyện mạng. Nếu hệ số 𝛼 nhỏ thì tốc độ hội tụ chậm, cần

nhiều lần lặp đồng nghĩa với việc tốn thời gian cho việc huấn luyện. Nếu hệ số 𝛼 quá lớn

dẫn tới có khả năng bỏ qua vùng hội tụ.



Có 3 dạng Gradient Descent phổ biến [35] như sau:

▪ Batch gradient descent: cập nhật tham số sử dụng toàn bộ dữ liệu. Phương pháp

này cho phép hướng tới giá trị cực tiểu toàn cục (global minimum). Tuy nhiên,

trong một lần cập nhật cần thao tác trên toàn bộ dữ liệu nên phương pháp này có

thể chậm và có khả năng không thực hiện được do bộ nhớ không đủ để chứa tồn

bộ dữ liệu phục vụ cho việc tính tốn.

▪ Stochastic gradient descent (SGD): cập nhật tham số dựa trên mỗi mẫu trong tập

dữ liệu do đó giá trị gradient thay đổi thường xuyên hơn và kết quả cuối thường

dao động quanh giá trị cực tiểu toàn cục.

▪ Mini-batch gradient descent: phương pháp này có thể coi là một sự kiết hợp của

2 phương pháp trên: sử dụng 1 tập con (mini-batch) của tập dữ liệu gốc trong mỗi

lần cập nhật tham số. Ưu điểm của nó là giúp việc hội tụ diễn ra ổn định hơn,

đồng thời giúp cho việc tính tốn hiệu quả hơn do q trình tính toán theo dạng

ma trận được hỗ trợ bởi các thư viện.



34



Chương 3. Cơ sở lý thuyết về Convolutional Neural Network và Recurrent Neural Network



❖ Huấn luyện Neural Network với thuật tốn Lan truyền ngược (Backpropagation

Algorithm)

Ý tưởng chính của q trình huấn luyện dựa trên thuật toán Lan truyền ngược

(Backpropagation algorithm) như sau: Dữ liệu đầu vào được đưa vào mạng, giá trị từng

nút trong mạng được kích hoạt và cho ra kết quả đầu ra cuối cùng. Một hàm chi phí

(cost function hoặc loss function) được xây dựng để đánh giá độ sai lệch của kết quả

đầu ra của mạng so với kết quả mong muốn (theo dữ liệu thực tế). Dựa trên hàm chi phí,

độ lỗi của mỗi nút trong mạng được tính tốn để xác định sự đóng góp của mỗi nút trong

độ lỗi của tồn mạng. Các tham số của mỗi nút được cập nhật theo giá trị hiện tại và độ

lỗi tại nút đó. Q trình này được lặp lại cho đến khi độ lỗi của mạng tiến tới giá trị tối

ưu (cực tiểu).

Quá trình học của Neural Network chia làm 2 giai đoạn: Giai đoạn 1 - Lan truyền và

Giai đoạn 2 - Cập nhật tham số.

Để biểu diễn thuật toán Lan truyền ngược [36], có một số quy ước dưới đây:

▪ 𝑛𝑙 là số layer trong mạng; 𝑠𝑙 là số neuron trong layer 𝑙; 𝐿𝑖 là layer thứ thứ 𝑖

trong mạng.



▪ Tập các tham số trong mạng là (W, b) trong đó W là tập tất cả các trọng số

(weight) còn b là tập tất cả các giá trị lệch (bias).

(𝑙)



▪ 𝑊𝑖𝑗 là trọng số kết nối neuron thứ j trong layer 𝑙 với neuron 𝑖 trong layer

(𝑙)



𝑙 + 1. 𝑏𝑖 là giá trị độ lệch (bias) với neuron thứ 𝑖 trong layer 𝑙 + 1.

(𝑙)



▪ 𝑎𝑖 là giá trị kích hoạt (kết quả) của neuron thứ 𝑖 trong layer 𝑙; khi đó

(1)



𝑎𝑖



(𝑙)



= 𝑥𝑖 tương ứng với giá trị đầu vào thứ i trong lớp đầu vào.



▪ 𝑧𝑖 là tổng các tích của trọng số và đầu vào, thêm vào giá trị lệch (bias) của

(𝑙)



neuron 𝑖 trong layer 𝑙 . Từ đó, 𝑎𝑖

(activation function).



35



(𝑙)



= 𝑓(𝑧𝑖 ) với 𝑓 là hàm kích hoạt



Chương 3. Cơ sở lý thuyết về Convolutional Neural Network và Recurrent Neural Network



▪ Hàm giả thiết ℎ𝑊,𝑏 (𝑥) là hàm biến đổi giá trị tập dữ liệu đầu vào 𝑥 của lớp



đầu vào (input layer) thành tập các giá trị đầu ra 𝑦 trong lớp đầu ra (output

layer); ở đây (𝑥, 𝑦) tương ứng với một mẫu huấn luyện (training sample).



▪ Hàm chi phí 𝐽(𝑊, 𝑏; 𝑥, 𝑦) là hàm thể hiện độ sai lệch của kết quả đầu ra của

mạng dựa trên dữ liệu đầu vào, ℎ𝑊,𝑏 (𝑥), với giá trị đầu ra mong muốn 𝑦

cho một mẫu huấn luyện (𝑥, 𝑦). Một hàm chi phí hay được sử dụng là hàm



trung bình của bình phương lỗi Mean Square Error (MSE) với công thức

như sau:

𝐽(𝑊, 𝑏; 𝑥, 𝑦) =



1

2

‖ℎ𝑊,𝑏 (𝑥) − 𝑦‖

2



Từ đó, thuật tốn Lan truyền ngược cho một mẫu huấn luyện (𝑥, 𝑦) [36] như sau:

Giai đoạn 1: Lan truyền



1. Lan truyền thuận (forward pass): dựa trên dữ liệu đầu vào để tính tốn giá trị tại

tất cả các nút kích hoạt trong các lớp 𝐿2 , 𝐿3 , … tới khi có kết quả đầu ra trong

layer 𝐿𝑛𝑙 .



2. Lan truyền ngược (backward pass):

a. Tính độ lỗi tại các nút đầu ra: Với mỗi nút 𝑖 trong layer 𝑛𝑙 (lớp đầu ra),

tính các giá trị lỗi:

(𝑛𝑙 )



𝛿𝑖



=



𝜕



𝑛

𝜕𝑧𝑖 𝑙



𝐽(𝑊, 𝑏; 𝑥, 𝑦) =



(𝑛𝑙 )



= −(𝑦𝑖 − 𝑎𝑖



b. Tính độ lỗi tại các nút ẩn:



𝜕



𝑛

𝜕𝑧𝑖 𝑙



1

2



‖ℎ𝑊,𝑏 (𝑥) − 𝑦‖



𝑛



) . 𝑓′(𝑧𝑖 𝑙 )



Với 𝑙 = 𝑛𝑙 − 1, 𝑛𝑙 − 2, . . . , 2:



Với mỗi nút 𝑖 trong layer 𝑙, tính giá trị lỗi tại nút:

(𝑙)



𝛿𝑖



𝑠



(𝑙) (𝑙+1)



𝑙+1

= (∑𝑗=1

𝑊𝑗𝑖 𝛿𝑗



36



) . 𝑓′(𝑧𝑖𝑙 )



2



Chương 3. Cơ sở lý thuyết về Convolutional Neural Network và Recurrent Neural Network



Giai đoạn 2: Cập nhật tham số

3. Tính giá trị gradient của tham số của nút

𝜕



(𝑙)



𝜕𝑊𝑖𝑗



𝜕



𝐽(𝑊, 𝑏; 𝑥, 𝑦) = 𝑎𝑗(𝑙) 𝛿𝑖(𝑙+1)



(𝑙)

𝜕𝑏𝑖



(𝑙+1)



𝐽(𝑊, 𝑏; 𝑥, 𝑦) = 𝛿𝑖



4. Cập nhật tham số mới theo gradient

(𝑙)



𝑊𝑖𝑗



(𝑙)



𝑏𝑖



(𝑙)



= 𝑊𝑖𝑗



(𝑙)



= 𝑏𝑖



−𝛼

−𝛼



𝜕



(𝑙)



𝜕𝑊𝑖𝑗

𝜕



(𝑙)



𝜕𝑏𝑖



𝐽(𝑊, 𝑏; 𝑥, 𝑦)



𝐽(𝑊, 𝑏; 𝑥, 𝑦)



với 𝛼 là hệ số huấn luyện (learning rate).



3.2 Convolutional Neural Network



Vấn đề gặp phải của Neural Network thơng thường, trong đó mỗi neuron trong lớp

sau được kết nối đầy đủ (fully-connected) tới tất cả các neuron trong lớp trước đó, là sự

gia tăng số lượng tham số một cách nhanh chóng. Điều này khơng phù hợp với dữ liệu

ảnh. Ví dụ như một bức ảnh đầu vào với kích thước 300 × 300 × 3 thì một neuron ở lớp



trung gian kế tiếp cần phải có 270.000 tham số. Trong khi đó một lớp trung gian thường

có nhiều neuron dẫn tới tổng số lượng tham số phải lưu là vô cùng lớn. Kiến trúc



Convolutional Neural Network (CNN) được thiết kế khác biệt: các neuron trong một lớp

chỉ được kết nối tới một vùng nhỏ trong lớp trước đó, thay vì kết nối với tồn bộ (fullyconnected) như trong Neural Network thơng thường.

Về cơ bản, CNN là một tập hợp các lớp (layer), trong đó có 3 loại layer chính bao gồm:

Convolutional Layer, Pooling Layer và Fully-connected Layer.



37



Chương 3. Cơ sở lý thuyết về Convolutional Neural Network và Recurrent Neural Network



3.2.1 Các thành phần cơ bản

3.2.1.1 Convolutional layer

Convolutional layer (conv layer) là thành phần cơ bản nhất trong CNN. Đầu vào

𝐼𝑁𝑃𝑈𝑇 của một conv Layer là dữ liệu dạng 3 chiều với kích thước bằng chiều rộng



(width) × chiều cao (height) × chiều sâu (depth) hay 𝐖 × 𝐇 × 𝐃, ví dụ dữ liệu ảnh

[32 × 32 × 3] - trong đó chiều rộng 𝐖 và chiều cao 𝐇 của bức ảnh bằng 32 pixel với 3



kênh màu R, G, B (chiều sâu 𝐃). Các tham số của một conv layer thực chất là tập hợp

các bộ lọc (filter hoặc kernel). Một bộ lọc có kích thước khơng gian nhỏ (theo độ rộng

và chiều cao) và độ sâu (depth) bằng độ sâu của 𝐼𝑁𝑃𝑈𝑇, ví dụ một bộ lọc điển hình cho

dữ liệu dạng ảnh có kích thước 5 × 5 × 3 – độ rộng và chiều cao bằng 5 và độ sâu là 3

trùng với độ sâu 𝐷 (số kênh màu R, G, B) của dữ liệu ảnh.



Hình 3.6 Ví dụ về kết quả đầu ra của conv layer sử dụng 6 bộ lọc (filter) với kích thước

5 × 5 × 3 trên dữ liệu ảnh đầu vào với kích thước 32 × 32 × 3 [37].



Mỗi bộ lọc được trượt theo chiều rộng 𝐖 và chiều cao 𝐇 của 𝐼𝑁𝑃𝑈𝑇. Tại mỗi



lần trượt, mỗi giá trị trong bộ lọc được thực hiện phép nhân với giá trị tại vị trí tương



ứng của 𝐼𝑁𝑃𝑈𝑇, sau đó kết quả của các phép nhân trên được cộng dồn để cho một kết

quả duy nhất. Sau khi một bộ lọc trượt hết theo độ rộng và chiều cao của 𝐼𝑁𝑃𝑈𝑇, một

bản đồ đặc trưng 2 chiều (2-dimentional feature map hoặc activation map) được tạo ra.



Do một conv layer là tập hợp nhiều bộ lọc, mỗi bộ lọc phát sinh một bản đồ đặc trưng 2

38



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Chương 3. CƠ SỞ LÝ THUYẾT VỀ CONVOLUTIONAL NEURAL NETWORK VÀ RECURRENT NEURAL NETWORK

Tải bản đầy đủ ngay(0 tr)

×