1
2
3
4
5
6
7
8
9
10
11
12
| - Word2vec dùng để biến một từ thành một vector số thực
- phương pháp cơ bản nhất là dùng one-hot vector
- Mỗi vector sẽ có độ dài bằng số từ trong từ điển
- Mỗi vector có một phần tử bằng 1 tại vị trí tương ứng với vị trí của từ đó trong từ điển
- Nhược điểm
+ Độ dài của vector rất lớn
+ không xác định được sự tương quan giữa các từ vì tích vô hướng của nó bằng 0
- word2vec giúp biến 1 từ ở dạng one-hot vector thành 1 vector mới với số chiều
nhỏ hơn rất nhiều (300-1000) và tính được sự tương quan giữa hai từ đưa vào
tích vô hướng giữa hai vector biểu diễn nó.
- Về cơ bản thì word2vec là một mạng neural với 1 hidden layer, không có
activation function, layer cuối là một softmax regression.
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| - Nó dùng để phân biệt human vs bot
- Ví du:
+ Gõ lại các từ trong một bức ảnh mà chữ đã bị làm méo mó.
+ Đọc số nhà trong một bức ảnh thực
+ Tìm ảnh tương ứng trong rất nhiều ảnh
+ Xác định những ô vuông nhỏ trong một ảnh lớn có chứa một vật thể
- Mục đích thú vị của captcha:
+ Thu thập nhãn cho dữ liệu (chưa có nhãn)
+ Bằng cách cho người dugnf làm nhiều bài test (có bài test đã có nhãn, có bài chưa có nhãn)
+ Nếu kết quả đúng (ở bài test đã có nhãn) --> human --> những đáp án (ở bài test chưa có nhãn)
sẽ có độ tin cậy cao. --> Cách rất hay để thu thập nhãn của dữ liệu.
- Có thể sử dụng đoạn văn bản ngắn (post/comment) và trắc nghiệm người dùng về sắc thái,
nội dung --> thu thập nhãn của các đoạn văn đó --> classifier
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
| '''
- Information Retrieval la tim nhung items trong csdl lien quan query.
- Vi du: google search hay google search image
- Neu csdl la hinh anh --> image retrieval (IR).
+ Concetp-based IR: tim kiem dua vao thong tin cua anh (caption, labels,
tags, phan text xung quanh). vi du nhu search hinh anh bang 1 text query
+ Content-based IR: tim kiem dua vao noi dung anh (pixel anh). vi du,
tim kiem hinh anh bang query hinh anh.
- Image classification: 1 buc anh se duoc phan vao 1 hoac mot vai class.
- IR: Ket qua tra ve co the thuoc nhieu class khac nhau (challenge)
- Voi IR: phuong phap pho bien la Similarity search
+ Kho khan: 'bieu dien' anh duoi dang vector co the 'tinh toan' duoc do
'gan nhau' giua cac buc anh. --> Feature extraction. --> Neu dataset
qua lon --> thoi gian. --> Kho khan thu nhat
+ Co the giai quyet kho khan thu nhat --> DL --> su dung mo hinh CNN cho
image classification noi tieng (tuc la no duoc trained voi csdl lon va
dat ket qua cao) --> feature vector co do dai giong nhau cho moi buc
anh. Cu the, dau ra cua layer gan cuoi cung (truoc softmax hoac svm layer)
duoc dung nhu 1 feature tot (co do dai khoang vai nghin) --> Neu tinh toan
va luu tru thi bat kha thi --> kho khan thu 2
+ De giai quyet kho khan 2, thuong dung binary hashing --> 'map' cac
feature tren thanh 1 vector nhi phan co do dai nho (32, 64) --> vector
nay goi la 'hash code'
+ keyword: deep binary hashing for image retrieval.
'''
print('Binary Hashing for information Retrieval')
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| - Information Retrieval là tìm những items trong csdl liên quan đến query
- Ví dụ: google search, hoặc google search image
- Nếu csdl là hình ảnh --> image retrieval (IR)
+ Concept-based IR: tìm kiếm dựa vào những thông tin của ảnh (caption, labels, tags)
+ Ví dụ: như search hình ảnh bằng 1 text query
+ Content-based IR: tìm kiếm dựa vào nội dùng của ảnh (pixel image)
+ Ví dụ: tìm kiếm hình ảnh bằng query hình ảnh.
- Image classification: một bức ảnh sẽ được phân vào 1 hoặc một vài lớp.
- IR: kết quả trả về có thể thuộc nhiều class khác nhau, đây là một thử thách.
- Với IR: phương pháp phổ biến là Simalarity search.
+ Khó khăn: 'biểu diễn' ảnh dưới dạng vector có thể 'tính toán' được độ 'gần nhau'
giữa các bức ảnh --> người ta gọi đó là feature extraction. Nếu dataset quá lớn
sẽ ảnh hưởng về mặt thời gian (khó khăn 1)
+ Có thể giải quyết khó khăn 1: Deep learning --> sử dụng mô hình CNN cho image classification
nổi tiếng như (tức là nó được trained với csdl lớn và đạt kết quả cao)
+ --> Tìm được feature vector có độ dài giống nhau cho mỗi bức ảnh.
+ Cụ thể, đầu ra của layer gần cuối cùng (trước softmax hoặc svm layer được dùng như
1 feature tốt có độ dài khoảng vài nghìn. --> Nếu tính toán thì cũng khá phức tạp (khó khăn 2)
+ Để giải quyết khó khăn 2, thường dùng binary hashing --> 'map' các feature trên
thành 1 vector nhị phân có độ dài nhỏ (khoảng 64) --> vector này gọi là hash code.
- Keyword: deep binary hashing for image retrieval
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
| '''
- Y tuong tu k-means clustering.
- Gia su, viec tim kiem rat nhieu tren 1 ti buc anh --> ton thoi gian.
- Thay vao do, cluster cac buc anh thanh 1 trieu cluster (moi cluster
co 1 centroid) --> viec tim kiem cac anh gan giong voi 1 buc anh (query)
duoc thuc hien sau 2 buoc:
+ b1: centroid gan nhat voi query se duoc chon.
+ b2 cac anh trong cluster ung voi centroid se chon de so sanh anh query.
--> day la ki thuat xap xi moi vector bang 1 vector khac (trong truong
hop nay la centroid), keyword: vector quantization (VQ)
--> viec tao clustering tu 1 ti buc anh ra 1 trieu clusters (trainning
processing) va so sanh 1 query voi tung clster (test process) --> ton
thoi gian --> de xuat su dung Product Quantization (PQ)
- Trong PQ, moi vector duoc chia doi thanh 2 vector con. Nhu vay, se co
2 nhom, moi nhom co 1 ti vector con. Thuc hien keam tren moi nhom voi k
= 1000 --> moi nhom co 1000 centroids, --> 2000 centroids (sub-centroid)
--> full centroid (1000 * 1000 = 1M). Khi test chia query thanh 2 phan va
tim centroid gan nhat ung voi moi query do. Only co 2000 sub --> tinh toan
nhanh hon rat nhieu.
- Flickr dung ky thuat dua tren PQ, goi la LOPQ.
'''
print('Similarity search at Flickr')
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| - Ý tưởng từ k-means clustering
- Giả sử, việc tìm kiếm rất nhiều trên một tỉ bức ảnh --> tốn thời gian.
- Thay vào đó, cluster các bức ảnh thành 1 triệu cluster (mỗi cluster có 1 centroid)
việc tìm kiếm các ảnh gần giống với 1 bức ảnh (query) được thực hiện theo 2 bước:
+ b1: centroid gần nhất với query sẽ được chọn
+ b2: các ảnh trong cluster ứng với centroid sẽ được chọn để so sảnh ảnh query.
+ Đây là kỹ thuật xấp xỉ mỗi vector bằng 1 vector khác (trường hợp này là centroid)
+ keyword: vector quantization (VQ)
+ Việc tạo clustering từ 1 tỉ bức ảnh ra 1 triệu cluster (trainning process) và so sánh
1 query với từng cluster (test process) --> tốn thời gian.
+ Đề xuất dùng Product Quantization (PQ)
- Trong PQ, mỗi vector được chia đôi thành 2 vector con (như vậy sẽ có 2 nhóm)
mỗi nhóm có 1 tỉ vector con.
+ thực hiện kmeans trên mỗi nhóm với k = 1000, chúng ta sẽ có 2000 sub-centroid.
+ full centroid là 1 triệu. Khi test chia query thành 2 phần và tìm centroid trên mỗi nhóm
+ Chỉ có 2000 sub nên việc tính toán nhanh hơn rất nhiều.
- Flickr dùng kỹ thuật dựa trên PQ (gọi là LOPQ)
|
1
2
3
4
5
6
| - các phép đo thường được sử dụng với dữ liệu chênh lệch: Precision, Recall, F1 score, ROC
+ Phổ biến nhất là Precision, Recall
- Cần phải 'Resampling' để hai classes có dữ liệu tương đối nhau.
- thường thì under-sampling hoặc over-sampling
- đối với bài toán binary classification (imbalanced) thì dùng logistic regression sẽ tốt.
- Có thể dùng ngưỡng là 0.35 (thay dùng vì ngưỡng 0.5)
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
| '''
- Truoc day, image classification thuong duoc chia thanh 2 buoc:
+ feature engineering (su dung cho image)
# SIFT (scale invariant feature transform)
# SURF (speed-up robust feature)
# HOG (histogram of Oriented Gradients)
# LBP (Local binary patteern)
+ train a classifier.
# Multi-class SVM
# Softmax regression
# Discriminative Dictionary Learning
# Random Forest
- DL phat trien, nhieu mo hinh cho image (ResNet, VGG) voi csdl imagenet
- Nhin chung, cac mo hinh nay gom nhieu layers. Cac layer phia truoc
thuong la (Convolutional layers) ket hop void nonlinear (activation
function) va pooling layer (goi chung la ConvNet). Layer cuoi la (
Fully Connected Layer) va thuong la Softmax Regression.
+ So luong units o layer cuoi bang voi so luong classes (imagenet la 1000)
+ Layer gan cuoi (second to last layer) co the coi la "feature vector"
va softmax regression chinh la classifier duoc su dung.
- Transfer learning la phuong phap su dung mo hinh co san duoc trained
tu truoc, va su dung mot vai ky thuat khac de giai quyet bai toan.
- Khai niem 'ConvNet as fixed feature extractor' - tuc la su dung truc
tiep 'vector' o 'second to last layer' lam 'feature vector'. Sau do,
fine-tuning se giup ket qua tot hon.
- Fine-tuning the convnet: huong tiep can nay la su dung cac weights da
duoc trained tu cac mo hinh ConvNet nhu la khoi tao cho mo hinh moi voi
du lieu moi va su dung pp back propagation de train lai mo hinh moi hoac
train lai mot so layer cuoi --> de tranh overfitting.
+ Nhung layer dau trong convNet thuong extract dac tinh chung cua anh (
cac canh - goi la low level features), cac layer cuoi (dac trung rieng
cua csdl - high level features) --> train cac layer cuoi -> hieu qua.
Chu y: khi tiep tuc train cac mo hinh nay, can chon learning-rate thap.
'''
print('transfer learning cho bai toan phan loai anh')
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
| - Trước đây, image classification thường được chia thành 2 bước:
+ feature engineering (su dung cho image)
# SIFT (scale invariant feature transform)
# SURF (speed-up robust feature)
# HOG (histogram of Oriented Gradients)
# LBP (Local binary patteern)
+ train a classifier.
# Multi-class SVM
# Softmax regression
# Discriminative Dictionary Learning
# Random Forest
- Deep learning phát triển, nhiều mô hình cho image (ResNet, VGG) với csdl imagenet
- Nhìn chung, các mô hình này gồm rất nhiều layers. Các layer phía trước
thường là (Convolutional layers) kết hợp với nonlinear (activation function)
và pooling layer (gọi chung là ConvNet). Layer cuối là (Full Connected Layer)
và thường sử dụng Softmax.
+ Số lượng units ở layers cuối bằng với số lượng classes (imagenet là 1000)
+ Layer gần cuối (second to last layer) có thể coi là "feature vector" và softmax regression
chính là classifier được sử dụng.
- Transfer learning là phương pháp sử dụng mô hình có sẵn được trained từ trước
và sử dụng một vài kỹ thuật khác để giải quyết bài toán.
- Khái niệm 'ConvNet as fixed feature extrator' tức là sử dụng trực tiếp 'vector'
ở 'second to last layer' làm 'feature vector'. Sau đó, fine-tuning sẽ giúp kết quả tốt.
- Fine-tuning the convNet: hướng tiếp cận này là sử dụng các weights đã được trained từ các
mô hình ConvNet như là khởi tạo cho mô hình mới với dữ liệu mới và sử dụng phương pháp
back propagation để train lại mô hình mới hoặc train lại một số layer cuối --> tranh overfitting
+ Nhưng layer đầu trong convnet thường extract đặc trưng của anh (các cạnh - low level),
các layer cuối (đặc trưng riêng của csdl - high level) --> train các layer cuối tốt hơn.
Chú ý: khi tiếp tục train cho các mô hình này, learning-rate thấp.
|
Hết.