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
645 trang |
Chia sẻ: hachi492 | Ngày: 05/01/2022 | Lượt xem: 488 | Lượt tải: 0
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