Uploaded by Thắng Hoàng

super-cheatsheet-deep-learning

advertisement
https://stanford.edu/~shervine/l/vi
CS 230 – Học sâu
Super VIP Cheatsheet: Học sâu
1
Mạng nơ ron tích chập
Dịch bởi Phạm Hồng Vinh và Đàm Minh Tiến
Afshine Amidi và Shervine Amidi
Ngày 17 tháng 5 năm 2020
1.1
Mục lục
r Kiến trúc truyền thống của một mạng CNN – Mạng neural tích chập (Convolutional
neural networks), còn được biết đến với tên CNNs, là một dạng mạng neural được cấu thành
bởi các tầng sau:
1 Mạng nơ ron tích chập
1.1 Tổng quan . . . . . . . . . . . . . . . . . . . . . . .
1.2 Các kiểu tầng . . . . . . . . . . . . . . . . . . . . .
1.3 Các siêu tham số của bộ lọc . . . . . . . . . . . . . .
1.4 Điều chỉnh siêu tham số . . . . . . . . . . . . . . . .
1.5 Các hàm kích hoạt thường gặp . . . . . . . . . . . .
1.6 Phát hiện vật thể (object detection) . . . . . . . . . .
1.6.1 Xác nhận khuôn mặt và nhận diện khuôn mặt
1.6.2 Neural style transfer . . . . . . . . . . . . . .
1.6.3 Những kiến trúc sử dụng computational tricks
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2 Mạng nơ-ron hồi quy
2.1 Tổng quan . . . . . . . . . . . .
2.2 Xử lí phụ thuộc dài hạn . . . . .
2.3 Học từ đại diện . . . . . . . . .
2.3.1 Giải thích và các kí hiệu
2.3.2 Word embeddings . . .
2.4 So sánh các từ . . . . . . . . .
2.5 Mô hình ngôn ngữ . . . . . . . .
2.6 Dịch máy . . . . . . . . . . . . .
2.7 Chú ý . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
7
7
8
9
9
9
10
10
10
11
3 Mẹo và thủ thuật
3.1 Xử lí dữ liệu . . . . . . . .
3.2 Huấn luyện mạng neural . .
3.2.1 Định nghĩa . . . . .
3.2.2 Tìm trọng số tối ưu
3.3 Tinh chỉnh tham số . . . .
3.3.1 Khởi tạo trọng số .
3.3.2 Tối ưu hội tụ . . . .
3.4 Chính quy . . . . . . . . .
3.5 Thói quen tốt . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
11
11
12
12
12
12
12
13
13
13
Đại học Stanford
Tổng quan
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
1
1
2
2
3
3
5
5
Tầng tích chập và tầng pooling có thể được hiệu chỉnh theo các siêu tham số (hyperparameters)
6 được mô tả ở những phần tiếp theo.
1.2
Các kiểu tầng
r Tầng tích chập (CONV) – Tầng tích chập (CONV) sử dụng các bộ lọc để thực hiện phép
tích chập khi đưa chúng đi qua đầu vào I theo các chiều của nó. Các siêu tham số của các bộ lọc
này bao gồm kích thước bộ lọc F và độ trượt (stride) S. Kết quả đầu ra O được gọi là feature
map hay activation map.
Lưu ý: Bước tích chập cũng có thể được khái quát hóa cả với trường hợp một chiều (1D) và ba
chiều (3D).
r Pooling (POOL) – Tầng pooling (POOL) là một phép downsampling, thường được sử dụng
sau tầng tích chập, giúp tăng tính bất biến không gian. Cụ thể, max pooling và average pooling
là những dạng pooling đặc biệt, mà tương ứng là trong đó giá trị lớn nhất và giá trị trung bình
được lấy ra.
1
mùa đông 2019
https://stanford.edu/~shervine/l/vi
CS 230 – Học sâu
Max pooling
Từng phép pooling chọn
Kiểu
giá trị lớn nhất trong khu vực
mà nó đang được áp dụng
r Stride – Đối với phép tích chập hoặc phép pooling, độ trượt S ký hiệu số pixel mà cửa sổ sẽ
di chuyển sau mỗi lần thực hiện phép tính.
Average pooling
Từng phép pooling tính
trung bình các giá trị trong khu
vực mà nó đang được áp dụng
r Zero-padding – Zero-padding là tên gọi của quá trình thêm P số không vào các biên của
đầu vào. Giá trị này có thể được lựa chọn thủ công hoặc một cách tự động bằng một trong ba
những phương pháp mô tả bên dưới:
Minh họa
Nhận xét
- Bảo toàn các đặc trưng đã phát hiện
- Được sử dụng thường xuyên
Valid
- Giảm kích thước feature map
- Được sử dụng trong mạng LeNet
Giá trị
Same
Pstart =
j
Pend =
l
P =0
r Fully Connected (FC) – Tầng kết nối đầy đủ (FC) nhận đầu vào là các dữ liệu đã được
làm phẳng, mà mỗi đầu vào đó được kết nối đến tất cả neuron. Trong mô hình mạng CNNs, các
tầng kết nối đầy đủ thường được tìm thấy ở cuối mạng và được dùng để tối ưu hóa mục tiêu
của mạng ví dụ như độ chính xác của lớp.
Full
I e−I+F −S
Sd S
k
2
I e−I+F −S
Sd S
2
m
Pstart ∈ [[0,F − 1]]
Pend = F − 1
Minh họa
- Sử dụng padding
- Không sử
dụng padding
Mục đích
để làm cho feature map
- Bỏ phép tích
chập cuối
nếu số chiều
không khớp
1.3
Các siêu tham số của bộ lọc
có kích thước
l m
I
S
- Kích thước đầu ra
thuận lợi về mặt toán học
- Còn được gọi là ’half’
padding
- Padding tối đa sao cho
các phép tích chập có thể
được sử dụng tại các
rìa của đầu vào
- Bộ lọc ’thấy’ được đầu
vào từ đầu đến cuối
Tầng tích chập chứa các bộ lọc mà rất quan trọng cho ta khi biết ý nghĩa đằng sau các siêu
tham số của chúng.
r Các chiều của một bộ lọc – Một bộ lọc kích thước F × F áp dụng lên đầu vào chứa C
kênh (channels) thì có kích thước tổng kể là F × F × C thực hiện phép tích chập trên đầu vào
kích thước I × I × C và cho ra một feature map (hay còn gọi là activation map) có kích thước
O × O × 1.
1.4
Điều chỉnh siêu tham số
r Tính tương thích của tham số trong tầng tích chập – Bằng cách ký hiệu I là độ dài
kích thước đầu vào, F là độ dài của bộ lọc, P là số lượng zero padding, S là độ trượt, ta có thể
tính được độ dài O của feature map theo một chiều bằng công thức:
Lưu ý: Việc áp dụng K bộ lọc có kích thước F × F cho ra một feature map có kích thước
O × O × K.
Đại học Stanford
O=
2
I − F + Pstart + Pend
+1
S
mùa đông 2019
https://stanford.edu/~shervine/l/vi
CS 230 – Học sâu
Trong ví dụ bên dưới, ta có F1 = F2 = 3 và S1 = S2 = 1, nên cho ra được R2 = 1+2 · 1+2 · 1 =
5..
Lưu ý: Trong một số trường hợp, Pstart = Pend , P , ta có thể thay thế Pstart + Pend bằng 2P
trong công thức trên.
r Hiểu về độ phức tạp của mô hình – Để đánh giá độ phức tạp của một mô hình, cách hữu
hiệu là xác định số tham số mà mô hình đó sẽ có. Trong một tầng của mạng neural tích chập,
nó sẽ được tính toán như sau:
CONV
POOL
1.5
r Rectified Linear Unit – Tầng rectified linear unit (ReLU) là một hàm kích hoạt g được sử
dụng trên tất cả các thành phần. Mục đích của nó là tăng tính phi tuyến tính cho mạng. Những
biến thể khác của ReLU được tổng hợp ở bảng dưới:
FC
Minh họa
Kích thước
đầu vào
I ×I ×C
I ×I ×C
Nin
Kích thước
đầu ra
O×O×K
O×O×C
Nout
(F × F × C + 1) · K
0
(Nin + 1) × Nout
Số lượng
tham số
- Một tham số bias
với mỗi bộ lọc
Lưu ý
- Trong đa số trường
hợp, S < F
- Một lựa chọn phổ
biến cho K là 2C
- Phép pooling được áp
dụng lên từng kênh
(channel-wise)
- Trong đa số trường
hợp, S = F
Các hàm kích hoạt thường gặp
ReLU
Leaky ReLU
ELU
g(z) = max(0,z)
g(z) = max(z,z)
với 1
g(z) = max(α(ez − 1),z)
với α 1
Độ phức tạp phi
tuyến tính có thể thông
dịch được về mặt sinh học
- Đầu vào
được làm phẳng
- Mỗi neuron có một
tham số bias
- Số neuron trong một
tầng FC phụ thuộc vào
ràng buộc kết cấu
p1 r Trường thụ cảm – Trường thụ cảm (receptive field) tại tầng k là vùng được ký hiệu Rk × Rk
của đầu vào mà những pixel của activation map thứ k có thể "nhìn thấy". Bằng cách gọi Fj là
kích thước bộ lọc của tầng j và Si là giá trị độ trượt của tầng i và để thuận tiện, ta mặc định
S0 = 1, trường thụ cảm của tầng k được tính toán bằng công thức:
Rk = 1 +
j=1
Đại học Stanford
(Fj − 1)
..
.
pn
với
pi =
exi
n
X
exj
j=1
1.6
j−1
Y
Khả vi tại mọi nơi
r Softmax – Bước softmax có thể được coi là một hàm logistic tổng quát lấy đầu vào là một
vector chứa các giá trị x ∈ Rn và cho ra là một vector gồm các xác suất p ∈ Rn thông qua một
hàm softmax ở cuối kiến trúc. Nó được định nghĩa như sau:
p=
k
X
Gán vấn đề ReLU
chết cho những giá
trị âm
Si
Phát hiện vật thể (object detection)
r Các kiểu mô hình – Có 3 kiểu thuật toán nhận diện vật thể chính, vì thế mà bản chất của
thứ được dự đoán sẽ khác nhau. Chúng được miêu tả ở bảng dưới:
i=0
3
mùa đông 2019
https://stanford.edu/~shervine/l/vi
CS 230 – Học sâu
Phân loại hình ảnh
Phân loại cùng với khoanh vùng
- Phân loại một
- Phát hiện một vật
tấm ảnh
- Phát hiện nhiều vật thể
Lưu ý: ta luôn có IoU ∈ [0,1]. Để thuận tiện, một hộp giới hạn Bp được cho là khá tốt nếu
IoU(Bp ,Ba ) > 0.5.
trong cùng một tấm ảnh
thể trong ảnh
- Dự đoán xác suất
Phát hiện
- Dự đoán xác suất
- Dự đoán xác suất
của một vật thể
của vật thể và định vị nó
của các vật thể
và định vị chúng
CNN cổ điển
YOLO đơn giản hóa, R-CNN
YOLO, R-CNN
r Anchor boxes – Hộp mỏ neo là một kỹ thuật được dùng để dự đoán những hộp giới hạn
nằm chồng lên nhau. Trong thực nghiệm, mạng được phép dự đoán nhiều hơn một hộp cùng
một lúc, trong đó mỗi dự đoán được giới hạn theo một tập những tính chất hình học cho trước.
Ví dụ, dự đoán đầu tiên có khả năng là một hộp hình chữ nhật có hình dạng cho trước, trong
khi dự đoán thứ hai sẽ là một hộp hình chữ nhật nữa với hình dạng hình học khác.
r Non-max suppression – Kỹ thuật non-max suppression hướng tới việc loại bỏ những hộp
giới hạn bị trùng chồng lên nhau của cùng một đối tượng bằng cách chọn chiếc hộp có tính đặc
trưng nhất. Sau khi loại bỏ tất cả các hộp có xác suất dự đoán nhỏ hơn 0.6, những bước tiếp
theo được lặp lại khi vẫn còn tồn tại những hộp khác.
r Phát hiện – Trong bối cảnh phát hiện (detection) vật thể, những phương pháp khác nhau
được áp dụng tùy thuộc vào liệu chúng ta chỉ muốn định vị vật thể hay phát hiện được những
hình dạng phức tạp hơn trong tấm ảnh. Hai phương pháp chính được tổng hợp ở bảng dưới:
• Bước 1: Chọn chiếc hộp có xác suất dự đoán lớn nhất.
Phát hiện hộp giới hạn
(bounding box)
• Bước 2: Loại bỏ những hộp có IoU > 0.5 với hộp đã chọn.
Phát hiện landmark
- Phát hiện hình dạng và đặc
Phát hiện phần trong ảnh
mà có sự xuất hiện của vật thể
điểm của một đối tượng (vd: mắt)
- Nhiều hạt
r YOLO – You Only Look Once (YOLO) là một thuật toán phát hiện vật thể thực hiện những
bước sau:
• Bước 1: Phân chia tấm ảnh đầu vào thành một lưới G × G.
Hộp có tọa độ trung tâm (bx ,by ),
chiều cao bh và chiều rộng bw
• Bước 2: Với mỗi lưới, chạy một mạng CNN dự đoán y có dạng sau:
Các điểm tương quan (l1x ,l1y ), ..., (lnx ,lny )
y = pc ,bx ,by ,bh ,bw ,c1 ,c2 ,...,cp ,...
|
r Intersection over Union – Tỉ lệ vùng giao trên vùng hợp, còn được biết đến là IoU, là một
hàm định lượng vị trí Bp của hộp giới hạn dự đoán được định vị đúng như thế nào so với hộp
giới hạn thực tế Ba . Nó được định nghĩa:
IoU(Bp ,Ba ) =
Đại học Stanford
{z
lặp lại k lần
T
∈ RG×G×k×(5+p)
}
với pc là xác suất dự đoán được một vật thể, bx ,by ,bh ,bw là những thuộc tính của hộp
giới hạn được dự đoán, c1 ,...,cp là biểu diễn one-hot của việc lớp nào trong p các lớp được
dự đoán, và k là số lượng các hộp mỏ neo.
Bp ∩ Ba
Bp ∪ Ba
• Bước 3: Chạy thuật toán non-max suppression để loại bỏ bất kỳ hộp giới hạn có khả năng
bị trùng lặp.
4
mùa đông 2019
https://stanford.edu/~shervine/l/vi
CS 230 – Học sâu
r Siamese Network – Siamese Networks hướng tới việc học cách mã hóa tấm ảnh để rồi định
lượng sự khác nhau giữa hai tấm ảnh. Với một tấm ảnh đầu vào x(i) , đầu ra được mã hóa thường
được ký hiệu là f (x(i) ).
r Triplet loss – Triplet loss ` là một hàm mất mát được tính toán dựa trên biểu diễn nhúng
của bộ ba hình ảnh A (mỏ neo), P (dương tính) và N (âm tính). Ảnh mỏ neo và ảnh dương tính
đều thuộc một lớp, trong khi đó ảnh âm tính thuộc về một lớp khác. Bằng các gọi α ∈ R+ là
tham số margin, hàm mất mát này được định nghĩa như sau:
`(A,P,N ) = max (d(A,P ) − d(A,N ) + α,0)
Lưu ý: khi pc = 0, thì mạng không phát hiện bất kỳ vật thể nào. Trong trường hợp đó, Các dự
đoán liên quan bx , ..., cp sẽ bị lờ đi.
r R-CNN – Region with Convolutional Neural Networks (R-CNN) là một thuật toán phát hiện
vật thể mà đầu tiên phân chia ảnh thành các vùng để tìm các hộp giới hạn có khả năng liên
quan cao rồi chạy một thuật toán phát hiện để tìm những thứ có khả năng cao là vật thể trong
những hộp giới hạn đó.
1.6.2
Lưu ý: mặc dù thuật toán gốc có chi phí tính toán cao và chậm, những kiến trúc mới đã có thể
cho phép thuật toán này chạy nhanh hơn, như là Fast R-CNN và Faster R-CNN.
1.6.1
Neural style transfer
r Ý tưởng – Mục tiêu của neural style transfer là tạo ra một ảnh G dựa trên một nội dung C
và một phong cách S.
Xác nhận khuôn mặt và nhận diện khuôn mặt
r Các kiểu mô hình – Hai kiểu mô hình chính được tổng hợp trong bảng dưới:
Xác nhận khuôn mặt
- Có đúng người không?
- Tra cứu một-một
Nhận diện khuôn mặt
- Đây có phải là 1 trong K người
trong cơ sở dữ liệu không?
- Tra cứu một với tất cả
r Tầng kích hoạt – Trong một tầng l cho trước, tầng kích hoạt được ký hiệu a[l] và có các
chiều là nH × nw × nc
r Hàm mất mát nội dung – Hàm mất mát nội dung Jcontent (C,G) được sử dụng để xác định
nội dung của ảnh được tạo G khác biệt với nội dung gốc trong ảnh C. Nó được định nghĩa như
dưới đây:
Jcontent (C,G) =
r Ma trận phong cách – Ma trận phong cách G[l] của một tầng cho trước l là một ma trận
[l]
Gram mà mỗi thành phần Gkk0 của ma trận xác định sự tương quan giữa kênh k và kênh k0 .
Nó được định nghĩa theo tầng kích hoạt a[l] như sau:
r One Shot Learning – One Shot Learning là một thuật toán xác minh khuôn mặt sử dụng
một tập huấn luyện hạn chế để học một hàm similarity nhằm ước lượng sự khác nhau giữa hai
tấm hình. Hàm này được áp dụng cho hai tấm ảnh thường được ký hiệu d(image 1, image 2).
Đại học Stanford
1 [l](C)
||a
− a[l](G) ||2
2
5
mùa đông 2019
https://stanford.edu/~shervine/l/vi
CS 230 – Học sâu
[l]
nH
[l]
Gkk0 =
r Inception Network – Kiến trúc này sử dụng những inception module và hướng tới việc thử
các tầng tích chập khác nhau để tăng hiệu suất thông qua sự đa dạng của các feature. Cụ thể,
kiến trúc này sử dụng thủ thuật tầng tích chập 1 × 1 để hạn chế gánh nặng tính toán.
[l]
nw
XX
[l]
[l]
aijk aijk0
i=1 j=1
?
?
?
Lưu ý: ma trận phong cách cho ảnh phong cách và ảnh được tạo được ký hiệu tương ứng là
G[l](S) và G[l](G) .
r Hàm mất mát phong cách – Hàm mất mát phong cách Jstyle (S,G) được sử dụng để xác
định sự khác biệt về phong cách giữa ảnh được tạo G và ảnh phong cách S. Nó được định nghĩa
như sau:
[l]
Jstyle (S,G) =
1
1
||G[l](S) − G[l](G) ||2F =
(2nH nw nc )2
(2nH nw nc )2
nc X
[l](S)
Gkk0
[l](G)
− Gkk0
2
k,k0 =1
r Hàm mất mát tổng quát – Hàm mất mát tổng quát được định nghĩa là sự kết hợp của
hàm mất mát nội dung và hàm mất mát phong cách, độ quan trọng của chúng được xác định
bởi hai tham số α,β, như dưới đây:
J(G) = αJcontent (C,G) + βJstyle (S,G)
Lưu ý: giá trị của α càng lớn dẫn tới việc mô hình sẽ quan tâm hơn cho nội dung, trong khi đó,
giá trị của β càng lớn sẽ khiến nó quan tâm hơn đến phong cách.
1.6.3
Những kiến trúc sử dụng computational tricks
r Generative Adversarial Network – Generative adversarial networks, hay còn được gọi là
GAN, là sự kết hợp giữa mô hình khởi tạo và mô hình phân biệt, khi mà mô hình khởi tạo cố
gắng tạo ra hình ảnh đầu ra chân thực nhất, sau đó được đưa vô mô hình phân biệt, mà mục
tiêu của nó là phân biệt giữa ảnh được tạo và ảnh thật.
Lưu ý: có nhiều loại GAN khác nhau bao gồm từ văn bản thành ảnh, sinh nhạc và tổ hợp.
r ResNet – Kiến trúc Residual Network (hay còn gọi là ResNet) sử dụng những khối residual
(residual blocks) cùng với một lượng lớn các tầng để giảm lỗi huấn luyện. Những khối residual
có những tính chất sau đây:
a[l+2] = g(a[l] + z [l+2] )
Đại học Stanford
6
mùa đông 2019
https://stanford.edu/~shervine/l/vi
CS 230 – Học sâu
2
r Ứng dụng của RNNs – Các mô hình RNN hầu như được sử dụng trong lĩnh vực xử lí ngôn
ngữ tự nhiên và ghi nhận tiếng nói. Các ứng dụng khác được tổng kết trong bảng dưới đây:
Mạng nơ-ron hồi quy
Dịch bởi Trần Tuấn Anh, Đàm Minh Tiến, Hung Nguyễn và Nguyễn Trí Minh
Các loại RNN
2.1
Hình minh hoạ
Ví dụ
Tổng quan
r Kiến trúc của một mạng RNN truyền thống – Các mạng neural hồi quy, còn được biến
đến như là RNNs, là một lớp của mạng neural cho phép đầu ra được sử dụng như đầu vào trong
khi có các trạng thái ẩn. Thông thường là như sau:
Một-Một
Mạng neural truyền thống
Tx = Ty = 1
Một-nhiều
Sinh nhạc
Tx = 1, Ty > 1
Tại mỗi bước t, giá trị kích hoạt a<t> và đầu ra y <t> được biểu diễn như sau:
a<t> = g1 (Waa a<t−1> + Wax x<t> + ba )
và
Nhiều-một
y <t> = g2 (Wya a<t> + by )
Phân loại ý kiến
Tx > 1, Ty = 1
với Wax , Waa , Wya , ba , by là các hệ số được chia sẻ tạm thời và g1 , g2 là các hàm kích hoạt.
Nhiều-nhiều
Ghi nhận thực thể tên
Tx = Ty
Nhiều-nhiều
Dịch máy
Tx 6= Ty
Ưu và nhược điểm của một kiến trúc RNN thông thường được tổng kết ở bảng dưới đây:
Ưu điểm
- Khả năng xử lí đầu vào với bất kì độ dài nào
- Kích cỡ mô hình không tăng theo kích
cỡ đầu vào
- Quá trình tính toán sử dụng các thông tin cũ
- Trọng số được chia sẻ trong suốt thời gian
Đại học Stanford
r Hàm mất mát – Trong trường hợp của mạng neural hồi quy, hàm mất mát L của tất cả các
bước thời gian được định nghĩa dựa theo mất mát ở mọi thời điểm như sau:
Hạn chế
- Tính toán chậm
L(b
y ,y) =
- Khó để truy cập các thông tin từ một
khoảng thời gian dài trước đây
Ty
X
L(b
y <t> ,y <t> )
t=1
- Không thể xem xét bất kì đầu vào
sau này nào cho trạng thái hiện tại
r Lan truyền ngược theo thời gian – Lan truyền ngược được hoàn thành ở mỗi một thời
7
mùa đông 2019
https://stanford.edu/~shervine/l/vi
CS 230 – Học sâu
điểm cụ thể. Ở bước T , đạo hàm của hàm mất mát L với ma trận trọng số W được biểu diễn
như sau:
Loại cổng
Cổng cập nhật Γu
T
X ∂L(T )
∂L(T )
=
∂W
∂W
t=1
2.2
Vai trò
(t)
Được sử dụng trong
Dữ liệu cũ nên có tầm quan
GRU, LSTM
trọng như thế nào ở hiện tại?
Cổng relevance Γr
Bỏ qua thông tin phía trước?
GRU, LSTM
Cổng quên Γf
Xoá ô hay không xoá?
LSTM
Cổng ra Γo
Biểu thị một ô ở mức độ bao nhiêu?
LSTM
Xử lí phụ thuộc dài hạn
r Các hàm kích hoạt thường dùng – Các hàm kích hoạt thường dùng trong các modules
RNN được miêu tả như sau:
Sigmoid
Tanh
1
g(z) =
1 + e−z
ez
RELU
e−z
−
g(z) = z
e + e−z
r GRU/LSTM – Gated Recurrent Unit (GRU) và Các đơn vị bộ nhớ dài-ngắn hạn (LSTM)
đối phó với vấn đề vanishing gradient khi gặp phải bằng mạng RNNs truyền thống, với LSTM
là sự tổng quát của GRU. Phía dưới là bảng tổng kết các phương trình đặc trưng của mỗi kiến
trúc:
g(z) = max(0,z)
r Vanishing/exploding gradient – Hiện tượng vanishing và exploding gradient thường gặp
trong ngữ cảnh của RNNs. Lí do tại sao chúng thường xảy ra đó là khó để có được sự phụ thuộc
dài hạn vì multiplicative gradient có thể tăng/giảm theo hàm mũ tương ứng với số lượng các
tầng.
Gated Recurrent Unit (GRU)
(GRU)
Bộ nhớ dài-ngắn hạn (LSTM)
(LSTM)
c̃<t>
tanh(Wc [Γr ? a<t−1> ,x<t> ] + bc )
tanh(Wc [Γr ? a<t−1> ,x<t> ] + bc )
c<t>
Γu ? c̃<t> + (1 − Γu ) ? c<t−1>
Γu ? c̃<t> + Γf ? c<t−1>
a<t>
c<t>
Γo ? c<t>
r Gradient clipping – Là một kĩ thuật được sử dụng để giải quyết vấn đề exploding gradient
xảy ra khi thực hiện lan truyền ngược. Bằng việc giới hạn giá trị lớn nhất cho gradient, hiện
tượng này sẽ được kiểm soát trong thực tế.
Các phụ thuộc
r Các loại cổng – Để giải quyết vấn đề vanishing gradient, các cổng cụ thể được sử dụng trong
một vài loại RNNs và thường có mục đích rõ ràng. Chúng thường được kí hiệu là Γ và bằng với:
Chú ý: kí hiệu * chỉ phép nhân từng phần tử với nhau giữa hai vectors.
Γ = σ(W x<t> + U a<t−1> + b)
Với W, U, b là các hệ số của một cổng và σ là hàm sigmoid. Các loại chính được tổng kết ở bảng
dưới đây:
Đại học Stanford
r Các biến thể của RNNs – Bảng dưới đây tổng kết các kiến trúc thường được sử dụng khác
của RNN:
8
mùa đông 2019
https://stanford.edu/~shervine/l/vi
CS 230 – Học sâu
RNN hai chiều (Bidirectional, BRNN)
(BRNN)
2.3
2.3.2
RNN sâu (Deep, DRNN)
(DRNN)
Word embeddings
r Word2vec – Word2vec là một framework tập trung vào việc học word embeddings bằng cách
ước lượng khả năng mà một từ cho trước được bao quanh bởi các từ khác. Các mô hình phổ
biến bao gồm skip-gram, negative sampling và CBOW.
r Skip-gram – Mô hình skip-gram word2vec là một task học có giám sát, nó học các word
embeddings bằng cách đánh giá khả năng của bất kì target word t cho trước nào xảy ra với
context word c. Bằng việc kí hiệu θt là tham số đi kèm với t, xác suất P (t|c) được tính như sau:
Học từ đại diện
exp(θtT ec )
P (t|c) =
Trong phần này, chúng ta kí hiệu V là tập từ vựng và |V | là kích cỡ của nó.
|V |
X
2.3.1
Giải thích và các kí hiệu
exp(θjT ec )
j=1
r Các kĩ thuật biểu diễn – Có hai cách chính để biểu diễn từ được tổng kết ở bảng bên dưới:
Chú ý: Cộng tổng tất cả các từ vựng trong mẫu số của phần softmax khiến mô hình này tốn
nhiều chi phí tính toán. CBOW là một mô hình word2vec khác sử dụng các từ xung quanh để
dự đoán một từ cho trước.
Word embedding
Biểu diễn 1-hot
r Negative sampling – Nó là một tập của các bộ phân loại nhị phân sử dụng logistic regressions
với mục tiêu là đánh giá khả năng mà một ngữ cảnh cho trước và các target words cho trước
có thể xuất hiện đồng thời, với các mô hình đang được huấn luyện trên các tập của k negative
examples và 1 positive example. Cho trước context word c và target word t, dự đoán được thể
hiện bởi:
P (y = 1|c,t) = σ(θtT ec )
Chú ý: phương thức này tốn ít chi phí tính toán hơn mô hình skip-gram.
- Lưu ý ow
- Tiếp cận Naive, không có thông tin chung
r GloVe – Mô hình GloVe, viết tắt của global vectors for word representation, nó là một kĩ
thuật word embedding sử dụng ma trận đồng xuất hiện X với mỗi Xi,j là số lần mà từ đích
(target) i xuất hiện tại ngữ cảnh j. Cost function J của nó như sau:
- Lưu ý ew
- Xem xét độ tương đồng của các từ
J(θ) =
r Embedding matrix – Cho một từ w, embedding matrix E là một ma trận tham chiếu thể
hiện 1-hot ow của nó với embedding ew của nó như sau:
|V |
X
f (Xij )(θiT ej + bi + b0j − log(Xij ))2
i,j=1
f là hàm trong số với Xi,j = 0 =⇒ f (Xi,j ) = 0. Với tính đối xứng mà e và θ có được trong mô
ew = Eow
(final)
hình này, word embedding cuối cùng ew
Chú ý: học embedding matrix có thể hoàn thành bằng cách sử dụng các mô hình target/context
likelihood.
Đại học Stanford
1
2
được định nghĩa như sau:
(final)
ew
9
=
ew + θw
2
mùa đông 2019
https://stanford.edu/~shervine/l/vi
CS 230 – Học sâu
Chú ý: Các phần tử riêng của các word embedding học được không nhất thiết là phải thông dịch
được.
2.6
Dịch máy
r Tổng quan – Một mô hình dịch máy tương tự với mô hình ngôn ngữ ngoại trừ nó có một
mạng encoder được đặt phía trước. Vì lí do này, đôi khi nó còn được biết đến là mô hình ngôn
ngữ có điều kiện. Mục tiêu là tìm một câu văn y như sau:
2.4
So sánh các từ
y=
r Độ tương đồng cosine – Độ tương đồng cosine giữa các từ w1 và w2 được trình bày như
sau:
similarity =
arg max
P (y <1> ,...,y <Ty > |x)
y <1> ,...,y <Ty >
w1 · w2
= cos(θ)
||w1 || ||w2 ||
r Tìm kiếm Beam – Nó là một giải thuật tìm kiếm heuristic được sử dụng trong dịch máy và
ghi nhận tiếng nói để tìm câu văn y đúng nhất tương ứng với đầu vào x.
• Bước 1: Tìm top B các từ y<1>
Chú ý: θ là góc giữa các từ w1 và w2 .
• Bước 2: Tính xác suất có điều kiện y<k>|x,y<1>,...,y<k-1>
• Bước 3: Giữ top B các tổ hợp x,y<1>,...,y<k>
r t-SNE – t-SNE (t-distributed Stochastic Neighbor Embedding) là một kĩ thuật nhằm giảm
đi số chiều của không gian embedding. Trong thực tế, nó thường được sử dụng để trực quan hoá
các word vectors trong không gian 2 chiều (2D).
Chú ý: nếu độ rộng của beam được thiết lập là 1, thì nó tương đương với tìm kiếm tham lam
naive.
r Độ rộng Beam – Độ rộng beam B là một tham số của giải thuật tìm kiếm beam. Các giá
trị lớn của B tạo ra kết quả tốt hơn nhưng với hiệu năng thấp hơn và lượng bộ nhớ sử dụng sẽ
tăng.
2.5
r Chuẩn hoá độ dài – Đến cải thiện tính ổn định, beam search thường được áp dụng mục
tiêu chuẩn hoá sau, thường được gọi là mục tiêu chuẩn hoá log-likelihood, được định nghĩa như
sau:
Mô hình ngôn ngữ
1
Objective = α
Ty
r Tổng quan – Một mô hình ngôn ngữ sẽ dự đoán xác suất của một câu P (y).
r Mô hình n-gram – Mô hình này là cách tiếp cận naive với mục đích định lượng xác suất
mà một biểu hiện xuất hiện trong văn bản bằng cách đếm số lần xuất hiện của nó trong tập dữ
liệu huấn luyện.
r Độ hỗn tạp – Các mô hình ngôn ngữ thường được đánh giá dựa theo độ đo hỗ tạp, cũng
được biết đến là PP, có thể được hiểu như là nghịch đảo xác suất của tập dữ liệu được chuẩn
hoá bởi số lượng các từ T . Độ hỗn tạp càng thấp thì càng tốt và được định nghĩa như sau:
PP =
T
Y
! T1
1
P|V |
t=1
(t)
h
log p(y <t> |x,y <1> , ..., y <t−1> )
i
t=1
Chú ý: tham số α có thể được xem như là softener, và giá trị của nó thường nằm trong đoạn
0.5 và 1.
r Phân tích lỗi – Khi có được một bản dịch tồi b
y , chúng ta có thể tự hỏi rằng tại sao chúng
ta không có được một kết quả dịch tốt y ∗ bằng việc thực hiện việc phân tích lỗi như sau:
Trường hợp
P (y ∗ |x) > P (b
y |x)
P (y ∗ |x) 6 P (b
y |x)
Nguyên nhân sâu xa
Lỗi Beam search
lỗi RNN
Biện pháp khắc phục
Tăng beam width
(t)
y ·b
yj
j=1 j
- Thử kiến trúc khác
- Chính quy
- Lấy nhiều dữ liệu hơn
Chú ý: PP thường được sử dụng trong t-SNE.
Đại học Stanford
Ty
X
10
mùa đông 2019
https://stanford.edu/~shervine/l/vi
CS 230 – Học sâu
r Điểm Bleu – Bilingual evaluation understudy (bleu) score định lượng mức độ tốt của dịch
máy bằng cách tính một độ tương đồng dựa trên dự đoán n-gram. Nó được định nghĩa như sau:
bleu score = exp
1
n
n
X
pk
3.1
với pn là bleu score chỉ trên n-gram được định nghĩa như sau:
pn =
Xử lí dữ liệu
r Data augmentation – Các mô hình học sâu thường cần rất nhiều dữ liệu để có thể được
huấn luyện đúng cách. Việc sử dụng các kỹ thuật Data augmentation là khá hữu ích để có thêm
nhiều dữ liệu hơn từ tập dữ liệu hiện thời. Những kĩ thuật chính được tóm tắt trong bảng dưới
đây. Chính xác hơn, với hình ảnh đầu vào sau đây, đây là những kỹ thuật mà chúng ta có thể
áp dụng:
countclip (n-gram)
n-gram∈y
b
X
Mẹo và thủ thuật
Dịch bởi Hoàng Minh Tuấn, Trần Tuấn Anh và Đàm Minh Tiến
!
k=1
X
3
count(n-gram)
n-gram∈y
Hình gốc
b
Lật
Xoay
- Lật đối với một
trục mà ý nghĩa của
hình ảnh được
giữ nguyên
- Xoay với một
góc nhỏ
- Mô phỏng hiệu
chỉnh đường chân
trời không chính
xác
Cắt ngẫu nhiên
Chú ý: một mức phạt ngắn có thể được áp dụng với các dự đoán dịch ngắn để tránh việc làm
thổi phồng giá trị bleu score.
2.7
Chú ý
r Attention model – Mô hình này cho phép một RNN tập trung vào các phần cụ thể của đầu
vào được xem xét là quan trọng, nó giúp cải thiện hiệu năng của mô hình kết quả trong thực tế.
0
0
Bằng việc kí hiệu α<t,t > là mức độ chú ý mà đầu ra y <t> nên có đối với hàm kích hoạt a<t >
và c<t> là ngữ cảnh ở thời điểm t, chúng ta có:
c
<t>
=
X
α
<t,t0 > <t0 >
a
X
với
t0
α
<t,t0 >
=1
- Hình ảnh không
t0
có bất kỳ sửa
Chú ý: Các attention scores thường được sử dụng trong chú thích ảnh và dịch máy.
đổi nào
Dịch chuyển màu
r Attention weight – Sự chú ý mà đầu ra y <t> nên có với hàm kích hoạt a<t
được tính như sau:
α<t,t
0
>
exp(e<t,t
=
0
0
>
với α<t,t
0
exp(e<t,t
00
>
- Các sắc thái của RGB
bị thay đổi một chút
)
- Captures noise có thể
Chú ý: độ phức tạp tính toán là một phương trình bậc hai đối với Tx .
?
Mất mát thông tin
Thay đổi độ
tương phản
>)
t00 =1
?
ngẫu nhiên có thể
được thực hiện
trên một hàng
>
Tx
X
Đại học Stanford
Thêm nhiễu
- Lấy nét ngẫu
nhiên trên
một phần
của hình ảnh
- Một số cách cắt
xảy ra khi tiếp xúc
với ánh sáng nhẹ
?
11
- Bổ sung nhiễu
- Chịu được sự thay
đổi chất lượng của
các yếu tố đầu vào
- Các phần của
hình ảnh bị
bỏ qua
- Mô phỏng khả
năng mất của
các phần trong
hình ảnh
- Thay đổi độ sáng
- Kiểm soát sự
khác biệt do
phơi sáng theo
thời gian trong
ngày
mùa đông 2019
https://stanford.edu/~shervine/l/vi
CS 230 – Học sâu
r Chuẩn hóa batch – Đây là một bước của hyperparameter γ,β chuẩn hóa tập dữ liệu {xi }.
2 là trung bình và phương sai của tập dữ liệu ta muốn chuẩn hóa, nó
Bằng việc kí hiệu µB , σB
được thực hiện như sau:
• Bước 1: Lấy một loạt dữ liệu huấn luyện và thực hiện lan truyền xuôi (forward propagation) để tính toán mất mát
xi − µ B
xi ←− γ p
+β
2 +
σB
• Bước 2: Lan truyền ngược mất mát để có được độ dốc (gradient) của mất mát theo từng
trọng số
• Bước 3: Sử dụng độ dốc để cập nhật trọng số của mạng.
Thường hoàn thành sau một lớp fully connected/nhân chập và trước lớp phi tuyến tính và mục
đích cho phép tốc độc học cao hơn và giảm thiểu sự phụ thuộc vào khởi tạo
3.2
3.2.1
Huấn luyện mạng neural
Định nghĩa
r Epoch – Trong ngữ cảnh huấn luyện mô hình, epoch là một thuật ngữ chỉ một vòng lặp mà
mô hình sẽ duyệt toàn bộ tập dữ liệu huấn luyện để cập nhật trọng số của nó.
r Mini-batch gradient descent – Trong quá trình huấn luyện, việc cập nhật trọng số thường
không dựa trên toàn bộ tập huấn luyện cùng một lúc do độ phức tạp tính toán hoặc một điểm
dữ liệu nhiễu. Thay vào đó, bước cập nhật được thực hiện trên các lô nhỏ (mini-batch), trong
đó số lượng điểm dữ liệu trong một lô (batch) là một siêu tham số (hyperparameter) mà chúng
ta có thể điều chỉnh.
r Hàm mất mát – Để định lượng cách thức một mô hình nhất định thực hiện, hàm mất mát
L thường được sử dụng để đánh giá mức độ đầu ra thực tế y được dự đoán chính xác bởi đầu
ra của mô hình là z.
3.3
3.3.1
Khởi tạo trọng số
r Khởi tạo Xavier – Thay vì khởi tạo trọng số một cách ngẫu nhiên, khởi tạo Xavier cho
chúng ta một cách khởi tạo trọng số dựa trên một đặc tính độc nhất của kiến trúc mô hình.
r Cross-entropy loss – Khi áp dụng phân loại nhị phân (binary classification) trong các mạng
neural, cross-entropy loss L(z,y) thường được sử dụng và được định nghĩa như sau:
h
Tinh chỉnh tham số
i
r Transfer learning – Huấn luyện một mô hình deep learning đòi hỏi nhiều dữ liệu và quan
trọng hơn là rất nhiều thời gian. Sẽ rất hữu ích để tận dụng các trọng số đã được huyến luyện
trước trên các bộ dữ liệu rất lớn mất vài ngày / tuần để huấn luyện và tận dụng nó cho trường
hợp của chúng ta. Tùy thuộc vào lượng dữ liệu chúng ta có trong tay, đây là các cách khác nhau
để tận dụng điều này:
L(z,y) = − y log(z) + (1 − y) log(1 − z)
Kích thước tập
huấn luyện
3.2.2
Mô phỏng
Giải thích
Tìm trọng số tối ưu
r Lan truyền ngược – Lan truyền ngược (backpropagation) là một phương thức để cập nhật
các trọng số trong mạng neural bằng cách tính toán đầu ra thực tế và đầu ra mong muốn. Đạo
hàm tương ứng với từng trọng số w được tính bằng quy tắc chuỗi.
Nhỏ
Trung bình
Sử dụng phương thức này, mỗi trọng số được cập nhật theo quy luật:
Lớn
Cố định các tầng
huấn luyện trọng
số trên hàm softmax
Cố định hầu hết các tầng
∂L(z,y)
w ←− w − α
∂w
r Cập nhật trọng số – Trong một mạng neural, các trọng số được cập nhật như sau:
Đại học Stanford
12
mùa đông 2019
https://stanford.edu/~shervine/l/vi
CS 230 – Học sâu
3.3.2
Tối ưu hội tụ
LASSO
r Tốc độ học – Tốc độ học (learning rate), thường được kí hiệu là α hoặc đôi khi là η, cho biết
mức độ thay đổi của các trọng số sau mỗi lần được cập nhật. Nó có thể được cố định hoặc thay
đổi thích ứng. Phương thức phổ biến nhất hiện nay là Adam, đây là phương thức thích nghi với
tốc độ học.
- Giảm hệ số về 0
- Tốt cho việc lựa chọn biến
Ridge
Làm cho hệ số nhỏ hơn
Elastic Net
Đánh đổi giữa việc lựa
chọn biến và hệ số nhỏ
r Tốc độ học thích nghi – Để cho tốc độ học thay đổi khi huấn luyện một mô hình có thể
giảm thời gian huấn luyện và cải thiện giải pháp tối ưu số. Trong khi tối ưu hóa Adam (Adam
optimizer) là kỹ thuật được sử dụng phổ biến nhất, nhưng những phương pháp khác cũng có
thể hữu ích. Chúng được tổng kết trong bảng dưới đây:
Phương
thức
Momentum
Giải thích
- Làm giảm dao động
- Cải thiện SGD
Cập nhật của w
Cập nhật của b
w − αvdw
b − αvdb
dw
w − α√
sdw
db
b ←− b − α √
sdb
... + λ||θ||1
λ∈R
... + λ||θ||22
λ∈R
h
... + λ (1 − α)||θ||1 + α||θ||22
i
λ ∈ R,α ∈ [0,1]
- 2 tham số để tinh chỉnh
- lan truyền Root Mean Square
RMSprop
- Thuật toán tăng tốc độ học
bằng kiểm soát dao động
- Ước lượng Adaptive Moment
Adam
- Các phương pháp phổ biến
- 4 tham số để tinh chỉnh
w − α√
vdw
sdw + b ←− b − α √
r Dừng sớm – Kĩ thuật chính quy này sẽ dừng quá trình huấn luyện một khi mất mát trên
tập thẩm định (validation) đạt đến một ngưỡng nào đó hoặc bắt đầu tăng.
vdb
sdb + Chú ý: những phương pháp khác bao gồm Adadelta, Adagrad và SGD.
3.4
Chính quy
r Dropout – Dropout là một kỹ thuật được sử dụng trong các mạng neural để tránh overfitting
trên tập huấn luyện bằng cách loại bỏ các nơ-ron (neural) với xác suất p > 0. Nó giúp mô hình
không bị phụ thuộc quá nhiều vào một tập thuộc tính nào đó.
Thói quen tốt
r Overfitting batch nhỏ – Khi gỡ lỗi một mô hình, khá hữu ích khi thực hiện các kiểm tra
nhanh để xem liệu có bất kỳ vấn đề lớn nào với kiến trúc của mô hình đó không. Đặc biệt, để
đảm bảo rằng mô hình có thể được huấn luyện đúng cách, một batch nhỏ (mini-batch) được
truyền vào bên trong mạng để xem liệu nó có thể overfit không. Nếu không, điều đó có nghĩa là
mô hình quá phức tạp hoặc không đủ phức tạp để thậm chí overfit trên batch nhỏ (mini-batch),
chứ đừng nói đến một tập huấn luyện có kích thước bình thường.
Ghi chú: hầu hết các frameworks deep learning đều có thiết lập dropout thông qua biến tham số
’keep’ 1 − p.
r Kiểm tra gradien – Kiểm tra gradien là một phương thức được sử dụng trong quá trình
thực hiện lan truyền ngược của mạng neural. Nó so sánh giá trị của gradien phân tích (analytical
gradient) với gradien số (numerical gradient) tại các điểm đã cho và đóng vai trò kiểm tra độ
chính xác.
r Weight regularization – Để đảm bảo rằng các trọng số không quá lớn và mô hình không bị
overfitting trên tập huấn luyện, các kỹ thuật chính quy (regularization) thường được thực hiện
trên các trọng số của mô hình. Những kĩ thuật chính được tổng kết trong bảng dưới đây:
Đại học Stanford
3.5
13
mùa đông 2019
https://stanford.edu/~shervine/l/vi
CS 230 – Học sâu
Công thức
Bình luận
Gradien số
Gradien phân tích
df
f (x + h) − f (x − h)
(x) ≈
dx
2h
df
(x) = f 0 (x)
dx
- Đắt, Mất mát phải được
tính hai lần cho mỗi chiều
- Được sử dụng để xác
minh tính chính xác của
việc triển khai phân tích
- Đánh đổi trong việc chọn
h không quá nhỏ
(mất ổn định số) cũng không
quá lớn
- Kết quả ’Chính xác’
- Tính toán trực tiếp
- Được sử dụng trong quá
trình triển khai cuối cùng
(xấp xỉ độ dốc kém)
?
Đại học Stanford
?
?
14
mùa đông 2019
Download