CƠ CHE MÃ HÓA, GIẢI MÃ MO

Một phần của tài liệu Khóa luận tốt nghiệp Khoa học máy tính: Tìm kiếm kiến trúc mạng neural với thuật toán tiến hóa cho bài toán nhận diện giọng người nói tiếng Việt (Trang 44 - 55)

HÌNH

Trong chương này, tôi sẽ giới thiệu về phương pháp mã hóa (encoder) và giải

mã (decoder) mô hình được áp dụng các thuật toán tiền hóa trong quá trình tìm kiếm mô hình nơ-ron tích chập.

3.1 Depthwise Separable Convolution

Tích chập tách biệt chiều sâu (Depthwise Separable Convolution) được giới

thiệu trong kiến trúc mạng MobileNet V1 (1). Chung ta nhan dinh rang, độ sâu la

một trong những nguyên nhân chính dẫn tới sự gia tăng số lượng tham số của mô hình. Tích chập tách biệt chiều sâu sẽ tìm cách loại bỏ sự phụ thuộc vào độ sâu

khi tích chập mà vẫn tạo ra được một output shape có kích thước tương đương

so với tích chập thông thường.

Depthwise Separable Convolution được chia làm hai bước tuần tự:

e_ Tích chập chiều sâu (Depthwise Convolution): Chia khối input thành những

lát cắt ma trận theo độ sâu và thực hiện tích chập trên từng lắt cắt đó.

Mỗi một channel sẽ áp dụng một bộ lọc khác nhau và hoàn toàn không chia

sẻ tham số. Điều này có tác dụng:

— Quá trình học và nhận diện đặc trưng sẽ được tách biệt theo từng bộ

lọc.

Chương 3. CƠ CHẾ MA HÓA, GIẢI MA MÔ HÌNH 30

Depthwise Pointwise

HÌNH 3.1: Depthwise Convolution (bên phải) so với Convolution

thông thường (bên trái), ảnh từ

- Giảm thiểu khối lượng tính toán.

— Giảm thiểu số lượng tham số.

© Tích chập điểm (Pointwise Convolution): Thay đổi độ sâu của đầu ra bằng

việc áp dụng c bộ lọc kích thước 1x1xc, kích thước width va height không

đổi.

Với một tensor 3D có kích thước HxWxC, kích thước dau ra sau khi thực hiện

tích chập trên kernel KxK là H'!xW'xC’, thì ta có:

?> 1A _k LỆ ,

¢ Tỷ lệ số lượng tham số: €*K+KM 5 KxK+C

? 1A hk ⁄ ⁄ x VÀ 7

s Tỷ lệ so phép toán can thực hiện: ewe

Việc áp dụng Depthwise Separable Convolution sẽ giúp chúng ta giảm một

lượng lớn số lượng tham số cần tối ưu cũng như số lượng phép tính toán.

3.2 Inverted Residual Block

Inverted Residual Block được giới thiệu trong kiến trục mang MobileNet V2

[18]. Theo đó, một cơ chế mới được giới thiệu là kết nói tat( Skip Connection) cho

phép các khối ở layer trước được cộng trực tiếp vào layer liền sau. Nếu coi layer

Chương 3. CƠ CHẾ MÃ HÓA, GIẢI MÃ MÔ HÌNH 31

liền trước là X, sau khi đi qua các xử lý tích chập hai chiều ta thu được F(X), đầu

ra cuối cùng là một residual block có giá trị X + F(X).

6x1ôx32 16x16x16 1x1x160

HINH 3.2: Residual Block trong Mobilenet V2, anh từ

Skip Connection ở MobileNet V2 được điều chỉnh sao cho số kênh (chiều sâu)

ở input và output của mỗi block residual được thắt hẹp lại. Chính vì thế, cơ chế

này được gọi là Bottleneck Layer (thuật ngữ Bottleneck được sử dụng trong học

sâu ám chỉ các kiến trúc thu hẹp kích thước theo một chiều nào đó).

weight layer

x

identity

HINH 3.3: Inverted Residual Block trong Mobilenet V2, anh từ

Kiến trúc Residual được miêu ta trong hình |3.3|ngược lại so với các kiến trúc

Residual truyền thống CÓ SỐ lượng kênh ở input và output của một block lớn hơn

so với các Layer trung gian nên được gọi là Inverted Residual Block. Các Layer

Chương 3. CƠ CHẾ MÃ HÓA, GIẢI MÃ MÔ HÌNH 32

trung gian trong một Block sẽ làm nhiệm vụ biến đổi phi tuyến nên cần dày hơn

để tạo ra nhiều phép biến đổi hơn. Cơ chế Skip Connection được thực hiện ở Bot- tleneck Input và Ouput nên chỉ cần ghi nhận kết quả và không thực hiện biến đổi phi tuyến.

Tai các Residual Block, các phép biến đổi phi tuyến (như ReLu hay Sigmoid) tại Input và Output sẽ làm cho các thông tin bị mất mát. Chính vì thế, trong kiến trúc Residual Block chỉ sử dụng phép chiếu tuyến tính tại Layer Input và Output.

3.3 Bottleneck Block

SE-Resnet là một cải tiến so với mô hình Resnet thông thường. Theo đó, việc thêm Squeeze và Excitation (SE) vào Block Residual để tạo thành một kiến trúc

có độ chính xác cao hơn.

(+)

|x

ResNet Module

HINH 3.4: SE Resnet Block

Chương 3. CƠ CHẾ MÃ HÓA, GIẢI MÃ MÔ HÌNH 33

Hình |3.4| cho ta thấy sự khác biệt giữa kiến trúc Residual của mạng Resnet

thông thường và SE-Resnet. SE-Resnet áp dụng thêm một nhánh Global Pooling

có tác dụng ghi nhận bối cảnh của toàn bộ Layer trước đó. Đầu ra của nhánh này

là một Vector Global Context và được dùng để Scale đầu vào X.

Trong MobileNet V3 bì, SE được tích hợp vào kiến trúc của một Residual

Block sẽ như hình 3.5]

HINH 3.5: Residual block MobilenetV2 + Squeeze and Excitation

(Bottleneck Block)

Tai Layer thứ 3 trong hình [3.5]có một nhánh Squeeze and Excitation có kích thước (widthxheight) bằng 1x1 có tác dụng tổng hợp Global Context, lần lượt đi

qua FC -> ReLu -> FC -> Hard Sigmoid.

3.4 Identity block va Convolutional block

Khối xác định (Identity block) được giới thiệu trong kiến trúc mạng Resnet

[13]. Giả sử x là đầu vào của khối xác định, chúng ta cần ánh xạ đầu vào x thành

ham f(x). Dé tìm ra ánh xạ chuẩn xác tương đương với hàm f(x) là một việc khá khó. Nhưng nếu cộng thêm ở đầu ra thành x + f(x) thì chúng ta sẽ quy về tham

số hóa độ lệch, tức cần tham số hóa phan dư f(x). Tìm ánh xạ theo phan du sẽ

dé hơn nhiều vì chỉ cần tìm giá trị f(x) sao cho nó gần bằng 0 là có thể thu được một ánh xạ chuẩn xác. Tại một khối xác định, chúng ta sẽ áp dụng một Layer Activation ReLU sau mỗi xen kẽ giữa những tang trọng số.

Chương 3. CƠ CHẾ MÃ HÓA, GIẢI MÃ MÔ HÌNH 34

Ce 8 fw

Ea] |. l[ E3]

Batch norm

HINH 3.6: Identity block với ba Layer tích chập

Theo hình B.6| đường nối được gọi là đường tắt (shortcut path hay skip con-

nection) tương ứng với f (x), x sau khi qua hai Layer tích chập thì được cộng trực

tiếp vào f(x) trước khi đi qua Layer kích hoạt ReLU.

Khi kích thước đầu ra của kết nói tắt không khớp với đầu ra sau khi qua BatchNorm tại đường chính (main path), ta cần sử dụng thêm một Layer tích chập cho kết nối tắt, việc này giúp giảm kích thước của x xuống các kích thước

khác nhau.

Thông thường việc tăng độ sâu của các kiến trúc mạng sẽ làm tăng độ chính xác dự đoán của mô hình. Nhưng thực nghiệm cho thay, đến một ngưỡng độ sâu

nào đó thì độ chính xác của mô hình sẽ bão hòa và thậm chí phản tác dụng và

làm cho mô hình kém chính hơn. Khi đi qua quá nhiều tầng độ sâu có thể làm cho thông tin gốc mất đi. Như vậy cơ chế Skip Connection sẽ giúp giữ thông tin không bị mat khi kết nồi từ Layer trước đó đến Layer sau và bỏ qua một số Layer

trung gian.

Chương 3. CƠ CHẾ MÃ HÓA, GIẢI MÃ MÔ HÌNH 35

3.5 Cơ chế mã hóa

3.5.1 Kiến trúc mô hình mã hóa

Để thực hiện được điều này, tôi đã sử dụng ý tưởng của Lingxi Xie va Alan

Yuille trong bai báo Genetic CNN được giới thiệu tai hội nghị CVPR 2017.

Theo đó, kiến trúc mô hình chung cho quá trình mã hóa sẽ như hình |3.7|

ịe ole 1 \ | offe @ °.

o @

Stage | Stage Il Stage III

Code: 1-10 Code: 1-10-111 Code: 0-10

HINH 3.7: Kiến trúc mô hình mã hóa

Hiện nay, bàn về xu hướng thiết kế mô hình, ta sẽ dễ dàng nhận ra một điều là các mô hình như GoogleNet, ResNet,... đều chia mô hình thành nhiều giai đoạn khác nhau, trong mỗi giai đoạn sẽ bao gồm các khối (Block), ở mỗi khối sẽ thực hiện một chức năng riêng mà chúng sẽ có cách sắp xếp các Layer tích chập khác

nhau. Theo đó, tôi thực hiện thiết kế mô hình mã hóa trong khóa luận này như

hinh[3.7|sé bao gom ba giai đoạn chính, mỗi giai đoạn sẽ được tách biệt nhau bởi

Layer Pooling.

Ở giai đoạn thứ nhất, mỗi Node sẽ là một khối Identity Block (3.4), riéng hai

Node nam ngoài vung mã hóa được gọi la Node đầu vào/ra mặc định, là hai Convolution Block (3.4), tôi cũng mang thiết kế tương tự cho giai đoạn thứ ba, để mang tính đối xứng, ở giai đoạn ba tôi đã sắp xếp vị trí khác đi.

Chương 3. CƠ CHẾ MÃ HÓA, GIẢI MÃ MÔ HÌNH 36

Tại giai đoạn thứ hai, hai Node vào ra mặc định không còn là Convolution

Block mà được thay bằng hàm Add() trong Tensorflow với mục tiêu kết hợp một hoặc nhiều Tensor lại với nhau. Bên cạnh đó, các Node trong giai đoạn hai bây

giờ là các khối Bottleneck Block (3.3).

Node đầu vào có nhiệm vụ nhận input của giai đoạn trước đó và gửi output cho tất cả các Node mà không nhận input từ Node khác. Node đầu ra sẽ làm nhiệm vụ nhận input từ các node không có dau ra với các Node khác, tổng hợp

và gửi output cho lớp Pooling. Việc xuất hiện hai Node đặc biệt này cùng với nhiệm vụ của chúng nhằm đảm bảo đầu ra, đầu vào cho từng giai đoạn để dữ liệu luôn được thông suốt. Trong trường hợp một Node tích chập không có liên kết với bất kỳ Node nào, hay nói cách khác là kiến trúc mạng của ta không cần Node đó, điều này giúp ta thầy rằng các kiến trúc ít phức tạp hơn vẫn có thể mô phỏng được các kiến trúc mạng phức tạp.

Kiến trúc mô hình mã hóa được thiết kế sao cho kích thước hình học của các Feature Map sẽ giảm dan và độ sâu của mô hình là tăng dần. Mục đích của việc thiết kế này, tại những Layer đầu tiên chủ yếu được sử dụng để học các đặc trưng

cơ bản, càng về sau số Layer càng nhiều với mục đích học sâu hơn với các đặc trưng cấp cao, kích thược hình học của các Feature Map giảm dần để giảm thiểu chi phí tính toán cũng như số lượng tham số cần tối ưu cho mô hình.

FULLY

HÌNH 3.8: Mô hình mã hóa tổng thé

Hình|8.8llà mô hình mã hóa tổng thể, trước khi vào quá trình tiến hóa, tôi thực

hiện Conv2D, mục đích khi tôi xây dựng khối này để thay đổi kích thước của đặc trưng MFCC ở Input cho phù hợp hơn với khối Genetic phía sau đó đồng thời

làm giảm kích thước feature map, giảm chỉ phí tính toán của model.

Chương 3. CƠ CHẾ MÃ HÓA, GIẢI MÃ MÔ HÌNH 37

3.5.2 Cơ chế mã hóa mô hình

t IN

i ` x>eE

|

Stage II

Code: 1-01-000

HINH 3.9: Minh họa mô hình mã hóa với code: 1-01-000

Quá trình mã hóa mô hình là quá trình biến đổi một kiến trúc mô hình thành một chuỗi nhị phân (các phần tử trong chuỗi mang một trong hai giá trị: hoặc là

0, hoặc là 1) có độ dài L cố định.

Ở mỗi giai đoạn seS, ta có K; Node, ký hiệu là V;¿, với k;ạ € Ks, ví dụ: S = 2, mỗi

giai đoạn có (Kj = 2,K2 = 3) Node, thì Vị „, sẽ là node thứ kì trong giai đoạn 1. Việc

sắp xếp theo thứ tự các node nhằm mục đích chỉ cho phép các kết nối từ node được đánh số thấp hơn đến node được đánh số cao hơn. Phần Fully Connection

chúng tôi không thực hiện mã hóa.

Trong mỗi giai đoạn, chúng tôi sử dụng 1 + 2+... + (Ks — 1) = 3K; (Ks — 1) bits để mã hóa cho liên kết giữa các node. Bit đầu tiên biểu diễn liên kết giữa hai Node (0ứ;1,ứ; 2), hai bits tiếp theo sẽ là liờn kết giữa (0;1„ứ;,3) and (vs2, 53), etc. Quá trình này tiếp tục cho đến khi các bit K; — 1 cuối cùng được sử dụng để thể hiện kết nối giữa ỉ;1,ỉ;2,...,ỉsk,_1 và 0k,. Với 1 <i < j < Ks, nếu Code tương ứng với (ứ;¿,ứs„) là 1, thỡ cú một cạnh nối ứ,Ă và ứ;„Ă, i.e., tức là ứ; ; lay đầu ra của

Chương 3. CƠ CHẾ MÃ HÓA, GIẢI MÃ MÔ HÌNH 38

vs, như một phan của phép tính tổng element-wise và ngược lại.

Trong hình|3.9| ta có code là 1 — 01 — 000 được hiểu là:

® 1: tương ứng với Node I có kết nối với Node II.

* 01: tương ứng với Node I không có liên kết với Node III và Node II liên kết

với Node III.

* 000: tương ứng với Node I không có liên kết với Node IV, Node II không có

liên kết với Node IV và Node III cũng không có liên kết với Node IV.

Nhu vậy, một kiến trúc mạng có S giai đoạn, mỗi giai đoạn có K; nodes thì

chiều dài chuỗi nhị phân mã hóa cho kiến trúc đó là L = $};K; (Ks — 1). Điều đó đồng nghĩa với việc, có tổng cộng 2! kiến trúc mạng kha thi. Như vậy, khi S=3, với (Ki, Kz, K3) = (3,4,5) thì L = 19, tương ứng với 2!? = 524,288 kiến trúc mạng

kha thi.

3.6 Co chế giải mã mô hình~

M kx X M

› | | / : x >b

Code: 1-01

HINH 3.10: Minh họa giải mã mô hình với mã: 1-01

Cơ chế giải mã mô hình là quá trình biến đổi từ chuỗi nhị phân thành kiến trúc model tương ứng với những quy tắc được nhắc đến trong Như vậy,

Chương 3. CƠ CHẾ MÃ HÓA, GIẢI MÃ MÔ HÌNH 39

trong một giai đoạn, nếu mã của chúng ta là 1-01, ta hoàn toàn biết được mô hình

ta sẽ có 3 Node (tương ứng: Node I, Node II va Node II):

© 1: Có kết nối giữa Node I va Node II.

e 01:

— 0: Không có kết nối từ Node I đến Node III.

— 1: Có kết nối giữa Node II và Node III.

Hình là kiến trúc mô hình mô tả cho đoạn mã trên.

40

Chương 4

Một phần của tài liệu Khóa luận tốt nghiệp Khoa học máy tính: Tìm kiếm kiến trúc mạng neural với thuật toán tiến hóa cho bài toán nhận diện giọng người nói tiếng Việt (Trang 44 - 55)

Tải bản đầy đủ (PDF)

(100 trang)