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

MẠNG nơ RON hồi QUY và đệ QUY

75 131 1

Đ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

Định dạng
Số trang 75
Dung lượng 4,36 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Để chuyển từ mạng đa tầng sang Reccurent Networks, chúng ta cần tận dụng mộttrong những ý tưởng ban đầu được tìm thấy trong các mô hình học máy và thống kênhững năm 1980: chia sẻ các tha

Trang 1

ĐẠI HỌC QUỐC GIA HÀ NỘI

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

INCLUDEPICTURE "http://www2.uet.vnu.edu.vn/coltech/sites/uet_logo.png" \*

MERGEFORMATINET INCLUDEPICTURE

"http://www2.uet.vnu.edu.vn/coltech/sites/uet_logo.png" \* MERGEFORMATINETINCLUDEPICTURE "http://www2.uet.vnu.edu.vn/coltech/sites/uet_logo.png" \*

MERGEFORMATINET INCLUDEPICTURE

"http://www2.uet.vnu.edu.vn/coltech/sites/uet_logo.png" \* MERGEFORMATINET

TIỂU LUẬN

Môn học: Khai phá dữ liệu

Chương 10: MÔ HÌNH CHUỖI:

MẠNG NƠ-RON HỒI QUY VÀ ĐỆ QUY Giáo viên hướng dẫn: PGS TS Hà Quang Thụy

Trang 2

MỤC LỤC BẢNG CHÚ GIẢI VIẾT TẮT 1 PHẦN 1 PHÂN CÔNG CÔNG VIỆC 2

10.2.1 Teacher Forcing and Network with Output Recurrent 12

(Giáo viên bắt buộc và mạng có tái xuất đầu ra) 12

10.2.2 Tính toán Gradient trong một Recurrent Neural Network 14

10.2.3 Recurrent Networks as Directed Graphical Models 16

10.2.4 Modeling Sequences Conditioned on Context with RNNs 20

10.3 Bidirectional RNNs (mạng nơron hồi quy 2 chiều) 24 10.4 Encoder-Decoder Sequence-to-Sequence Archiectures 26 10.5 Deep Reccurent Networks: Mạng hồi quy sâu 28

10.5.1 Computation: Sự tính toán 28

10.5.2 Các kiểu mạng RNNs sâu 29

10.6 Recursive Neural Netwoks: Mạng nơron đệ quy 31

10.6.1 Đồ thị tính toán của mạng đệ quy 31

10.6.2 Cấu trúc cây trong mạng đệ quy 32

10.6.3 Biến thể của mạng đệ quy 32

10.7 Thách thức của phụ thuộc xa 33

10.7.1 Giới thiệu 33

Trang 3

10.7.2 Các hàm thành phần trong RNNs 33

10.7.3 Trường hợp vô hướng và giải pháp khả thi 35

10.7.4 Vanishing and Exploding Gradient Problem 35

10.8 Echo state networks 36

Phương pháp ESN 36

10.9 Leaky units and other strategies for multiple time scales 39

10.9.1 Adding Skip Connections through Time 39

10.9.2 Leaky units and a spectrum of different time scales 39

10.9.3 Removing connections 40

10.10 The long short-term memory and other gated RNNs 40

10.10.1 Long short-term memory 41

2.1 Introduction to Word Embedding 50

Neural Language Model 54

2.2 Word2vec 55

2.2.1 Skip-Gram Model 56

2.2.2 Model Components: Architecture 57

2.2.3 Model Components: Hidden Layer 57

2.2.4 Model Components: Output Layer 58

Trang 4

Bước 1 Lấy dữ liệu: 62

Trang 5

BẢNG CHÚ GIẢI VIẾT TẮT

Viết tắt Tiếng Anh Tiếng Việt

RNN,

RNNs

Recurrent neural network Mạng nơron hồi quy

BTTT Backpropagation through time Truyền ngược liên hồi

MLP Multi-layer Perceptron Mạng perceptron đa tầng

SGD Stochastic gradient descent Trượt gradient ngẫu nhiên

NTMs Neural Turing machine Máy Turing nơron

LSTM Long short-term memory Bộ nhớ dài-ngắn

CBOW Continuous Bag of Words

Affine transformation Phép biến đổi tịnh tiến

Trang 6

PHẦN 1 PHÂN CÔNG CÔNG VIỆC

Word2Vec: giới thiệu

Trần Thị Phương Anh

Giới thiệu chương 1010.5 Deep Reccurent Networks10.6 Recursive Neural Netwoks10.7 Thách thức của phụ thuộc xaWord2Vec: Skip-Gram, Model Components

Hỗ trợ biên soạn tài liệu chung

Dương Thanh Hải

10.9 Leaky units and other strategies for multiple time scales10.10 The long short-term memory and other gated Recurrent Neural Networks

Word2Vec: CBOWSubsampling Frequent WordsTrần Văn Định 10.11 Optimization for Long-Term Dependencies

10.12 Explicit Memory (Bộ nhớ rõ ràng)

Trang 7

Phần 2 – Chương 10 Sequence Modeling: Recurrent and Recursive Nets

(Mô hình tuần tự: mạng hồi quy và mạng đệ quy)

Recurrent neural networks (Mạng nơron hồi quy) - RNN (Rumelhart et

al., 1986a) là một dạng mạng nơron để xử lý dữ liệu dạng chuỗi RNN là mạng nơron

chuyên biệt cho xử lý một chuỗi các giá trị x(1), …, x(τ) Nó có thể chia tỷ lệ các chuỗi dàihơn thực tế đối với các mạng không có dạng chuỗi chuyên môn hóa Hầu hết cácRecursive Nets cũng có thể xử lý các chuỗi có chiều dài thay đổi

Để chuyển từ mạng đa tầng sang Reccurent Networks, chúng ta cần tận dụng mộttrong những ý tưởng ban đầu được tìm thấy trong các mô hình học máy và thống kênhững năm 1980: chia sẻ các tham số qua các phần khác nhau của một mô hình Việc chia

sẻ tham số giúp cho nó có thể mở rộng và ứng dụng mô hình cho các ví dụ theo các hìnhthức khác nhau (ở đây là độ dài khác nhau) và tổng quát chúng Nếu ta có tham số riêngvới mỗi giá trị ở từng thời điểm, chúng ta không thể khái quát hóa độ dài một chuỗi mà takhông thấy trong quá trình training, cũng như không thể chia sẻ sức mạnh thống kê quacác độ dài chuỗi khác nhau và qua các vị trí khác nhau trong cùng thời điểm Chia sẻ nhưvậy đặc biệt quan trọng khi một thông tin cụ thể có thể xảy ra tại nhiều vị trí trong chuỗi

Ví dụ, hãy xem xét hai câu “I went to Nepal in 2009” và “In 2009, I went to Nepal.” Nếuchúng ta yêu cầu một mô hình học máy đọc từng câu và đưa năm mà người kể chuyện đếnNepal, chúng ta muốn nó nhận ra năm 2009 là phần thông tin liên quan, cho dù nó xuấthiện ở vị trí nào trong câu đi chăng nữa Giả sử rằng chúng ta đã đào tạo một feedforwardnetwork xử lý các câu có độ dài cố định Một kết nối truyền thống đầy đủ của mạngfeedforward sẽ có các tham số riêng biệt cho mỗi đặc trưng đầu vào, vì vậy nó sẽ cần phảitìm hiểu tất cả các quy tắc về mặt ngôn ngữ một cách riêng biệt tại mỗi vị trí trong câu.Bằng cách so sánh, một RNN sẽ chia sẻ trọng số qua một vài bước thời gian

Các Recurrent networks chia sẻ các tham số theo cách: mỗi phần tử của đầu ra làmột hàm của phần tử trước đó Mỗi thành phần của output được tạo ra bằng cách sử dụngcùng một quy tắc cập nhật đã được áp dụng cho các kết quả đầu ra trước đó Công thứchồi quy này dẫn đến chia sẻ các tham số thông qua một đồ thị tính toán sâu

Để đơn giản, chúng ta đề cập đến RNNs như phép toán trên một chuỗi mà chứavectơ x(t) với bước thời gian chỉ số t chạy từ 1 đến τ Trong thực tế, mạng thường tính

Trang 8

toán trên các minibatch (khối con) của các chuỗi như vậy, với độ dài chuỗi τ khác nhaucho mỗi thành phần minibatch Chúng ta có bỏ qua các chỉ số minibatch để đơn giản hóa

ký hiệu Hơn nữa, chỉ số bước thời gian không hiểu theo nghĩa đen ám chỉ thời gian trôiqua trong thế giới thực Đôi khi nó chỉ đề cập đến vị trí trong chuỗi (index) RNN cũng cóthể được áp dụng trên dữ liệu trong không gian hai chiều như hình ảnh và thậm chí khiđược áp dụng cho dữ liệu liên quan đến thời gian, nó có thể có các kết nối đi ngược thờigian, với điều kiện toàn bộ chuỗi được quan sát trước khi nó được cung cấp cho RNN

Để biết thêm thông tin về RNN, chúng tôi giới thiệu người đọc đến sách giáo khoa

giải thích ý tưởng unfolding một tính toán đệ quy hoặc tái diễn vào một tính toán biểu đồ

có cấu trúc lặp lại, thường tương ứng với chuỗi sự kiện Việc mở rộng biểu đồ này sẽ dẫnđến việc chia sẻ thông số trên một mạng sâu kết cấu

Ví dụ, hãy xem xét dạng cổ điển của một hệ thống:

s (t) = f(s (t-1) ; θ), (10.1)

trong đó s(t) được gọi là trạng thái của hệ thống

Phương trình 10.1 có sự hồi quy bởi vì định nghĩa của s tại thời điểm t đề cập đếnthời điểm t - 1 Đối với số time step hữu hạn τ, biểu đồ có thể được mở ra bằng cách ápdụng định nghĩa τ - 1 lần Ví dụ, nếu chúng ta mở rộng phương trình 10.1 cho τ = 3,chúng tôi có được

s (3) = f(s (2) ; θ), (10.2)

= f(f(s (1) ; θ) ; θ), (10.3)

Mở rộng phương trình bằng cách lặp lại việc áp dụng định nghĩa, cách này manglại một biểu thức không liên quan đến sự hồi quy, bây giờ nó được biểu diễn bằng đồ thịtính toán theo chu kỳ truyền thống Các Unfolding Computational Graphs của phươngtrình 10.1 và phương trình 10.3 được minh họa trong hình 10.1

Trang 9

Hình 10.1: Hệ thống động học cổ điển được mô tả theo phương trình 10.1, được coinhư một Unfolding Computational Graphs Mỗi nút thể hiện trạng thái tại một số thờiđiểm và hàm f ánh xạ trạng thái tại t tới trạng thái tại t + 1 Các tham số giống nhau (cùngmột giá trị θ với vai trò là tham số) được sử dụng cho tất cả các bước thời gian Một ví dụkhác, chúng ta hãy xem xét một hệ thống lực thúc đẩy bởi một bên ngoài tín hiệu x(t)

s (t) = f(s (t-1) , x(t) ; θ), (10.4)

chúng ta thấy rằng trạng thái hiện tại chứa thông tin về toàn bộ chuỗi quá khứ

RNN có thể được xây dựng theo nhiều cách khác nhau Hầu như chức năng nàocũng có thể được coi là mạng thần kinh feedforward, về bản chất bất kỳ chức năng liênquan đến hồi quy có thể được coi là một RNN

Nhiều RNN sử dụng phương trình 10.5 hoặc một phương trình tương tự để xácđịnh giá trị của các đơn vị ẩn Để chỉ ra rằng trạng thái là đơn vị ẩn, bây giờ chúng ta viếtlại phương trình 10.4 bằng lấy h để đại diện:

h (t) = f(s (t-1) , x(t) ; θ), (10.5)

minh họa trong hình 10.2, RNNs điển hình sẽ thêm các tính năng kiến trúc bổ sung,

như vậy là các lớp đầu ra đọc thông tin output từ trạng thái h để đưa ra các dự đoán.

Khi Recurrent network được huấn luyện để thực hiện một nhiệm vụ đòi hỏi phải

dự đoán tương lai từ quá khứ, mạng thường học cách sử dụng h(t) như một hàm mất máttóm tắt các khía cạnh liên quan đến nhiệm vụ của chuỗi các đầu vào trong quá khứ ảnhhưởng tới t Điều này nói chung là mất mát, vì nó ánh xạ một chuỗi chiều dài tùy ý (x (t),

x (t − 1), x (t − 2),.,., x (2), x(1)) đến một vectơ chiều dài cố định h (t) Tùy thuộc vào tiêuchí Bản tóm tắt này có thể chọn lọc giữ một số khía cạnh với độ chính xác cao hơn cáckhía cạnh khác Ví dụ, nếu RNN được sử dụng trong mô hình ngôn ngữ thống kê, thường

để dự đoán từ tiếp theo dựa vào các từ trước đó, có thể việc lưu trữ tất cả thông tin vềinput cho đến thời điểm t là không cần thiết, nhưng vẫn đủ thông tin để dự đoán phần cònlại của câu Tình huống khắt khe nhất là khi chúng ta yêu cầu h(t) đủ “giàu” để cho phépmột khoảng khôi phục chuỗi đầu vào, như trong cơ cấu tự động hóa (chương 14)

Trang 10

Hình 10.2: Recurrent network không có đầu ra Recurrent network này chỉ là cácquá trình đưa input x vào trạng thái h được chuyển tiếp qua thời gian bằng cách kết hợpnào đó (bên trái) Hình vuông màu đen biểu thị sự chậm trễ của một bước Bên phải, mộtmạng lưới tương tự được thấy dưới dạng Unfolding Computational Graphs, trong đó mỗinút đang được kết hợp với một cá thể thời gian cụ thể

Phương trình 10.5 có thể được vẽ theo hai cách khác nhau Một cách để vẽ RNN :một sơ đồ chứa một nút cho mỗi thành phần có thể tồn tại trong một bước thục nghiệmvật lý, chẳng hạn như mạng nơron sinh học Nhìn chung, mạng lưới xác định một mạchhoạt động trong thời gian thực, với các thành phần vật lý ở trạng thái hiện tại có thể ảnhhưởng đến trạng thái tương lai của chúng, bên trái của hình 10.2 Trong suốt chương này,chúng ta sử dụng một hình vuông màu đen trong sơ đồ mạch để biểu thị rằng một tươngtác diễn ra với sự chậm trễ của một bước thời gian, từ trạng thái tại thời điểm t đến trạngthái tại thời điểm t + 1 Cách khác để vẽ RNN là vẽ Unfolding Computational Graphs,trong đó mỗi thành phần được biểu diễn bởi nhiều các biến khác nhau, với một biến chomỗi một time step, đại diện cho trạng thái tại thời điểm đó Mỗi biến cho mỗi time stepđược vẽ như một nút riêng biệt của biểu đồ tính toán, bên phải của hình 10.2 Những gìchúng tôi gọi unfolding (bày ra) chính là hoạt động ánh xạ một mạch phía bên trái củahình vào một computational graph với các phần lặp lại ở phía bên phải Mở ra biểu

đồ có kích thước phụ thuộc vào độ dài chuỗi

Chúng ta có thể biểu diễn sự hồi quy mở rộng sau vài bước t với hàm g(t):

h (t) = g (t) (x (t) ,x (t-1) , x (t-2) ,…,x (2) , x (1) ) (10.6

Hàm g (t) lấy toàn bộ chuỗi quá khứ (x (t), x (t − 1), x (t − 2), , x (2), x(1)) làm đầuvào và tạo ra trạng thái hiện tại, nhưng cấu trúc hồi quy mở rộng cho phép chúng ta đưag(t) vào ứng dụng lặp lại của hàm f Việc này có 2 ưu điểm chính:

Trang 11

1 Bất kể độ dài chuỗi, mô hình học được luôn có cùng kích thước đầu vào, bởi vì

nó được xác định trong điều kiện chuyển đổi từ một trạng thái sang một trạng thái khác,thay vì được xác định theo tiêu chí thay đổi độ dài của ca làm việc

2 Có thể sử dụng cùng hàm chuyển tiếp f với cùng các tham số ở mọi time step.Hai yếu tố này làm cho nó có thể học một mô hình hoạt động trên tất cả các timestep và tất cả các độ dài chuỗi, thay vì cần phải tìm hiểu riêng biệt mô hình g(t) tại tất cảthời điểm có thể Học một mô hình chia sẻ cho phép tổng quát về độ dài chuỗi mà chưaxuất hiện trong tập training và cho phép mô hình ước tính được các ví dụ đào tạo ít hơnrất nhiều so với cần thiết mà không cần chia sẻ thông số

Cả recurrent graph và unrolled graph đều có công dụng của chúng Cáccách lặp lại biểu đồ ngắn gọn Biểu đồ bày ra một mô tả rõ ràng về tính toán Unfoldedgraph - Biểu đồ mở rộng cũng giúp minh họa ý tưởng luồng thông tin chuyển tiếp theothời gian (đầu ra tính toán và sự thất thoát) và ngược trong thời gian (gradient máy tính)bằng cách hiển thị rõ ràng đường dẫn kèm theo với luồng thông tin

10.2 Recurrent Neural Networks

Với các ý tưởng phân tích đồ thị và tham số của phần 10.1, chúng ta có thể thiết kếmột loạt các Recurrent Neural Networks Một số ví dụ về các mẫu thiết kế quan trọng chocác Recurrent Neural Networks như sau:

• Các Recurrent Networks tạo ra một output ở mỗi bước và có kết nối hồi quy giữacác đơn vị ẩn, được minh họa trong hình 10.3

• Các Recurrent Networks tạo ra một output ở mỗi bước và chỉ có kết nối hồi quy từđầu ra tới đơn vị ẩn ở bước tiếp theo, được minh họa trong hình 10.4

• Các Recurrent Networks với các kết nối ngược lại giữa các đơn vị ẩn, toàn bộchuỗi cho một đầu ra duy nhất, được minh họa trong hình 10.5

Trang 12

Hình 10.3: Đồ thị tính toán để tính độ sai số trong quá trình huấn luyện của Recurrent Network

ánh xạ mỗi chuỗi đầu vào của các giá trị x tới một chuỗi giá trị đầu ra o tương ứng (bên Trái) RNN và sự mất mát của nó được vẽ với các kết nối ngược lại (bên Phải) Khai triển theo thời

gian, mỗi nút ứng với một thời điểm xác định

Giá trị mất mát L là độ lệch của dự đoán o với kết quả chính xác tương ứng y

(training target) Khi sử dụng các softmax outputs, chúng ta giả định o là các xác suất log

phi chuẩn (unnormalized log probabilities) Hàm loss L là biểu thức ŷ = softmax(o) so sánh nó với mục tiêu y RNN có đầu vào cho các kết nối ẩn được tham số hóa bởi một ma trận trọng số U, các kết nối hồi quy ẩn được tham số hóa bởi một ma trận trọng số W và các kết nối ẩn đến đầu ra được tham số hóa bởi một ma trận trọng số V Phương trình 10.8

định nghĩa sự lan truyền xuôi trong mô hình này

Hình 10.3 là một ví dụ điển hình hợp lý mà chúng ta sẽ quay lại trong suốt chương.Recurrent Neural Network của hình 10.3 và phương trình 10.8 cho thấy rằng bất kỳ chứcnăng nào được tính toán bởi một máy Turing có thể được tính toán bởi một RecurrentNetwork có kích thước hữu hạn Đầu ra có thể được đọc từ RNN sau một số bước có tính

Trang 13

tiệm cận tuyến tính trong số bước được sử dụng bởi máy Turing và tuyến tính tiệm cậntheo chiều dài của đầu vào (Siegelmann and Sontag, 1991; Siegelmann, 1995; Siegelmann

rạc, vì vậy các kết quả này xem xét việc thực hiện chính xác hàm, chứ không phải xấp xỉ.RNN, khi được sử dụng như một máy Turing, lấy một chuỗi nhị phân làm đầu vào và đầu

ra của nó phải được phân loại để cung cấp đầu ra nhị phân Có thể tính toán tất cả cácchức năng trong thiết lập này bằng cách sử dụng một RNN cụ thể có kích thước hữu hạn

đặc điểm kỹ thuật của hàm cần được tính toán, vì vậy cùng một mạng mô phỏng máyTuring này là đủ cho mọi vấn đề Lý thuyết RNN được sử dụng cho các bằng chứng cóthể mô phỏng một ngăn xếp không bị chặn bằng cách đại diện cho các hàm kích hoạt(activacations) và các vecto trọng số (weights) của nó với số lượng hợp lý của độ chínhxác không bị ràng buộc

Chúng tôi đang phát triển các phương trình forward propagation (lan truyền thẳng)cho RNN được mô tả trong hình 10.3 Hình này không chỉ rõ lựa chọn hàm kích hoạt chocác đơn vị ẩn Ở đây chúng tôi giả sử hàm kích hoạt tiếp tuyến hyperbol Hình này cũngkhông xác định chính xác hình thức của hàm đầu ra và hàm mất mát Ở đây chúng tôi giảđịnh rằng đầu ra là rời rạc, như thể RNN được sử dụng để dự đoán từ hoặc ký tự Một

cách tự nhiên để biểu diễn các biến rời rạc là coi đầu ra o là cho các xác suất log không

chuẩn hóa của mỗi giá trị có thể có của biến rời rạc Sau đó chúng ta có thể áp dụng hàm

softmax như một bước hậu xử lý để thu được một vectơ ŷ là xác suất chuẩn hóa trên đầu

ra (normalized probabilities over the output) Sự làn truyền của mô hình (Forward

Propagation) bắt đầu với một đặc tả của trạng thái ban đầu h (0) Sau đó, đối với mỗi bước

từ t = 1 đến t = τ, chúng ta áp dụng các phương trình cập nhật sau:

Trong đó các tham số là các vectơ bias b và c cùng với các ma trận trọng số U, V

và W, tương ứng cho các kết nối đầu vào đến đơn vị ẩn (input-to-hidden), đơn vị ẩn đếnđầu ra (hidden-to-output) và các đơn vị ẩn với nhau (hidden-to-hidden) Đây là một ví dụ

về một Recurrent Network ánh xạ một chuỗi đầu vào đến một chuỗi đầu ra có cùng độ

Trang 14

dài Tổng mất mát (total loss) cho một chuỗi giá trị x được ghép nối với một chuỗi các giá trị y là tổng số lỗi trên tất cả các bước Ví dụ, nếu L(t) là hàm âm log-likelihood của y (t)

cho x (1) , , x (t) thì:

trong đó pmodel(y(t) | {x (1) , , x (t) }) được cho bằng cách for y (t) in model’s output vector ŷ (t) Tính toán gradient của hàm mất này đối với các tham số là khá khó khăn Đểtính Gradient thì trước tiên là phải tính từ trái sang phải qua hình minh họa 10.3, tiếp theo

là một đường lan truyền từ phải sang trái trong mạch Thời gian chạy là O(τ) và không thể

giảm bằng cách chạy song song các bước vì mạch Forward propagation vốn có tuần tự;mỗi bước cần có sử dụng kết quả trong đơn vị ẩn của bước trước để tính nên chỉ có thểđược tính sau bước trước đó Các trạng thái tính trong thể chuyển tiếp phải được lưu trữcho đến khi chúng được tái sử dụng trong quá trình truyền ngược, do đó chi phí bộ nhớ

cũng là O(τ) Thuật toán back-propagation được áp dụng cho mạch chưa được kiểm tra với chi phí O(τ) được gọi là truyền ngược liên hồi (back-propagation through time) hoặc BPTT và được thảo luận thêm trong phần 10.2.2 Mạng nơron với liên kết hồi quygiữa các đơn vị ẩn là rất mạnh mẽ nhưng huấn luyện cũng rất tốn kém về thời gian và bộnhớ Vậy có cách nào khác không?

Trang 15

Hình 10.4: Một RNN chỉ có sự hồi quy là kết nối phản hồi (feedback connection) từ đầu ra

đến lớp ẩn Tại mỗi bước t, đầu vào x t , hàm hoạt động của lớp ẩn (hidden layer activations) là h (t),

đầu ra là o (t) , các mục tiêu là y (t) và mất mát là L(t) (bên Trái) mạch vòng tổng quát (bên Phải)

chiều (high-dimensional) và nhiều dữ liệu(rich), nó thường sẽ thiếu thông tin quan trọng

từ quá khứ Điều này làm cho RNN trong hình này kém mạnh hơn, nhưng có thể dễ huấnluyện hơn vì mỗi bước có thể được huấn luyện độc lập với nhau, cho phép sự song songlớn hơn trong quá trình training, Chúng ta sẽ nói thêm về mô hình này trong phần tiếptheo

Trang 16

10.2.1 Teacher Forcing and Network with Output Recurrent

(Giáo viên bắt buộc và mạng có tái xuất đầu ra)

Recurrent Network chỉ có các kết nối từ đầu ra tại một bước tới các đơn vị ẩn ởbước tiếp theo (được hiển thị trong hình 10.4) là rất ít mạnh hơn vì nó thiếu các kết nốihồi quy giữa các đơn vị ẩn Ví dụ, nó không thể mô phỏng một máy Turing phổ dụng Vìmạng này thiếu kết nối hồi quy giữa các đơn vị ẩn, nó đòi hỏi rằng các đơn vị đầu ra nắmbắt tất cả thông tin về quá khứ mà mạng sẽ sử dụng để dự đoán tương lai Vì các đơn vịđầu ra được huấn luyện một cách rõ ràng để match với training set targets, chúng khôngthể nắm bắt các thông tin cần thiết về lịch sử quá khứ của đầu vào, trừ khi người dùng biếtcách mô tả trạng thái đầy đủ của hệ thống và cung cấp nó như một phần của training settargets Lợi thế của việc loại bỏ hidden-to-hidden recurrence, đối với bất kỳ hàm mất nào

dựa trên so sánh các dự đoán với training target tại thời điểm t là tất cả các bước có thể

được tách riêng Sự huấn luyện do đó có thể thực hiện song song, với gradient cho mỗibước t được tính toán độc lập Không cần tính toán đầu ra cho bước trước, vì tập huấnluyện cung cấp giá trị lý tưởng của đầu ra đó

Hình 10.5: Recurrent Neural Network thời gian mở với một đầu ra duy nhất ở cuốichuỗi Một mạng như vậy có thể được sử dụng để tóm tắt một chuỗi và tạo ra một biểudiễn kích thước cố định được sử dụng làm đầu vào để xử lý tiếp Có thể có một đích ở

cuối (như được mô tả ở đây) hoặc gradient trên output o(t) có thể thu được bằng cách

Trang 17

truyền lại từ các mô đun tiếp theo.

Các mô hình có kết nối hồi quy từ kết quả đầu ra của chúng dẫn trở lại mô hình có thể

được huấn luyện với Teacher Forcing Teacher Forcing là một thủ tục xuất hiện từ tiêu chí khả năng tối đa, trong quá trình training, mô hình nhận được mục tiêu đầu ra y(t) làmđầu vào tại thời điểm t + 1 Chúng ta có thể thấy điều này bằng cách kiểm tra một chuỗivới hai bước Tiêu chi hợp lý cực đại có điều kiện là:

Trong ví dụ trên, chúng ta thấy rằng tại thời điểm t = 2, mô hình được huấn luyện để

tối đa hóa xác suất có điều kiện của y(2) cho cả chuỗi x tính đến bước đang xét và giá trị ytrước đó từ tập huấn luyện Do đó, khả năng tối đa (maximum likelihood) chỉ định rằngtrong quá trình training, thay vì cho đầu ra của chính mô hình trở lại chính nó, các kết nốinày nên được cung cấp với các giá trị đích xác định đầu ra chính xác Điều này được minhhọa trong hình 10.6

Hình 10.6: Minh họa Teacher Forcing Teacher Forcing là một kỹ thuật huấn luyện áp

Trang 18

dụng cho RNN có kết nối hồi quy từ đầu ra đến trạng thái ẩn ở bước tiếp theo (bên Trái) Tại thời

điểm training, chúng tôi cung cấp kết quả mục tiêu y(t) (target) được lấy từ bộ huấn luyện như đầu

vào cho h(t +1) (bên Phải) Khi mô hình được triển khai, đầu ra thực sự thường không được biết Trong trường hợp này, chúng ta ước lượng mục tiêu đầu ra y(t) với đầu ra của mô hình o(t) và đưađầu ra trở lại vào mô hình

Ban đầu chúng tôi dùng Teacher Forcing để tránh việc truyền lại qua thời gian trongcác mô hình thiếu các kết nối ẩn giấu hidden-to-hidden Teacher Forcing có thể vẫn được

áp dụng cho các mô hình có các kết nối ẩn đến ẩn (hidden-to-hidden), miễn là chúng cócác kết nối từ đầu ra tại một bước tới các giá trị được tính trong bước tiếp theo Tuy nhiên,ngay sau khi các đơn vị ẩn trở thành một hàm của các bước trước đó, chúng ta sẽ cầndùng thuật toán lan truyền ngược liên hồi (BPTT) Một số mô hình do đó có thể đượchuấn luyện kết hợp Teacher Forcing và BPTT

Những bất lợi của Teacher Forcing phát sinh nếu mạng sẽ được sử dụng sau này trongmột chế độ vòng lặp mở (open-loop), với các đầu ra mạng được nạp lại như đầu vào.Trong trường hợp này, loại đầu vào trong quá trình huấn luyện có thể hoàn toàn khác vớiloại đầu vào mà nó sẽ thấy vào thời điểm kiểm định (test) Một cách để giảm thiểu vấn đềtrên là huấn luyện với cả đầu vào do Teacher Forcing và các đầu vào tự do (free-runninginputs), ví dụ bằng cách dự đoán mục tiêu chính xác một số bước trong tương lai thôngqua các đường dẫn đầu vào-đầu ra (input-to-output) không hồi quy Theo cách này, mạng

có thể học xem xét các điều kiện đầu vào (chẳng hạn như những điều mà nó tự tạo ratrong chế độ tự do) không thấy trong quá trình trianing và cách ánh xạ trạng thái hướngtới trạng thái đầu ra sau vài bước Một cách tiếp cận khác (Bengio et al., 2015b) để giảmthiểu khoảng cách giữa các đầu vào thời điểm training và thời điểm test ngẫu nhiên chọn

sử dụng các giá trị được tạo ra hoặc các giá trị dữ liệu thực tế như đầu vào Cách tiếp cậnnày khai thác một chiến lược học tập chương trình giảng dạy để dần dần sử dụng nhiềugiá trị được tạo ra như đầu vào

10.2.2 Tính toán Gradient trong một Recurrent Neural Network

Tính toán gradient thông qua Recurrent Neural Network rất đơn giản Chúng ta có thể

áp dụng thuật toán back-propagation của phần 6.5.6 mà không cần thuật toán quá caosiêu Gradients thu được bằng back-propagation sau đó có thể được sử dụng với bất kỳ kỹthuật dựa trên gradient có mục đích chung để training một RNN

Trang 19

Để đạt được một số trực giác về cách hoạt động của thuật toán BPTT, chúng tôi cungcấp một ví dụ về cách tính toán gradient bằng BPTT cho các phương trình RNN ở trên(phương trình 10.8 và phương trình 10.12) Các nút của mạch tính toán của chúng tôi bao

gồm các tham số U, V, W, b và c cũng như chuỗi các nút phụ thuộc t cho x(t), h(t), o(t) và

L(t) Đối với mỗi nút N, chúng ta cần tính toán gradient đệ quy ∇NL, dựa trên gradientđược tính toán tại các nút theo sau nó trong mạch Chúng ta bắt đầu đệ quy với các nútcuối cùng

Trong đạo hàm này, chúng ta giả định rằng các đầu ra o(t) được sử dụng làm đối số cho

hàm softmax để thu được vectơ ŷ của xác suất trên đầu ra Chúng tôi cũng giả định rằng

hàm mất mát là hàm âm log-likelihood của kết quả đúng y(t) Gradient ∇ o(t)L của đầu ra tại

bước t, qua tất cả i, t, như sau:

Ở bước cuối cùng, τ, h(τ) chỉ có o(τ) như một kết quả, do đó gradient của nó đơngiản:

Sau đó chúng ta truyền lại gradient theo từng bước, từ t = τ −1 về t = 1, lưu ý rằng

h(t) (với t <τ) có dạng con cháu của o(t) và h (t) Do đó, gradient của nó được cho bởi

trong đó diag (1-(h(t+1))2) biểu thị ma trận đường chéo chứa các phần tử 1 – (hi(t+1))2

Nó là định thức Jacobian của tiếp tuyến hyperbol liên kết với unit i tại thời điểm t+1.

Khi thu được các gradient qua các đồ thị tính toán, chúng ta có thể có được cácgradient trên các nút tham số Bởi vì các tham số được chia sẻ qua nhiều bước, chúng taphải cẩn thận khi biểu thị các phép toán liên quan đến các biến này Các phương trình

Trang 20

chúng tôi muốn thực hiện sử dụng phương pháp backpropagation của phần 6.5.6, tínhtoán sự đóng góp của một cạnh đơn trong mạch với gradient Tuy nhiên, toán tử ∇W f được

sử dụng trong phép tính tính đến sự đóng góp của W với giá trị của f do tất cả các cạnh

trong mạch tính toán Để nói rõ hơn, chúng tôi giả sử các biến giả W(t) được định nghĩa là

bản sao của W nhưng với mỗi W(t) chỉ được sử dụng ở bước t Sau đó, chúng tôi có thể sửdụng ∇W(t)để biểu thị sự đóng góp của các trọng số tại từng bước t góp phần vào gradient

Ta có thể sử dụng ký hiệu này để biể thị gradient trên các tham số con lại như sau:

10.2.3 Recurrent Networks as Directed Graphical Models

(RNN như một mô hình đồ thị)

Trong các ví dụ về Recurrent Network mà chúng ta đã nói cho đến nay, các giá trị mất

mát L(t) là các cross-entropies (độ lệch giữa 2 phân bố xác suất) giữa các target y(t) và kết

quả đầu ra o(t) Như với một mạng feedforward, về nguyên tắc có thể sử dụng hầu như bất

kỳ hàm mất mát nào với Recurrent Network Sự mất mát nên được lựa chọn dựa trên bàitoán cụ thể Như với một mạng feedforward, chúng ta thường muốn giải thích đầu ra củaRNN như là một phân phối xác suất, và chúng ta thường sử dụng cross-entropy kết hợp

Trang 21

với phân phối đó để xác định sự mất mát Giá trị bình phương trung bình của mất mát làcross-entropy kết hợp với một phân bố đầu ra là một đơn vị Gaussian, ví dụ như với mộtmạng feedforward.

Khi chúng ta sử dụng một đối tượng huấn luyện dự đoán khả năng cao nhất, chẳnghạn như phương trình 10.12, chúng ta huấn luyện RNN để ước tính sự phân bố có điều

kiện của phần tử tiếp theo y(t) cho các đầu vào trong quá khứ Điều này có thể hiểu là

chúng ta đi tối đa hóa hàm log-Likelihood

Hoặc, nếu mô hình bao gồm các kết nối từ đầu ra tại một bước tới bước tiếp theo,

Phân tích xác suất chung trên chuỗi các giá trị y như một loạt các dự đoán xác suất

từng bước là một cách để nắm bắt đầy đủ sự phân bố trên toàn bộ chuỗi Khi chúng ta

không nạp lại các giá trị y như các đầu vào có điều kiện để dự đoán bước tiếp theo, mô hình đồ thị định hướng không chứa các đường từ y(i) nào trong quá khứ đến y(t) hiện tại.

Trong trường hợp này, các kết quả đầu ra y là độc lập với chuỗi giá trị x Khi chúng ta nạpcác giá trị y thực tế (không phải dự đoán của chúng) trở lại vào mạng, mô hình đồ thị có

hướng chứa các cạnh từ tất cả các giá trị y(i) trong quá khứ tới giá trị y(t) hiện tại

Như một ví dụ đơn giản, chúng ta hãy xem xét trường hợp các mô hình RNN chỉ làmột chuỗi các biến ngẫu nhiên vô hướng Y = {y(1), , y(τ)}, không có đầu vào bổ sung x.Đầu vào tại bước t chỉ đơn giản là đầu ra ở bước t − 1 RNN sau đó định nghĩa một môhình đồ thị có hướng qua các biến y Chúng tôi phân tích sự phân bố chung của các quansát này bằng cách sử dụng quy tắc chuỗi (chain rule) (phương trình 3.6) cho các xác suất

có điều kiện:

Trong đó vế phải của biểu thức rỗng khi t = 1 Do đó, khả năng log-likelihood âm củamột tập hợp các giá trị {y(1), , y(τ)} theo mô hình như vậy

Trang 22

Hình 10.7: Mô hình đồ thị kết nối đầy đủ cho một chuỗi y(1), y(2), , y(t), : mỗi biến cố y(i) cóthể ảnh hưởng đến phân phối có điều kiện của y(t) (đối với t> i Việc mô tả trực tiếp mô hình đồthị theo đồ thị này (như trong phương trình 10.6) có thể rất kém hiệu quả, với số lượng đầu vào

và tham số ngày càng tăng cho từng phần tử của chuỗi RNNs có được sự kết nối đầy đủ nhưnghiệu quả, như minh họa trong hình 10.8

trong đó

Hình 10.8: Giới thiệu biến trạng thái trong mô hình đồ thị của RNN, mặc dù nó là hàm xácđịnh các đầu vào của nó, giúp chúng ta biết làm thế nào để có được một tham số thật hiệu quả,dựa trên phương trình 10.5 Mỗi trạng thái trong chuỗi (đối với h(t) và y(t)) có cùng một cấu trúc(cùng số lượng đầu vào cho mỗi nút) và có thể chia sẻ cùng các tham số với các giai đoạn khác

Các cạnh trong mô hình đồ thị cho biết sự phụ thuộc trực tiếp giữa các biến Nhiều

mô hình đồ thị nhắm đến việc đạt hiệu quả thống kê và tính toán bằng cách bỏ qua cáccạnh không tương ứng với các tương tác mạnh Ví dụ, thông thường cho các giả định

Trang 23

Markov rằng mô hình đồ thị chỉ nên chứa các cạnh từ {y(t-k), , y(t-1)} đến y(t), thay vì chứacác cạnh trong toàn bộ quá khứ Tuy nhiên, trong một vài trường hợp, chúng ta tin rằng tất

cả đầu vào trước đây nên có một ảnh hưởng đến phần tử tiếp theo trong chuỗi RNN cóích khi chúng ta tin rằng sự phân bố trên y(t) có thể phụ thuộc vào giá trị y(i) từ quá khứ xatheo cách không bị ảnh hưởng bởi y(i) trên y(t-1)

Một cách để giải thích RNN giống một mô hình đồ thị là xem RNN như định nghĩamột mô hình đồ đầy đủ, có thể biểu diễn trực tiếp các phụ thuộc giữa bất kỳ cặp giá trị ynào Mô hình đồ thị trên các giá trị y với cấu trúc đồ thị đầy đủ được thể hiện trong hình10.7 Việc giải thích đồ thị đầy đủ của RNN dựa trên việc bỏ qua các đơn vị ẩn h(t) bằngcách tách chúng ra khỏi mô hình

Điều thú vị hơn là xem xét cấu trúc mô hình đồ thị của RNNs rút ra từ việc coi cácđơn vị ẩn h(t) như các biến ngẫu nhiên Bao gồm các đơn vị ẩn trong mô hình đồ thị chothấy rằng RNN cung cấp một tham số hoá rất hiệu quả của sự phân phối chung trên cácquan sát Giả sử rằng chúng ta biểu diễn một phân phối chung tùy ý trên các giá trị rời rạcvới dạng bảng - một mảng chứa một mục riêng cho mỗi phép gán có thể có giá trị, với giátrị của mục đó cho xác suất của phép gán đó xảy ra Nếu y có thể nhận k giá trị khác nhau,bảng biểu diễn sẽ có O(kτ) tham số Bằng so sánh, nhờ chia sẻ tham số nên số lượng tham

số trong RNN là O(1) như một hàm của chiều dài chuỗi Số lượng tham số trong RNN cóthể được điều chỉnh để điều khiển sức chứa của mô hình mà không bị buộc phải mở rộngtheo chiều dài chuỗi Phương trình 10.5 cho thấy rằng mô hình này có quan hệ lâu dàigiữa các biến một cách hiệu quả, sử dụng các ứng dụng hồi quy của cùng một hàm f vàcùng các tham số θ ở mỗi bước Hình 10.8 minh họa cách giải thích mô hình đồ thị Kếthợp các nút h(t) trong mô hình đồ thị tách rời quá khứ và tương lai, hoạt động như một sốlượng trung gian giữa chúng Một biến y(i) trong quá khứ xa có thể ảnh hưởng đến biến y(t)thông qua tác động của nó trên h Cấu trúc của đồ thị này cho thấy mô hình có thể đượctham số hiệu quả bằng cách sử dụng cùng phân bố xác suất có điều kiện ở mỗi bước, vàkhi tất cả các biến được quan sát, xác suất của phép gán chung của tất cả các biến có thểđược đánh giá một cách hiệu quả

Sự phân bố có điều kiện đối với các biến này cho cha mẹ của chúng là xác định Điều này là hoàn toàn hợp pháp, mặc dù nó là hơi hiếm để thiết kế một mô hình đồ thị với các đơn vị ẩn xác định như vậy.

Ngay cả với tham số hoá hiệu quả của mô hình đồ thị, một số hoạt động tính toáncòn khó khăn Ví dụ, rất khó để dự đoán các giá trị còn thiếu ở giữa chuỗi

Cái giá mà các mạng hồi quy trả cho số lượng tham số giảm của chúng là việc tối ưuhóa các tham số có thể khó khăn

Việc chia sẻ tham số sử dụng trong mạng hồi quy phụ thuộc vào giả định rằng vớicùng tham số có thể được sử dụng cho các bước khác nhau Tương đương, giả định rằng

Trang 24

phân bố xác suất có điều kiện trên các biến tại thời điểm t + 1 cho các biến tại thời điểm t

là không đổi, có nghĩa là mối quan hệ giữa bước trước đó và bước tiếp theo không phụthuộc vào t Về nguyên tắc, có thể sử dụng t làm đầu vào bổ sung ở mỗi bước và cho phépngười học khám phá bất kỳ sự phụ thuộc thời gian nào trong khi chia sẻ nhiều nhất có thểgiữa các bước khác nhau Điều này sẽ tốt hơn nhiều so với việc sử dụng phân bố xác suất

có điều kiện khác nhau cho mỗi t, nhưng mạng sau đó sẽ phải ngoại suy khi đối mặt vớicác giá trị mới của t

Để hoàn thành cái nhìn của chúng ta về một RNN như một mô hình đồ thị, chúng taphải mô tả cách vẽ các mẫu từ mô hình Hoạt động chính mà chúng ta cần thực hiện đơngiản là lấy mẫu từ phân phối có điều kiện ở mỗi bước thời gian Tuy nhiên, có thêm mộtvấn đề RNN phải có một vài cơ chế để xác định chiều dài chuỗi Vấn đề này có thể giảiquyết bằng nhiều cách

Trong trường hợp đầu ra là một ký hiệu được lấy từ một từ vựng, người ta có thểthêm một ký hiệu đặc biệt tương ứng với phần cuối của một chuỗi (Schmidhuber, 2012).Khi ký hiệu được tạo ra, quá trình lấy mẫu dừng lại Trong tập huấn luyện, chúng ta chèn

ký hiệu này như một thành viên bổ sung của chuỗi, ngay sau x(τ) trong mỗi ví dụ huấnluyện

Một cách khác để xác định độ dài chuỗi τ là thêm đầu ra phụ vào mô hình tự nó dựđoán chính số nguyên τ Cách tiếp cận này yêu cầu thêm đầu vào bổ sung cho cập nhậthồi quy ở từng bước để cập nhật hồi quy nhận thức được liệu nó có gần cuối chuỗi đượctạo hay không Đầu vào thêm này hoặc có thể bao gồm các giá trị của τ hoặc có thể baogồm τ−t, số lượng các bước thời gian còn lại Nếu không có đầu vào bổ sung này, RNN

có thể tạo ra các chuỗi kết thúc bất ngờ, chẳng hạn như một câu kết thúc trước khi nóđược hoàn tất Cách tiếp cận này được dựa trên công thức

Chiến lược dự đoán trực tiếp τ được sử dụng cho ví dụ bởi Goodfellow et al.(2014d)

10.2.4 Modeling Sequences Conditioned on Context with RNNs

(Mô hình trình tự có điều kiện trên bối cảnh với Recurrent Neural Networks)

Trong phần trước chúng ta đã mô tả cách một RNN có thể tương ứng với một môhình đồ thị có hướng qua một chuỗi các biến ngẫu nhiên y(t) mà không có đầu vào x Tấtnhiên, sự phát triển của các RNN như trong phương trình 10.8 bao gồm một chuỗi cácđầu vào x(1), x(2), , x(τ) Nói chung, RNNs cho phép mở rộng cách nhìn mô hình đồ thị

để biểu diễn không chỉ một phép phân phối chung trên các biến y mà còn là phân phối cóđiều kiện so với y đã cho x Như đã thảo luận, trong bối cảnh của các mạng feedforwardtrong phần 6.2.1.1, bất kỳ mô hình nào đại diện cho biến P(y; θ) có thể được diễn giải lạinhư một mô hình đại diện cho phân phối có điều kiện P(y | ω) với ω = θ Chúng ta có thể

mở rộng mô hình như vậy để biểu diễn một phân bố P(y | x) bằng cách sử dụng cùng một

Trang 25

P(y | ω) như trước, nhưng cho ω một hàm của x Trong trường hợp của RNN, điều này cóthể đạt được theo nhiều cách khác nhau Chúng tôi xem xét ở đây những lựa chọn phổbiến nhất và rõ ràng nhất.

Trước đây, chúng ta đã thảo luận RNNs lấy một chuỗi các vectơ x(t) cho t = 1, , τlàm đầu vào Một tùy chọn khác là chỉ lấy một vector x làm đầu vào Khi x là một vector

có kích thước cố định, chúng ta đơn giản có thể cho nó làm một đầu vào thêm của RNN

để tạo ra chuỗi y Một số cách phổ biến để cung cấp thêm đầu vào cho RNN là:

1 Như một đầu vào bổ sung tại mỗi bước

2 Như trạng thái khởi tạo h(0)

3 Cả hai cách trên

Cách tiếp cận đầu tiên và phổ biến nhất được minh họa trong hình 10.9 Sự tươngtác giữa đầu vào x và mỗi vector đơn vị ẩn h(t) được tham số hóa bởi một ma trận trọng số

R mới được giới thiệu không có trong mô hình chỉ có chuỗi các giá trị y Cùng một tích

xTR được thêm vào như một đầu vào bổ sung cho các đơn vị ẩn tại mỗi bước Chúng ta cóthể nghĩ về sự lựa chọn của x khi xác định giá trị của xTR, đó là một tham số thiên vị(bias) mới được sử dụng cho mỗi đơn vị ẩn Các trọng số vẫn độc lập với đầu vào Chúng

ta có thể nghĩ về mô hình này khi lấy các tham số θ của mô hình phi điều kiện và biếnchúng thành ω, với các tham số thiên vị (bias) trong ω bây giờ là một hàm của đầu vào

Trang 26

Hình 10.9: Một RNN ánh xạ một vectơ có độ dài cố định thành phân bố theo dãy Y RNN

này thích hợp cho các tác vụ như chú thích hình ảnh, trong đó một hình ảnh được sử dụng làmđầu vào cho một mô hình, sau đó tạo ra một chuỗi các từ mô tả hình ảnh Mỗi phần tử y(t) củachuỗi đầu ra đóng vai trò là đầu vào cho bước hiện tại và làm mục tiêu cho bước trước đó

Thay vì chỉ nhận được một vector x làm đầu vào, RNN có thể nhận được một chuỗicác vectơ x(t) làm đầu vào RNN được mô tả trong phương trình 10.8 tương ứng với sựphân bố có điều kiện P (y(1),.,., y(τ) | x(1), , x(τ)) tạo ra một giả định độc lập có điều kiệnrằng phân phối này có yếu tố như:

Để loại bỏ giả định độc lập có điều kiện, chúng ta có thể thêm các kết nối từ đầu ratại thời điểm t tới đơn vị ẩn tại thời điểm t + 1, như trong hình 10.10 Sau đó, mô hình có

thể biểu diễn các phân bố xác suất tùy ý trong chuỗi y Loại mô hình này thể hiện sự phân

bố theo trình tự được cho một chuỗi khác vẫn có một hạn chế, đó là độ dài của cả hai trình

tự phải giống nhau Chúng tôi sẽ mô tả cách xóa giới hạn này trong phần 10.4

Trang 27

Hình 10.10: Mạng nơ-ron hồi quy có điều kiện ánh xạ một chuỗi các giá trị x có độ dài biến đổi thành một phân bố trên dãy các giá trị y có cùng độ dài So với hình 10.3, RNN này chứa

thêm các kết nối từ đầu ra trước đó tới trạng thái hiện tại Các kết nối này cho phép RNN mô hình

hóa sự phân bố tùy ý theo các trình tự của các chuỗi x có cùng độ dài RNN của hình 10.3 chỉ có thể biểu diễn các phân phối trong đó các giá trị y có điều kiện độc lập với nhau cho bởi các giá trị

x.

Trang 28

Hình 10.11: Một mạng nơron hồi quy hai chiều điển hình, có nghĩa là ánh xạ các

chuỗi đầu vào x đến các chuỗi mục tiêu y, với mất mát L(t) ở mỗi bước t Sự lặp lại h lan truyền thông tin về phía trước theo thời gian (về phía bên phải) trong khi g lặp lại thông tin ngược thời gian (về phía bên trái) Vì vậy, tại mỗi bước t, các đơn vị đầu ra o(t) có thể

hưởng lợi từ một bản tóm tắt có liên quan của quá khứ trong đầu vào h(t) và từ một bản

tóm tắt có liên quan về tương lai trong đầu vào g(t) của nó

10.3 Bidirectional RNNs (mạng nơron hồi quy 2 chiều)

Tất cả các recurrent networks mà chúng ta đã xem xét đến nay đều có cấu trúc

"nhân quả", có nghĩa là trạng thái tại thời điểm t chỉ thu thập thông tin từ quá khứ, x(1), ,

x (t − 1) và đầu vào hiện tại x (t) Một số mô hình chúng tôi đã thảo luận cũng cho phép

Trang 29

thông tin từ các giá trị y trong quá khứ cũng ảnh hưởng đến trạng thái hiện tại khi y là giátrị có sẵn.

Tuy nhiên, trong nhiều ứng dụng, chúng tôi đưa ra dự đoán của y(t) có thể phụthuộc vào toàn bộ chuỗi đầu vào Ví dụ, trong nhận dạng giọng nói, chính xác việc giảithích âm thanh hiện tại như một âm sắc có thể phụ thuộc vào âm sắc kế tiếp do trùng khớp

và còn có thể phụ thuộc vào một số từ do phụ thuộc ngôn ngữ giữa các từ lân cận (linkingsound – nối âm) : nếu có là hai cách giải thích của từ hiện tại vừa hợp lý về mặt âm thanh,chúng ta có thể phải nhìn xa vào tương lai (và quá khứ) để phân biệt chúng Điều nàycũng đúng với nhận dạng chữ viết tay và nhiều tác vụ học tuần tự khác, sẽ mô tả trongphần tiếp theo

Các mạng nơron hồi quy hai chiều (các RNN hai chiều) được phát minh để giảiquyết nhu cầu đó (Schuster và Paliwal, 1997) Họ đã rất thành công (Graves, 2012) trongcác ứng dụng thực tiễn, chẳng hạn như nhận dang chữ viết tay (Graves và cộng sự, 2008;Graves và Schmidhuber, 2009), nhận dạng giọng nói (Graves và Schmidhuber, 2005;Graves và cộng sự, 2013) và tin sinh học (Baldi) et al., 1999)

Cái tên nói lên tất cả, RNN hai chiều kết hợp một RNN di chuyển về phía trướcxuất phát ở đầu trình tự với một RNN khác di chuyển ngược xuất phát từ cuối trình tự.Hình 10.11 minh họa RNN hai chiều điển hình, với h(t) đại diện cho trạng thái của sub-RNN di chuyển xuôi thời gian và g(t) đại diện cho trạng thái của sub-RNN di chuyển

ngược thời gian Điều này cho phép các đơn vị đầu ra o(t) tính toán một biểu diễn phụ

thuộc vào cả quá khứ và tương lai nhưng lại nhạy cảm với các input trong khoảng thời

gian t, mà không phải chỉ rõ 1 fixed-size window lân cận thời điểm t (giống như mộttrong những bước sẽ phải làm với một mạng feedforward, một mạng chuyển đổi, hoặcmột RNN thông thường với một bộ đệm có kích thước cố định)

Ý tưởng này có thể được mở rộng theo cách tự nhiên thành một đầu vào 2 chiều, ví

dụ như hình ảnh, bởi có bốn RNN, mỗi người đi theo một trong bốn hướng: lên, xuống,trái, phải Tại mỗi điểm (i, j) của không gian 2D, một đầu ra Oi,j có thể tính toán đâu sẽ làđại diện nắm bắt hầu hết thông tin cục bộ nhưng cũng có thể phụ thuộc phạm vi đầu vào,điều đó là khả thi nếu RNN có thể học cách chắt lọc thông tin đó So với convolutionalnetwork, RNN được áp dụng cho hình ảnh thường là tốn kém hơn nhưng cho phéptương tác tầm xa giữa các tính năng trong cùng một bản đồ đặc trưng (Visin và cộng sự,2015; Kalchbrenner và cộng sự, 2015) Thật vậy, các phương trình forward propagationcho các RNN như vậy có thể viết được dưới dạng hiển thị, họ sử dụng tích chập đầu vào

từ dưới lên cho mỗi lớp, ưu tiên lan truyền hồi quy trên bản đồ đặc trưng kết hợp vớinhững tương tác xung quanh

Trang 30

10.4 Encoder-Decoder Sequence-to-Sequence Archiectures

(Kiến trúc mã hóa-giải mã tuần tự)

Chúng ta đã thấy trong hình 10.5 cách RNN có thể ánh xạ một chuỗi đầu vào đếnmột vector có kích thước cố định, và trong hình 10.9 cách RNN có thể ánh xạ một vector

có kích thước cố định đến một trình tự Chúng ta lại thấy trong các hình 10.3, 10.4, 10.10

và 10.11 cách RNN có thể ánh xạ một chuỗi đầu vào đến một chuỗi đầu ra có cùng độ dài

(10.12)Hình 10.12: Ví dụ về giải mã-mã hóa hoặc kiến trúc tuần tự RNN cho việc học đểtạo ra một chuỗi đầu ra (y(1), , y (n y)) được cho bởi một chuỗi đầu vào (x(1), x (2),.,., x(nx)) Nó bao gồm một bộ mã hóa RNN đọc chuỗi đầu vào và bộ giải mã RNN tạo chuỗi

Trang 31

đầu ra (hoặc tính toán xác suất của chuỗi output định trước) Trạng thái ẩn cuối cùng của

bộ mã hóa RNN được sử dụng để tính toán khái quát kích thước ngữ cảnh của 1 biến Cđại diện cho một bản tóm tắt ngữ nghĩa của input trình tự và được làm đầu vào cho bộ giải

mã RNN

Ở đây chúng ta thảo luận về một RNN có thể được training để ánh xạ một chuỗiđầu vào đến một chuỗi đầu ra không nhất thiết phải có cùng độ dài Điều này xuất hiệntrong nhiều ứng dụng, chẳng hạn như nhận dạng giọng nói, dịch máy hoặc trả lời câu hỏi,nơi các chuỗi đầu vào và đầu ra trong tập huấn luyện nói chung không cùng chiều dài(mặc dù độ dài của chúng có thể liên quan)

Chúng ta thường gọi đầu vào của RNN là "ngữ cảnh" Chúng ta muốn tạo ra đại diệncủa ngữ cảnh này, đó là C Ngữ cảnh C có thể là một vectơ hoặc chuỗi vectơ tóm tắt chuỗiđầu vào X = (x(1), , x (nx)) Kiến trúc RNN đơn giản nhất để ánh xạ một chuỗi có độ dàibiến thiên trình tự này - một chuỗi có độ dài biến thiên trình tự khác được đề xuất bởi Cho

et al (2014a) và ngay sau đó Sutskever et al (2014) đã phát triển độc lập kiến trúc này và

là người đầu tiên làm được dịch thuật tiên tiến bằng cách sử dụng phương pháp này Hệthống cũ dựa trên các đề xuất chấm điểm do một máy khác tạo ra chương trình dịch thuật,trong khi hệ thống mới sau này sử dụng một mạng hồi quy độc lập để tạo ra bản dịch Cáctác giả ấy được đặt tên cho kiến trúc này, được minh họa trong hình 10.12, bộ giải mã-mãhóa hoặc cấu trúc trình tự liên tiếp Các ý tưởng rất đơn giản:

(1) một bộ mã hóa hoặc người đọc hoặc đầu vào RNN xử lý input trình tự Bộ mãhóa tạo ra ngữ cảnh C, thường là một hàm đơn giản ở trạng thái ẩn tại ca làm việc cuốicùng

(2) một bộ giải mã hoặc nhà văn hoặc đầu ra RNN được điều chỉnh bằng vector có

độ dài cố định (giống như trong hình 10.9) để tạo ra chuỗi đầu ra Y = (y(1), , Y (ny))

Sự đổi mới của loại kiến trúc này so với kiến trúc cũ trình bày trong phần trước củachương này là độ dài nx và ny có thể khác nhau, trong khi kiến trúc trước đó bị hạn chế nx

= ny = τ Trong một kiến trúc tuần tự, hai RNN được đào tạo song song để tối đa hóa 1cách trung bình của bản ghi P (y(1),.,., y (ny) | x(1), , x (nx)) trên tất cả các cặp x và y trình

tự trong tập huấn luyện trạng thái cuối cùng hnx của bộ mã hóa RNN thường được coi làmột đại diện C của một tập các chuỗi đầu vào, nó đóng vai trì là đầu vào cho bộ giải mãRNN

Nếu ngữ cảnh C là một véc-tơ, thì bộ giải mã RNN đơn giản chỉ là một RNN ánh

xạ vectơ-vector như được mô tả trong phần 10.2.4 Như chúng ta đã thấy, có ít nhất haicách cho RNN nhận đầu vào là vector Đầu vào có thể được cung cấp là trạng thái ban đầu

Trang 32

của RNN, hoặc đầu vào có thể được kết nối với các đơn vị ẩn tại mỗi bước thời gian Haicách này cũng có thể được kết hợp với nhau

Không có ràng buộc rằng bộ mã hóa phải có cùng kích thước của lớp ẩn như bộgiải mã

Một giới hạn dễ thấy của kiến trúc này là khi ngữ cảnh C tạo ra bởi bộ mã hóaRNN có kích thước quá nhỏ để tóm tắt các chuỗi trình tự Hiện tượng này được quan sátbởi Bahdanau et al (2015) trong bối cảnh dịch máy Họ đề xuất biến C thành một chuỗi

có độ dài thay đổi sẽ tốt hơn là một vector có kích thước cố định Ngoài ra, họ đã giới

thiệu một attention mechanism (cơ chế chú ý) học cách liên kết các phần tử của chuỗi C

với các phần tử của đầu ra Xem phần 12.4.5.1 để biết thêm chi tiết

10.5 Deep Reccurent Networks: Mạng hồi quy sâu

Học sâu được xây dựng dựa trên một giả thuyết rằng một mô hình phân cấp sâu cóthể hiệu quả hơn cấp số nhân lần so với mô hình nông trong việc biểu diễn các hàm

(Bengio, 2009) Rất nhiều kết quả thực nghiệm gần đây ủng hộ giả thuyết này (e.g., Le

Roux and Bengio, 2010; Delalleau and Bengio, 2011; Pascanu et al., 2013b) Những

phát hiện này khiến chúng ta nghĩ đến việc áp dụng lập luận tương tự cho các mạng thầnkinh hồi quy

10.5.1 Computation: Sự tính toán

Sự tính toán trong hầu hết các mạng noron hồi quy có thể được chia thành 3 khốitham số cùng các phép biến đổi liên quan:

1. Từ input đến hidden state (trạng thái ẩn):

2. Từ hidden state trước đến hidden state tiếp theo:

3. Từ hidden state đến output:

Với kiến trúc RNN trong hình 10.3, mỗi khối được liên kết với nhau bằng một matrận trọng số duy nhất Nói cách khác khi mạng được khai triển (unfolded) theo thời gianmỗi phép biến đổi tương ứng với 1 phép biến đổi shallow (Mỗi hình vuông đen tươngứng với một trễ thời gian từ trạng thái thời gian t đến t+1) Phép biến đổi nông (shallowtransformation) có nghĩa là nó được biểu diễn bởi 1 layer duy nhất trong một MLP sâu(Multi-layer Perceptron) – mạng nơron nhiều tầng Thông thường, nó được học bởi cácphép biến đổi affine như các hàm tanh, sigmoid, …

Trang 33

Vậy có thuận lợi gì trong việc đưa chiều sâu vào mỗi phép toán ấy? Căn cứ vào các

kết quả thực nghiệm (Graves et al., 2013; Pascanu et al., 2014a) cho thấy việc này rất

cần thiết Cũng như họ đồng ý với ý tưởng rằng chúng ta cần đủ chiều sâu để thực hiệncác ánh xạ cần thiết

10.5.2 Các kiểu mạng RNNs sâu

Hình 10.13: Một mạng hồi quy có thể trở thành sâu với các cách khác nhau (a) Trạng thái

ẩn hồi quy (Hidden recurrent state) có thể được chia thành các nhóm phân theo cấp bậc (b) Tính toán sâu hơn có thể đưa vào trong đầu vào ẩn (input-hidden), các phần ẩn (hidden-hidden), đầu

ra ẩn (hidden-output) Điều này có thể kéo dài đường đi ngắn nhất liên kết các bước thời gian khác nhau (c)Có thể giảm sự kéo dài đường đi bằng cách đưa vào các kết nối bước nhảy (skip connections)

Graves et al (2013) là người đầu tiên đưa ra lợi ích đặc biệt của việc phân trạng

thái của một RNN thành nhiều layer như hình 10.13 Chúng ta có thể hiểu là ở mức độthấp hơn (layer dưới) trong hình 10.13a biến đổi đầu vào thô thành các biểu diễn thích

Trang 34

hợp hơn đưa vào layer trên (mức độ cao) Tại mỗi hidden layer đều nhận đầu vào từ layerbên dưới và chính nó tại bước thời gian trước.

Tiếp đó, Pascanu et al (2014a) đề xuất có một MLP (có thể sâu) riêng cho mỗi một

trong ba khối liệt kê ở trên, như minh hoạ trong hình 10.13b.Nghĩa là ta sẽ đi qua một vàibước trung gian nữa Do đó, cần phân bổ đủ bộ nhớ cho mỗi khối này Bởi vậy việc thêmchiều sâu có thể khiến việc tối ưu phức tạp hơn Nhưng nhìn chung nó dễ hơn việc tối ưukiến trúc nông Ở hình 10.13b, thời gian biến đổi ngắn nhất của 1 biến từ bước thời gian tthành biến trong bước thời gian t+1 trở nên lâu hơn Ví dụ, nếu một MLP với 1 lớp ẩnđược sử dụng trong chuyển trạng thái đến trạng thái, chúng ta đã gấp đôi chiều dài đường

đi ngắn nhất giữa 2 biến trong hai bước thời gian bất kỳ so với mạng RNN cơ bản tronghình 10.3.Tuy nhiên, như lập luận của Pascanu et al (2014a) sự kéo dài trên có thể được

giảm đi nhờ thêm các kết nối bước nhảy trong đường đi hidden-to-hidden, như minh hoạ

ở hình 10.13c Hình 10.13c kết hợp skip-connection để đi thẳng đến bước thời gian tiếptheo mà không đi qua các bước trung gian nếu thoả mãn điều kiện nào đó

Trang 35

10.6 Recursive Neural Netwoks: Mạng nơron đệ quy

Là khái quát hóa mạng hồi quy thành một kiểu biểu đồ tính toán khác Được cấutrúc như một cây sâu thay vì cấu trúc như một chuỗi trong mạng RNNs Đồ thị tính toánđiển hình được minh hoạ trong hình 10.14 Mạng đệ quy được giới thiệu bởi Pollack

(1990) và mô tả tiềm năng của nó trong học máy bởi Bottou (2011) Mạng đệ quy đã

được áp dụng thành công trong việc xử lý cấu trúc dữ liệu như đầu vào cho mạng thần

kinh (Frasconi et al., 1997,1998), trong xử lý ngôn ngữ tự nhiên (Socher et al., 2011a.c.

2013a) cũng như trong thị giác máy (Socher et al., 2011b).

10.6.1 Đồ thị tính toán của mạng đệ quy

Trang 36

Hình 10.14: Một mạng đệ quy có đồ thị tính toán là dạng khái quát hóa 1 mạng hồi quy từ

định (output o), bằng 1 tập cố định các tham số cố định (ma trận trọng số U, V, W) Hình minh họa trường hợp học máy giám sát trong đó mục tiêu y với điều kiện là được liên kết với toàn bộ

chuỗi.

Một ưu điểm rõ ràng của mạng đệ quy so với mạng hồi quy là với cùng 1 chuỗi có

độ dài τ, độ sâu (được đo bằng số lượng của các phép toán phi tuyến tính thành phần) cóthể giảm từ τ đến O (log τ), giúp giải quyết các phụ thuộc xa Có thể hiểu đơn giản khi kếthợp 2 nút lá thành một nút nhánh dần dần tra giảm độ dài chuỗi đi hệ số 2 lần Nên nó phùhợp trong học các cấu trúc phân cấp và dạng cây Một câu hỏi mở là cách tốt nhất để cấutrúc cây

10.6.2 Cấu trúc cây trong mạng đệ quy

Cấu trúc cây không phụ thuộc vào dữ liệu là cây nhị phân cân bằng Trong một sốmiền ứng dụng, các phương pháp bên ngoài có thể đề xuất cấu trúc cây thích hợp Ví dụ,khi xử lý các câu tự nhiên, cấu trúc cây cho mạng đệ quy có thể cố định là cấu trúc câyphân tích cú pháp câu của người phân tích cú pháp ngôn ngữ tự nhiên

Lý tưởng nhất, người ta muốn người học tự khám phá và tìm ra cấu trúc cây thíchhợp nhất cho bất kỳ đầu vào cụ thể nào

10.6.3 Biến thể của mạng đệ quy

Nhiều ý tưởng về biến thể của mạng đệ quy là có thể Chẳng hạn, Frasconi et al.

(1997) và Frasconi et al (1998) kết hợp dữ liệu với cấu trúc cây và kết hợp đầu vào, mục

tiêu vào các nốt của cùng một cây Tính toán thực hiện cho mỗi nốt không cần phải là tínhtoán nơ ron nhân tạo (biến đổi affine mà tất cả các đầu vào tuân theo một phi tuyến tínhđơn điệu)

Ví dụ, Socher et al (2013a) sử dụng phép toán tensor và kiểu song tuyến mà trước

đây đã dùng được trong viêc mô hình các mối quan hệ giữa các quan niệm khi chúngđược biểu diễn bằng vecto liên tục (các phần tử nhúng)

Trang 37

10.7 Thách thức của phụ thuộc xa

10.7.1 Giới thiệu

Tối ưu hóa mạng nơ ron gặp khó khăn khi đồ thị tính toán trở nên sâu, ví dụ:

 Mạng feedforward có nhiều layer

 RNNs mà liên tục áp dụng cùng một phép toán ở tất cả các bước thời giantrong chuỗi thời gian dài

Thách thức về mặt toán học của việc học phụ thuộc xa trong mạng hồi quy đã đượctrình bày ở phần 8.2.5 Vấn đề cơ bản là gradien lan truyền qua nhiều giai đoạn có xuhướng hoặc biến mất (phần lớn thời gian) hoặc bùng nổ (gây thiệt hại hơn cho việc tốiưu) Ngay cả khi giả định rằng có các tham số sao cho mạng hồi quy là ổn định (có thểlưu đủ bộ nhớ và gradient không bùng nổ) thì khó khăn với phụ thuộc xa phát sinh từ cáctrọng số nhỏ hơn theo cấp số nhân cho các tương tác dài hạn (liên quan đến các phép nhânnhiều Jacobi) so với các tương tác ngắn Trong phần này, chúng ta mô tả vấn đề chi tiếthon Các phần sau sẽ mô tả các cách tiếp cận để khắc phục vấn đề

10.7.2 Các hàm thành phần trong RNNs

Mạng hồi quy liên quan đến các thành phần của cùng một hàm nhiều lần, mỗi lầntrên một bước thời gian Các thành phần ấy có kết quả cực phi tuyến, như minh hoạ tronghình 10.15

Ngày đăng: 04/08/2020, 00:28

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w