2 Khi kin th hc máy
2.1 M n gn ron tích ch p Convolution Neural Network (CNN)
Thu t ng H c Sâu hay M ng Neural sâu đ u ch Artifical Neural Networks(ANN) v i nhi u l p. Vài th p k qua, nó đã đ c xem nh m t trong nh ng công c m nh m nh t, và tr nên ph bi n trong th c t khi mà nó có th x lý m t l ng l n d li u. M i quan tâm trong vi c có các l p n sâu h n đã b t đ u đ c ph bi n trong nhi u l nh v c khác nhau; đ c bi t trong phát hi n m u (Pattern Recognition).
M t trong nh ng m ng n ron sâu ph bi n nh t đó là M ng N ron Tích ch p (Convolutional Neural Network CNN) [59]. CNN có nhi u t ng: bao g m t ng tích ch p, t ng khơng tuy n tính, t ng t ng h p, t ng k t n i tồn ph n.
2.1.1.1 T ng tích ch p (Convolutional layer)
T ng tích ch p s d ng các b l c đ th c hi n phép tích ch p khi đ a chúng đi
qua các đ 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 cF và đ tr t (stride)S. K t qu đ u raOđ c g i là feature
map hay activation map.
2.1.1.2 L p khơng tuy n tính (Nonelinearity layer)
L p ti p theo sau l p tích ch p là l p khơng tuy n tính. L p khơng tuy n tính có th đ c s d ng đ thay đ i ho c c t gi m output sinh ra. L p này đ c áp d ng đ bão hòa output ho c gi m output sinh ra.
2.1.1.3 T ng Pooling (Pooling Layer)
T ng pooling là m t phép gi m m u (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.
2.1.1.4 L p k t n i toàn ph n (Fullyconnected Layer)
T ng k t n i đ y đ nh n đ u vào là các d li u đ c đ 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.
2.1.2 Các cơng th c tốn h c
Tính t ng thích c a tham s trong t ng tích ch p B ng cách ký hi uI 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àiOc a feature map theo m t chi u b ng công th c:
O= (I−F +Pstart+Pend)
S + 1
Tr ng th c m Receptive field Tr ng th c m t i t ngf t i t ngk là vùng
đ c ký hi uRkXRkc a đ u vào nh ng pixel c a actiation 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 jvàSi là giá tr đ tr t c a t ngivà đ thu n ti n, ta m c đ nhS0= 1, tr ng c m th c a t ngk đ c tính tốn b ng cơng th c Rk= 1 + k j=1 (Fj −1) j=1 i=0 Si 2.1.3 Kh n ng c a m ng CNN
CNN khác v i m t ch ng trình máy tính thơng th ng. M t s tính ch t khi n nó tr nên đ c bi t nh kh n ng h c t ng thích: CNN có th b t ch c não ng i trong cách h c đ làm m t công vi c khi ta hu n luy n cho nó, trong khi m t ch ng trình máy tính thơng th ng ch có th x lý nh ng cơng vi c mà ta đã quy đ nh s n cho nó. Ngồi ra CNN có kh n ng làm vi c ngay c trong tr ng h p d li u b nhi u, thi u, ... trong khi đi u đó là khơng th đ i v i ch ng trình máy tính thơng th ng (s d ng ngay khi nó g p m t s b t th ng trong d li u).
Vì th mà CNN có th đ c s d ng trong phân lo i d li u, phát hi n m u và các ng d ng mà trong đó d li u khơng th c s rõ ràng. V i m t v n đ /tác v hoàn toàn m i, CNN r t t t trong vi c trích xu t đ c tr ng (feature extractor). CNN đang tr nên ph bi n trong vi c phân lo i nh, video.
2.1.4 M t s hàm kích ho t (activation function) phi tuy nRectified Linear unit Rectified Linear unit
T ng rectified linear unit (ReLU) là m t hàm kích ho tgđ 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.
g(z) =max(0, z)
Softmax
ch a các giá tr x∈Rnvà cho ra là m t vector g m các xác su tp∈Rnthông qua m t
hàm softmax cu i ki n trúc. Nó đ c đ nh ngh a nh sau:p= pnp1 v ipi= xi
n j=1xj
2.1.5 Hu n luy n CNN
Gi i thu t lan truy n ng c (backpropagation) và h i quy (Gradient Descent) là gi i thu t ph bi n nh t hi n t i trong vi c hu n luy n m ng n ron. Nó tính đ l ch gi a giá tr đ u ra m c tiêu và giá tr đ u ra đ t đ c t m ng n ron hi n t i b ng
hàm l i (loss function), sau đó lan truy n ng c t i các tr ng s các t ng tr c đ
đi u ch nh tr ng s . M t m ng n ron đ c đ a vào m t t p các d li u đ u vào đã bi t tr c và đ c yêu c u đ cho ra đ u ra c ng đã đ c bi t tr c. Quá trình này g i là hu n luy n (training) m ng n ron. Các tr ng s đã đ c đi u ch nh tr c đó s đ c đem vào s d ng đ tính tốn đ u ra cho nh ng d li u m i ch a bi t tr c. 2.2 Transfer Learning
2.2.1 Khái ni m pretrain model
Hi n nay, trong l nh v c Trí tu nhân t o (AI), có các model n i ti ng đ c hu n luy n trên b các t p d li u l n (MNIST, CIFAR100, ImageNet, ) và source code c ng nh Weights c a model đ c công khai cho c ng đ ng (ch y u là trên GitHub). Chúng đ c g i nh ng Model đi kèm Weights nh v y là m t Pretrained Model.
Model m i s d ng m t ph n hay toàn b pretrained model nh m t ph n c a nó đ h c m t nhi m v (tasks) m i đ c g i là Transfered Model.
Nh ng Pretrained Model nh v y th ng đ c hu n luy n trên m t ho c m t vài b các t p d li u nh t đ nh, t ng thích và cho đ chính xác cao v i m t task ho c nhi u tasks (multitask deep learning) nào đó mà nó đ c hu n luy n. Các tasks mà pretrained model đó đ c hu n luy n đ th c hi n là source tasks.
Nhi m v c a chúng ta là t o ra m t model m i đ th c hi n m t ho c nhi u tasks nào đó. Nh ng tasks c n đ c th c hi n c a model này có th trùng ho c khơng trùng v i tasks mà pretrained model đ c train (th ng thì s khơng trùng), chúng ta g i tasks này là target tasks.
2.2.2 Khái ni m Transfer Learning
Transfer Learning [28] chính là cách đ các model truy n đ t cho nhau kh n ng mà m i model có th làm đ c. M t model có th h c trên source tasks nào đó và r i pretrained model này đ c s d ng cho model khác đ model m i đó h c trên target tasks nhanh h n.
C th , Transfer Learning trong Deep Learning là m t k thu t mà trong đó: • M t pretrained model đã đ c train trên source tasks c th nào đó, khi đó m t
ph n hay tồn b pretrained model có th đ c tái s d ng ph thu c vào nhi m v c a m i layer trong model đó.
• M t model m i s d ng m t ph n hay toàn b pretrained model đ h c m t target tasks và tùy vào nhi m v c a m i layer mà model m i có th thêm các layer khác d a trên pretrained model s n có.
Vi c s d ng pretrained model là m t b c ti n l n đ nh ng ng i đi sau ti p b c nh ng thành qu c a các b c ti n b i, t n d ng nh ng pretrained model s n có đ t o ra nh ng model m i ph c v cho các target tasks c th h n, mang tính ng d ng th c ti n h n.
Có 2 lo i Transfer Learning:
1. Feature extractor: Sau khi l y ra các đ c đi m c a nh b ng vi c s d ng pretrained model, thì chúng ta s dùng linear classifier (linear SVM, softmax classifier,..) đ phân lo i. Hi u đ n gi n thì các đ c đi m nh (tai, m i, tóc, ) gi nh input c a bài toán linear regression hay logistic regression.
2. Fine tuning: Sau khi l y ra các đ c đi m c a nh b ng vi c s d ng pretrained model, thì chúng ta s coi đây là input c a 1 CNN m i b ng cách thêm các ConvNet và Fully Connected layer.
M t v n đ đ u có 2 m t và Transfer Learning c ng v y. Sau đây là nh ng m t l i ích và h n ch c a nó.
L i ích c a Transfer Learningliên quan đ n th i gian và đ hi u qu c a model. • V m t th i gian
Vi c s d ng pretrained model b n thân nó khơng ch giúp gi m th i gian vào vi c t o ra m t model m i đ th c hi n m t target tasks mà d a trên m t source tasks s n có, mà cịn gi m th i gian train m t model t đ u vì Weights c a ph n source tasks đã có s n.
• V đ hi u qu
Pretrained model có kh n ng cung c p cho chúng ta m t đ chính xác cao ngay t đ u, do đó khi hu n luy n trên target tasks thì transfered model c a chúng ta s ti p t c t ng đ chính xác này thay vì ph i b t đ u t đi m có đ chính xác th p h n.
Hình 18: So sánh t ng quan hi u qu c a model train t đ u và transfered model
Và v m t h n ch c a Transfer Learning
Transfer Learning không ph i m t k thu t d s d ng, n u chúng ta sai sót trong q trình transfer, ki n trúc c a pretrained hay thêm/b t không đúng t ng (layer) thì khi hu n luy n, đ chính xác s th p khơng t ng t ng đ c, khi đó chúng ta s ph i ki m tra l i quá trình s a các layer ho c làm l i t đ u. Khi chúng ta đ t đ chính xác th p nh v y, chúng ta khơng g i q trình train là finetuning vì nó khơng phù h p v i đ nh ngh a.
Chúng ta ch có th dùng Transfer Learning khi mà có pretrained model liên quan tr c ti p đ n target tasks c a chúng ta thôi, không ph i pretrained model nào c ng có th dùng đ transfer vào target tasks mà chúng ta mong mu n đ c. Ví d chúng ta khơng nên dùng pretrained model cho hình nh màu đ finetuning cho vi c nh n di n ch vi t tay.
2.2.3 VGG16
VGG16 là m t mơ hình m ng n ron tích ch p đ c đ xu t b i K. Simonyan và
A. Zisserman t i h c Oxford trong bài báo M ng l i k t h p r t sâu đ nh n
d ng hình nh quy mơ l n [29]. Mơ hình đ t đ c đ chính xác trong bài ki m tra top 5 là 92,7% trong ImageNet, đây là t p d li u c a h n 14 tri u hình nh thu c 1000 l p. ây là m t trong nh ng mơ hình n i ti ng đ c n p cho ILSVRC2014. Nó c i ti n h n AlexNet b ng cách thay th các b l c có kích th c h t nhân l n (11 và 5 trong l p ch p đ u tiên và th hai, t ng ng) b ng nhi u b l c kích th c h t nhân 3 × 3 l n l t. VGG16 đã đ c đào t o trong nhi u tu n và đang s d ng GPU NVIDIA Titan Black.
T p d li u
Hình 19: Các t ng c a VGG16
dán nhãn thu c kho ng 22.000 danh m c. Các hình nh đ c thu th p t web và đ c g n nhãn b i nh ng ng i làm nhãn b ng cách s d ng cơng c tìm ngu n cung c p c ng đ ng c a Amazon s Mechanical Turk. B t đ u t n m 2010, là m t ph n c a
Th thách i t ng Tr c quan Pascal, m t cu c thi th ng niên có tên là ”Th thách
Nh n bi t hình nh Quy mô l n ImageNet” (ILSVRC) đã đ c t ch c. ILSVRC s d ng m t t p h p con c a ImageNet v i kho ng 1000 hình nh trong m i 1000 danh m c. T t c , có kho ng 1,2 tri u hình nh đào t o, 50.000 hình nh xác nh n và 150.000 hình nh th nghi m. ImageNet bao g m các hình nh có đ phân gi i thay đ i. Do đó, hình nh đã đ c l y m u xu ng đ phân gi i c đ nh là 256 × 256. Cho m t hình nh hình ch nh t, hình nh đ c thay đ i t l và c t b mi ng vá 256 × 256 trung tâm t hình nh k t qu .
Ki n trúc
u vào cho l p cov1 có kích th c c đ nh 224 x 224 RGB. Hình nh đ c chuy n qua m t ch ng các l p tích ch p (conv), trong đó các b l c (filters) đ c s d ng v i tr ng ti p nh n (receptive field) r t nh : 3 × 3 (là kích th c nh nh t đ n m b t khái ni m trái / ph i, lên / xu ng, trung tâm ). Trong m t trong các c u hình, nó c ng s d ng b l c tích ch p 1 × 1, có th đ c xem nh m t phép bi n đ i tuy n tính c a các kênh đ u vào (theo sau là phi tuy n tính). Tr t tích ch p (stride) đ c c đ nh thành 1 pixel; ph n đ m (padding) không gian c a l t chuy n đ i đ u vào l p sao cho đ phân gi i khơng gian đ c gi ngun sau tích ch p, t c là ph n đ m là 1 pixel cho chuy n đ i 3 × 3. các l p. T ng h p theo không gian đ c th c hi n b i n m l p t ng h p t i đa, theo sau m t s l t chuy n đ i. các l p (không ph i t t c các l p chuy n đ i đ u đ c theo sau b i t ng h p t i đa). T ng h p t i đa đ c th c hi n trên c a s 2 × 2 pixel, v i b c 2.
Ba l p đ c k t n i đ y đ (Fully Connected) tuân theo m t ch ng các l p tích ch p (có đ sâu khác nhau trong các ki n trúc khác nhau): hai l p đ u tiên có 4096 kênh m i l p, l p th ba th c hi n phân lo i ILSVRC 1000 chi u và do đó ch a 1000 kênh (m i l p m t kênh l p h c). L p cu i cùng là l p softmax. C u hình c a các
l p đ c k t n i đ y đ là gi ng nhau trong t t c các m ng.
T t c các l p n (hidden layers) đ c trang b tính phi tuy n tính ch nh l u (ReLU). C ng c n l u ý r ng khơng có m ng nào (ngo i tr m t m ng) ch a Chu n hóa ph n h i c c b (Local Response Normalisation), vi c chu n hóa nh v y khơng c i thi n hi u su t trên t p d li u ILSVRC, nh ng d n đ n vi c tiêu th b nh và th i gian tính tốn t ng lên.
Hình 20: VGG16 architect
Tuy nhiên, có hainh c đi ml n v i VGGNet:
• T n nhi u th i gian trong vi c hu n luy n.
• B n thân tr ng l ng ki n trúc m ng khá l n. Do đ sâu và s l ng các nút đ c k t n i đ y đ , VGG16 có dung l ng h n 533MB. i u này làm cho vi c tri n khai VGG tr thành m t nhi m v m t m i.
VGG16 đ c s d ng trong nhi u bài tốn phân lo i hình nh h c sâu. Tuy nhiên, các ki n trúc m ng nh h n th ng đ c mong mu n h n (ch ng h n nh SqueezeNet, GoogLeNet, v.v.). Nh ng nó là m t kh i xây d ng tuy t v i cho m c đích h c t p vì nó r t d th c hi n.
2.3 Ki n th c v h th ng g i ý
V i s phát tri n không ng ng c a internet, ng i dùng d càng ti p c n đ n v i nh ng s n ph m h đã s d ng và yêu thích m t cách d dàng h n. H th ng g i ý hay còn g i là h th ng d xu t item cho ng i dùng đã tr nên c n thi t và phát tri n khơng ng ng. T đó đã có nh ng h ng ti p c n chu n m c đ i v i nh ng bài toán thi t k h th ng g i ý nh v y [62].
Có hai th c th chính trong h th ng g i ý (Recommendation Systems) là ng i dùng (users) và s n ph m (iterms). M c đích c a h th ng g i ý là d đoán m c d quan tâm c a m t ng i dùng t i m t s n ph m nào đó, qua đó có m t ph ng pháp g i ý phù h p.
u tiên ta nói đ n mơ hình ng i dùng. m t h th ng có th g i ý đ c s