Chương 2 CÁC KIẾN THỨC NỀN TẢNG
2.1. Các kỹ thuật học sâu cơ sở
2.1.1. Mạng Perceptron nhiều lớp
Mạng MLP là mạng nơ ron có một hoặc nhiều lớp ẩn thường được sử dụng trong các bài toán phân loại. Kiến trúc mạng MLP đơn giản nhất là mạng truyền thẳng. Hình 2.1 minh họa mơ hình mạng MLP một lớp ẩn và mạng MLP nhiều lớp ẩn:
Hình 2.1. Mơ hình mạng MLP một lớp ẩn và nhiều lớp ẩn [79]
Khi mạng nơ ron có nhiều lớp thì thời gian tính tốn sẽ tăng lên đáng kể nên mạng MLP thường được huấn luyện bởi giải thuật lan truyền ngược (Back Propagation Algorithm) [80] để giảm thời gian huấn luyện. Mạng MLP với kiến trúc mạng linh hoạt đã đạt được độ hiệu quả cao trong các bài toán về xử lý văn bản, ảnh, video. Kiến trúc của mạng thường được xây dựng dựa vào kinh nghiệm thực tế và thực nghiệm.
2.1.2. Mạng nơ ron tích chập
2.1.2.1. Giới thiệu mạng nơ ron tích chập
Mạng nơ ron tích chập (CNN - Convolutional Neural Network) [81,82,83,84] là một trong những mơ hình học sâu phổ biến hiện nay giúp chúng ta xây dựng được những ứng dụng thống thơng minh với độ chính xác cao, đặc biệt là trong xử lý ảnh, xử lý tiếng nói, xử lý âm thanh,… Đây là một trong những mạng nơ ron truyền thẳng đặc biệt, xử lý dữ liệu dạng lưới. Mạng CNN là một mạng nơ ron đơn giản sử dụng phép tích chập trong các phép nhân ma trận tại ít nhất một trong các lớp của nó. Trong CNN, các lớp liên kết với nhau thơng qua cơ chế tích chập (convolution). Lớp tiếp theo là kết quả nhân chập từ lớp trước đó nên ta có được các kết nối cục bộ. Mỗi lớp được áp dụng một bộ lọc khác nhau. Trong quá trình huấn luyện, CNN sẽ tự động học các tham số cho các bộ lọc. Hình 2.2 minh họa một kiến trúc CNN trong bài tốn phân loại ảnh.
Hình 2.2. Một kiến trúc CNN cho bài toán phân loại ảnh [84]
Kiến trúc mạng CNN gồm các lớp cơ bản sau:
Lớp tích chập (Convolution): Đây là lớp quan trọng nhất trong mạng thể hiện ý
tưởng xây dựng của mạng. Lớp này sử dụng một bộ lọc xếp chồng vào một vùng trong ma trận dữ liệu và thực hiện tính tốn nhân chập giữa bộ lọc và giá trị dữ liệu trong vùng mà nó xếp chồng. Bộ lọc sẽ lần lượt được dịch chuyển theo một giá trị bước trượt (stride) chạy dọc theo ma trận dữ liệu và quét dữ liệu. Các trọng số ban đầu của bộ lọc được khởi tạo ngẫu nhiên và được điều chỉnh trong quá trình huấn luyện mơ hình.
Lớp kích hoạt phi tuyến (ReLU - Rectified Linear Unit): Lớp ReLU thường
được thiết kế ngay sau lớp tích chập. Lớp này thực hiện chuyển tồn bộ các giá trị âm trong kết quả của lớp tích chập thành giá trị 0, để tạo tính phi tuyến cho mơ hình.
Lớp lấy mẫu (Pooling): Thực hiện lấy mẫu dữ liệu, lớp này thường được thiết
kế sau lớp tích chập và lớp ReLU để làm giảm kích thước dữ liệu đầu ra mà vẫn giữ được các thông tin quan trọng của dữ liệu đầu vào. Lớp Pooling sử dụng một cửa sổ trượt quét qua toàn bộ ma trận dữ liệu, mỗi lần trượt theo một bước trượt (stride) cho trước. Khi cửa sổ trượt trên dữ liệu, chỉ có một giá trị được xem là giá trị đại diện cho thông tin dữ liệu tại vùng đó (giá trị mẫu) được giữ lại. Các phương thức phổ biến trong lớp Pooling là Max Pooling (lấy giá trị lớn nhất), Min Pooling (lấy
giá trị nhỏ nhất) và Average Pooling (lấy giá trị trung bình). Hình 2.3 minh họa việc tính tốn với phương thức Avarage Pooling và Max Pooling.
Hình 2.3. Tính tốn với phương thức Average Pooling và Max Pooling [82] Lớp kết nối đầy đủ (FC - Fully Connected): Lớp này giống như lớp trong mạng
nơ ron truyền thống, các giá trị dữ liệu được liên kết đầy đủ vào các nút trong lớp tiếp theo. Sau khi dữ liệu được xử lý và trích rút đặc trưng từ các lớp trước đó thì kích thước dữ liệu đã giảm rất nhiều nên có thể sử dụng mạng nơ ron truyền thống để phân loại dữ liệu. Lớp FC đóng vai trị như mơ hình phân lớp.
2.1.2.2. Mạng CNN cho bài tốn xử lý ngơn ngữ tự nhiên
Mạng CNN sử dụng để trích chọn các đặc trưng của văn bản cho các nhiệm vụ trong xử lý ngôn ngữ tự nhiên được mơ tả trong [85]. Mơ hình CNN sử dụng nhiều bộ lọc (với các kích thước cửa sổ khác nhau) để thu được nhiều đặc trưng. Các đặc trưng này tạo thành lớp sát lớp trên cùng (penultimate) và được chuyển đến lớp FC với hàm kích hoạt softmax để trả ra phân phối xác suất của các câu.
Q trình trích xuất một đặc trưng từ một bộ lọc được mô tả chi tiết như sau: Cho xi ∈ �m là véc tơ từ m chiều tương ứng với từ thứ i trong câu. Một câu có độ dài n (thêm khoảng trắng nếu cần) được biểu diễn là:
1 n 1 2 3... n
x� x � �x x �x (2.1)
trong đó: ⊕ là phép ghép nối. Một cách tổng quát, ký hiệu xii+j biểu diễn cách ghép
nối các từ x xi, i1,xi1,...,xi j
. Phép tích chập với bộ lọc w ∈ �hmđược áp dụng cho một cửa sổ có h từ để tạo ra một đặc trưng mới. Đặc trưng ci được tạo ra từ một cửa sổ các từ xi i h� 1 được biểu diễn là:
1
(w. )
i i i h
c f x� b (2.2)
với b ∈ � là các phần tử độ lệch (bias) và f là hàm phi tuyến. Bộ lọc này được áp dụng cho tất cả các cửa sổ từ có thể có trong câu {x1h, x2h+1,..., xn−h+1n} để tạo ra một bản đồ đặc trưng (feature map)
1 2 3 1
[ , , ,..., n h ]
c c c c c (2.3)
với c ∈ �n−h+1. Sau đó, áp dụng phép toán Max Pooling [86] trên bản đồ đặc trưng và lấy giá trị lớn nhất cˆ max{c} là đặc trưng tương ứng với mỗi bộ lọc.
2.1.3. Mạng nơ ron hồi quy
2.1.3.1. Mơ hình mạng nơ ron hồi quy
Ý tưởng của mạng nơ ron hồi quy (RNN - Recurrent neural network) [87] là thiết kế một mạng nơ ron có khả năng xử lý được thông tin dạng chuỗi. Mạng nơ ron hồi quy là mơ hình học sâu đã đạt được nhiều kết quả trong các nhiệm vụ xử lý ngôn ngữ tự nhiên (NLP - Natural language processing). RNN là một mơ hình có nhớ (memory), có khả năng nhớ được thơng tin đã tính tốn trước đó. RNN thực hiện cùng một tác vụ cho tất cả các phần tử của một chuỗi với đầu ra phụ thuộc vào tính tốn trước đó. Hình 2.4 biểu diễn mơ hình mạng nơ ron hồi quy được triển khai chi tiết.
Hình 2.4. Mơ hình mạng nơ ron hồi quy [87]
trong đó:
- xtlà đầu vào tại bước t.
- stlà trạng thái ẩn tại bước t (là bộ nhớ của mạng), được tính tốn dựa trên các
trạng thái ẩn phía trước và đầu vào tại bước đó theo cơng thức:
1
t t t
s f Ux Ws (2.4)
với: f là một hàm phi tuyến như hàm tanh, sigmoid hoặc ReLU. Để thực hiện phép toán cho phần tử ẩn đầu tiên ta khởi tạo thêm s-1 và giá trị khởi tạo thường được gán bằng 0.
- ot là đầu ra tại bước t, là một véc tơ xác suất các từ trong bộ từ vựng:
t t
o softmax Vs (2.5)
- Véc tơ đầu ra ot sẽ được sử dụng cho những dự đoán tiếp theo.
2.1.3.2. Huấn luyện mạng nơ ron hồi quy
Nếu xét tại một thời điểm, hoạt động của RNN giống như mạng nơ ron truyền thống: Dữ liệu từ đầu vào sẽ được tính tốn qua nhiều lớp và đưa đặc trưng thu được ra đầu ra. Tuy nhiên, RNN khác với mạng nơ ron truyền thống, việc đưa đặc trưng từ mẫu dữ liệu trước vào đầu vào của mẫu dữ liệu sau để học ra mối quan hệ là: Tại thời điểm t, RNN tính tốn được đầu ra là ot, giá trị này sẽ được truyền vào lại mơ hình tại thời điểm (t+1) để tính tốn cho mẫu dữ liệu tiếp theo và được đầu ra ot+1.
RNN được huấn luyện bằng thuật toán lan truyền ngược nhưng việc lan truyền ngược là lan truyền ngược liên hồi (BPTT - Backpropagation Through Time) [80]. Do đó, thuật tốn lan truyền ngược được thay đổi lại là: Hướng giảm của đạo hàm (gradient descent) tại mỗi đầu ra phụ thuộc vào các tính tốn tại bước hiện tại và các bước trước đó (do bộ tham số trong RNN được sử dụng chung cho tất cả các bước). Với các bước phụ thuộc càng xa, việc học càng khó khăn vì xuất hiện vấn đề biến
mất gradient/bùng nổ gradient (vanishing/exploding gradient).
Ví dụ: Để tính gradient descent tại bước t = 4, ta phải lan truyền ngược cả 3 bước phía trước, rồi cộng tổng gradient descent lại với nhau. Việc tính tốn này được gọi là lan truyền ngược liên hồi.
2.1.4. Các biến thể của RNN
Mạng RNN có nhược điểm là khơng thể nhớ dài hạn, nghĩa là RNN chỉ học được các trạng thái gần nên RNN được cải tiến bằng việc bổ sung các mô đun nhớ. Để khắc phục nhược điểm này, một số biến thể của RNN được nghiên cứu phát triển như mạng có nhớ dài - ngắn hạn (LSTM - Long short term memory network) [87], mạng LSTM hai chiều (biLSTM - Bidirectional long short term memory network) [88], mạng GRU (gated recurrent unit) và mạng GRU hai chiều (biGRU - Bidirectional gated recurrent unit) [89,90]. Mạng LSTM, GRU có khả năng học các phụ thuộc xa (long-term dependencies) theo một chiều, trong khi đó mạng biLSTM, biGRU có khả năng học các phụ thuộc xa theo hai chiều. Chi tiết được trình bày như dưới đây.
2.1.4.1. Mạng LSTM
Mạng LSTM bao gồm một tập các tế bào nhớ LSTM được kết nối hồi quy. Kiến trúc tổng quan một tế bào nhớ LSTM (LSTM cell) được biểu diễn như trong Hình 2.5 dưới đây.
Hình 2.5. Kiến trúc tổng quan một tế bào nhớ LSTM (nguồn: [Internet])
Ngoài việc sử dụng đầu vào hiện tại xtvà trạng thái ẩn ở bước trước ht1 như
RNN, tế bào nhớ LSTM còn sử dụng thêm một đầu vào nữa là trạng thái nhớ (cell state) ở bước trước ct1. Trạng thái nhớ này là bộ nhớ của tế bào nhớ LSTM để lưu
trữ thông tin của các bước trước, do đó khắc phục được ảnh hưởng của nhớ ngắn hạn (short-term memory) của RNN. Kiến trúc một tế bào nhớ LSTM bao gồm:
Cổng quên (Forget gate) ( f ): Quyết định thông tin của trạng thái nhớ ở bướct
trước (t-1) có cần lưu giữ hay khơng. Thông tin từ xtvà ht1được chuyển qua hàm sigmoid và kết quả trả ra thuộc khoảng [0; 1]. Nếu kết quả trả ra gần bằng 1, nghĩa
là thông tin cần giữ lại còn nếu kết quả trả ra gần bằng 0 thông tin cần loại bỏ.
Cổng vào (Input gate) (i ): Cập nhật thông tin vào trạng thái nhớ. Thực hiệnt
nhân kết quả trả ra của hàm sigmoid với kết quả trả ra của hàm tanh để quyết định thông tin của đầu vào hiện tại và trạng thái ẩn bước trước có nên được cập nhật vào trạng thái nhớ hay khơng.
Cổng ra (Output gate) (ot): Tính giá trị của trạng thái ẩn cho bước tiếp theo.
Với việc sử dụng cổng qn và cổng vào, ta có thể tính được giá trị mới của trạng thái nhớ và từ đó kết hợp với đầu vào hiện tại và trạng thái ẩn bước trước để tính giá trị của trạng thái ẩn ở bước tiếp theo. Giá trị của trạng thái ẩn mới này chính là giá trị dự đốn.
Hình 2.6. Chi tiết tế bào nhớ LSTM [91]
Chi tiết một tế bào nhớ LSTM (LSTM cell) [91] được biểu diễn trong Hình 2.6, được mơ tả như sau: Tại mỗi bước t (với t = 1, 2,…, J), với một chuỗi đầu vào
1, ,...,2
J
x x x x thì:
- Đầu vào: ct1, ht1, xt; với: xtlà đầu vào ở trạng thái thứ � và ct1, ht1 tương
ứng là trạng thái nhớ, trạng thái ẩn đầu ra của lớp trước đó. - Đầu ra: ct, ht là trạng thái nhớ, trạng thái ẩn tương ứng.
- Mạng thực hiện tính tốn chuỗi véc tơ ẩn ht h h1, ,...,2 hJ và chuỗi véc tơ
đầu rayt y y1, ,...,2 yT
theo các công thức sau:
1 (W W ) t xh t hh t h h H x h b (2.6) W t hy t y y h b (2.7)
trong đó: H là hàm lớp ẩn (là tế bào nhớ LSTM), được tổng hợp bởi các hàm:
1 1
(W W W )
t xi t hi t ci t i
1 1 (W W W ) t xf t hf t cf t f f x h c b (2.9) 1 tanh(W W 1 ) t t t t xc t hc t c c f c i x h b (2.10) 1 (W W W ) t xo t ho t co t o o x h c b (2.11) tanh( ) t t t h o c (2.12) với: + 0 < ft, it, ot < 1. + σ là hàm sigmoid. + Các thành phần b (gồm bh, bi, bf
, bc, bo) biểu diễn các véc tơ độ lệch
(bias) tương ứng (ví dụ: bh là véc tơ độ lệch trạng thái ẩn).
+ Các thành phần W biểu diễn các ma trận trọng số học tương ứng (ví dụ:
Wxh là ma trận trọng số học trạng thái ẩn đầu vào).
2.1.4.2. Mạng biLSTM
Việc dự đốn chính xác một từ trong một đoạn văn bản phụ thuộc khơng chỉ vào các thơng tin phía trước của từ đang xét mà còn phụ thuộc vào các thơng tin phía sau. Tuy nhiên, kiến trúc mạng LSTM một chiều chỉ có thể dự đốn từ hiện tại dựa trên thơng tin của các từ phía trước nó bằng cách đọc câu đầu vào theo trình tự từ đầu đến cuối (từ điểm đầu tiên x1 đến điểm cuối xJ). Do đó, mạng biLSTM [88]
được đề xuất để tổng hợp mỗi từ khơng chỉ thơng tin của từ phía trước mà cịn cả thơng tin của từ phía sau từ đó.
Hình 2.7 biểu diễn kiến trúc tổng quan của mạng biLSTM bao gồm: mạng LSTM chiều tiến và mạng LSTM chiều lùi.
Hình 2.7. Kiến trúc tổng quan của mạng biLSTM [88]
- Chiều tiến hr
: Mạng LSTM đọc câu đầu vào theo thứ tự (từ x1 đến xJ) và tính
tốn trạng thái ẩn ur uur1, ,...,2 uur
J
h h h
. - Chiều lùi h
s
: Mạng LSTM đọc câu đầu vào theo thứ tự ngược lại (từ xJ quay
lui về x1) và tính tốn trạng thái ẩn su suu1, ,...,2 suu
J
h h h
Trạng thái ẩn ht cho mỗi từ xt (với t 1,J ) được xác định bằng việc ghép nối
t hur
và hsut
được biểu diễn như sau: ht urht �hsuut
Trạng thái ht bao gồm thơng tin tổng hợp của cả phía trước và phía sau từ xt.
Hình 2.8. Minh họa biLSTM ở 3 bước (t-1), t và (t+1) [91]
Hình 2.8 minh họa biLSTM ở 3 bước (t-1), t và (t+1). Ở mỗi bước t, biLSTM tính tốn chuỗi ẩn theo chiều tiến hrt
(với t = 1, 2,…,J-1, J), chuỗi ẩn theo chiều lùi
t hs
(với t = J, J-1, …,1), chuỗi đầu ra yt và cập nhật lớp đầu ra:
1 (W W ) t xh t hh t h hr H rx r rhr br (2.13) 1 (W W ) t xh t hh t h hs H sx sshs bs (2.14) (W t W t ) t hy hy y y H r hr s hs b (2.15) 2.1.4.3. Mạng GRU
Mạng GRU [89,90] được phát triển để nắm bắt phụ thuộc xa và khắc phục vấn đề biến mất độ dốc (vanishing gradient) thường xảy ra khi huấn luyện RNN. Mạng GRU bao gồm một tập các tế bào nhớ GRU được kết nối hồi quy. Một tế bào nhớ GRU có hai cổng điều khiển đó là: cổng cài đặt lại (reset gate) và cổng cập nhật (update gate) được kết hợp từ cổng quên (forget gate) và cổng vào (input gate) của tế bào nhớ LSTM, kết hợp trạng thái nhớ (cell state) và trạng thái ẩn nên kiến trúc của tế bào nhớ GRU đơn giản hơn tế bào nhớ LSTM, được biểu diễn như trong Hình 2.9. Cổng cài đặt lại xác định thơng tin cần phải quên trong trạng thái ẩn của bước trước đó. Khi giá trị của cổng cài đặt lại gần bằng 0, thơng tin của bước trước đó sẽ bị quên. Khi giá trị gần bằng 1, thông tin ẩn của bước trước đó được giữ lại trong thơng tin nhớ hiện tại. Cổng cập nhật xác định thông tin ở trạng thái ẩn tại bước trước đó sẽ được đưa vào trạng thái ẩn hiện tại. Khi giá trị của cổng cập nhật gần bằng 0, thông tin ở trạng thái ẩn tại bước trước đó sẽ bị quên. Khi giá trị gần bằng 1, thông tin được giữ lại trong trạng thái ẩn hiện tại.
Trong Hình 2.9, x là đầu vào của mạng hiện tại, z là cổng cập nhật, r là cổng cài đặt lại, h%ghi lại tất cả các thông tin quan trọng thông qua cổng cài đặt lại và thông
tin đầu vào, h là trạng thái ẩn hiện tại.
Hình 2.9. Chi tiết tế bào nhớ GRU [89]
Tại bước t, các giá trị này được tính tốn theo các cơng thức sau:
1 x (W W ) t zh t z t z z h x b (2.16) 1 x (W W ) t rh t r t r r h x b (2.17) 1 tanh(W W ( ) ) t hx t hh t t h h% x r �h b (2.18)