giới thiệu sơ về khái niệm Error rate, các dạng bài toán của ILSVRC qua các năm(2010-2015) và một số phương pháp khởi tạo trọng số: Xavier initialization và Kaiming initialization.
3. Top 1 Error : mẫu sau khi thử nghiệm cho ra kết quả có
xác suất cao nhất không đúng với label chính xác.
𝑇𝑜𝑝 1 𝑒𝑟𝑟𝑜𝑟 𝑟𝑎𝑡𝑒 =
𝑠ố 𝑙ượ𝑛𝑔 𝒕𝒐𝒑 𝟏
𝑇ổ𝑛𝑔 𝑠ố 𝑙ượ𝑛𝑔 ℎì𝑛ℎ ả𝑛ℎ
Top 5 Error : mẫu sau khi thử nghiệm cho ra 5 kết quả
có xác suất cao nhất mà 5 kết quả đó không có chứa
label chính xác
𝑇𝑜𝑝 5 𝑒𝑟𝑟𝑜𝑟 𝑟𝑎𝑡𝑒 =
𝑠ố 𝑙ượ𝑛𝑔 𝒕𝒐𝒑 𝟓
𝑇ổ𝑛𝑔 𝑠ố 𝑙ượ𝑛𝑔 ℎì𝑛ℎ ả𝑛ℎ
Top Error Rate
** Tùy theo từng dạng bài toán sẽ có cách tính Error rate khác nhau.
4. Thứ hạng, cấp bậc. Dựa trên điểm số ở Error rate, với các
đội có tỷ lệ error càng thấp sẽ được tranh hạng càng cao.
Rank
6. ImageNet
- Là một cơ sở dữ liệu hình ảnh với quy mô lớn
- Năm 2010, tổ chức cuộc thi về Thử thách nhận diện
trực quan quy mô lớn của ImageNet Challenge
(ILSVRC – ImageNet Large Scale Visual Recognition)
Website : http://www.image-net.org/
7. ILSVRC 2010 task
Classification: Từ các thuật toán sẽ gán tối đa 5 đối
tượng nhãn vào mỗi ảnh. Và các đối tượng nhãn đó sẽ
được sắp xếp theo thứ tự giảm dần.
http://image-net.org/challenges/LSVRC/2010/
8. Classification
Input: tập dữ liệu N hình ảnh với mỗi ảnh được gán label
Output: class label
Evaluation metric: Độ chính xác accuracy
Error cho dạng bài toán Classification:
𝑒 =
1
𝑛
.
𝑘
𝑚𝑖𝑛𝑖 𝑑 𝑐𝑖, 𝐶 𝑘
với 𝑑 𝑐𝑖, 𝐶 𝑘 =
0 𝑖𝑓 𝑥 = 𝑦
1
𝑐𝑖: label dự đoán với 𝑖 = 1 … 5
𝐶 𝑘: Ground truth label với k = 1 … 𝑛
𝑛 ∶ số lượng class labels
9. ILSVRC 2011 task
1. Classification
2. Classification with localization
Object Localization = Image Classification + Object Localization
Không chỉ là gán nhãn label cho đối tượng mà còn
phải định vị vị trí bounding box (khung giới hạn) mô tả
đối tượng.
Localization: định vị ví trí cũa đối tượng
http://image-net.org/challenges/LSVRC/2011/
10. Object Localization
Error cho dạng bài toán Location:
𝑒 =
1
𝑛
.
𝑘
𝑚𝑖𝑛𝑖 𝑚𝑖𝑛 𝑚max{𝑑 𝑐𝑖, 𝐶 𝑘 , 𝑓 𝑏𝑖, 𝐵 𝑘𝑚 }
với 𝑓 𝑏𝑖, 𝐵 𝑘 =
0
1
𝑏𝑖: bounding boxes (khung giới hạn) với 𝑖 = 1 … 5
𝐵 𝑘𝑚: Ground truth bounding boxes với m = 1 … 𝑀 𝑘
𝑀 𝑘: số lượng trường hợp của đối tượng thứ k trên image
Input: Image
Output: khung dữ liệu trong image (x, y, w, h)
Evaluation metric: Intersection over Union
11. Object Localization (2)
Intersection over Union - IoU: chỉ số đánh giá được
sử dụng để đo độ chính xác . Gồm có 2 giá trị:
Ground-truth & Predicted bounding box.
13. ILSVRC 2012 task
1. Classification
2. Classification with localization
3. Fine-grained classification
Fine-grained classification: phân loại các loài / đối tượng
gần giống nhau. Các đối tượng có thể khác nhau nhưng có
chung cơ cấu / bộ phận cấu tạo
http://image-net.org/challenges/LSVRC/2012/
14. ILSVRC 2013 task
1. Classification
2. Classification with localization
3. Detection
Object Detection: Nhận diện nhiều vật thể - định vị các
đối tượng trong image và xác định từng đối tượng.
http://image-net.org/challenges/LSVRC/2013/
17. ILSVRC 2015 task
1. Object detection (DET)
2. Object localization (CLS-LOC)
3. Object detection from video (VID)
4. Scene classification
Object detection from video : Nhận diện các đối tượng
từ tập video.
Scene classification : Phân loại ảnh theo ngữ cảnh.
Không chỉ tập chung đối tượng chính mà còn dựa trên
background các đối tượng phụ trong ảnh để phân loại.
http://image-net.org/challenges/LSVRC/2015/
19. Segmentation
- Bài toán phân vùng ảnh: chia bức ảnh ra thành nhiều
phần khác nhau, dùng để xác định đối tượng và xác
định đường biên chính xác cho mỗi pixel trong ảnh.
- Gồm 2 dạng :
Semantic Segmentation
Instance Segmentation
20. Segmentation (2)
- COCO detection challenge: dataset Microsoft COCO –
Common Objects in Context: đánh mạnh vào các bài
toán liên quan đến phát hiện đánh dấu và sự phân chia
đường biên của các đối tượng.
- PASCAL VOC challenge (20 classes): dataset cho việc
xây dựng và đánh giá các thuật toán để phân loại hình
ảnh, phát hiện đối tượng, và phân khúc.
Input: Image
Output: regions (vùng), structures (cấu trúc) có
các classes khác nhau.
http://host.robots.ox.ac.uk/pascal/VOC/ http://host.robots.ox.ac.uk/pascal/VOC/
22. Weight
Trọng số ( kí hiệu W) có tầm quan trọng trong NN
- Trọng số quá nhỏ sau khi variance input qua nhiều
lớp thì giá trị nhỏ dần vượt ngưỡng cho phép (vd trong
hàm sigmoid là đến mức quá thấp không thể thấy non-
linearity)
- Trọng số quá lớn variance tăng qua các lớp trở nên
phẳng hơn dẫn đến hiện tượng bão hòa mất đi độ
gradient
- Thông thường chúng ta đều cho xử lí trọng số 1 cách
random – navite scheme
23. Variance – phương sai
“Trung bình của bình phương khoảng cách của mỗi điểm dữ
liệu đến điểm trung bình” giá trị trung bình của bình
phương độ lệch
▷ Kí hiệu: 𝑉𝑎𝑟 𝑥 , 𝜎2 𝑥
▷ Có giá trị ≥ 0
▷ Variance của mẫu (𝑥1 … 𝑥 𝑛)
▷ 𝜇: giá trị trung bình / giá trị kì vọng của tập mẫu
𝑉𝑎𝑟 𝑥 = 𝐸((𝑥 − 𝜇)2)
𝜎2 𝑥 =
1
𝑛
𝑖=1
𝑛
(𝑥 − 𝜇)2
Dữ liệu tốt Variance dao động ở khoảng giá trị trung
bình input ≈ output
24. Xavier / Glorot Initialization
- Người sáng lập: Xavier Glorot và Yoshua Bengio:
Understanding the difficulty of training deep
feedforward neural networks [1]
- Variance (phương sai) của Input = Ouput
- Phụ thuộc vào Lớp Activation function
- Thích hợp sử dụng cho các layer có hàm sigmoid /
Tanh làm activation function
[1] https://towardsdatascience.com/hyper-parameters-in-action-part-ii-
weight-initializers-35aee1a28404
25. Xavier / Glorot Initialization (2)
Giá trị x : inputs / activation values từ layer trước
W: trọng số
Variance:
𝑉𝑎𝑟 𝑥𝑊 = 𝐸 𝑥 2
𝑉𝑎𝑟 𝑤 + 𝐸 𝑊 2
𝑉𝑎𝑟 𝑥 + 𝑉𝑎𝑟 𝑥 𝑉𝑎𝑟(𝑊)
Giả sử cho giá trị x = W = 0, ta có:
𝐸 𝑥 = 𝐸 𝑊 = 0 ⇒ 𝑉𝑎𝑟 𝑥𝑊 = 𝑉𝑎𝑟 𝑥 𝑉𝑎𝑟 𝑊
26. Xavier / Glorot Initialization (3)
Ex: Cho 2 hidden layer X và Y và có fully connected. Chú trọng
xem xét trọng số giữa 2 layer đó. Và Variance cả activations
(dọc theo forward pass) và gradients (lan theo backpropagate)
Tanh activation function
27. Xavier / Glorot Initialization (4)
Sử dụng hàm Tanh (activation là tuyến tính) có khoảng interval[-1,1]
28. Xavier / Glorot Initialization (5)
Giả sử x và W không phụ thuộc nhau nhưng phân giống nhau.
Variance ở y1 sẽ là :
𝑦1 = 𝑥1 𝑊11 + 𝑥2 𝑊21+ 𝑥3 𝑊31
Var(𝑦1) = 𝑉𝑎𝑟(𝑥1 𝑊11 + 𝑥2 𝑊21+ 𝑥3 𝑊31)
𝑉𝑎𝑟(𝑦1) = 𝑉𝑎𝑟(𝑥1 𝑊11) + 𝑉𝑎𝑟(𝑥2 𝑊21)+ Var(𝑥3 𝑊31)
Var(𝑦1) = 𝑖=1
3
𝑉𝑎𝑟 𝑥𝑖 𝑉𝑎𝑟(𝑊𝑖1)
Var 𝑦1 = 𝑛𝑖 𝑉𝑎𝑟 𝑥 𝑉𝑎𝑟(𝑊𝑖1)
Mục tiêu là để variance có thể dọc hết tất cả layer
variance x = variance y
Var 𝑦1 = 𝑉𝑎𝑟 𝑥 ⇔ 𝑉𝑎𝑟 𝑊𝑖1 =
1
𝑛 𝑖
=
1
𝑓𝑎𝑛 𝑖𝑛
𝒇𝒂𝒏𝒊𝒏: 3 units in following layer
29. Xavier / Glorot Initialization (6)
Công thức trọng số tổng quát từ Normal distribution
(random weights) cho tất cả các hidden layer là:
𝑉𝑎𝑟 𝑊 =
1
𝑓𝑎𝑛 𝑖𝑛
; σ 𝑊 =
1
𝑓𝑎𝑛 𝑖𝑛
Công thức trọng số tổng quát từ Uniform distribution (ước
tính số lớn nhất và nhỏ nhất trong khoảng limits) cho tất cả
các hidden layer là:
𝑉𝑎𝑟 𝑈𝑛𝑖𝑓𝑜𝑟𝑚(−𝑙𝑖𝑚𝑖𝑡, 𝑙𝑖𝑚𝑖𝑡) =
𝑙𝑖𝑚𝑖𝑡2
3
Var 𝑊 =
1
𝑓𝑎𝑛𝑖𝑛
⇔ 𝑙𝑖𝑚𝑖𝑡 =
3
𝑓𝑎𝑛𝑖𝑛
30. Xavier / Glorot Initialization (7)
Tương tự như phần backpropagation:
∆ 𝑥1
= ∆ 𝑦1
𝑊11 + ∆ 𝑦2
𝑊12+ ∆ 𝑦3
𝑊13+ ∆ 𝑦4
𝑊14+ ∆ 𝑦5
𝑊15
…
Var(∆ 𝑥1
) =
𝑗=1
5
𝑉𝑎𝑟 ∆ 𝑦 𝑗
𝑉𝑎𝑟(𝑊1𝑗)
Var(∆ 𝑥1
) = 𝑛𝑗 𝑉𝑎𝑟 ∆ 𝑦 𝑉𝑎𝑟(𝑊1𝑗)
Mục tiêu là để variance có thể dọc hết
tất cả layer
Var ∆ 𝑥1
= Var ∆ 𝑦
⇔ 𝑉𝑎𝑟 𝑊1𝑗 =
1
𝑛𝑗
=
1
𝑓𝑎𝑛 𝑜𝑢𝑡
𝒇𝒂𝒏 𝒐𝒖𝒕: 5 units in following layer
31. Xavier / Glorot Initialization (8)
Kết hợp Forward và Backward passes
Normal distribution
Uniform distribution
32. Kaiming / He Initialization
- Người sáng lập: Kaiming He: Delving Deep into Rectifiers
(Surpassing Human-Level Performance on ImageNet
Classification)
- Cân bằng variance của activation function
- Thích hợp sử dụng cho các layer có hàm kích hoạt ReLU.
Trường hợp cần tăng (gấp đôi) trọng số để bù cho
variance bị giảm phân nửa.
- Thực thi : variance_scaling_initializer( ) – được mặc định
ReLU activation function
33. Kaiming / He Initialization (2)
Hàm ReLU biến 1 nửa giá trị Z-values (phần giá trị âm) thành giá
trị không nên gây ảnh hưởng đến variance cần tang gâp đôi
giá trị trọng số
Cách thức tương tự như Glorot initialization:
34. Kaiming / He Initialization (3)
Normal distribution
Uniform distribution
35. Thực thi Xavier
Normal distribution
Uniform distribution
keras.initializers.glorot_normal(seed=None)
Dựa trên sự phân phối sắp xếp từ :
0 với stddev = sqrt(2 / (fan_in + fan_out))
keras.initializers.glorot_uniform(seed=None)
Dựa trên sự phân phối sắp xếp [-limit,limit] với
limit là sqrt(6 / (fan_in + fan_out))
36. Thực thi Kaiming
Normal distribution
Uniform distribution
keras.initializers.he_normal(seed=None)
Dựa trên sự phân phối sắp xếp từ :
0 với stddev = sqrt(2 / fan_in)
keras.initializers.he_uniform(seed=None)
Dựa trên sự phân phối sắp xếp [-limit,limit] với
limit là sqrt(6 / fan_in)