CHƢƠNG 1 : GIỚI THIỆU TỔNG QUAN VỀ HỌC MÁY VÀ HỌC SÂU
2.3. Mạng Neural hồi quy
2.3.2. Phân loại bài tốn mạng neural hồi quy
Mỗi vector đƣợc thể hiện bằng 1 hình chữ nhật và các các hàm biến đổi là mũi tên :
Vector đầu vào cĩ màu hồng . Vector đầu ra cĩ màu xanh da trời.
Vector trạng thái thơng tin trao đổi giữa các mạng con cĩ màu xanh lá.
Hình 2.5: Một số bài tốn RNN
- One to one: bài tốn cĩ 1 input và 1 output (ví dụ : bài tốn nhận dạng ảnh - Image Classification);
- One to many: bài tốn cĩ 1 input nhƣng nhiều output (ví dụ : bài tốn tạo tiêu đề cho ảnh - Image Captioning);
- Many to one: bài tốn cĩ nhiều input nhƣng chỉ cĩ 1 output (ví dụ bài tốn phân loại ngữ nghĩa - Sentiment Classification);
- Many to many: bài tốn cĩ nhiều input và nhiều output (ví dụ bài tốn Dịch máy Neural Machine Translation hoặc bài tốn phân loại video và gắn nhãn từng frame - Video Classification).
34
2.3.3. Mơ hình mạng lan truyền ngược liên hồi – BPTT
Backpropagation Through Time (Truyền ngƣợc) là một thuật tốn mà ta rất hay gặp trong các mơ hình mạng học sâu (Deep Learning), nĩ tính tốn đạo hàm thành phần phần trên các nút của mơ hình (Ví dụ: Convnet, Neural Network). Chi tiết mơ hình mạng bao gồm:
Mạng RNN cĩ các cơng thức cơ bản sau :
( ) ( )
̂ ( ) ( )
Ta cũng định nghĩa hàm mất mát, hay hàm lỗi dạng cross entropy nhƣ sau:
( ̂ ) ̂
( ̂) ∑ ( ̂ )
∑ ̂ ( )
Ở đây, là từ chính xác ở bƣớc , cịn ̂ là từ mà ta dự đốn. Ta coi mỗi chuỗi đầy đủ (một câu) là một mẫu huấn luyện. Vì vậy tổng số lỗi chính là tổng của tất cả các lỗi ở mỗi bƣớc (mỗi từ).
Hình 2.6: Mơ hình mạng neural lan truyền ngược liên hồi
Mục tiêu của chúng ta là tính đạo hàm của hàm lỗi với tham số tƣơng ứng và sau đĩ học các tham số này bằng cách sử dụng SGD. Tƣơng tự nhƣ việc cộng tổng các lỗi, ta cũng sẽ cộng tổng các đạo hàm tại mỗi bƣớc cho mỗi mẫu
35 huấn luyện
∑
. Để tính đạo hàm, ta sử dụng quy tắc chuỗi vi phân. Quy tắc này đƣợc áp dụng cho việc truyền ngƣợc lỗi của giải thuật lan truyền ngƣợc.
̂ ̂ ̂ ̂ ( ̂ ) ( )
Trong đĩ, và là phép nhân ngồi của 2 vector , ta thấy
chỉ phụ thuộc vào các giá trị ở bƣớc hiện thời: ̂ . Nhìn vào cơng thức đĩ, ta thấy rằng tính đạo hàm cho chỉ đơn giản là phép nhân ma trận. Tuy nhiên với và thì phép tính lại khơng nhƣ vậy.
̂ ̂ ( )
Với phụ thuộc vào lại phụ thuộc vào và ,…Vì vậy với , khơng thể coi là hẳng số để tính tốn nhƣ với đƣợc. Ta tiếp tục áp dụng quy tắc chuỗi nhƣ sau:
̂ ̂ ( )
Nhƣ vậy, với ta phải cộng tổng tất cả các đầu ra ở các bƣớc trƣớc để tính đƣợc đạo hàm. Nĩi cách khác, ta phải truyền ngƣợc đạo hàm từ về tới .
36
“Cách làm này cũng giống hệt nhƣ giải thuật truyền ngƣợc chuẩn trong mạng neural truyền thống. Điểm khác ở đây là ta cộng tổng các đạo hàm của tại mỗi bƣớc thời gian. Trong mạng neural truyền thống, ta khơng chia sẻ các tham số cho các tầng mạng, nên ta khơng cần phải cộng tổng đạo hàm lại với nhau” [13][14]. Cũng tƣơng tự nhƣ với lan truyền ngƣợc truyền thống, ta cĩ thể định nghĩa vector delta khi lan truyền ngƣợc lại: ( )
với . Các cơng thức tính tốn tiếp theo hồn tồn cĩ thể dạng dụng tƣơng tự.
Tuy nhiên với các câu dài RNN khơng thể liên kết đƣợc các từ ở cách xa nhau nên việc học các câu dài sẽ bị thất bại. Với cơng thức tính đạo hàm:
∑ ̂ ̂ ( )
cũng tuân theo quy tắc chuỗi đạo hàm. Ví dụ: . Ta cĩ thể thấy các thành phần ở cơng thức trên đều là vector vì phép lấy đạo hàm cho vector cũng là vector, nên kết quả thu đƣợc sẽ là một ma trận Jacobi, trong đĩ các phần tử tƣơng ứng đƣợc tính theo phép tốn pointwise với đạo hàm tƣơng ứng. Ta cĩ thể viết lại cơng thức trên nhƣ sau:
∑ ̂ ̂ ( ∏ ) ( )
Phép tính theo cơng thức (2.13) cho ra một norm bậc 2. Ta cĩ thể coi nĩ là một giá trị tuyệt đối cĩ biến trên là 1 của ma trận Jacobi. Vì hàm kích hoạt ( hay ) sẽ cho ra kết quả nằm trong nên đạo hàm sẽ bị đĩng trong khoảng (với sigmoid thì giá trị là ).
37
Hình 2.8: Biểu đồ tanh và đạo hàm
Nhìn vào Hình 2.8, ta cĩ thể cả hàm lẫn sẽ cĩ đạo hàm bằng tại 2 đầu. Mà khi đạo hàm bằng thì nút mạng tƣơng ứng tại đĩ sẽ bị bão hịa. Lúc đĩ các nút phía trƣớc cũng sẽ bị bão hồ theo. Nên với các giá trị nhỏ trong ma trận, khi ta thực hiện phép nhân ma trận sẽ đạo hàm tƣơng ứng sẽ bùng nổi rất nhanh, thậm chí nĩ sẽ bị triệt tiêu chỉ sau vài bƣớc nhân. Nhƣ vậy, các bƣớc ở xa sẽ khơng cịn tác dụng với nút hiện tại nữa, làm cho mạng khơng thể học đƣợc các phụ thuộc xa. Vấn đề này cũng xảy ra đối với neural chuẩn khá sâu [7][8][12].
Tùy thuộc vào hàm kích hoạt và tham số của mạng, khi ma trận lớn ta cĩ thể gặp vấn đề bùng bổ đạo hàm. Tuy nhiên, ta cĩ thể thấy vấn đề mất mát đạo hàm cĩ thể gặp nhiều hơn vấn đề bùng nổ đạo hàm, vì bùng nổ đạo hàm cĩ thể theo dõi
đƣợc vì khi đạo hàm bị bùng nổ thì ta sẽ thu đƣợc kết quả là một giá trị phi số NaN làm cho chƣơng trình của ta bị dừng hoạt động.
Bùng nổ đạo hàm cĩ thể ngăn chặn đƣợc khi ta đặt một ngƣỡng giá trị trên cho đạo hàm. Cịn việc mất mát đạo hàm lại khơng theo dõi đƣợc mà cũng khơng biết làm sao để xử lý nĩ cho hợp lý [12].
2.3.4. Mơ hình mạng bộ nhớ dài ngắn LSTM a. Nguồn gốc mạng bộ nhớ dài ngắn a. Nguồn gốc mạng bộ nhớ dài ngắn
Kiến trúc mạng bộ nhớ dài-ngắn (LSTM /Long-Short Term Memory networks) là một dạng đặc biệt của RNN. LSTM cĩ khả năng xử lý đƣợc các phụ
38
thuộc xa. LSTM đƣợc giới thiệu vào năm 1977. Nĩ đƣợc cải tiến từ mạng neural hồi quy và trở lên phổ biến hơn do nhoạt động hiệu quả trên nhiều bài tốn khác nhau trong thực tế [9].
Mạng neural hồi quy RNN cĩ chứa vịng lặp. Mạng cĩ khả năng lƣu trữ thơng tin, thơng tin đƣợc truyền từ lớp này sang lớp khác. Đầu ra của lớp ẩn phụ thuộc vào thơng tin của các lớp tại mọi thời điểm. RNN đã đƣợc sử dụng phổ biến trong xử lý ngơn ngữ tự nhiên hay các bài tốn cĩ dữ liệu tuần tự. Tuy nhiên, do kiến trúc của RNN khá đơn giản nên khả năng liên kết các lớp cĩ khoảng cách xa là khơng tốt. Nĩ cơ bản khơng cĩ khả năng ghi nhớ thơng tin từ các dữ liệu cĩ khoảng cách xa, và do đĩ, những phần tử đầu tiên trong chuỗi đầu vào thƣờng khơng cĩ nhiều ảnh hƣởng đến kết quả dự đốn phần tử cho chuỗi đầu ra các bƣớc sau. Nguyên nhân của việc này là do RNN chịu ảnh hƣởng bởi việc đạo hàm bị thấp dần trong quá trình học – biến mất đạo hàm (vanishing gradient). Mạng LSTM đƣợc thiết kế để khắc phục vấn đề này. Cơ chế hoạt động của LSTM là chỉ ghi nhớ những thơng tin liên quan, quan trọng cho việc dự đốn, cịn các thơng tin khác sẽ đƣợc bỏ đi[17].
Theo Olah (2015): “Mọi mạng hồi quy đều cĩ dạng là một chuỗi các module lặp đi lặp lại của mạng neural. Với kiến trúc mạng RNN chuẩn, các module này cĩ cấu trúc rất đơn giản, thƣờng là một tầng ”
Hình 2.9: Các module lặp lại trong một nút mạng RNN tiêu chuẩn
Kiến trúc mơ hình LSTM cũng cĩ dạng chuỗi tƣơng tự RNN. Nhƣng bên trong LSTM cĩ 4 tầng bên trong tƣơng tác với nhau thay vì chỉ cĩ một tầng mạng nhƣ RNN.
39
Hình 2.10: Sự lặp lại kiến trúc module trong mạng LSTM chứa 4 tầng ẩn (3 sigmoid và 1 tanh) tương tác
Các ký hiệu trong mơ hình mạng LSTM cĩ thể đƣợc hiểu nhƣ sau:
Hình 2.11: Ký hiệu trong mạng LSTM
Mỗi một đƣờng mang một vector từ đầu ra của một nút tới đầu vào của một nút khác:
- Các ơ màu vàng đƣợc sử dụng để học trong các tầng mạng neural.
- Các hình trong màu hồng biểu diễn các phép tốn(cộng vector,…).
- Vector chỉ ra từ đầu ra của một nút tới đầu vào của một nút khác.
- Các đƣờng hợp nhau kí hiệu việc kết hợp.
- Các đƣờng rẽ nhánh ám chỉ nội dung của nĩ đƣợc sao chép và chuyển tới các nơi khác nhau.
b. Ý tưởng chính của LSTM
40
Ý tƣởng chính của LSTM là thành phần ơ trạng thái (cell state) đƣợc thể hiện qua đƣờng chạy ngang qua đỉnh đồ thị nhƣ hình 2.12 bên cạnh:
Trạng thái tế bào cĩ dạng giống nhƣ băng truyền, chạy xuyên suốt tất cả các các nút mạng và chỉ tƣơng tác tuyến tính cho nên các thơng tin cĩ thể dễ dàng truyền đi xuyên suốt mà khơng thể bị thay đổi[18].
LSTM cĩ thể thêm hoặc bỏ các thơng tin cần thiết cho trạng thái của tế bào, đƣợc điều chỉnh bởi các nhĩm đƣợc gọi là cổng.
Hình 2.13: Cổng sàng lọc thơng tin
Các cổng cĩ chức năng lọc thơng tin đi qua nĩ và đƣợc kết hợp bởi một tầng mạng và một phép nhân. Tầng sẽ cho đầu ra trong khoảng , nĩ mơ tả sẽ cĩ bao nhiêu thơng tin cĩ thể đƣợc thơng qua . Khi đầu ra là thì tức là khơng cho thơng tin nào qua, và khi là 1 thì tất cả các thơng tin đều đƣợc đi qua. Một mạng LSTM gồm cĩ 3 cổng để duy trì và điều hành tế bào và trải qua 3 bƣớc để thực hiện [9].
Bƣớc 1: Quyết định thơng tin cần loại bỏ từ trạng thái của tế bào
41
Hình 2.14: Dữ liệu được truyền qua cổng quên
Quyết định này đƣợc đƣa ra bởi tầng gọi là “tầng cổng quên” (forget gate layer). Nĩ sẽ lấy đầu vào là và rồi đƣa ra kết quả là một số trong khoảng cho mỗi số trong trạng thái tế bào . Đầu ra bằng nếu nĩ bỏ tồn bộ thơng tin đi, bằng tức là tồn bộ thơng tin sẽ giữ lại. Ví dụ: Với mơ hình dự báo từ tiếp theo dựa trên các từ trƣớc đĩ thì trạng thái tế bào sẽ mang thơng tin về giới tính để tìm đƣợc đại từ nhân xƣng chính xác và sau khi đề cập đến một ngƣời khác và khơng muốn nhớ tới giới tính nữa thì nĩ sẽ khơng cĩ tác dụng với ngƣời mới.
Bƣớc 2: Quyết định thơng tin mới đƣợc lƣu vào tế nào
( ) ( )
̃ ( ) ( )
Hình 2.15: Dữ liệu được truyền qua cổng đầu vào
42
- Bƣớc 2.1: Sử dụng một tầng hay đƣợc gọi là “tầng cổng vào” ( ) (Input gatelayer) để chọn giá trị sẽ đƣợc cập nhật.
- Bƣớc 2.2: Một tầng sẽ tạo ra một vector cho giá trị mới ̃ nhằm mục đích thêm vào cho trạng thái.
- Bƣớc 2.3: Sử dụng 2 giá trị của bƣớc 2.1 và bƣớc 2.2 đĩ để kết hợp và tạo ra một cập nhật cho trạng thái.
̃ ( )
Hình 2.16: Dữ liệu được lan truyền qua thanh trạng thái
Việc nhân trạng thái cũ với giúp loại đi các thơng tin quyết định quên ở Bƣớc 1 giúp cập nhật trạng thái tế bào cũ thành trạng thái mới . Sau đĩ cộng với ̃ . Trạng thái mới này phụ thuộc vào việc quyết định cập nhật mỗi giá trị của trạng thái nhƣ nào. Ví dụ: Với bài tốn nhƣ bƣớc 1 việc bỏ đi thơng tin giới tính của nhân vật cũ và thêm thơng tin giới của của nhân vật mới đã đƣợc quyết định ở các bƣớc trƣớc đĩ.
Bƣớc 3: Quyết định đầu ra
( ) ( )
43
Hình 2.17: Dữ liệu hội tụ ở đầu ra sau khi đi qua các cổng
Giá trị của đầu ra phụ thuộc vào trạng thái của tế bào, nhƣng tiếp tục đƣợc sàng lọc. Cần chạy một tầng để quyết định phần nào của trạng thái tế bào muốn lấy ra. Sau đĩ, tiếp tục đƣa qua một hàm để co giá trị nĩ về khoảng rồi nhân với đầu ra của cổng để đƣợc giá trị của đầu ra mong muốn. Ví dụ, nếu đầu ra của chủ thể là số ít hoặc số nhiều thì cĩ thể nhận biết đƣợc dạng của trạng từ đi sau nĩ.
Tuy nhiên trong thực tế khơng phải tất cả các mạng LSTM đều giống nhƣ vậy. Cĩ khá nhiều biến thể khác nhau tuy nhiên sự khác nhau khơng lớn, nhƣng giúp giải quyết đƣợc khá nhiều bài tốn sử dụng cấu trúc LSTM. Cĩ thể kể đến một dạng LSTM phổ biển đƣợc Gers & Schmidhuber giới thiệu năm 2000 sẽ đƣợc thêm các đƣờng kết nối hay cịn gọi là “Peephole connections” nhằm mục đích giúp các tầng, cổng nhận đƣợc giá trị đầu vào là trạng thái của tế nào. Tuy nhiên thay vì phân tách các quyết định thơng tin đƣợc thêm vào và loại trừ thì sẽ quyết định cùng với nhau luơn. Thơng tin đƣợc bỏ đi khi thay thế nĩ bằng thơng tin mới đƣa vào và cũng chỉ khi nào thơng tin cũ đƣợc bỏ đi thì thơng tin mới sẽ đƣợc thêm vào. Ngồi ra Kyunghyun Cho và nhĩm năm 2014 giới thiệu một biến thể khác của LSTM đƣợc dựa trên mạng LSTM của Hochreiter & Schmidhuber (1997) sẽ kết hợp các cổng đầu vào và cổng loại trừ thành một cổng gọi là “Cổng cập nhật” (Update gate). Nĩ cũng sẽ kết hợp trạng thái ẩn vào trạng thái của tế bào để tạo ra thay đổi khác.
44
Khi đĩ mơ hình sẽ đơn giản hơn mơ hình LSTM chuẩn vì vậy mơ hình này ngày càng đƣợc phổ biến.
2.4. Mạng Neural tích chập
Mạng Neural tích chập (CNN - Convolutional Neural Network) là một trong những mơ hình Deep Learning phổ biến nhất hiện nay. CNN đem lại hiệu quả cao với các bài tốn “phân loại hình ảnh” (Krizhevsky , 2012), “ phân loại văn bản” (Kim , 2014), “phân tích Protein” (Zacharaki , 2017), “phân tích ảnh y khoa” (Li , 2014) nên mơ hình CNN đƣợc sử dụng khá rộng rãi và phổ biến trong lĩnh vực máy học. Facebook , Google hay Amazon, ... cũng đang phát triển, ứng dụng mơ hình này vào hệ thống xử lý ảnh cho các muc đích nhƣ: thuật tốn tagging tự động , tìm kiếm ảnh hoặc gợi ý sản phẩm cho ngƣời tiêu dùng, ...
2.4.1. Ý tưởng mạng neural tích chập
Ý tƣởng của CNN đƣợc lấy cảm hứng từ khả năng nhận biết thị giác của bộ não ngƣời. CNN đƣợc xây dựng dựa trên ba ý tƣởng chính: “ tính kết nối cục bộ” (Local connectivity hay compositionality), “Tính bất biến” ( Location invairiance) và “Tính bất biến đối với quá trình chuyển đổi cục bộ” ( Invariance to local transition) (LeCun,2015) [4].
Nĩ đã đạt đƣợc nhiều thành tựu quan trọng trong các bài tốn liên quan đến hình ảnh nhƣ nhận dạng hình ảnh (image recognition) và phân lớp hình ảnh(image classification).. Ngồi ra Mạng CNN cịn đƣợc ứng dụng mạnh mẽ trong các bài tốn xử lý ngơn ngữ tự nhiên nhƣ phát hiện thƣ rác (spam detection), phân loại văn bản (topic categorization)…
2.4.2. Cấu trúc cơ bản của mạng Neural tích chập
Cấu trúc cơ bản của CNN gồm: - Lớp tích chập (Convolutional).
- Lớp kích hoạt phi tuyến ReLU (Rectified Linear Unit). - Lớp lấy mẫu ( Pooling).
45
Hình 2.18: Cấu trúc cơ bản của một mạng Neural tích chập
Bản chất của mạng CNN là tập hợp các lớp tích chập (Convolution) chồng lên nhau và sử dụng các hàm nonlinear activation nhƣ ReLU và tanh để kích hoạt các trọng số trong các node. Mỗi một lớp sau khi thơng qua các hàm kích hoạt sẽ tạo ra các thơng tin trừu tƣợng hơn cho các lớp tiếp theo.
Mỗi một lớp sau khi thơng qua các hàm kích hoạt sẽ tạo ra các thơng tin trừu tƣợng hơn cho các lớp tiếp theo. Trong mơ hình mạng truyền ngƣợc (feedforward neural network) thì mỗi neural đầu vào (input node) cho mỗi neural đầu ra trong các