Bài giảng Học sâu và ứng dụng

Mạng sinh dữ liệu • GANs là một mô hình sinh chứa hai mạng nơ-ron đối chọi lẫn nhau • Mạng sinh (generator) biến véctơ nhiễu thành một dữ liệu giả để đánh lừa mạng phân loại (discriminator) • Mạng phân loại (discriminator) cố gắng phân biệt đầu là dữ liệu thật, đâu là dữ liệu giả sinh bởi generator Intuition behind GANs • Discriminator cố gắng phân biệt dữ liệu thật và giả • Generator cố gắng cải tiến chất lượng dữ liệu giả để lừa discriminator pix2pix • Training a conditional GAN to map edges→photo. The discriminator, D, learns to classify between fake (synthesized by the generator) and real {edge, photo} tuples. The generator, G, learns to fool the discriminator. Unlike an unconditional GAN, both the generator and discriminator observe the input edge map

pdf645 trang | Chia sẻ: hachi492 | Ngày: 05/01/2022 | Lượt xem: 385 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Bài giảng Học sâu và ứng dụng, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
án thị giác máy 01/02/2021 26 Một số ứng dụng bài toán phát hiện đối tượng • Giao thông thông minh 01/02/2021 27 Một số ứng dụng bài toán phát hiện đối tượng • Phát hiện người 01/02/2021 28 Một số ứng dụng bài toán phát hiện đối tượng • Phát hiện khuôn mặt 01/02/2021 29 Một số ứng dụng bài toán phát hiện đối tượng • Phát hiện văn bản 01/02/2021 30 Một số ứng dụng bài toán phát hiện đối tượng • Robot tự động hái dâu 01/02/2021 31 Giới thiệu một số mạng đề xuất vùng (two-stage object detectors) 01/02/2021 SangDV 32 Tiếp cận quét cửa sổ (sliding windows) 01/02/2021 SangDV 33 cat deer Tiếp cận quét cửa sổ (sliding windows) • Quét cửa sổ từ trái sang phải, từ trên xuống dưới. Tại mỗi vị trí thực hiện bài toán phân loại vùng cửa sổ hiện tại thành nhiều lớp đối tượng cộng thêm lớp nền. 01/02/2021 SangDV 34 CNN nai? mèo? nền? Tiếp cận quét cửa sổ (sliding windows) • Quét cửa sổ từ trái sang phải, từ trên xuống dưới. Tại mỗi vị trí thực hiện bài toán phân loại vùng cửa sổ hiện tại thành nhiều lớp đối tượng cộng thêm lớp nền. 01/02/2021 SangDV 35 CNN nai? mèo? nền? Tiếp cận quét cửa sổ (sliding windows) • Quét cửa sổ từ trái sang phải, từ trên xuống dưới. Tại mỗi vị trí thực hiện bài toán phân loại vùng cửa sổ hiện tại thành nhiều lớp đối tượng cộng thêm lớp nền. 01/02/2021 SangDV 36 CNN nai? mèo? nền? Tiếp cận quét cửa sổ (sliding windows) • Quét cửa sổ từ trái sang phải, từ trên xuống dưới. Tại mỗi vị trí thực hiện bài toán phân loại vùng cửa sổ hiện tại thành nhiều lớp đối tượng cộng thêm lớp nền. 01/02/2021 SangDV 37 CNN nai? mèo? nền? Tiếp cận dựa trên đề xuất vùng • Thay vì quét tất cả vị trí (số lượng rất lớn!), chỉ phân tích để đề xuất ra một số vùng (box) có khả năng cao chứa đối tượng • Các phương pháp này có hai giai đoạn (two-stage): 1) đề xuất vùng 2) xử lý từng vùng để phân loại và hiệu chỉnh tọa độ box 01/02/2021 SangDV 38 SS: Selective Search • Segmentation As Selective Search for Object Recognition. van de Sande et al. ICCV 2011 01/02/2021 39 R-CNN (Region-based ConvNet) • Đề xuất một số vùng tiềm năng bằng thuật toán thô khác, chẳng hạn selective search • Dùng mạng CNN trích xuất đặc trưng từng vùng rồi phân loại bằng SVM 01/02/2021 SangDV 40 Fast-RCNN • Đẩy tất cả các vùng (khoảng 2000) qua mạng trích xuất CNN cùng một lúc • Crop thông tin ở lớp đầu ra của CNN thay vì crop vùng trên ảnh gốc như R-CNN • Đẩy qua nhánh phân loại và nhánh hiệu chỉnh tọa độ box 01/02/2021 SangDV 41 Faster-RCNN • Dùng một mạng riêng để đề xuất vùng thay cho selective search • Còn gọi là phương pháp phát hiện đối tượng hai giai đoạn (two-stage object detector) 01/02/2021 SangDV 42 Giới thiệu một số mạng không đề xuất vùng (one-stage object detectors) 01/02/2021 SangDV 43 Đặc điểm các mạng không đề xuất vùng • Còn gọi là mạng một giai đoạn (one-stage) • Các mạng này thường đề xuất một lưới box dày đặc trên ảnh ban đầu, thường có bước nhảy đều (stride) • Từng box này sẽ được phân loại và hiệu chỉnh tọa độ (nếu box chứa đối tượng) bằng mạng CNN • Các mạng một giai đoạn thường nhanh hơn và đơn giản hơn các mạng hai giai đoạn, nhưng độ chính xác có thể không cao bằng. 01/02/2021 SangDV 44 YOLO- You Only Look Once 01/02/2021 SangDV 45 Redmon et al. CVPR 2016. YOLO- You Only Look Once 01/02/2021 SangDV 46 YOLO- You Only Look Once 01/02/2021 SangDV 47 YOLO- You Only Look Once 01/02/2021 SangDV 48 YOLO- You Only Look Once • Non-maximal suppression: gom các box lại để đưa ra kết quả cuối cùng 01/02/2021 SangDV 49 YOLO v2 01/02/2021 SangDV 50 YOLO v2 • Mỗi ô có 5 anchor box. Với mỗi anchor mạng sẽ đưa ra các thông tin: • offset của box: 4 số thực trong khoảng [0, 1] • Độ tin tưởng box đó có khả năng chứa đối tượng (objectness score). • Phân bố xác suất của đối tượng trong box đó ứng với các lớp đối tượng khác nhau (class scores). • Tổng cộng mỗi ô có số đầu ra là: 5 * (4 + 1 + 20) = 125 số thực 01/02/2021 SangDV 51 5 anchor box YOLO v2 01/02/2021 SangDV 52 YOLO v1 Image 448 x 448 x 3 CNN 7 x 7 x 1024 4096 2 FC Linear reg 7 x 7 x 30 YOLO v2 Image 448 x 448 x 3 CNN 7 x 7 x 1024 7 x 7 x 1024 2 x Conv3, 1024 7 x 7 x 125 1 x Conv1, 125 YOLO v2 • Xác định kích thước mặc định của các anchor bằng cách áp dụng k-means trên tập box các đối tượng đã được đánh nhãn trong tập huấn luyện 01/02/2021 SangDV 53 YOLO v2 • Nhược điểm của YOLO v1 và v2: 01/02/2021 SangDV 54 Chỉ sử dụng feature map cuối cùng, khó phát hiện đối tượng kích thước nhỏ Input image Layer 1 Layer 2 Layer 3 Layer 4 Layer 5 Layer 6 C1 C2 C3 C4 C5 C6 UpsampleConv 1x1Conv 1x1 U6P5 P4 Upsample + T5 U4+ T4 C6 T5 T4 2 x (Conv 3x3, 1024) 1 x (Conv 1x1, 75) 3 anchor boxes mỗi scale YOLO v3 01/02/2021 SangDV 55 SSD: Single Shot Detector • Tương tự YOLO nhưng lưới box dày đặc hơn, có nhiều lưới với các kích thước box khác nhau • Kiến trúc mạng backbone khác với YOLO • Data augmentation + Hard negative mining 01/02/2021 SangDV 56 SSD: Single Shot Detector • Mạng backbone: VGG-16 • Thêm các lớp tích chập phụ phía sau các lớp của mạng backbone • Phát hiện đối tượng ở nhiều mức khác nhau trong mạng (Multi-scale) 01/02/2021 SangDV 57 Liu et al. ECCV 2016. SSD: Single Shot Detector 01/02/2021 SangDV 58 @5x5x256 Feature map 5x5x 21classes 5x5x 4 box offset 3x3 conv 3x3 conv softmax Dự đoán 𝑝(𝑐𝑙𝑎𝑠𝑠) (𝑥, 𝑦,𝑤, ℎ) Hàm mục tiêu 𝐿 𝑥, 𝑐, , 𝑙, 𝑔=1𝑁 (𝐿!"#$ 𝑥, 𝑐+𝛼𝐿%"!(𝑥, 𝑙, 𝑔)) Feature map đầu vào 𝑝(𝑐𝑙𝑎𝑠𝑠!)𝑝(𝑐𝑙𝑎𝑠𝑠") 𝑝(𝑐𝑙𝑎𝑠𝑠#) 𝑥𝑦𝑤ℎ 01/02/2021 SangDV 59 one-stage object detector two-stage object detector (proposal-driven mechanism) R-CNN Fast R-CNN Faster R- CNN Feature Pyramid Network (FPN) (dense sampling of object locations, scales, and aspect ratios) YOLO SSD MDCN DSSD YOLO-v2 SqueezeNet Faster and simpler More accurate Mask R- CNN One-stage vs two-stage 01/02/2021 SangDV 60 YOLO-v3 CornetNet RetinaNet CenterNet EfficientDet RedefineDet 01/02/2021 SangDV 61 01/02/2021 SangDV 62 Thank you for your attentions! Chương 6: Một số ứng dụng học sâu trong thị giác máy (Phần 2) 01/02/2021 SangDV 2 Nội dung • Giới thiệu bài toán phân đoạn ảnh • Lớp tăng độ phân giải upsampling • Hàm mục tiêu • Một số mạng phân đoạn ảnh tiêu biểu 01/02/2021 3 Giới thiệu bài toán phân đoạn ảnh 01/02/2021 SangDV 4 Các bài toán thị giác máy 01/02/2021 5 Phân vùng • Phân lớp từng điểm ảnh trong ảnh • Không phân biệt các đối tượng cùng lớp trong ảnh 01/02/2021 6 Một số ứng dụng phân đoạn ảnh • Phân đoạn ảnh vệ tinh và hàng không 01/02/2021 7 Một số ứng dụng phân đoạn ảnh • Xe tự hành 01/02/2021 8 Một số ứng dụng phân đoạn ảnh • Y tế 01/02/2021 9 Một số ứng dụng phân đoạn ảnh • OCR 01/02/2021 10 Trượt cửa sổ 01/02/2021 SangDV 11 Trượt cửa sổ 01/02/2021 SangDV 12 Tích chập hoàn toàn (Fully Convolutional) • Thiết kế mạng CNN gồm nhiều lớp tích chập để phân lớp đồng thời tất cả các điểm ảnh. 01/02/2021 SangDV 13 Tích chập hoàn toàn (Fully Convolutional) • Thiết kế mạng CNN gồm nhiều lớp tích chập để phân lớp đồng thời tất cả các điểm ảnh. • Vấn đề: Tích chập với các lớp đầu vào có độ phân giải cao đòi hỏi nhiều chi phí tính toán 01/02/2021 14 Tích chập hoàn toàn (Fully Convolutional) • Thiết kế mạng CNN với các lớp giảm độ phân giải (downsampling) và tăng độ phân giải (upsampling) 01/02/2021 15 Tích chập hoàn toàn (Fully Convolutional) • Thiết kế mạng CNN với các lớp giảm độ phân giải (downsampling) và tăng độ phân giải (upsampling) • Giảm độ phân giải: max pooling hay strided conv • Tăng độ phân giải? 01/02/2021 16 Lớp tăng độ phân giải upsampling 01/02/2021 SangDV 17 Lớp Unpooling • Các lớp này không có tham số 01/02/2021 SangDV 18 Lớp Max Unpooling 01/02/2021 19 Tích chập chuyển vị • Là phép tăng độ phân giải (upsampling) có chứa các tham số có thể huấn luyện được • Xem lại ví dụ tích chập conv 3x3, bước nhảy stride 1 và thêm viền padding 1 01/02/2021 20 Tích chập chuyển vị • Là phép tăng độ phân giải (upsampling) có chứa các tham số có thể huấn luyện được • Xem lại ví dụ tích chập conv 3x3, bước nhảy stride 1 và thêm viền padding 1 01/02/2021 21 Tích chập chuyển vị • Là phép tăng độ phân giải (upsampling) có chứa các tham số có thể huấn luyện được • Xem lại ví dụ tích chập conv 3x3, bước nhảy stride 1 và thêm viền padding 1 01/02/2021 22 Tích chập chuyển vị • Là phép tăng độ phân giải (upsampling) có chứa các tham số có thể huấn luyện được • Xem lại ví dụ tích chập conv 3x3, bước nhảy stride 2 và thêm viền padding 1 01/02/2021 23 Tích chập chuyển vị • Là phép tăng độ phân giải (upsampling) có chứa các tham số có thể huấn luyện được • Xem lại ví dụ tích chập conv 3x3, bước nhảy stride 2 và thêm viền padding 1 01/02/2021 24 Tích chập chuyển vị • Là phép tăng độ phân giải (upsampling) có chứa các tham số có thể huấn luyện được • Xem lại ví dụ tích chập conv 3x3, bước nhảy stride 2 và thêm viền padding 1 01/02/2021 25 Tích chập chuyển vị • Là phép tăng độ phân giải (upsampling) có chứa các tham số có thể huấn luyện được • Tích chập chuyển vị conv 3x3, bước nhảy stride 2 và thêm viền padding 1 01/02/2021 26 Tích chập chuyển vị • Là phép tăng độ phân giải (upsampling) có chứa các tham số có thể huấn luyện được • Tích chập chuyển vị conv 3x3, bước nhảy stride 2 và thêm viền padding 1 01/02/2021 27 Tích chập chuyển vị • Là phép tăng độ phân giải (upsampling) có chứa các tham số có thể huấn luyện được • Tích chập chuyển vị conv 3x3, bước nhảy stride 2 và thêm viền padding 1 01/02/2021 28 Tích chập chuyển vị • Tên gọi khác: - Deconvolution (không nên, dễ gây hiểu nhầm) - Upconvolution - Fractionally strided convolution - Backward strided convolution 01/02/2021 29 Ví dụ tích chập chuyển vị trong 1D 01/02/2021 30 Tích chập hoàn toàn (Fully Convolutional) • Thiết kế mạng CNN với các lớp giảm độ phân giải (downsampling) và tăng độ phân giải (upsampling) • Giảm độ phân giải: max pooling hay strided conv • Tăng độ phân giải: unpooling hoặc transpose conv 01/02/2021 31 Hàm mục tiêu cho bài toán phân đoạn ảnh 01/02/2021 32 Hàm mục tiêu 01/02/2021 33 Hàm mục tiêu dựa trên phân phối • Cross Entropy (CE): • Weighted CE: mỗi lớp có trọng số khác nhau • Focal loss: giải quyết vấn đề mất cân bằng lớn giữa lớp nền và lớp đối tượng quan tâm. Giá trị hàm mục tiêu đối với những mẫu dễ phân loại được giảm xuống thấp để mạng tập trung hơn vào mẫu khó. 01/02/2021 34 Hàm mục tiêu dựa trên vùng • Dice coefficient và IoU: • Dice loss: • Tversky loss: 01/02/2021 SangDV 35 Hàm mục tiêu kết hợp • Dice loss + CE: • Dice loss + Focal loss • 01/02/2021 36 Hàm mục tiêu boundary loss 01/02/2021 SangDV 37 Một số mạng phân đoạn ảnh tiêu biểu 01/02/2021 SangDV 38 FCN với 2 kết nối tắt 01/02/2021 39 FCN với 2 kết nối tắt • Minh họa kết quả FCN với các mức độ phân giải khác nhau 01/02/2021 40 U-Net • Được sử dụng rộng rãi trong y tế 01/02/2021 41 U-Net++ 01/02/2021 SangDV 42 Stacked UNets và CUNets • Stacked UNets: ghép nhiều UNet nối tiếp nhau • CUNets: cũng ghép nhiều UNet nối tiếp nhau nhưng có thêm các kết nối tắt giữa các UNet với nhau 01/02/2021 SangDV 43 Tài liệu tham khảo 1. Khóa cs231n của Stanford: 2. Hàm mục tiêu cho bài toán phân đoạn ảnh: https://lars76.github.io/neural-networks/object- detection/losses-for-segmentation/ 01/02/2021 45 Thank you for your attentions! 1 Bài 9: Mạng hồi quy 2 Nội dung • Bài toán dự đoán chuỗi • Mạng hồi quy thông thường • Lan truyền ngược theo thời gian (BPTT) • Mạng LSTM và GRU • Một số áp dụng 3 Bài toán dự đoán chuỗi 4 Bài toán dự đoán chuỗi • Trước giờ, ta chỉ tập trung vào vấn đề dự đoán với đầu vào và đầu ra kích thước cố định • Chuyện gì sẽ xảy ra nếu đầu vào và đầu ra là một chuỗi có kích thước thay đổi? 5 Phân lớp văn bản • Phân loại sắc thái (sentiment): phân loại bình luận một nhà hàng hay một bộ phim hay một sản phẩm là tích cực hay tiêu cực • “The food was really good” - “Thức ăn rất ngon” • “Máy hút bụi bị hỏng trong vòng hai tuần” • “Bộ phim có những phần buồn tẻ, nhưng tổng thể là rất đáng xem” • Cần dùng đặc trưng gì và mô hình phân loại gì để giải quyết bài toán này? 6 Phân loại sắc thái • “The food was really good” 7 “The” “food” h1 h2 “good” h4 h5 Classifier “was” h3 “really” Trạng thái ẩn “Memory” “Context” Recurrent Neural Network (RNN) Mô hình ngôn ngữ 8 Mô hình ngôn ngữ • Character RNN 9 Image source Character RNN 10 Trạng thái ẩn hi Mã hóa One-hot xi Kí tự đầu ra yi Ký tự đầu vào Lớp đầu ra (biến đổi tuyến tính + softmax) 𝑝 𝑦!, 𝑦", , 𝑦#=&$%!# 𝑝(𝑦$|𝑦!, , 𝑦$&!)≈&$%!# 𝑃'(𝑦$|ℎ$) Sinh mô tả bức ảnh • Cho một bức ảnh, cần sinh ra một câu mô tả nội dung bức ảnh 11 “The dog is hiding” Sinh mô tả bức ảnh 12 CNN h1 h2h0 “The” “dog” h1 h2 Bộ phân loại Bộ phân loại “STOP” h5 Bộ phân loại h4 “The” “hiding” h3 “is” h3 Bộ phân loại “dog” “hiding” h4 Bộ phân loại “is”“START” Dịch máy 13 https://translate.google.com/ Dịch máy • Nhiều đầu vào – nhiều đầu ra (hay còn gọi là sequence to sequence) 14 “Correspondances” “La” “nature” “Matches” “Nature” “is” Tổng hợp các loại dự đoán Sinh mô tả ảnh 15 Phân loại sắc thái câu Dịch máy Phân loạivideo mức frame Phân lớp ảnh Mạng hồi quy thông thường 16 Mạng hồi quy Recurrent Neural Network (RNN) 17 Lớp ẩn Bộ phân loại Dữ liệu vào tại thời điểm t Trạng thái ẩn tại thời điểm t Đầu ra tại thời điểm t xt ht yt Hồi quy:ℎ! = 𝑓"(𝑥! , ℎ!#$) new state input at time t old state function of W Duỗi (unroll) RNN 18 Lớp ẩn Bộ phân loại t = 1 Lớp ẩn Bộ phân loại Lớp ẩn Bộ phân loại t = 2 t = 3 h0 y1 y2 y3 h1 h2 h3 x1 x2 x3 h1 h2 h3 RNN thông thường 19 ht ht-1 W xt ℎ- = 𝑓.(𝑥- , ℎ-/0)= tanh𝑊 𝑥-ℎ-/0 J. Elman, Finding structure in time, Cognitive science 14(2), pp. 179–211, 1990 RNN thông thường 20 ht ht-1 W xt ℎ- = 𝑓.(𝑥- , ℎ-/0)= tanh𝑊 𝑥-ℎ-/0 tanh 𝑎 = 𝑒! − 𝑒"!𝑒! + 𝑒"!= 2𝜎 2𝑎 − 1tanh 𝑎𝜎 𝑎 Image source RNN thông thường 21 ht ht-1 W xt ℎ- = 𝑓.(𝑥- , ℎ-/0)= tanh𝑊 𝑥-ℎ-/0 𝑑𝑑𝑎 tanh 𝑎 = 1 − tanh)(𝑎) Image source RNN thông thường 22 ht ht-1 W xt ℎ- = 𝑓.(𝑥- , ℎ-/0)= tanh𝑊 𝑥-ℎ-/0= tanh 𝑊1𝑥- +𝑊2ℎ-/0 ℎ!"# 𝑥!𝑊! n-dim. m-dim. 𝑊" n m m RNN Forward Pass 23 h1 e1 y1 h2 e2 y2 h3 e3 y3 Dùng chung trọng số (shared weights)h0 x1 h1 x2 h2 x3 ℎ# = tanh𝑊 𝑥#ℎ#$% 𝑦# = softmax(𝑊&ℎ#)𝑒# = −log(𝑦#(𝐺𝑇#)) Lan truyền ngược theo thời gian (BPTT) 24 Lan truyền ngược theo thời gian (BPTT) • Đây là phương pháp thông dụng nhất để huấn luyện RNNs • Mạng sau khi duỗi được xem như một mạng nơ-ron feed-forward lớn nhận dữ liệu đầu vào là cả chuỗi dữ liệu • Gradient đối với một trọng số mạng RNN được tính tại mỗi bản sao của nó trong mạng duỗi (unfolded network), sau đó được cộng lại (hoặc tính trung bình) và được sử dụng để cập nhật trọng số mạng. 25 Tính toán tiến (forward pass) mạng RNN duỗi 26 h1 e1 y1 h2 e2 y2 h3 e3 y3 h0 x1 h1 x2 h2 x3 ℎ# = tanh𝑊 𝑥#ℎ#$% 𝑦# = softmax(𝑊&ℎ#)𝑒# = −log(𝑦#(𝐺𝑇#)) Tính toán tiến (forward pass) mạng RNN duỗi 27 h1 e1 y1 h2 e2 y2 h3 e3 y3 h0 x1 h1 x2 h2 x3 ℎ# = tanh𝑊 𝑥#ℎ#$% 𝑦# = softmax(𝑊&ℎ#)𝑒# = −log(𝑦#(𝐺𝑇#)) Lan truyền ngược mạng RNN 29 ht ht-1 W xt ℎ( = tanh 𝑊)𝑥( +𝑊*ℎ(&!𝜕𝑒𝜕𝑊* = 𝜕𝑒𝜕ℎ(⨀ 1 − tanh" 𝑊)𝑥( +𝑊*ℎ(&! ℎ(&!+𝜕𝑒𝜕𝑊) = 𝜕𝑒𝜕ℎ(⨀ 1 − tanh" 𝑊)𝑥( +𝑊*ℎ(&! 𝑥(+𝜕𝑒𝜕ℎ(&! = 𝑊*+ 1 − tanh" 𝑊)𝑥( +𝑊*ℎ(&! ⨀ 𝜕𝑒𝜕ℎ( 𝜕𝑒𝜕ℎ#𝜕𝑒𝜕𝑊 𝜕𝑒𝜕ℎ#$% Lỗi từ yt Lỗi từ dự đoán ở các bước tương lai Lan truyền ngươc tới các bước sớm hơn Lan truyền ngược mạng RNN 30 h1 e1 y1 h2 e2 y2 h3 e3 y3 h0 x1 h1 x2 h2 x3 Xét =>#=?$ với 𝑘 ≪ 𝑛 𝜕𝑒𝜕ℎ#$% = 𝑊!' 1 − tanh( 𝑊"𝑥# +𝑊!ℎ#$% ⨀ 𝜕𝑒𝜕ℎ# Giá trị hàm tanh lớn sẽ tương ứng với gradient nhỏ (vùng bão hòa) Lan truyền ngược mạng RNN 31 h1 e1 y1 h2 e2 y2 h3 e3 y3 h0 x1 h1 x2 h2 x3 Xét =>#=?$ với 𝑘 ≪ 𝑛 𝜕𝑒𝜕ℎ#$% = 𝑊!' 1 − tanh( 𝑊"𝑥# +𝑊!ℎ#$% ⨀ 𝜕𝑒𝜕ℎ# Gradient sẽ triệt tiêu nếu giá trị riêng lớn nhất của𝑊! nhỏ hơn 1 Chi tiết xem tại khóa cs224n 32 Chi tiết xem tại khóa cs224n 33 Mạng LSTM và GRU 34 Long Short-Term Memory (LSTM) • Sử dụng thêm “cell” có bộ nhớ để tránh hiện tượng triệt tiêu gradient 35 S. Hochreiter and J. Schmidhuber, Long short-term memory, Neural Computation 9 (8), pp. 1735–1780, 1997 xt ht-1 ct-1 ht ct LSTM Cell 36 Cell ht xt ht-1 ct Wg 𝑐! = 𝑐!"# + 𝑔! ℎ! = tanh 𝑐!𝑔! = tanh𝑊$ 𝑥!ℎ!"# LSTM Cell 37 Cell ht xt ht-1 ct Wg 𝑔! = tanh𝑊$ 𝑥!ℎ!"# LSTM Cell 38 itInput Gate ht xt ht-1 ct xt ht-1 Wi 𝑖! = 𝜎 𝑊% 𝑥!ℎ!"# + 𝑏% . 𝑐! = 𝑐!"# + 𝑖!⨀𝑔! CellWg 𝑔! = tanh𝑊$ 𝑥!ℎ!"# LSTM Cell 39 it otInput Gate Output Gate ht xt ht-1 xt ht-1 ct xt ht-1 Wi Wo 𝑖! = 𝜎 𝑊% 𝑥!ℎ!"# + 𝑏% 𝑜! = 𝜎 𝑊& 𝑥!ℎ!"# + 𝑏& ℎ! = 𝑜!⨀ tanh 𝑐!. . 𝑐! = 𝑐!"# + 𝑖!⨀𝑔! CellWg 𝑔! = tanh𝑊$ 𝑥!ℎ!"# LSTM Cell 40 it ot ft Input Gate Output Gate Forget Gate xt ht-1 Cell ct xt ht-1 xt ht-1 xt ht-1 Wi Wf . . 𝑖! = 𝜎 𝑊% 𝑥!ℎ!"# + 𝑏% 𝑜! = 𝜎 𝑊& 𝑥!ℎ!"# + 𝑏& 𝑐! = 𝑓!⨀𝑐!"# + 𝑖!⨀𝑔! 𝑓! = 𝜎 𝑊' 𝑥!ℎ!"# + 𝑏' ℎ! = 𝑜!⨀ tanh 𝑐!htWg 𝑔! = tanh𝑊$ 𝑥!ℎ!"# Wo LSTM Forward Pass Summary • 𝑔C𝑖C𝑓C𝑜C = tanh𝜎𝜎𝜎 𝑊D𝑊E𝑊F𝑊G 𝑥CℎC"H • 𝑐C = 𝑓C⨀𝑐C"H + 𝑖C⨀𝑔C • ℎC = 𝑜C⨀ tanh𝑐C 41 Figure source Lan truyền ngược LSTM • Luồng gradient từ 𝑐C tới 𝑐C"H chỉ lan truyền ngược qua phép cộng và nhân từng phần tử, không đi qua phép nhân ma trận và hàm tanh 42 Figure source For complete details: Illustrated LSTM Forward and Backward Pass Gated Recurrent Unit (GRU) • Không dùng “cell state” riêng biệt, ghép chung với hidden state • Kết hợp cổng “forget” và “output” thành cổng “update” 43 zt rt Update Gate Reset Gate ht xt ht-1 xt ht-1 ht-1 W Wz Wf xt h’t . Gated Recurrent Unit (GRU) 44 Wxt ht ℎ# = tanh𝑊 𝑥#ℎ#$% ht-1 Gated Recurrent Unit (GRU) 45 rt Reset Gate xt ht-1 W Wf xt h’t 𝑟# = 𝜎 𝑊) 𝑥#ℎ#$% + 𝑏# ℎ#* = tanh𝑊 𝑥#𝑟# ⨀ ℎ#$% ht-1 . Gated Recurrent Unit (GRU) 46 zt rt Update Gate Reset Gate xt ht-1 xt ht-1 W Wf xt h’t 𝑟# = 𝜎 𝑊) 𝑥#ℎ#$% + 𝑏# ℎ#* = tanh𝑊 𝑥#𝑟# ⨀ ℎ#$% 𝑧# = 𝜎 𝑊+ 𝑥#ℎ#$% + 𝑏+ Wz ht-1 . Gated Recurrent Unit (GRU) 47 zt rt Update Gate Reset Gate ht xt ht-1 xt ht-1 W Wz Wf xt h’t 𝑟# = 𝜎 𝑊) 𝑥#ℎ#$% + 𝑏# ℎ#* = tanh𝑊 𝑥#𝑟# ⨀ ℎ#$% 𝑧# = 𝜎 𝑊+ 𝑥#ℎ#$% + 𝑏+ ℎ# = 1 − 𝑧# ⨀ ℎ#$%+ 𝑧#⨀ ℎ#* ht-1 . RNNs nhiều lớp • Có thể thiết kế RNNs với nhiều lớp ẩn 48 x1 x2 x3 x4 x5 x6 y1 y2 y3 y4 y5 y6 RNNs hai chiều • RNNs có thể xử lý chuỗi đầu vào theo chiều ngược vào chiều xuôi 49 x1 x2 x3 x4 x5 x6 y1 y2 y3 y4 y5 y6 • Phổ biến trong nhận dạng âm thanh Một số ví dụ ứng dụng 50 RNN The RNN food h1 h2 RNN good hn-1 hn Linear Classifier Phân loại chuỗi 51 IgnoreIgnore h1 h2 RNN The RNN food h1 h2 RNN good hn-1 h = Sum() h1 h2 hn Linear Classifier Phân loại chuỗi 52 Bi-RNN The Bi-RNN food h1 h2 Bi-RNN good hn-1 h = Sum() h1 h2 hn Linear Classifier Phân loại chuỗi 53 Character RNN 54 100th iteration 300th iteration 700th iteration 2000th iteration Image source Image Caption Generation 55 CNN h1 h2h0 “The” “dog” h1 h2 Classifier Classifier “STOP” h5 Classifier h4 “The” “hiding” h3 “is” h3 Classifier “dog” “hiding” h4 Classifier “is”“START” Sinh mô tả ảnh 56 Dịch máy 57 Sequence-to-sequence Encoder-decoder I. Sutskever, O. Vinyals, Q. Le, Sequence to Sequence Learning with Neural Networks, NIPS 2014 K. Cho, B. Merrienboer, C. Gulcehre, F. Bougares, H. Schwenk, and Y. Bengio, Learning phrase representations using RNN encoder-decoder for statistical machine translation, ACL 2014 Tài liệu tham khảo 1. Khóa cs231n của Stanford: 2. Khóa cs244n của Stanford: 2020-lecture06-rnnlm.pdf 2020-lecture07-fancy-rnn.pdf 3. Training RNNs: 58 Chân thành cảm ơn!!! 59 1 Bài 10: Một số ứng dụng học sâu trong xử lý ngôn ngữ tự nhiên (Phần 1) 2 Nội dung • Tổng quan về xử lý ngôn ngữ tự nhiên • Biểu diễn từ và văn bản • Thư viện Xử lý NNTN và một số mô hình huấn luyện sẵn 3 Tổng quan về xử lý ngôn ngữ tự nhiên 4 Thế nào là Xử lý NNTN? • Xử lý NNTN là một nhánh của trí tuệ nhân tạo liên quan đến sự tương tác giữa máy tính và ngôn ngữ của con người. • Mục đích của xử lý NNTN là giúp máy tính có khả năng đọc, hiểu và rút ra ý nghĩa từ ngôn ngữ của con người. 5 Các mức phân tích • Morphology (hình thái học): cách từ được xây dựng, các tiền tố và hậu tố của từ • Syntax (cú pháp): mối liên hệ về cấu trúc ngữ pháp giữa các từ và ngữ • Semantics (ngữ nghĩa): nghĩa của từ, cụm từ, và cách diễn đạt • Discourse (diễn ngôn): quan hệ giữa các ý hoặc các câu • Pragmatic (thực chứng): mục đích phát ngôn, cách sử dụng ngôn ngữ trong giao tiếp • World Knowledge (tri thức thế giới): các tri thức về thế giới, các tri thức ngầm 6 Một số ứng dụng chính của NLP • Nhận dạng giọng nói (speech recognition) • Khai phá văn bản • Phân cụm văn bản • Phân lớp văn bản • Tóm tắt văn bản • Mô hình hóa chủ đề (topic modelling) • Hỏi đáp (question answering) • Gia sư ngôn ngữ (Language tutoring) • Chỉnh sửa ngữ pháp/đánh vần • Dịch máy (machine translation) 7 Dịch máy • Google translate 8 Các hệ thống hội thoại • Chatbot, trợ lý ảo, hỏi đáp tự động 9 Apple’s siri system Google search Trích rút thông tin (Information extraction) 10 Google Knowledge Graph Wiki Info Box Token hóa (Tokenization) • Chia văn bản thành các từ và các câu 11 There was an earthquake near D.C. I’ve even felt it in Philadelphia, New York, etc. There + was + an + earthquake + near + D.C. I + ve + even + felt + it + in + Philadelphia, + New + York, + etc. Part-of-Speech tagging • Xác định từ loại của từng từ trong văn bản 12 A + dog + is + chasing + a + boy + on + the + playground Det Noun Aux Verb Det Noun Prep Det Noun A + dog + is + chasing + a + boy + on + the + playground Nhận dạng thực thể định danh (Named entity recognition) • Tìm kiếm và phân loại các thành phần trong văn bản vào những loại xác định trước như là tên người, tổ chức, địa điểm, thời gian, số lượng, giá trị tiền tệ 13 Its initial Board of Visitors included U.S. Presidents Thomas Jefferson, James Madison, and James Monroe. Its initial Board of Visitors included U.S. Presidents Thomas Jefferson, James Madison, and James Monroe. Organization, Location, Person Syntactic parsing • Phân tích ngữ pháp của một câu cho trước theo các quy tắc ngữ pháp 14 A + dog + is + chasing + a + boy + on + the + playground Det Noun Aux Verb Det Noun Prep Det Noun Noun Phrase Complex Verb Noun Phrase Noun Phrase Prep PhraseVerb Phrase Verb Phrase Sentence Trích rút quan hệ (Relation extraction) • Xác định quan hệ giữa các thực thể • Phân tích ngữ nghĩa ở mức nông 15 Its initial Board of Visitors included U.S. Presidents Thomas Jefferson, James Madison, and James Monroe. 1. Thomas Jefferson Is_Member_Of Board of Visitors 2. Thomas Jefferson Is_President_Of U.S. Suy diễn logic • Phân tích ngữ nghĩa mức sâu 16 Its initial Board of Visitors included U.S. Presidents Thomas Jefferson, James Madison, and James Monroe.∃𝑥 (Is_Person(𝑥) & Is_President_Of(𝑥,’U.S.’) & Is_Member_Of(𝑥,’Board of Visitors’)) Biểu diễn từ và văn bản 17 Biểu diễn từ như thế nào? • WordNet: một từ điển chứa danh sách các từ đồng nghĩa (synonym sets) và bao hàm nghĩa (hypernyms) 18 Nhược điểm WordNet • Thiếu sắc thái • Ví dụ “hy sinh” đồng nghĩa với “chết” • Thiếu nghĩa các từ mới • Các từ mới về công nghệ, ngôn ngữ teen • Phụ thuộc suy nghĩ chủ quan của người làm • Cần sức lao động lớn để tạo ra và chỉnh sửa • Không thể tính độ tương đồng giữa hai từ 19 Biểu diễn one-hot • Biểu diễn từ như các ký hiệu rời rạc • Độ dài vector bằng số từ trong từ điển 20 Vấn đề của biểu diễn one-hot • Người dùng tìm kiếm “Hanoi hotel”, ta cũng sẽ muốn hiển thị các kết quả của “Hanoi motel” • Nhưng hai từ này biểu diễn trực giao, độ tương đồng bằng 0! • Giải pháp: • Dựa vào WordNet? nhưng WordNet không hoàn thiện và nhiều nhược điểm • Học để mã hóa sự tương đồng trong các biễn diễn véctơ 21 Vấn đề của biểu diễn one-hot • Biễu diễn quá dài • Với ngôn ngữ hàng ngày khoảng 20K từ, dịch máy 50K từ, khoa học vật liệu 500K từ, google web crawl 13M từ 22 Biểu diễn từ bằng ngữ cảnh của nó • Ngữ nghĩa phân tán: Ý nghĩa một từ được quyết định bởi các từ thường xuất hiện gần nó “You shall know a word by the company it keeps” (J. R. Firth 1957: 11) • Khi một từ xuất hiện trong văn bản, ngữ cảnh của nó là tập hợp các từ xuất hiện bên cạnh (trong một cửa sổ có kích thước cố định) • Dùng nhiều ngữ cảnh khác nhau của một từ để xây dựng ý nghĩa của nó 23 Word vector • Mỗi từ được biểu diễn bởi một véc-tơ dày (dense) sao cho véc-tơ này tương tự với các véc-tơ biểu diễn các từ khác mà thường xuất hiện trong các ngữ cảnh tương tự • Word vectors còn được gọi là word embeddings hay word representations 24 Word vector 25 Word2vec • Word2vec (Mikolov et al. 2013) là phương pháp để học biểu diễn từ • Ý tưởng: • Sử dụng một tập lớn nhiều văn bản (corpus) • Mỗi từ trong tập từ vựng cố định được biểu diễn bằng một véctơ • Duyệt từng vị trí t trong văn bản, mỗi vị trí chứa từ trung tâm c và các từ ngữ cảnh bên ngoài o • Sử dụng độ tương đồng của các véc-tơ biểu diễn c và o để tính xác suất xuất hiện o khi có c (hoặc ngược lại) • Tinh chỉnh word véctơ để cực đại hóa xác suất này 26 Word2vec • Ví dụ tính trong cửa sổ kích thước 2 27 Word2vec • Ví dụ tính trong cửa sổ kích thước 2 28 Word2vec: Hàm mục tiêu • Likelihood: • Hàm mục tiêu: 29 Word2vec • Làm sao để tính • Ta sẽ dùng hai véctơ cho mỗi từ w: • vw khi w là từ trung tâm • uw khi w là từ ngữ cảnh ngoài • Khi đó với từ trung tâm c và từ ngữ cảnh ngoài o ta có: 30 Word2vec • Tham số mô hình: • Huấn luyện bằng SGD: 31 Word2vec: The skip-gram model • Kích thước từ điển: V • Lớp input: mã hóa one-hot của từ trung tâm. • Hàng thứ k của ma trận WVxN là véctơ trung tâm biểu diễn từ thứ k. • Cột thứ k của ma trận W’NxV là véctơ ngữ cảnh của từ thứ k trong V. Chú ý mỗi từ được biểu diễn bới 2 véctơ, cả hai đều khởi tạo ngẫu nhiên. 32 Word2vec: The skip-gram model 33 Word2vec: The skip-gram model • Vấn đề: Mẫu số tính toán rất lâu! • Sử dụng negative sampling: • p(w)=U(w)3/4/Z, trong đố U(w) là phân bố 1-gram. 34 1Một số kết quả word2vec 35 1Một số kết quả word2vec 36 1Một số kết quả word2vec 37 Word2vec: Continuous BOW • Dùng các từ ngữ cảnh để đoán từ trung tâm 38 Window based co-occurrence matrix • Kích thước cửa sổ 1 (thường 5-10) • Đối xứng (không phân biệt trái phải) • Ví dụ corpus: • I like deep learning. • I like NLP. • I enjoy flying. 39 Ma trận đồng xuất hiện dựa trên cửa sổ (co-occurrence matrix) • Kích thước cửa sổ 1 (thường 5-10) • Đối xứng (không phân biệt trái phải) • Ví dụ corpus: • I like deep learning. • I like NLP. • I enjoy flying. 40 Vấn đề ma trận đồng xuất hiện • Kích thước tăng khi số từ tăng • Số chiều cao, đòi hỏi nhiều bộ nhớ lưu trữ • Giải pháp: • Giảm chiều • Thường 25-1000 chiều (tương đương word2vec) 41 GloVe • Kết hợp word2vec và ma trận đồng xuất hiện: • Huấn luyện nhanh • Có thể mở rộng cho corpus lớn • Hiệu năng tốt ngay cả với corpus nhỏ và véctơ bé 42 Thư viện Xử lý NNTN và một số mô hình huấn luyện sẵn 43 Gensim • Cài đặt: pip install gensim 44 Gensim 45 Gensim • Sử dụng pretrained từ Gensim 46 Một số pretrained BERT: • Github: https://github.com/google-research/bert • Bài báo: Bidirectional Encoder Representations from Transformers XLNet: • Github: https://github.com/zihangdai/xlnet • Bài báo: XLNet: Generalized Autoregressive Pretraining for Language Understanding 47 Tài liệu tham khảo 1. Khóa cs244n của Stanford: https://web.stanford.edu/class/archive/cs/cs224n/cs224n .1194/ 48 Chân thành cảm ơn!!! 49 1 Bài 11: Một số ứng dụng học sâu trong xử lý ngôn ngữ tự nhiên (Phần 2) 2 Nội dung 1. Bài toán sinh văn bản: Character-RNN 2. Giới thiệu về bài toán dịch máy 3. Mô hình NMT 4. Cơ chế chú ý (attention) 3 Bài toán sinh văn bản: Character-RNN 4 Character-RNN • Từ vựng: [h, e, l, o] • Ví dụ huấn luyện mô hình với xâu “hello” 5 Character-RNN • Từ vựng: [h, e, l, o] • Khi suy diễn: Mỗi lần sinh một ký tự và ký tự này được dùng làm đầu vào cho bước tiếp theo 6 Character-RNN 7 Character-RNN 8 Character-RNN 9 Character-RNN • The Stacks Project: Sách nguồn mở về hình học đại số 10 Character-RNN 11 Character-RNN 12 Character-RNN 13 Character-RNN 14 Character-RNN 15 Character-RNN 16 Giới thiệu về bài toán dịch máy 17 Dịch máy • Google translate 18 Dịch máy – Machine Translation • Dịch máy (MT) là thao tác dịch một câu x từ một ngôn ngữ (gọi là ngôn ngữ nguồn) sang một câu y trong ngôn ngữ khác (gọi là ngôn ngữ đích) 19 Dịch máy – Machine Translation • Bắt đầu từ những năm 1950 • Dịch từ Nga sang Anh (nhu cầu xuất phát từ chiến tranh lạnh) • Hệ thống dịch chủ yếu theo quy tắc (rule- based), dùng từ điển để ánh xạ các từ tiếng Nga sang tiếng Anh 20 Dịch máy dựa trên luật © https://www.coroflot.com/tuyenduong/machine-translation 21 Dịch máy dựa trên luật • Nhiều xử lý thủ công và sức người • Từ điển ánh xạ từ Nguồn – Đích • Các luật chuyển đổi (lexical, structure) • Các luật hình thái học (Morphological rules) • Chất lượng thấp 22 Dịch máy thống kê (1990s-2010s) • Dịch máy thống kê (statistical machine translation) học một mô hình xác suất từ dữ liệu • Mục tiêu: Tìm kiếm câu tốt nhất ở ngôn ngữ đích, từ câu đầu vào ở ngôn ngữ nguồn 23 Một cách mô hình hoá P(s|t) • Giả định: Gióng mỗi từ trong câu nguồn với các từ trong câu đích • Vector gióng (alignment vector) a = [1,2,4,5,6] • Mục tiêu: Tìm một cách gióng sao cho cực đại hoá P(s,a|t) © Vasily Konovalov, MSc Natural Language Processing 24 Nhược điểm của dịch máy thống kê • Các hệ thống tốt nhất theo hướng tiếp cận này rất phức tạp, mỗi hệ thống chứa nhiều mô-đun nhỏ được thiết kế độc lập nhau • Vẫn không đạt được hiệu năng như con người • Cần nhiều xử lý thủ công và sức người • Kỹ nghệ đặc trưng (feature engineering) • Tài nguyên bên ngoài (extra resources) • Chi phí bảo trì cao, khi chuyển sang cặp ngôn ngữ khác phải làm lại thủ công từ đầu, không tái sử dụng được sức người 25 Tiến bộ trong dịch máy © https://sites.google.com/site/acl16nmt/home 26 Mô hình NMT (Neural Machine Translation) Neural Machine Translation is the approach of modeling the entire MT process via one big artificial neural network (ACL 2016) 27 Mô hình sequence-to-sequence • Encoder RNN sinh ra “thông tin mã hóa” (encoding) của câu nguồn • Decoder RNN sinh ra câu đích dựa trên thông tin mã hóa của câu nguồn 28 Input text En co de r Decoder Translated text -0.1 0.2 0.4 0.3 -0.5 -0.8 Mô hình sequence-to-sequence • Mô hình seq2seq có thể sử dụng cho nhiều bài toán khác như: • Tóm lược văn bản (văn bản dài → văn bản ngắn) • Hội thoại (câu nói trước → câu nói tiếp theo) • Sinh code (ngôn ngữ tự nhiên → code python) • 29 En co de r R NN Neural machine translation (NMT) 30 Source sentence (input) les pauvres sont démunis The sequence-to-sequence model Target sentence (output) Decoder RNN Encoder RNN produces an encoding of the source sentence. Encoding of the source sentence. Provides initial hidden state for Decoder RNN. Decoder RNN is a Language Model that generates target sentence conditioned on encoding. the ar gm ax the ar gm ax poor poor ar gm ax don’t Note: This diagram shows test time behavior: decoder output is fed in as next step’s input have any money don’t have any money ar gm ax ar gm ax ar gm ax ar gm ax © Tensorflow for deep learning research. Standford Xem dịch máy như mô hình ngôn ngữ có điều kiện • NMT tính trực tiếp : • Mô hình ngôn ngữ có điều kiện (conditional language model) • Mô hình ngôn ngữ: dự đoán một từ dựa trên ngữ cảnh của các từ xung quanh • Có điều kiện: sự dự đoán được dựa trên thêm điều kiện từ câu nguồn 31 the ar gm ax the ar gm ax poor poor ar gm ax don’t have any money don’t have any money ar gm ax ar gm ax ar gm ax ar gm ax Huấn luyện mô hình seq2seq 32 En co de r R NN Source sentence (from corpus) the poor don’t have any moneyles pauvres sont démunis Target sentence (from corpus) Seq2seq is optimized as a single system. Backpropagation operates “end to end”. Decoder RNN = negative log prob of “the” = + + + + + + = negative log prob of = negative log prob of “have” © Tensorflow for deep learning research. Standford Mô hình sequence-to-sequence • Giải mã ra câu đích bằng cách lấy argmax tại từng bước • Đây là cách giải mã tham lam • Nếu lỡ sai ở một bước nào đó là sẽ sai luôn các bước sau, không có cách nào quay lại để sửa. 33 Điểm BLEU (Bilingual evaluation understudy) • BLEU tính độ tương đồng giữa câu dịch sinh ra bởi mô hình và câu nhãn, do người dịch • Đo độ chính sác của các N-gram (N từ 1 tới 4) • Phạt các câu dịch quá ngắn 34 Phương pháp tìm kiếm 35 Phương pháp tìm kiếm • Ta mong muốn tìm được câu đích y (độ dài T) cực đại hóa xác suất hậu nghiệm: • Ta có thể tính với tất cả các phương án của y. • Độ phức tạp VT với V là kích thước tập từ vựng. 36 Tìm kiếm chùm – beam search • Ý tưởng: Tại mỗi bước giải mã, ta duy trì k phương án bộ phận có xác suất xảy ra cao nhất (gọi là các giả thuyết) • k là kích thước chùm (beam size) • Một giả thuyết y1, y2, , yt có điểm bằng log giá trị xác suất của nó: • Tất cả điểm score đều âm, điểm càng cao càng tốt • Ta sẽ giữ lại k giả thuyết có điểm score cao nhất tại mỗi bước • Tìm kiếm chùm không đảm bảo tìm được lời giải tối ưu • Nhưng hiệu quả hơn rất nhiều so với phương pháp duyệt 37 Ví dụ beam search với k = 2 • Tính toán phân phối xác suất từ tiếp theo 38 Ví dụ beam search với k = 2 • Giữ hai phương án với điểm cao nhất 39 Ví dụ beam search với k = 2 • Với mỗi giả thuyết tìm tiếp k giả thuyết tiếp theo có điểm cao nhất 40 Ví dụ beam search với k = 2 • Trong k2 giả thuyết mới ta chỉ giữ lại k giả thuyết điểm cao nhất 41 Ví dụ beam search với k = 2 • Với mỗi giả thuyết tìm tiếp k giả thuyết tiếp theo có điểm cao nhất 42 Ví dụ beam search với k = 2 • Trong k2 giả thuyết mới ta chỉ giữ lại k giả thuyết điểm cao nhất 43 Ví dụ beam search với k = 2 • Với mỗi giả thuyết tìm tiếp k giả thuyết tiếp theo có điểm cao nhất 44 Ví dụ beam search với k = 2 • Trong k2 giả thuyết mới ta chỉ giữ lại k giả thuyết điểm cao nhất 45 Ví dụ beam search với k = 2 • Với mỗi giả thuyết tìm tiếp k giả thuyết tiếp theo có điểm cao nhất 46 Ví dụ beam search với k = 2 • Trong k2 giả thuyết mới ta chỉ giữ lại k giả thuyết điểm cao nhất 47 Ví dụ beam search với k = 2 • Với mỗi giả thuyết tìm tiếp k giả thuyết tiếp theo có điểm cao nhất 48 Ví dụ beam search với k = 2 • Giả thuyết có điểm cao nhất là lời giải cần tìm! 49 Điều kiện dừng beam search • Trong giải mã tham lam, thường dừng khi mô hình sinh ra token • Ví dụ: he hit me with a pie • Đối với beam search, các giả thuyết khác nhau có thể sinh ra token tại các thời điểm khác nhau • Khi một giả thuyết sinh ra ta gọi giả thuyết đó được hoàn thành và đặt nó sang một bên để tiếp tục tìm các giả thuyết khác • Thường sẽ dừng beam search khi: • Hoặc là đạt đến bước T cho trước • Hoặc khi đã tìm ra ít nhất n giả thuyết hoàn thành 50 Kết thúc beam search • Khi tìm xong một tập các giả thuyết hoàn thành thì chọn giả thuyết nào? • Vấn đề: giả thuyết càng dài điểm càng thấp • Phương án giải quyết: Chuẩn hóa điểm theo chiều dài giả thuyết 51 So sánh NMT và SMT • Ưu điểm NMT so với SMT: • Hiệu năng tốt hơn: dịch trôi chảy hơn, dùng ngữ cảnh tốt hơn • Chỉ dùng một mạng duy nhất nên có thể huấn luyện end-to-end, không cần tối ưu các mô-đun độc lập nào khác • Cần ít sức người hơn: không cần trích xuất đặc trưng thủ công, cùng một phương pháp có thể tái sử dụng cho nhiều cặp ngôn ngữ khác nhau • Nhược điểm NMT so với SMT: • NMT khó giải thích hơn, khó gỡ rối • NMT khó kiểm soát. Ví dụ: muốn đưa một quy tắc hay gợi ý dịch cho NMT là không dễ dàng. 52 Cơ chế chú ý (Attention mechanism) 53 Nút thắt cổ chai của mô hình seq2seq 54 Ví dụ dịch câu dài • Machine learning has turned out to be a very useful tool for translation, but it has a few weak spots. The tendency of translation models to do their work word by word is one of those, and can lead to serious errors. • L'apprentissage automatique s'est révélé être un outil très utile pour la traduction, mais il comporte quelques points faibles. La tendance des modèles de traduction à faire leur travail mot à mot en fait partie et peut entraîner de graves erreurs. Input text En co de r Decoder Translated text -0.1 0.2 0.4 0.3 -0.5 -0.8 55 Hiệu năng của mô hình vs. độ dài câu © On the Properties of Neural Machine Translation: Encoder-Decoder Approaches 56 Attention • Attention giải quyết vấn đề nút thắt cổ chai của seq2seq • Ý tưởng: ở mỗi bước giải mã, sử dụng kết nối trực tiếp tới phần mạng mã hóa để tính toán và từ đó chỉ tập trung (chú ý) vào một phần cụ thể câu nguồn, bỏ qua những phần không liên quan. • One of the most influential ideas in deep learning for NLP • Bahdanau, Dzmitry, Kyunghyun Cho, and Yoshua Bengio. "Neural machine translation by jointly learning to align and translate." arXiv preprint arXiv:1409.0473 (2014). 57 Sequence-to-sequence with attention 58 En co de r RN N Source sentence (input) les pauvres sont démunis Decoder RNN At te nt io n sc or es dot product © Tensorflow for deep learning research. Standford Sequence-to-sequence with attention 59 En co de r RN N Source sentence (input) les pauvres sont démunis Decoder RNN At te nt io n sc or es dot product © Tensorflow for deep learning research. Standford Sequence-to-sequence with attention 60 En co de r RN N Source sentence (input) les pauvres sont démunis Decoder RNN At te nt io n sc or es dot product © Tensorflow for deep learning research. Standford Sequence-to-sequence with attention 61 En co de r RN N Source sentence (input) les pauvres sont démunis Decoder RNN At te nt io n sc or es dot product © Tensorflow for deep learning research. Standford Sequence-to-sequence with attention 62 En co de r RN N Source sentence (input) les pauvres sont démunis Decoder RNN At te nt io n sc or es On this decoder timestep, we’re mostly focusing on the first encoder hidden state (”les”) At te nt io n di st rib ut io n Take softmax to turn the scores into a probability distribution © Tensorflow for deep learning research. Standford Sequence-to-sequence with attention 63 En co de r RN N Source sentence (input) les pauvres sont démunis Decoder RNN At te nt io n di st rib ut io n At te nt io n sc or es Attention output Use the attention distribution to take a weighted sum of the encoder hidden states. The attention output mostly contains information the hidden states that received high attention. © Tensorflow for deep learning research. Standford Sequence-to-sequence with attention 64 En co de r RN N Source sentence (input) les pauvres sont démunis Decoder RNN At te nt io n di st rib ut io n At te nt io n sc or es Attention output the © Tensorflow for deep learning research. Standford Sequence-to-sequence with attention 65 En co de r RN N Source sentence (input) les pauvres sont démunis Decoder RNN At te nt io n sc or es the At te nt io n di st rib ut io n Attention output poor © Tensorflow for deep learning research. Standford Sequence-to-sequence with attention 66 En co de r RN N Source sentence (input) les pauvres sont démunis Decoder RNN At te nt io n sc or es At te nt io n di st rib ut io n Attention output the poor don’t © Tensorflow for deep learning research. Standford Sequence-to-sequence with attention 67 En co de r RN N Source sentence (input) les pauvres sont démunis Decoder RNN At te nt io n sc or es At te nt io n di st rib ut io n Attention output the poor don’t have © Tensorflow for deep learning research. Standford Sequence-to-sequence with attention 68 En co de r RN N Source sentence (input) les pauvres sont démunis Decoder RNN At te nt io n sc or es At te nt io n di st rib ut io n Attention output the poor have any don’t © Tensorflow for deep learning research. Standford Sequence-to-sequence with attention 69 En co de r RN N Source sentence (input) les pauvres sont démunis Decoder RNN At te nt io n sc or es At te nt io n di st rib ut io n Attention output the poor don’t have any money © Tensorflow for deep learning research. Standford Công thức chi tiết • Mã hoá trạng thái ẩn • Tại bước t, ta có trạng thái ẩn để giải mã • Điểm attention score cho bước này: • Tính softmax để có phân phối của sự chú ý cho bước này (tổng phân phối xác xuất bằng 1) • Sử dụng để tính tổng chập có trọng số của trạng thái ẩn của tầng encoder, mục tiêu để tính đầu ra của attention • Gộp đầu ra của attention với trạng thái ẩn của bộ giải mã decoder , tiếp tục xử lý như mạng seq2seq thông thường 70 Cơ chế chú ý có nhiều ưu điểm • Attention significantly improves NMT performance • It’s very useful to allow decoder to focus on certain parts of the source • Attention solves the bottleneck problem • Attention allows decoder to look directly at source; bypass bottleneck • Attention helps with vanishing gradient problem • Provides shortcut to faraway states • Attention provides some interpretability • By inspecting attention distribution, we can see what the decoder was focusing on • We get alignment for free! • This is cool because we never explicitly trained an alignment system • The network just learned alignment by itself 71 © Tensorflow for deep learning research. Standford Ứng dụng của mô hình seq2seq • Summarization (long text → short text) • Dialogue (previous utterances → next utterance) • Parsing (input text → parse tree) • DNA sequencing • Voice recognition • Text to speech 72 Tài liệu tham khảo 1. Khóa cs244n của Stanford: https://web.stanford.edu/class/archive/cs/cs224n/cs224n .1194/ 2. Khóa cs231n của Stanford: 73 Chân thành cảm ơn!!! 74 1 Bài 12: Mô hình sinh dữ liệu 2 Nội dung • Giới thiệu về mô hình sinh • Mô hình tự mã hóa Autoencoder • GANs 3 Giới thiệu về mạng sinh dữ liệu 4 Đâu là mặt thật, đâu là mặt giả? • 5 Học giám sát và không giám sát Học giám sát • Dữ liệu: (x, y) x là dữ liệu, y là nhãn • Mục đích: Học hàm số để ánh xạ x → y • Ví dụ: Phân loại, hồi quy, phát hiện đối tượng, phân đoạn ngữ nghĩa, dịch máy Học không giám sát • Dữ liệu: x x là dữ liệu, không nhãn! • Mục đích: Học một cấu trúc ẩn hay một cấu trúc nền tảng nào đó của dữ liệu • Ví dụ: phân cụm, giảm chiều 6 Real-time stereo Mô hình sinh • Mục đích: Nhận đầu vào một tập mẫu huấn luyện sinh ra từ một phân bố nào đó và học một mô hình để có thể biểu diễn lại phân bố đó • Làm sao để học pmodel(x) tương tự với pdata(x)? 7 Tại sao cần mô hình sinh? • Vì nó có thể khám phá ra các thông tin ẩn nền tảng trong dữ liệu • Sử dụng phân bố ẩn học được để sinh ra dữ liệu đa dạng và cân bằng hơn (debias) 8 Tại sao cần mô hình sinh? • Phát hiện ngoại lệ (outlier): Làm sao để phát hiện một sự kiện mới học hiếm xảy ra? • Sử dụng mô hình sinh để học phân bố dữ liệu, từ đó xác định ngoại lệ dựa trên phân bố học được. 9 Mô hình tự mã hóa Autoencoder 10 Autoencoder • Là mô hình không giám sát cho phép học biểu diễn đặc trưng với số chiều nhỏ hơn từ tập huấn luyện không có nhãn • “Encoder” học ánh xạ từ dữ liệu x vào không gian ẩn z có số chiều thấp hơn 11 Autoencoder • Làm sao để học không gian ẩn? • Huấn luyện mô hình sử dụng đặc trưng ẩn z để khôi phục lại dữ liệu gốc ban đầu • “Decoder” ánh xạ đặc trưng ẩn z ngược trở lại để khôi phục thông tin dữ liệu đầu vào !𝑥 12 Autoencoder • Làm sao để học không gian ẩn? • Huấn luyện mô hình sử dụng đặc trưng ẩn z để khôi phục lại dữ liệu gốc ban đầu • Hàm mục tiêu không cần nhãn! 13 Số chiều không gian ẩn ảnh hưởng chất lượng khôi phục dữ liệu • Autoencoder là một kiểu nén dữ liệu. • Số chiều không gian ẩn càng nhỏ càng tạo ra nút thắt cổ chai (bottleneck) lớn khi huấn luyện 14 Autoencoders để học biểu diễn • Các lớp ẩn thắt cổ chai ép mạng học biểu diễn ẩn nén thông tin dữ liệu vào • Hàm mục tiêu tái tạo ép biểu diễn ẩn phải mã hóa được càng nhiều thông tin từ dữ liệu vào càng tốt • Autoencoding = Automatically encoding data 15 Variational Autoencoders (VAEs) 16 Xem xét lại Autoencoders • Mỗi chiều trong vector mã hoá (encoding vector) chứa giá trị đơn, là đại diện cho một thuộc tính ẩn từ dữ liệu đầu vào 17 Variational Autoencoders • Mỗi thuộc tính ẩn là một phân bố xác suất 18 Decoder trong VAEs • Khi giải mã từ trạng thái ẩn, lấy mẫu ngẫn nhiên từ phân phối của mỗi thuộc tính ẩn để sinh ra vector đầu vào cho bộ giải mã 19 Tối ưu VAE 20 Tối ưu VAE 21 Reconstruction loss 22 Regularization term (KL) 23 Biểu diễn không gian ẩn • Chỉ sử dụng reconstruction loss • phân phối không đều, không học được biểu diễn mịn của trạng thái ẩn • Chỉ sử dụng KL • Không học được biểu diễn của dữ liệu gốc, không học chỉ ghi nhớ dữ liệu đầu vào 24 Cài đặt VAEs • Với giả định phân phối trạng thái ẩn là phân phối Gaussian • Đầu ra của Encoder là hai vector mô tả trung bình và phương sai của phân bố trạng thái ẩn • Decoder lấy mẫu ngẫu nhiên từ trạng thái ẩn và giải mã 25 Đồ thị tính toán của VAE • Vấn đề: Không thể lan truyền ngược qua lớp lấy mẫu! 26 Trick: tái tham số hóa lớp lấy mẫu 27 Tái tham số hóa lớp lấy mẫu 28 Tái tham số hóa lớp lấy mẫu 29 VAEs: Biến đổi không gian ẩn • Tăng hoặc giảm từ từ một biến ẩn, giữ các biến khác cố định • Mỗi chiều của z mã hóa các đặc trưng ẩn có ý nghĩa khác nhau 30 VAEs: Biến đổi không gian ẩn • Lý tưởng là các biến ẩn hoàn toàn độc lập với nhau (uncorrelated) • Có thể thêm ràng buộc dạng ma trận chéo để ép các biến ẩn độc lập với nhau (hệ số tương quan giữa các biến ẩn khác nhau xấp xỉ 0) Disentanglement 31 VAEs: Tổng kết 1. Hàm mục tiêu tái tạo cho phép huấn luyện không cần nhãn (không giám sát) 2. Sử dụng kỹ thuật tái tham số hóa để cho phép huấn luyện end-to-end 3. Diễn giải các biến ẩn bằng cách biến đổi giá trị của nó và quan sát 4. Sinh dữ liệu mới 32 Generative adversarial networks (GANs) 33 Mạng sinh dữ liệu • GANs là một mô hình sinh chứa hai mạng nơ-ron đối chọi lẫn nhau • Mạng sinh (generator) biến véctơ nhiễu thành một dữ liệu giả để đánh lừa mạng phân loại (discriminator) • Mạng phân loại (discriminator) cố gắng phân biệt đầu là dữ liệu thật, đâu là dữ liệu giả sinh bởi generator 34 Trực giác ban đầu về GANs • Generator tạo dữ liệu giả từ nhiễu 35 Trực giác ban đầu về GANs • Discriminator nhìn vào dữ liệu thật và giả 36 Trực giác ban đầu về GANs • Discriminator nhìn vào dữ liệu thật và giả 37 Trực giác ban đầu về GANs • Discriminator đoán đâu là thật, đâu là giả 38 Trực giác ban đầu về GANs • Discriminator đoán đâu là thật, đâu là giả 39 Trực giác ban đầu về GANs • Discriminator đoán đâu là thật, đâu là giả 40 Trực giác ban đầu về GANs • Discriminator đoán đâu là thật, đâu là giả 41 Trực giác ban đầu về GANs • Generator cố gắng cải tiến chất lượng dữ liệu giả 42 Trực giác ban đầu về GANs • Generator cố gắng cải tiến chất lượng dữ liệu giả 43 Trực giác ban đầu về GANs • Generator cố gắng cải tiến chất lượng dữ liệu giả 44 Trực giác ban đầu về GANs • Discriminator đoán đâu là thật, đâu là giả 45 Trực giác ban đầu về GANs • Discriminator đoán đâu là thật, đâu là giả 46 Trực giác ban đầu về GANs • Discriminator đoán đâu là thật, đâu là giả 47 Trực giác ban đầu về GANs • Discriminator đoán đâu là thật, đâu là giả 48 Trực giác ban đầu về GANs • Generator cố gắng cải tiến chất lượng dữ liệu giả 49 Trực giác ban đầu về GANs • Generator cố gắng cải tiến chất lượng dữ liệu giả 50 Trực giác ban đầu về GANs • Generator cố gắng cải tiến chất lượng dữ liệu giả 51 Intuition behind GANs • Discriminator cố gắng phân biệt dữ liệu thật và giả • Generator cố gắng cải tiến chất lượng dữ liệu giả để lừa discriminator 52 Huấn luyện GANs • Discriminator cố gắng phân biệt dữ liệu thật và giả • Generator cố gắng cải tiến chất lượng dữ liệu giả để lừa discriminator 53 Huấn luyện GANs 54 Biến đổi Image-to-image 58 pix2pix • Training a conditional GAN to map edges→photo. The discriminator, D, learns to classify between fake (synthesized by the generator) and real {edge, photo} tuples. The generator, G, learns to fool the discriminator. Unlike an unconditional GAN, both the generator and discriminator observe the input edge map 59 Conditional GAN 60 CycleGAN 61 Progressive growing of GANs (NVIDIA) 62 Progressive growing of GANs (NVIDIA) 63 Style-based generator 64 Style-based transfer 65 Tổng kết mô hình sinh 66 Tài liệu tham khảo 1. Khóa MIT Deep Learning 6.S191: 2. Khóa cs231n của Stanford: 67 Chân thành cảm ơn!!! 68

Các file đính kèm theo tài liệu này:

  • pdfbai_giang_hoc_sau_va_ung_dung.pdf
  • pdfL1_Intro_to_Deep Learning.pdf
  • pdfL2_Intro_to_DNNs.pdf
  • pdfL3_ConvNet.pdf
  • pdfL4_Training_neural_networks.pdf
  • pdfL5_Training_neural_networks_part_2.pdf
  • pdfL6_Hardware_and_oftware_for_DL.pdf
  • pdfL7_Object_detection.pdf
  • pdfL8_Semantic_segmentation.pdf
  • pdfL9_RNN.pdf
  • pdfL10_NLP_word_embeddings.pdf
  • pdfL11_NMT.pdf
  • pdfL12_Generative_models.pdf