ĐI HC QUC GIA THÀNH PH H CHÍ MINH TRƯNG ĐI HC CÔNG NGH THÔNG TIN KHOA CÔNG NGH PHN MM
Đ ÁN CHUYÊN NGÀNH CÔNG NGH PHN MM
Tìm hiu v Deep Learning và xây dng mô hình minh ha
GING VIÊN HƯNG DN: PGS. TS. Vũ Thanh Nguyên SINH VIÊN THC HIN:
Phm Hu Danh - 14520134 Phm Văn Sĩ - 14520763
12, 2017
LI CÁM ƠN Trong sut thi gian thc hin đ án, chúng tôi đã nhn đưc rt nhiu s giúp đ t các thy cô ca trưng Đi hc Công ngh thông tin, đc bit là thy Vũ Thanh Nguyên – ngưi đã trc tip ging dy và hưng dn chúng tôi thc hin đ án này. Trong quá trình thc hin, chúng tôi đã tham kho da trên các bài tng hp trong Ting Anh ca Wang ca Wang et al. [2017 [2017]] và và Epelbaum Epelbaum [ [2017 2017]], chúng chúng tôi xin gi li cám ơn chân thành đn nhng đóng góp ca các tác gi. Mc dù chúng tôi đã c gng rt nhiu nhưng chc chn không th tránh khi nhng sai sót. Chúng Chúng tôi rt mong nhn đưc s đóng góp t quý thy cô cũng như các bn đã đc bài báo cáo này.
LI CÁM ƠN Trong sut thi gian thc hin đ án, chúng tôi đã nhn đưc rt nhiu s giúp đ t các thy cô ca trưng Đi hc Công ngh thông tin, đc bit là thy Vũ Thanh Nguyên – ngưi đã trc tip ging dy và hưng dn chúng tôi thc hin đ án này. Trong quá trình thc hin, chúng tôi đã tham kho da trên các bài tng hp trong Ting Anh ca Wang ca Wang et al. [2017 [2017]] và và Epelbaum Epelbaum [ [2017 2017]], chúng chúng tôi xin gi li cám ơn chân thành đn nhng đóng góp ca các tác gi. Mc dù chúng tôi đã c gng rt nhiu nhưng chc chn không th tránh khi nhng sai sót. Chúng Chúng tôi rt mong nhn đưc s đóng góp t quý thy cô cũng như các bn đã đc bài báo cáo này.
TÓM TT Deep learning là mt hưng tip cn ca lĩnh vc trí tu nhân to (Artificial Intelligence - AI) đang đưc bàn lun sôi ni. Deep learning đã ci thin mt cách đáng k các phương pháp hin đi nht ca nhiu vn đ trong AI như phát hin đi tưng, nhn din ging nói, dch máy (machine translation) [ translation) [LeCun LeCun et al., 2015 2015].]. Bài báo cáo này gii thiu các mô hình tiên tin ph bin gm Feedforward Neural Network, Ne twork, Convolutional Convolutional Neural Network và và Recurrent Neural Network. Thay vì ch áp dng Deep Learning vi mt s thư vin có sn, chúng tôi mong mun thc s hiu nó là gì. Chúng tôi tp trung vào nhng ý tưng ban đu đ hình thành, s phát trin ca chúng cho đn hin ti và đánh giá các mô hình.
Mc lc Mc lc
iii
Danh sách hình v
vii
Gii thiu
x
1 Feedforward Neural Networks 1.1 Gii thiu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Kin trúc FNN . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3 Các kí hiu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.4 Cân bng trng s . . . . . . . . . . . . . . . . . . . . . . . . . . 1.5 Hàm kích hot . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.5.1 Hàm sigmoid . . . . . . . . . . . . . . . . . . . . . . . . . 1.5.2 Hàm tanh . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.5.3 Hàm ReLU . . . . . . . . . . . . . . . . . . . . . . . . . . 1.5.4 Hàm leaky-ReLU . . . . . . . . . . . . . . . . . . . . . . . 1.5.5 Hàm ELU . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.6 Các layer ca FNN . . . . . . . . . . . . . . . . . . . . . . . . . . 1.6.1 Input layer . . . . . . . . . . . . . . . . . . . . . . . . . . 1.6.2 Fully connected layer . . . . . . . . . . . . . . . . . . . . . 1.6.3 Output layer . . . . . . . . . . . . . . . . . . . . . . . . . 1.7 Loss function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.8 Các k thut Regularization . . . . . . . . . . . . . . . . . . . . . 1.8.1 L2 regularization . . . . . . . . . . . . . . . . . . . . . . . 1.8.2 L1 regularization . . . . . . . . . . . . . . . . . . . . . . .
1 1 1 2 3 4 4 5 5 6 7 8 8 9 9 10 11 11 12
iii
MC LC 1.8.3 Clipping . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.8.4 Dropout . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.8.5 Batch Normalization . . . . . . . . . . . . . . . . . . . . . 1.9 Backpropagation . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.9.1 Backpropagate thông qua Batch Normalization . . . . . . 1.9.2 Cp nht error . . . . . . . . . . . . . . . . . . . . . . . . 1.9.3 Cp nht trng s . . . . . . . . . . . . . . . . . . . . . . 1.9.4 Cp nht Coefficient . . . . . . . . . . . . . . . . . . . . . 1.10 D liu nào s dng cho gradient descent? . . . . . . . . . . . . . 1.10.1 Full-batch . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.10.2 Stochastic Gradient Descent (SGD) . . . . . . . . . . . . . 1.10.3 Mini-batch . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.11 Nhng k thut Gradient optimization . . . . . . . . . . . . . . . 1.11.1 Momentum . . . . . . . . . . . . . . . . . . . . . . . . . . 1.11.2 Nesterov accelerated gradient . . . . . . . . . . . . . . . . 1.11.3 Adagrad . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.11.4 RMSprop . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.11.5 Adadelta . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.11.6 Adam . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.12 Khi to trng s . . . . . . . . . . . . . . . . . . . . . . . . . . .
13 13 13 15 16 16 17 18 18 18 18 19 19 19 20 20 21 21 22 22
2 Convolutional Neural Networks 24 2.1 Gii thiu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 2.2 Kin trúc CNN . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 2.3 Tính đc thù ca CNN . . . . . . . . . . . . . . . . . . . . . . . . 25 2.3.1 Feature map . . . . . . . . . . . . . . . . . . . . . . . . . . 25 2.3.2 Input layer . . . . . . . . . . . . . . . . . . . . . . . . . . 25 2.3.3 Padding . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 2.3.4 Convolution . . . . . . . . . . . . . . . . . . . . . . . . . . 26 2.3.5 Pooling . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 2.3.6 Towards fully connected layers . . . . . . . . . . . . . . . . 29 2.3.7 Fully connected layers . . . . . . . . . . . . . . . . . . . . 30 2.3.8 Output connected layer . . . . . . . . . . . . . . . . . . . . 31
iv
MC LC 2.4 Các điu chnh vi Batch Normalization . . . . . . . . . . . . . . 2.5 Các kin trúc CNN . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5.1 Realistic architectures . . . . . . . . . . . . . . . . . . . . 2.5.2 LeNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5.3 AlexNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5.4 VGG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5.5 GoogleNet . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5.6 ResNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.6 Backpropagation . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.6.1 Backpropagate trong Batch Normalization . . . . . . . . . 2.6.2 Cp nht Error . . . . . . . . . . . . . . . . . . . . . . . . 2.6.2.1 Backpropagate t output đn fc . . . . . . . . . . 2.6.2.2 Backpropagate t fc đn fc . . . . . . . . . . . . 2.6.2.3 Backpropagate t fc đn pool . . . . . . . . . . . 2.6.2.4 Backpropagate t pool đn conv . . . . . . . . . 2.6.2.5 Backpropagate t conv đn conv . . . . . . . . . 2.6.2.6 Backpropagate t conv đn pool . . . . . . . . . 2.6.3 Cp nht trng s . . . . . . . . . . . . . . . . . . . . . . 2.6.3.1 Cp nht trng s t fc đn fc . . . . . . . . . . . 2.6.3.2 Cp nht trng s t fc đn pool . . . . . . . . . 2.6.3.3 Cp nht trng s t conv đn conv . . . . . . . 2.6.3.4 Cp nht trng s t conv đn pool và conv đn input . . . . . . . . . . . . . . . . . . . . . . . . 2.6.4 Cp nht Coefficient . . . . . . . . . . . . . . . . . . . . . 2.6.4.1 Cp nht Coefficient t fc đn fc . . . . . . . . . 2.6.4.2 Cp nht Coefficient t fc đn pool và conv đn pool . . . . . . . . . . . . . . . . . . . . . . . . . 2.6.4.3 Cp nht Coefficient t conv đn conv . . . . . .
31 32 33 34 34 35 35 36 37 37 37 37 38 38 39 39 40 40 40 41 41
3 Recurrent Neural Networks 3.1 Gii thiu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2 Kin trúc RNN-LSTM . . . . . . . . . . . . . . . . . . . . . . . . 3.2.1 Hưng Forward trong RNN-LSTM . . . . . . . . . . . . .
45 45 45 45
v
42 42 42 43 43
MC LC 3.2.2 Hưng backward trong RNN-LSTM . . . . . . . . . . . . . 3.3 Extreme Layers và loss function . . . . . . . . . . . . . . . . . . . 3.3.1 Input layer . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3.2 Output layer . . . . . . . . . . . . . . . . . . . . . . . . . 3.3.3 Loss function . . . . . . . . . . . . . . . . . . . . . . . . . 3.4 Các đc trưng ca RNN . . . . . . . . . . . . . . . . . . . . . . . 3.4.1 Cu trúc RNN . . . . . . . . . . . . . . . . . . . . . . . . 3.4.2 Forward pass trong RNN . . . . . . . . . . . . . . . . . . . 3.4.3 Backpropagation trong RNN . . . . . . . . . . . . . . . . . 3.4.4 Cp nht trng s và coefficient trong RNN . . . . . . . . 3.5 Đc trưng ca LSTM . . . . . . . . . . . . . . . . . . . . . . . . . 3.5.1 Cu trúc LSTM . . . . . . . . . . . . . . . . . . . . . . . . 3.5.2 Hưng forward trong LSTM . . . . . . . . . . . . . . . . . 3.5.3 Batch normalization . . . . . . . . . . . . . . . . . . . . . 3.5.4 Backpropagation trong LSTM . . . . . . . . . . . . . . . . 3.5.5 Cp nht trng s và coefficient trong LSTM . . . . . . .
4 Xây dng mô hình minh ha 4.1 Gii thiu . . . . . . . . . . . . . . 4.2 Mã ngun . . . . . . . . . . . . . . 4.3 D liu . . . . . . . . . . . . . . . . 4.4 Xây dng mô hình . . . . . . . . . 4.5 Hun luyn mô hình . . . . . . . . 4.6 Kt qu . . . . . . . . . . . . . . .
...... . ...... . .... ... .... ... ... .. .. ..... ..
..... ..... ..... ..... ... .... ... ... .... ... .. .. .. ... . .... ......
47 47 47 48 48 48 48 50 50 51 52 52 53 55 56 57
58 58 58 59 59 61 62
5 Kt lun và hưng phát trin
63
Trích dn
64
vi
Danh sách hình v 1.1 Neural Network vi N + 1 layers (N − 1 hidden layers). Shallow architectures thưng ch có mt hidden layer. Deep learning có mt s hidden layer, thưng cha cùng s lưng hidden neuron. . . . . 2 1.2 Quá trình weight averaging. . . . . . . . . . . . . . . . . . . . . . 3 1.3 Hàm sigmoid và đo hàm ca nó. . . . . . . . . . . . . . . . . . . 4 1.4 Hàm tanh và đo hàm ca nó. . . . . . . . . . . . . . . . . . . . . 5 1.5 Hàm RELU và đo hàm ca nó. . . . . . . . . . . . . . . . . . . . 6 1.6 Hàm leaky-RELU và đo hàm ca nó. . . . . . . . . . . . . . . . 7 1.7 Hàm ELU và đo hàm ca nó. . . . . . . . . . . . . . . . . . . . . 8 1.8 Neural network trong hình 1.1 vi dropout cho c các hidden layer và input. Thông thưng, mt t l khác nhau (thp hơn) dùng cho vic tc các nơ-ron ca input và các hidden layers. . . . . . . . . . 14 2.1 Mt kin trúc CNN (đây là LeNet): các convolution operation đưc theo sau là pooling operation, cho đn khi kích thưc feature map gim còn mt. Fully connected layers sau đó đưc kt ni. . . . . 2.2 Input layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3 Padding ca feature map. Nhng s không đưc thêm vào là nhng tile màu đ, kích thưc padding này là P = 1. . . . . . . . . . . . 2.4 Convolution operation . . . . . . . . . . . . . . . . . . . . . . . . 2.5 The pooling operation . . . . . . . . . . . . . . . . . . . . . . . . 2.6 Fully connected operation đ ly chiu rng và chiu cao 1. . . . . 2.7 Fully connected operation, ging như FNN operations. . . . . . . 2.8 Sơ đ đi din ca các layer khác nhau . . . . . . . . . . . . . . .
vii
25 26 27 27 29 30 31 33
DANH SÁCH HÌNH V 2.9 Realistic Fully connected operation và Realistic Convolution operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.10 The LeNet CNN . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.11 The AlexNet CNN . . . . . . . . . . . . . . . . . . . . . . . . . . 2.12 The VGG CNN . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.13 The GoogleNet CNN . . . . . . . . . . . . . . . . . . . . . . . . . 2.14 Kin trúc Bottleneck Residual. Sơ đ trên lí thuyt bên trái, thc t bên phi. Nó cn mt 1 × 1 conv vi stride 1 và padding 0, sau đó mt VGG conv chun và 1 × 1 conv. . . . . . . . . . . . . 2.15 The ResNet CNN . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.16 Backpropagate t output đn fc. . . . . . . . . . . . . . . . . . . . 2.17 Backpropagate t fc đn fc. . . . . . . . . . . . . . . . . . . . . . 2.18 Backpropagate t fc đn pool. . . . . . . . . . . . . . . . . . . . . 2.19 Backpropagate t pool đn conv. . . . . . . . . . . . . . . . . . . 2.20 Backpropagate t conv đn conv. . . . . . . . . . . . . . . . . . . 2.21 Backpropagate t conv đn pool. . . . . . . . . . . . . . . . . . . 2.22 Cp nht trng s gia hai fc layer . . . . . . . . . . . . . . . . . 2.23 Cp nht trng s gia fc layer và pool layer. . . . . . . . . . . . 2.24 Cp nht trng s gia hai conv layer. . . . . . . . . . . . . . . . 2.25 Cp nht trng s t conv đn pool cũng ging như t conv đn input. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.26 Cp nht Coefficient gia hai fc layer. . . . . . . . . . . . . . . . 2.27 Cp nht Coefficient t fc đn pool cũng ging như t conv đn pool. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.28 Cp nht Coefficient gia hai conv layer. . . . . . . . . . . . . . . 3.1 Kin trúc RNN, vi d liu đưc lan truyn theo c "không gian" và "thi gian". Trong ví d, chiu thi gian có kích thưc là 8, không gian có kích thc là 4. . . . . . . . . . . . . . . . . . . . . . 3.2 Hưng backward trong kin trúc. Do đó không th tính toán gradient ca mt layer mà không tính toán nhng cái mà nó đã đi qua. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3 Các chi tit ca RNN hidden unit . . . . . . . . . . . . . . . . . .
viii
33 34 34 35 35 36 36 38 38 39 39 40 40 41 41 41 42 42 43 43
46 47 49
DANH SÁCH HÌNH V 3.4 Cách hidden unit RNN tương tác vi nhau. . . . . . . . . . . . . . 49 3.5 Chi tit LSTM hidden unit . . . . . . . . . . . . . . . . . . . . . . 53 3.6 Cách các LSTM hidden unit tương tác vi nhau . . . . . . . . . . 54 4.1 Minh ha d liu ca CIFAR-10. . . . . . . . . . . . . . . . . . . 4.2 Mô hình CNN đơn gin ca chúng tôi. . . . . . . . . . . . . . . .
ix
59 60
Gii thiu Bn cht kin trúc nhiu lp cho phép deep learning kh năng gii quyt nhiu vn đ AI phc tp hơn [Bengio et al., 2009]. Vì vy, các nhà nghiên cu đang m rng ng dng deep learning ti các lĩnh vc và vn đ mi, ví d: Osako et al. [2015] s dng recurrent neural network đ denoise các tính hiu thoi; Gupta et al. [2015] đ khám phá các pattern phân cm ca các biu hin gen; Gatys et al. [2015] s dng mt mô hình nơ-ron đ to ra các hình nh vi các kiu khác nhau; Wang et al. [2016] dùng deep learning đ phân tích tâm lý t nhiu phương thc đng thi; vv. Đây là giai đon chng kin s bùng n ca lĩnh vc nghiên cu deep learning. Đ tham gia và thúc đy quá trình nghiên cu deep learning, chúng ta cn phi hiu rõ các kin trúc ca các mô hình và ti sao chúng tn ti. Chúng tôi tp trung vào ba loi mô hình deep learning ph bin theo mt trình t t đơn gin đn phc tp thông qua các chương. Chương 1 bt đu vi loi mô hình đu tiên đưc gii thiu trong lch s: mô hình feedforward neural network, đây là bưc phát trin t thut toán perceptron nguyên bn Rosenblatt [1958]. Các mô hình feedforward network có cu trúc xp chng các lp perceptron lên trên nhng lp khác, như non-linear regression. Trong chương 2, chúng tôi gii thiu convolutional neural network, đc bit dùng đ x lí d liu hình nh. Chúng tôi gii thiu v nhng kin th toán như convolution, pooling, v.v. Cũng như cho thy s thay đi ca các kin trúc khi đưc gii thiu chương 1. Nhiu kin trúc neural network đưc gii thiu kèm theo ph lc ca chúng.
x
Chương 3 s gii thiu recurrent neural network, kin trúc thích hp đ x lí các d liu có cu trúc temporal–như thi gian và văn bn. Nhng đim mi và nhng sa đi s đưc mô t chi tit trong văn bn chính, và các ph lc cung cp các công thc phc tp nht ca loi kin trúc mng này. chương 4, chúng tôi xây dng mt mô hình minh ha thuc loi Convolutional Neural Network (đưc gii thiu trong chương 2), áp dng các k thut, phương pháp trong bài báo cáo đ thc hành các kin thc đã tìm hiu.
xi
Chương 1 Feedforward Neural Networks 1.1 Gii thiu Trong phn này, chúng tôi xem xét loi neural network đu tiên đã đưc phát trin trong lch s: Feedforward Neural Network (FNN). Mng này không da vào bt kì cu trúc d liu đu vào nào. Nó là mt công c machine learning rt mnh, đc bit là khi đưc s dng vi các k thut regularization. Nhng k thut mà chúng tôi s trình bày, cho phép gii quyt các vn đ hun luyn khi x lý các d liu có cu trúc "sâu": neural network vi mt s lưng đáng k các hidden state và các hidden layer, nhng th đã đưc chng minh là rt khó đ hun luyn (các vn đ vanishing gradient và overfitting).
1.2 Kin trúc FNN Mt FNN đưc to thành bi mt input layer, mt (shallow network) hoc nhiu hơn (deep network) các hidden và mt output layer. Mi layer ca network (tr output) đưc kt ni vi mt layer phía sau. Kt ni này là trung tâm ca cu trúc FNN và có hai tính năng chính dng đơn gin nht: cân bng trng s và kích hot. Chúng tôi s trình bày các tính năng này trong các phn sau.
1
Hình 1.1: Neural Network vi N + 1 layers (N − 1 hidden layers). Shallow architectures thưng ch có mt hidden layer. Deep learning có mt s hidden layer, thưng cha cùng s lưng hidden neuron.
1.3 Các kí hiu Trong nhng phn sau, chúng tôi s s dng
• N s lưng layer (không tính input) trong mt Neural Network. • T s lưng example trong d d liu hun luyn. • T s lưng example trong mt mini-batch (xem phn 1.7). • t ∈ 0, T − 1 instance trong mini-batch. • ν ∈ 0, N s lưng layer ca FNN. • F s lưng nơ-ron ca layer th ν . • X = h vi f ∈ 0, F − 1 các bin đu vào. • y vi f ∈ [0, F − 1] các bin đu ra (đ d đoán). train mb
mb
ν
(t) f
(t) f
(0)(t)
0
f
N
2
Hình 1.2: Quá trình weight averaging. (t) f
• yˆ •Θ
vi f ∈ [0, F N − 1] đu ra ca network.
vi f ∈ [0, F ν − 1], f trng s (weights matrix)
(ν )f
f
∈ [0, F − 1] và ν ∈ [0, N − 1] các ma trn ν +1
1.4 Cân bng trng s Mt trong hai component chính ca FNN là quá trình cân bng trng s, ưc lưng đ cân bng các output layer phía trưc vi nhng ma trn trng s đ đi đn layer k tip. Minh ha trên Hình 1.2. Quá trình cân bng trng s dưi dng công thc: F ν −1+
(t)(ν )
af
=
Θ(f ) h(f )( ) , ν f
t ν
(1.1)
f =0
vi ν ∈ 0, N − 1, t ∈ 0, T mb − 1 và f ∈ 0, F ν +1 −1. đây đ bao gm hoc không bao gm bias. Trong thc t, vì chúng ta s s dng batch-normalization, chúng ta có th b qua nó mt cách an toàn ( = 0 trong mi trưng hp).
3
Hình 1.3: Hàm sigmoid và đo hàm ca nó.
1.5 Hàm kích hot Hidden neuron ca mi layer đưc đnh nghĩa như sau (t)(ν +1)
hf
= g a(f )(
t ν )
,
(1.2)
vi ν ∈ 0, N − 2, f ∈ 0, F ν +1 − 1 và t ∈ 0, T mb − 1. đây g làm mt hàm kích hot – thành phn chính th hai ca FNN – d đoán d liu đu ra mt cách không tuyn tính. Trong thc t, g thưng là mt trong nhng hàm đưc mô t trong nhng phn dưi đây.
1.5.1 Hàm sigmoid Hàm sigmoid nhn giá tr trong đon
[0, 1] vi
g (x) = σ (x) =
công thc:
1 1 + e
.
(1.3)
− σ(x)) .
(1.4)
x
−
Đo hàm ca nó là:
σ (x) = σ (x) (1
Hàm activation này không đưc dùng nhiu trong ngày nay (tr RNN-LSTM network mà chúng tôi s trình bày trong chương 3).
4
Hình 1.4: Hàm tanh và đo hàm ca nó.
1.5.2 Hàm tanh Hàm tanh nhn giá tr trong đon [0, 1] vi công thc: 1 e g (x) = tanh(x) = 1 + e
−
2x
−
2x
−
.
(1.5)
Đo hàm ca nó là
tanh (x) = 1
2
− tanh (x) .
(1.6)
Hàm kích hot này không đưc ph bin do cách chúng ta s dng hàm kích hot, s đưc trình trong phn k. Nó chưa tng đưc s dng cho ti khi đưc dùng trong công thc chun hóa (standard formulation) ca mô hình RNN-LSTM (chương 3).
1.5.3 Hàm ReLU Hàm ReLU – Rectified Linear Unit (hàm đơn v tuyn tính hiu chnh) – nhn giá tr trong đon [0, +∞] vi công thc: g(x) = ReLU(x) =
5
≥0
x
x
0
x < 0
.
(1.7)
Hình 1.5: Hàm RELU và đo hàm ca nó. Đo hàm ca nó là:
ReLU (x) =
1 x
≥0
.
0 x < 0
(1.8)
Hàm kích hot này đưc s dng rng rãi nht hin nay. Hai bin th ph bin hơn ca nó cũng có th đưc tìm thy: leaky-ReLU và ELO - Exponential Linear Unit (hàm đơn v tuyn tính mũ). Chúng đã đưc gii thiu bi vì hàm kích hot ReLU có xu hưng b đi mt s t bào thn kinh n: khi t bào đã đưc tt (giá tr bng 0), nó không bao gi có th đưc bt lên ln na.
1.5.4 Hàm leaky-ReLU The leaky-ReLU nhn giá tr trong đon [−∞, +∞] và là mt sa đi nh ca ReLU cho phép các hidden neuron nhn giá tr khác không vi bt kì giá tr x. Công thc ca nó là g(x) = leaky-ReLU(x) =
6
x
x
≥0
0.01 x x < 0
.
(1.9)
Hình 1.6: Hàm leaky-RELU và đo hàm ca nó. Đo hàm ca nó là leaky-ReLU (x) =
1
x
≥0
.
0.01 x < 0
(1.10)
Mt bin th ca leaky-ReLU cũng có th đưc tìm thy: Parametric-ReLU, trong đó 0, 01 trong đnh nghĩa ca leaky-ReLU đưc thay th bi mt h s α, có th đưc tính bng cách backpropagation.
g(x) = Parametric
− ReLU(x) =
Đo hàm ca nó là Parametric
− ReLU (x) =
1.5.5 Hàm ELU
x
x
≥0
.
α x x < 0
1
x
≥0
α
x < 0
.
(1.11)
(1.12)
Hàm ELU – Exponential Linear Unit (hàm đơn v tuyn tính mũ) – function nhn các giá tr trong đon [−1, +∞] và nó đưc ly cm hng t leaky-ReLU:
7
Hình 1.7: Hàm ELU và đo hàm ca nó. giá tr khác 0 cho tt c x. g (x) = ELU(x) =
Đo hàm ca nó
ELU (x) =
x e
1 x
e
x
x
−1 x
≥0
.
x < 0
≥0
.
x < 0
(1.13)
(1.14)
1.6 Các layer ca FNN Nhưng đưc minh ha trong hình 1.1, mt FNN thông thưng s bao gm mt vài layer c th. Chúng tôi s gii thích chúng tng cái mt.
1.6.1 Input layer Input layer là mt trong hai nơi mà các d liu đi vào. Trong chương này, chúng tôi xem xét các d liu có kích thưc F 0 , kí hiu X f (t ,) vi t ∈ 0, T mb − 1 (kích thưc ca mini-batch, khi chúng tôi s nói v k thut gradient descent), 1
Đ hun luyn FNN, chúng tôi cùng tính toán qua trình forward và backward cho T mb sample ca d liu hun luyn, vi T mb T train. Trông các phn sau, s có t 0, T mb 1. 1
∈
8
−
và f ∈ vào:
0, F 0
− 1. Mt bưc x lí thông thưng đ trung tâm hóa d liu đu (t)
(t)
˜ = X X f f
−µ
,
f
(1.15)
vi µf =
T train−1
1
T train
(t)
X f .
(1.16)
t=0
Điu này tương ng vic tính trung bình cho mi loi d liu trong tp hun luyn. Theo các ký hiu, chúng ta hãy nh li rng (t)
(t)(0)
X f = h f
.
(1.17)
1.6.2 Fully connected layer The fully connected operation thc cht ch là hot đng kt ni gia vic cn bng trng s và quá trình kích hot. C th, ∀ν ∈ 0, N − 1 F ν −1
(t)(ν )
af
=
(ν )f (t)(ν )
Θf hf
.
(1.18)
f =0
và ∀ν ∈ 0, N − 2 (t)(ν +1)
hf
(t)(ν )
= g af
.
(1.19)
vi các trưng hp mà ν = N − 1, hàm kích hot s thay th hàm output.
1.6.3 Output layer Đu ra ca FNN (t)(N )
hf
(t)(N −1)
= o (af
9
) ,
(1.20)
vi o đưc gi làm hàm output. Trong các trưng hp Euclidean loss function, hàm output ch là nhn dng. Các các bài toán phân loi, o là hàm softmax. (t)(N −1)
(t)(N −1)
o af
=
eaf F N −1
(1.21)
(t)(N −1)
a
e
f
f =0
1.7 Loss function
Loss function đánh giá li ca FNN khi nó ưc tính d liu đưc d đoán (Nơi th hai mà d liu đu vào xut hin). Vi mt bài toán regression, đây là mt hàm mean square error (MSE) đơn gin. J (Θ) =
T mb−1 F N −1
1
(t)
yf
2T mb
t=0
(t)(N )
−h
f
f =0
2
,
(1.22)
trong khi vi các bài toán phân loi, loss function đưc gi là hàm cross-entropy J (Θ) =
T mb−1 F N −1
1
− T
mb
t=0
(t)(N )
f
δ y(t) ln hf
,
(1.23)
f =0
và vi mt bài toán regression chuyn thành mt bài toán phân loi, gi C là s lưng ca mc (đ phân loi) dn đn J (Θ) =
1
− T
mb
T mb−1 F N −1 C −1
t=0
f =0 c=0
(t)(N )
δ c(t) ln hf c yf
.
(1.24)
mi bưc hun luyn, chúng tôi kí hiu sau đ hin th rõ ràng hơn. T mb −1
J (Θ) =
t=0
10
J mb(Θ) .
(1.25)
1.8 Các k thut Regularization Mt trong nhng khó khăn chính khi x lí các kin trúc deep learning là làm cho hun luyn deep neural network môt cách hiu qu. Đ đt đưc đu đó, nhiu k thut regularization đưc phát minh. Chúng tôi s đánh giá chung trong phn này.
1.8.1 L2 regularization L2 regularization là môt k thut regularization thông dng. Nó ưc tính đ thêm regularizing term vào loss function theo cách sau N −1
J L2 (Θ) = λ L2
2 Θ(ν ) L2
N −1 F ν +1 −1 F ν −1
= λ L2
ν =0
2
(ν )f
Θf
ν =0
f =0
.
(1.26)
f =0
K thut regularization hu như luôn đưc s dng, nhưng không phi đưc dùng riêng l. Giá tr thông thưng ca λL2 nm trong khong 10 4 − 10 2 . K thut L2 regularization này có cách din gii theo Bayes: nó là suy lun Bayes vi phân phi chun ca trng s. Tht vy, vi ν đã cho, quá trình cân bng trng s như sau −
F ν −1
(t)(ν )
af
=
(ν )f (t)(ν )
Θf hf
−
+ ,
(1.27)
f =0
vi là noise term ca trung bình 0 và phương sai σ 2 . Do đó phân phi chun sau đây cho tt c các giá tr ca t và f :
F ν −1
(t)(i)
N af
(ν )f (t)(ν )
Θf hf
f =0
, σ2
.
Gi s tt c các trng s có mt phân phi chun có dng
11
(1.28)
vi (ν )f
N Θf
λL21 −
cùng tham s λL2, chúng ta có biu thc sau T mb−1 F ν +1 −1
√
P =
F ν −1
(t)(ν )
N af
t=0
f =0
T mb−1 F ν +1 −1
=
t=0
f =0
F ν −1
(ν )f (t)(ν )
Θf hf
,σ
f =0 a
1
−
2πσ 2
e
2
(ν )f
N Θf
λL21 −
f =0
(t)(ν ) f
−
F i −1 (ν )f (t)(ν ) 2 Θ h f =0 f f 2 σ 2
F ν −1
λL2 e 2π
f =0
(ν )f 2 λL2 Θ f
−
.
2
(1.29)
Ly log ca nó và b qua các constant term, ta có L
∝ T
T mb−1 F ν +1 −1
1
mbσ
2
t=0
F ν −1
(t)(ν )
af
f =0
−
(ν )f (t)(ν )
Θf hf
f =0
2
F ν +1 −1 F ν −1
+ λL2
2
Θ(f )
ν f
f =0
,
f =0
(1.30)
và term cui cùng chính xác là L2 regulator cho mt giá tr nu cho trưc (xem công thc (1.26).
1.8.2 L1 regularization L1 regularization thay th norm trong k thut L2 regularization N −1 F ν +1 −1 F ν −1
N −1
J L1 (Θ) = λ L1
Θ
(ν )
L1
= λ L1
ν =0
(ν )f
Θf
ν =0
f =0
.
(1.31)
f =0
Nó cũng thưng đưc s dng như L2 regularization, nhưng không dùng theo cách riêng l. giá tr thông thưng ca λL1 trong khong 10 4 − 10 2 . L1 regularization vi suy lun Bayes vi phân phi chun Laplacian. −
(ν )f
F Θf
0, λL11 = −
12
λL1
2
e
(ν )f
λL1 Θ
−
−
f
.
(1.32)
1.8.3 Clipping Clipping ngăn nga L2 norm ca các trng s vưt quá threshold C . C th vi vic cp nht trng s, nu L2 norm ca chúng vưt quá C , nó tr v C if Θ(ν )
L2
−→ Θ
> C
(ν )f f
= Θ(f )
ν f
× Θ C (ν )
.
(1.33)
L2
K thut regularization này tránh vn đ exploding gradient, và nó đưc dùng ch yu trong RNN-LSTM network. Giá tr thông thưng ca C trong khong 100 − 101 . Bây gi chúng ta hãy chuyn sang các k thut regularization hiu qu nht cho mt FNN: dropout và Batch-normalization.
1.8.4 Dropout Là mt th tc đơn gin cho phép thc hin backpropagation tt hơn cho các bài toán phân loi: dropout tính toán đ làm gim các hidden units (trong mt s trưng hp, ngay c mt s bin đu vào) cho mi example hun luyn. Vic tính toán này đưc thc hin thông qua: vi ν ∈ 1, N − 1 (ν )
(ν )
(ν )
hf = m f g af
(1.34)
vi m(f i) theo mt phân phi Bernoulli p, thông thưng p = 51 cho input layer và p = 21 cho nhng cái khác. Dropout [Srivastava et al., 2014] đưc xem là k thut regularization thành công nht cho ti khi Batch Normalization xut hin.
1.8.5 Batch Normalization Batch normalizationIoffe & Szegedy [2015] tính toán đ kt hp chun hóa minibatch cho tng loi d liu, ngay c input layer. Trong bài báo ban đu, các tác gi lp lun rng bưc này nên đưc thc hin sau các convolutional layer, nhưng trên thc t nó đã đưc chng minh là hiu qu hơn sau bưc không tuyn tính.
13
Hình 1.8: Neural network trong hình 1.1 vi dropout cho c các hidden layer và input. Thông thưng, mt t l khác nhau (thp hơn) dùng cho vic tc các nơ-ron ca input và các hidden layers. đây, chúng tôi xem xét trưng hp ∀ν ∈ 0, N − 2 (t)(ν +1)
˜ (t)(ν )
hf
=
hf
− hˆ
(ν ) f
(ν )
σ ˆf
2
,
(1.35)
+
vi ˆ (ν )
hf = 2
(ν )
σ ˆf
=
1 T mb
1 T mb
T mb−1
(t)(ν +1)
hf
(1.36)
t=0
T mb−1
(t)(ν +1)
hf
t=0
−
ˆ (ν ) h f
2
.
(1.37)
Đ đm bo rng transform có th đi din cho identity transform, chúng ta thêm hai tham s b sung (γ f , β f ) vào mô hình.
14
(t)(ν )
yf
(ν ) ˜ (t)(ν ) (ν ) (ν ) (t)(ν ) ˜(ν ) . = γ f h + β f = γ˜f hf + β f f
(1.38)
H s β f (ν ) thúc đy chúng ta thoát khi xu hưng thiên v, vì nó đưc bao gm trong batchnorm. Trong quá trình hun luyn, ta phi tính tóa giá tr trung bình và phương sai, phc v cho vic đánh giá cross-validation và tp d liu kim tra (gi e là s các vòng lp – iterations/epochs)
(t)(ν )
E
Var
(t)(ν +1)
hf
(t)(ν +1)
hf
e+1
=
+ ˆh(f ) ν
eE hf
e
e + 1
(t)(ν )
e+1
=
(ν )
eVar hf
e
,
+ σ ˆf
e + 1
(1.39)
2
(1.40)
và trong quá trình kim tra E
(t)(ν )
hf
=
E
(t)(ν )
hf
,
Var
(t)(ν )
hf
=
T mb T mb
−1
Var
(t)(ν )
hf
.
(1.41)
vì vy (t)(ν )
(t)(ν )
yf
(ν )
= γ f
hf
(t)(ν )
− E [h
f
(t)(ν )
V ar hf
]
(ν )
+ β f .
(1.42)
+
Trong thc t, có th đưc loi b dropout mà không mt đ chính xác khi s dng batch normalization.
1.9 Backpropagation Backpropagation LeCun et al. [1998] là k thut cơ bn đ gim loss function error t đó d đoán chính xác cái chúng ta cn. ging như cái tên, Nó đi ngưc li FNN vi cái error đưc xut ra và cp nht li trng s. Trong thc t, phi tính toán mt lot các gradient term, và đây là mt vic tính toán t nht. Tuy
15
nhiên, nu đưc thc hin đúng, đây là công vic hu ích và quan trng nht trong FNN. Do đó chúng tôi mô t s chi tit làm th nào đ tính toán mi trng s (và Batistorm coefficients) gradients.
1.9.1 Backpropagate thông qua Batch Normalization Backpropagation gii thiu mt gradient mi
(t )(ν )
(tt )(ν )
f
δ f J f
∂y f
=
(t)(ν +1)
∂h f
.
(1.43)
vi
(tt )(ν )
J f
= γ˜f ( ) ν
t ν ˜ (t)(ν ) 1 + ˜h(f )( ) h f
δ tt
−
T mb
.
(1.44)
1.9.2 Cp nht error Đ backpropagate giá tr loss error thông qua FNN, chúng ta cn tính toán error rate (t)(ν )
δ f
=
∂ (t)(ν )
∂a f
J (Θ) ,
(1.45)
vi ∀ν ∈ 0, N − 2 T mb−1 F ν +1 −1
(t)(ν )
δ f
= g
(t)(ν )
t =0
giá tr δ f (t)(N
1)
−
f
tt )(ν ) (t )(ν +1) δ f
Θ(f +1) J f ( ν
af
,
(1.46)
f =0
ph thuc vào loss function đã dùng. Vi MSE loss function (t)(N −1)
δ f
=
1 T mb
(t)(N )
hf
16
−y
(t)
f
,
(1.47)
và vi cross entropy loss function (t)(N −1)
1
=
δ f
(t)(N )
hf
T mb
f δ y(t)
−
.
(1.48)
(1.49)
Hp nht ký hiu ca các chương 1, 2 và 3, chúng tôi gi (t)(ν +1)
= g
Hf f
(t)(ν )
af
(ν +1)f
Θf
,
vì vy quy lut cp nht cho error rate là
F ν +1 −1
T mb−1
(t)(ν )
δ f
=
(tt )(ν )
J f
(t)(ν +1) (t)(ν +1)
t =0
δ f
Hf f
.
(1.50)
f =0
1.9.3 Cp nht trng s Thông qua vic tính toán error rate, đo hàm ca error rate đơn gin. Chúng ta có ∀ν ∈ 1, N − 1 Θ(ν )f
∆f
=
1 T mb
T mb−1 F ν +1 −1
F ν
t=0
f =0 f =0
(ν )f
∂ Θf
(ν )f
∂ Θf
(t)(ν −1) (t)(ν )
yf
δ f
T mb −1
=
(t)(ν ) (t)(ν −1)
δ f
yf
.
t=0
(1.51)
và T mb−1
Θ(0)f
∆f
=
t=0
17
(t)(0) (t)(0)
δ f
hf
.
(1.52)
1.9.4 Cp nht Coefficient Quy lut cp nht Batchnorm coefficient ccó th tính thông qua error rate. T mb−1 F ν +1 −1 γ ν ∆f ( )
=
t=0
β (ν ) ∆f
=
t=0
(t)(ν +1)
δ f
(i)
∂γ f
f =0
T mb−1 F ν +1 −1
T mb−1 F ν +1 −1
(t)(ν +1)
∂a f
f =0
t=0
(t)(ν +1)
(i)
∂β f
δ f
=
t=0
ν f ˜ (t)(i) (t)(ν +1) Θ(f +1) h δ f , f
f =0
T mb−1 F ν +1 −1
(t)(ν +1)
∂a f
=
(1.53)
(ν +1)f
Θf
(t)(ν +1)
δ f
,
(1.54)
f =0
1.10 D liu nào s dng cho gradient descent? T đu chúng ta đã kí hiu T mb d liu mu mà chúng ta s hun luyn mô hình. Th tc này đưc lp li vi thi gian dài (mi ln đưc gi là epoch). Tn ti ba cách đ ly mu t các d liu: Full-batch, Stochastic và Mini-batch gradient descent. Chúng tôi nêu rõ các điu khon này trong các phn sau. Chúng tôi nêu rõ các vn đ này trong các phn sau.
1.10.1 Full-batch Full-batch ly toàn b d liu mi epoch, vì vy loss function là T train−1
J (Θ) =
J train (Θ) .
(1.55)
t=0
S la chn này có li th là n đnh v s lưng, nhưng nó rt tn kém thi gian tính toán nên nó him khi đưc s dng.
1.10.2 Stochastic Gradient Descent (SGD) SGD tính toán đ ly mt phn mu ca d liu trong mi epoch J (Θ) = J SGD(Θ) .
18
(1.56)
S la chn này dn đn vic tính toán nhanh hơn, nhưng vì vy không n đnh v s lưng. S la chn chun nht cho đn nay là Mini-batch gradient descent.
1.10.3 Mini-batch Mini-batch gradient descent là mt s tha hip gia s n đnh và hiu qu thi gian, là đim gia ca Full-batch và Stochastic gradient descent: 1 T mb T train. Vì T mb −1
J (Θ) =
J mb(Θ) .
(1.57)
t=0
Tt c các tính toán trong báo cáo này đu s dng k thut gradient descent.
1.11 Nhng k thut Gradient optimization Khi mà các gradient cho backpropagation đưc tính toán, câu hi là làm th nào đ thêm chúng vào các trng s đã tn ti. Đơn gin nht là dùng (ν )f
Θf
(ν )f
= Θf
− η∆
Θ(i)f f
.
(1.58)
vi η là mt tham s ngu nhiên đưc to bi cross-validation. Nó cũng có th đưc tính da vào epoch. Khi s dng Mini-batch gradient descent, s la chn cp nht này cho các trng s có th b kt các đim local mininum. Mt s phương pháp đã đưc phát minh đ ngăn nga nguy cơ này. Chúng tôi s xem xét chúng trong các phn tip theo.
1.11.1 Momentum Momentum Qian [1999] đưa ra mt vec-tơ mi v e và s dng đ lưu các cp nht nhng epoch trưc. Gi e là s epoch và b đi các ch s f, f , ν gradients đ gim bt ký hiu, chúng ta có
ve = γ ve
1 + η ∆
−
19
Θ
,
(1.59)
và nhng trng s mi epoch e s đưc cp nht như sau Θe = Θe γ là
1
−
−v
e
.
(1.60)
tham s mi, thưng là 0 .9 nhưng có th thay đi bi cross-validation.
1.11.2 Nesterov accelerated gradient Nesterov accelerated gradient Nesterov [1983] là mt s điu chnh nh ca k thut momentum cho phép gradients thoát các đim local minimum. ve = γ ve
1 + η ∆
−
Θ−γv e
1
−
,
(1.61)
và sau đó Θe = Θe
1
−
−v
e
.
(1.62)
Ti hin nay, tham s η kim soát magnitude vic cp nht luôn đưc thit lp toàn cc. Nó s tt hơn nu có mt s kim soát tt, đ trng s khác nhau có th đưc cp nht vi magnitudes khác nhau.
1.11.3 Adagrad Adagrad Duchi et al. [2011] cho phép tinh chnh các gradients khác nhau bng vic có learning rate riêng bit η. Cho mi giá tr ca f, f , i
e−1
∆Θ e
ve =
2
,
(1.63)
e =0
quy lut cp nht như sau Θe = Θe
1
−
− √ v η + ∆ e
Θ e
.
(1.64)
Li th ca Adagrad là learning rate η đưc thit lp mt ln và cho tt c (thưng là 10 2 ) và không cn chnh qua cross validation na, vì nó t điu chnh −
20
riêng bit cho tng trng s thông qua ve term. dùng đ tránh các trưng hp chia cho 0, và nó thưng là 10 8 . −
1.11.4 RMSprop RMSprop là mt k thut điu chnh learning rate có tính thích nghi, nó chưa tng đưc công b, và đưc đ xut bi Geoff Hinton trong bài ging trên Coursera. Vì Adagrad thêm vào gradient t epoch đu tiên, các trng s b buc phi gim đơn điu. Điu này có th đưc gii quyt thông qua k thut Adadelta: ve = γ ve
1 + (1
−
− γ )∆
Θ e
,
(1.65)
vi γ là mt tham s mi, thưng là 0.9. Công thc Adadelta theo Adagrad như sau Θe = Θe
1
−
− √ v η + ∆ e
η đưc
thit lp mt ln và cho tt c (thưng là
Θ
.
e
10
3
−
(1.66)
).
1.11.5 Adadelta Adadelta Zeiler [2012] là mt phn m rng ca RMSprop, vi mc đích b tham s η. Đ làm đưc điu đó, mt vec-tơ mi đưc gii thiu me = γ me 1 + (1 −
− γ )
√ √
me 1 + Θ ∆e ve + −
2
,
(1.67)
và quy lut cp nht mi như sau Θe = Θe
1
−
√ m + − √ v + ∆ e−1 e
Θ e
.
(1.68)
Learning rate đã đưc tính hoàn toàn t quy tc, nhưng phương thc đ làm là ad hoc (thc hin ch vi mt mc đích c th). K thut ti ưu hóa tip theo và cui cùng đưc trình bày có v t nhiên hơn và là s la chn mc đnh đi vi mt s thut toán deep learning.
21
1.11.6 Adam Adam Kingma & Ba [2014] track c gradient và bình phương ca nó thông qua hai vec-tơ đc lp me = β 1 me
1 + (1
−
−
β 1 )∆Θ e ,
ve = β 2 ve + (1
−
β 2 ) ∆Θ e
2
,
(1.69)
vi β 1 và β 2 thưng là 0.9 và 0.999. Nhưng sc mnh và tính chc chn ca Adam nm vic nó làm cho toàn b quá trình hc tp ph thuc yu t vào precise. Đ tránh nhng vn đ v s trong các bưc đu tiên, các vector này đưc thay đi t l m ˆ e =
me , 1 β 1e
vˆe =
−
ve . 1 β 2e
−
(1.70)
trưc khi vào các quy tc cp nht Θe = Θe
1
−
− √ vˆη + mˆ
e
.
(1.71)
e
Đây là k thut ti ưu hoá đưc s dng trong bài báo cáo này, cùng vi đ gim learning rate ηe = e
α0
−
ηe
1
−
,
(1.72)
α0 đưc xác đnh bi cross-validation, và η 0 thưng bt đu trong khong 10
10
2
−
.
3
−
−
1.12 Khi to trng s Nu không có bt kỳ s điu chnh nào, hun luyn mt neural network là mt nhim v khó khăn do tinh chnh các điu kin ban đu ca trng s. Đây là mt trong nhng lý do ti sao neural network đã tri qua nhiu thi kỳ. T khi có dropout và Batch normalization, vn đ này ít đưc phát biu hơn, nhưng không nên khi to trng s theo kiu đi xng (tt c là zero) và cũng không nên khi
22
to chúng quá ln. Mt heuristic tt là
(ν )f
Θf
init
=
6 F ν + F ν +1
23
× N (0, 1) .
(1.73)
Chương 2 Convolutional Neural Networks 2.1 Gii thiu Trong chương này chúng ta s xem xét mt loi neural network có l là ph bin nht: Mng thn kinh xon (Convolutional Neural Network - CNN). CNN đc bit thích hp đ phân loi hình nh, có th là ch s hoc th loi đng vt, xe, v.v. Chúng tôi s gii thiu các đim mi liên quan đn CNN khi so sánh vi FNN. Theo đó là nhng khi xây dng cơ bn ca CNN: convolution và pooling. Ngoài ra chúng tôi s nói đn nhng thay đi phi chú ý khi áp dng các k thut regularization đưc gii thiu trong phn FNN. Cui cùng, chúng tôi s trình bày các kin trúc CNN ph bin nht: t LeNet đn ResNet.
2.2 Kin trúc CNN Mt CNN đưc hình thành bi mt s operation convolution và pooling, thưng là theo sau bi mt hoc nhiu fully connected layer (tương t như các layer FNN truyn thng). Chúng tôi s ch rõ các đim mi đưc gii thiu trong phn tip theo.
24
Hình 2.1: Mt kin trúc CNN (đây là LeNet): các convolution operation đưc theo sau là pooling operation, cho đn khi kích thưc feature map gim còn mt. Fully connected layers sau đó đưc kt ni.
2.3 Tính đc thù ca CNN 2.3.1 Feature map Trong mi layer ca CNN, d liu không còn đưc gn nhãn bi mt index như trong FNN. Chúng ta nên xem index trong FNN tương đương vi nhãn mt tm nh trong môt layer ca CNN. Nhãn này là mt feature map. Trong mi feature map f ∈ 0, F ν − 1 ca layer th ν , hình nh đưc đc trưng bi hai ch s b sung tương ng là chiu cao height k ∈ T ν − 1 và chiu rng j ∈ N ν − 1. Mt b f , j, k đc trưng cho mt pixel duy nht ca mt feature map. Bây gi chúng ta hãy xem xét các lp khác nhau ca CNN.
2.3.2 Input layer Chúng ta xét đu vi vi F 0 kênh. Vi mt nh thông thưng, kênh này tương ng vi kênh màu RGB (F 0 = 3). Mi nh trong mi kênh s có kích thưc N 0 × T 0 (rng × cao). Input s đưc kí hiu X f(tj) k , vi t ∈ 0, T mb − 1 (kích thưc ca Mini-batch, xem chương 1), j ∈ 0, N 0 − 1 và k ∈ 0, T 0 − 1.Mt cách x lý đu vào tiêu chun là tp trung d liu theo mt trong hai th tc sau (t)
(t)
˜ X f j k = X i j k
−µ
f
(t)
(t)
˜ X f j k = X i j k
,
25
−µ
f jk
(2.1)
Hình 2.2: Input layer vi µf =
µf j k =
T train−1 N 0 −1 T 0 −1
1 T train T 0 N 0
1 T train
t=0
T train −1
(t)
X f j k .
j
(t)
X f j k ,
(2.2)
k
(2.3)
t=0
Điu này tương ng vi vic tính trung bình mi pixel trên tp hun luyn hoc trung bình trên mi pixel. Th tc này không nên đưc áp dng cho các bài toán regression. Đ kt lun, con s 2.2 cho thy lp đu vào trông như th nào.
2.3.3 Padding Khi chúng ta x lí, đ thun tin chúng ta "pad" các feature maps đ bo v chiu rng và chiu cao ca hình nh khi đi qua các hidden layer. Padding tăng thêm 0 quanh hình nh ban đu. Vi mt padding có kích thưc P , chúng tôi thêm P zeros vào đu mi hàng và ct ca mt feature map nht đnh. Điu này đưc minh ha trong hình 2.3
2.3.4 Convolution Convolution operation đưc đt tên cho CNN vì đây là khi chính ca loi neural network này. Nó nhn mt feature map vào mt input hidden layer vi mt ma trn trng s đ to ra mt feature map đu ra. Các trng s này là các tensor 4
26
Hình 2.3: Padding ca feature map. Nhng s không đưc thêm vào là nhng tile màu đ, kích thưc padding này là P = 1.
Hình 2.4: Convolution operation chiu, mt chiu (F ) là s lưng feature map ca convolutional input layer, mt chiu (F p) là s lưng feature map ca convolutional output layer. Hai cái khác là chiu rng và chiu cao ca receptive field. Receptive field cho phép convolute mt tp con thay vì c nh. Nó nhm mc đích tìm kim các mu tương t trong hình nh đu vào, không quan tâm vic mu đâu (translational invariance). Chiu rng và chiu cao nh đu ra cũng đưc xác đnh bi stride: đơn gin là s pixel theo đó mt slide theo chiu dc và/hoc hưng ngang trưc khi áp dng li convolution operation. Vì R C là kích thưc ca convolutional receptive field (pooling operation cũng có receptive field và stride) và S C là convolutional stride. Chiu rng và chiu cao ca hình đu ra có th đưc tính theo chiu rng đu vào N và chiu cao đu
27
vào T N p =
N + 2 P S C
− R
C
+ 1 ,
T p =
T + 2P RC + 1 . S C
−
(2.4)
Thông thưng mt padding s bo v chiu rng và chiu cao ca hình nh đu vào N = N p = T = T p, nên S C = 1 và P =
− 1 .
RC
2
(2.5)
Vi layer n cho trưc, convolution operation có công thc (tương t quá trình cân bng trng s ca FNN) F ν −1 RC −1 RC −1
(t)(ν )
af l m =
f =0 j =0
(o)f
(t)(ν )
Θf j k hf S C l+ j S C m+k ,
(2.6)
k=0
vi o đc trưng cho convolution th o + 1 trong network. ν kí hiu hidden layer th ν ca network (thuc đon 0, N − 1), và f ∈ 0, F ν +1 − 1, l ∈ 0, N ν +1 − 1 và m ∈ 0, T ν +1 − 1. Như vy S C l + j ∈ 0, N ν − 1 và S C l + j ∈ 0, T ν − 1. Và khi s dng các hidden unit thông qua activation function ReLU (xem chương 1). Ta có (t)(ν +1) hf l+P m+P
) = g a(f )( lm t ν
.
(2.7)
2.3.5 Pooling Pooling operation, ngày càng ít đưc s dng trong các CNN tiên tin, v cơ bn là mt hot đng gim kích thưc. Nó tính trung bình hoc ly ti đa sub-image – đc trưng bi pooling receptive field RP và stride S P – ca input feature map F đ có đưc output feature map F p = F vi chiu rng N p < N và chiu cao T p < T . Lưu ý: giá tr padding ca input hidden layer không đưc tính trong pooling operation (bi vì nhng ch s +P trong cách công thc sau)
28
Hình 2.5: The pooling operation Công thc average pooling procedure ca pooling operation th ν RP −1
(t)(ν )
af l m =
(t)(ν )
(2.8)
(t)(ν )
(2.9)
hf S P l+ j +P S P m+k+P ,
j,k=0
Công thc max pooling (t)(ν )
RP −1
af l m = max hf S P l+ j +P S P m+k+P . j,k=0
Vì ν kí hiu hidden layer th ν ca network (thuc đon 0, N − 1), và f ∈ 0, F ν +1 − 1, l ∈ 0, N ν +1 − 1 và m ∈ 0, T ν +1 − 1. Do đó S P l + j ∈ 0, N ν − 1 và S P l + j ∈ 0, T ν − 1. Max pooling thưng đưc s dng rng rãi, và do đó chúng tôi s dùng nó trong tt c các sau. Kí hiu các ch s j (t)( p) , k(t)( p) mà ti đó l, m đt maximum ca feature map f thuc batch sample th t có th đt đưc, chúng ta có flm
(t)(ν +1)
(t)(ν )
hf l+P m+P = a f l m = h
(t)(ν ) (t)(p)
(t)(p)
f S P l+ jfl m +P S P m+kflm +P
.
flm
(2.10)
2.3.6 Towards fully connected layers vài đim ca CNN, convolutional receptive field bng vi chiu rng và chiu cao ca nh. Trong trưng hp này, convolution operation tr thành mt loi quá trình cân bng trng s (như trong FNN).
29
Hình 2.6: Fully connected operation đ ly chiu rng và chiu cao 1. Quá trình cân bng trng s dùng F ν −1 N −1 T −1
(t)(ν )
af
=
Θ(f )lm h(f )(l+P) m+P , o f
t ν
(2.11)
f =0 l=0 m=0
và đưc theo sau bi hàm kích hot (t)(ν +1)
hf
(t)(ν )
= g af
,
(2.12)
2.3.7 Fully connected layers Sau nhng operation phía trưc, phn còn li ca network là mt FNN. Quá trình cân bng trng s dùng F ν −1
(t)(ν )
af
=
Θ(f ) h(f )( ) , o f
t ν
(2.13)
f =0
và thưng đưc theo sau bi hàm kích hot (t)(ν +1)
hf
(t)(ν )
= g af
30
,
(2.14)
Hình 2.7: Fully connected operation, ging như FNN operations.
2.3.8 Output connected layer Cui cùng, đu ra đưc tính bng mt FNN F N −1
(t)(N −1)
af
=
(o)f (t)(N −1)
Θf hf
(t)(N )
,
hf
f =0
(t)(N −1)
= o af
,
(2.15)
và trong FNN, o có th là L2 hoc cross-entropy loss function (xem chương 1).
2.4 Các điu chnh vi Batch Normalization Trong CNN, Batch normalization đưc thay đi theo cách sau (bi vì, trái vi mt FNN, không phi tt c hidden layers cn đưc Batch normalize. Thc t hot đng này không đưc thc hin trên đu ra ca các pooling layers. Chúng tôi s dùng tên khác là ν và n các hidden layer thông thưng và batch normalized hidden layer)
31
(t)(ν )
˜ (t)(n)
hf l m =
hf l m
− hˆ
(n) f
(n)
σ ˆf
2
,
(2.16)
+
vi ˆ (n)
hf = 2
(n)
σ ˆf
=
T mb−1 N n −1 T n −1
1
(t)(ν )
T mbN n T n
hf l m
t=0
l=0
m=0
T mb−1 N n −1 T n −1
1 T mbN n T n
ˆ (n)
(t)(ν )
−h
hf l m
t=0
l=0
(2.17)
f
m=0
2
Vic chuyn đi có th đưc thc hin nh hai tham s b sung
.
(2.18)
(γ f , β f )
(t)(n) (n) ˜ (t)(n) (n) yf l m = γ f h f l m + β f .
(2.19)
Đi vi vic đánh giá ca cross-validation và tp kim tra (gi e là s ln lp – epochs), chúng ta có th tính
và trong lúc kim th là and . (t)(ν )
E
(t)(ν )
hf l m
e+1
=
eE hf l m
+ ˆhf
(n)
e
e + 1
(t)(ν )
Var
(t)(ν )
hf l m E
e+1
(t)(ν )
hf l m
=
iVar hf l m
(n)
e
+ σ ˆf
e + 1
T mb Var T mb−1
,
(2.20)
2
(2.21)
(t)(ν )
hf l m
2.5 Các kin trúc CNN Chúng tôi s gii thiu các kin trúc CNN chun đã đưc gii thiu trong 20 năm qua, t cái cũ nht cho đn cái mi nht vào cui năm 2015. Đ biu din d dàng, chúng tôi s áp dng sơ đ biu din dưi đây cho các lp khác nhau.
32
I n = p , u t
C = o , n v
P = o , o l
F = u l l
Hình 2.8: Sơ đ đi din ca các layer khác nhau
2.5.1 Realistic architectures Trong realistic architectures, mi fully connected layer (tr cái cui cùng liên kt vi output) đưc theo sau bi mt hàm kích hot RELU (or cái khác) và sau đó là môt bưc batch normalization (hai bưc x lí này có th đo ngưc). Chúng tôi s áp dng các mô t đơn gin hóa bên phi. Cùng nhng đ cp ca Gu et al. [2015] v nhng tip b gn đây ca CNN, bây gi chúng tôi bt đu vi CNN đu tiên đưc s dng bi cng đng deep learning.
,
Hình 2.9: Realistic Fully connected operation và Realistic Convolution operation
33
I n p u t
C o n v
P o o l
C o n v
P o o l
F u l l
O u t p u t
Hình 2.10: The LeNet CNN I n p u t
C o n v
P o o l
C o n v
P o o l
C o n v
C o n v
C o n v
P o o l
F u l l
F u l l
F u l l
O u t p u t
Hình 2.11: The AlexNet CNN
2.5.2 LeNet LeNet network Lecun et al. [1998] bao gm mt input, theo đó là hai layer convpool và mt fully-connected layer trưc mt layer output cui cùng. It can be seen in figure 2.1 Khi x lí nh ( 224 × 224), mô hình này dùng mt kích thưc ln cho các receptive field và các stride. Điu này có hai nhưc đim. Đu tiên, s hoc tham s trong mt ma trn trng s cho trưc t l thun vi kích thưc ca receptive field, do đó dn đn s lưng ln các tham s. Network có th d b overfit. Th hai, stride rng và receptive field rng có nghĩa là phân tích ít tinh t v cu trúc ca hình nh. Tt c các trin khai CNN tip theo nhm mc đích gii quyt mt trong hai vn đ này.
2.5.3 AlexNet AlexNet Krizhevsky et al. [2012] không thy bưc nhy vt trong lý thuyt CNN, nhưng do các b vi x lý tt hơn đã có th dùng nhiu các hidden layer hơn. Network này vn đưc s dng ph bin, mc dù ít hơn k t khi VGG network xut hin.
34
I n p u t
C o n v
C o n v
P o o l
C o n v
C o n v
P o o l
C o n v
C o n v
C o n v
P o o l
C o n v
C o n v
C o n v
P o o l
C o n v
C o n v
C o n v
P o o l
F u l l
F u l l
F u l l
O u t p u t
Hình 2.12: The VGG CNN I n p u t
C o n v
P o o l
C o n v
C o n v
P o o l
I n c e p
I n c e p
P o o l
I n c e p
I n c e p
I n c e p
I n c e p
I n c e p
P o o l
I n c e p
I n c e p
P o o l
F u l l
O u t p u t
Hình 2.13: The GoogleNet CNN
2.5.4 VGG VGG network Simonyan & Zisserman [2014] thông qua mt tiêu chun đơn gin: ch cn các padding 2×2 ca stride 2 và convolutions 3×3 vi stride 1 và padding 1, đ gi chiu rng và chiu cao ca hình nh thông qua các convolution operation. Network này là mt trong nhng network tiêu chun trong hu ht các deep learning package v CNN. Mc dù nó không còn là network tiên tin nht, nhưng mt s đi mi v thit k đã xy ra k t khi nó đưc to ra.
2.5.5 GoogleNet GoogleNet Szegedy et al. [2015] gii thiu mt loi "layer" mi (trên thc t là s kt hp các layer đã tn ti): inception layer (đưc đ cp đn b phim ca Christopher Nolan). Thay vì đưa tt c vào t mt layer đn layer k tip bng mt operation đơn gin như pool, conv hoc fully-connected (fc), h dùng mt kt qu trung bình ca chúng. Ý tưng kt hp kt qu ca mt vài conv-pool operation đ đi đn hidden layer k tip đã bt đu đưc s dng. Mô hình tip theo s dng rt đơn gin và đã tr thành mô hình tiên tin nht: ResNet.
35
Output
Output
+
+ BN 3
Conv 1
Relu 3 Conv 3
Conv 3
=
BN 2
Res
Relu 2 Conv 2
Conv 1
=
Res
BN 1 Relu 1 Conv 1
Input
Input
Hình 2.14: Kin trúc Bottleneck Residual. Sơ đ trên lí thuyt bên trái, thc t bên phi. Nó cn mt 1 × 1 conv vi stride 1 và padding 0, sau đó mt VGG conv chun và 1 × 1 conv. I n p u t
C o n v
P o o l
P o o l
O u t p u t
Hình 2.15: The ResNet CNN
2.5.6 ResNet ResNet He et al. [2015] ly ý tưng đơn gin ca VGG đ luôn s dng cùng kích c cho các convolution operation (Tr cái đu tiên). Nó cũng tính đn thc t thc nghim: fully connected layer không thc s cn thit đ hot đng tt. (thưng cha hu ht các thông s kích thưc). Loi b chúng dn đn gim s lưng các thông s ca CNN. Ngoài ra, pooling operation cũng ít ph bin hơn và có xu hưng đưc thay th bng các convolution operation. Điu này đưa đn block xây dng cơ bn ResNet, Residual module trong hình 2.14. ResNet CNN đã có các kt qu tiên tin nht trên các b d liu hun luyn ph bin (CIFAR, MNIST ...).
36
2.6 Backpropagation Trong FNN, cn phi tính hai loi backpropagation: t output đn fully connected (fc) lp và t fc đn fc. Nhưng trông CNN, có 4 loi propagations mi cn tính: fc đn pool, pool đn conv, conv đn conv và conv đn pool. Chúng tôi s xem xét mt FNN vi mt input layer có nhãn 0 , N-1 hidden layers có nhãn i và mt output layer có nhãn N (N + 1 layer trong network).
2.6.1 Backpropagate trong Batch Normalization Ging như trong FNN, backpropagation gii thiu mt gradient mi
(t )(n)
f
∂y f
(tt )(n)
l m (t)(ν ) ∂h f l m
δ f J f ll mm =
.
(2.22)
Vi các pool layer và conv layer
(tt )(n)
(n)
J f ll mm = γ ˜f
(t )(n) ˜ (t)(n) 1 + ˜h h
m δ tt δ ll δ m
−
f l m
f lm
T mbN n T n
,
(2.23)
và vi các fc layer
(tt )(n)
J f
= γ˜f ( ) δ tt n
(t )(n) ˜ (t)(n) 1 + ˜hf hf
−
T mb
.
(2.24)
2.6.2 Cp nht Error Chúng ta s xét error rate riêng cho CNN ∂
(t)(ν )
δ f l(+P )m(+P ) =
(t)(i)
∂a f l m
J (Θ) ,
2.6.2.1 Backpropagate t output đn fc Quá trình backpropagate t output đn fc đưc minh ha theo Hình 2.16
37
(2.25)
O u t p u t
F u l l
Hình 2.16: Backpropagate t output đn fc. F u l l
F u l l
Hình 2.17: Backpropagate t fc đn fc. Ta có L2 loss function (t)(N −1)
δ f
=
1 T mb
(t)(N )
(t)(N )
hf
−y
(t)
f
,
(2.26)
,
(2.27)
và cross-entropy là (t)(N −1)
δ f
=
1 T mb
hf
−
f δ y(t)
2.6.2.2 Backpropagate t fc đn fc Quá trình backpropagate t fc đn fc đưc minh ha theo Hình 2.17 Tương t FNN, ta có: T mb −1 F ν +1 −1
(t)(ν )
δ f
= g
(t)(ν )
af
t =0
o f
tt )(n) (t)(ν +1) δ f
Θ(f ) J f (
,
f =0
2.6.2.3 Backpropagate t fc đn pool Quá trình backpropagate t fc đn pool đưc minh ha theo Hình 2.18 Vi error rate là
38
(2.28)
P o o l
F u l l
Hình 2.18: Backpropagate t fc đn pool. C o n v
P o o l
Hình 2.19: Backpropagate t pool đn conv.
F ν +1 −1
(t)(ν )
δ f lm =
(o)f
(t)(ν +1)
Θf l m δ f
,
(2.29)
f =0
2.6.2.4 Backpropagate t pool đn conv Quá trình backpropagate t pool đn conv đưc minh ha theo Hình 2.19 Xét pooling layer th p, error rate là:
(t)(ν ) δ f l+P m+P
= g
T mb−1 N ν +1 −1 T ν +1 −1
(t)(ν )
af l m
t =0
l =0
(t )(ν +1)
δ f l m
m =0
(tt )(n)
× J
(t )(p) +P fl m
f S P l + j
(t )(p) +P f l m
S P m +k
l+P m+P
.
2.6.2.5 Backpropagate t conv đn conv Backpropagate t conv đn conv đưc minh hot trong hình 2.20
39
(2.30)
C o n v
C o n v
Hình 2.20: Backpropagate t conv đn conv. P o o l
C o n v
Hình 2.21: Backpropagate t conv đn pool. Error rate là: (t)(ν ) δ f l+P m+P
= g
T mb−1 F ν +1 −1 N ν +1 −1 T ν +1 −1 RC −1 RC −1
(t)(ν )
af l m
t =0
×Θ
(o)f
f =0
l =0
m =0
j =0
k=0
(tt )(n)
f j k J f S C l + j S C m +k l+P m+P
(t )(ν +1)
δ f l +P m +P
(2.31)
2.6.2.6 Backpropagate t conv đn pool Backpropagate t conv đn pool đưc minh hot trong hình 2.21 Error rate là F ν +1 −1 RC −1 RC −1
(t)(ν )
δ f lm =
f =0
j =0
(o)f
(t)(ν +1) j +P m+SP S
Θf j k δ f l+P
−
C
k=0
k
−
C
+P
.
(2.32)
2.6.3 Cp nht trng s Chúng ta s quan tâm đn các trng s gia layer fc đn fc, fc đn pool, conv đn conv, conv đn pool và conv đn input.
2.6.3.1 Cp nht trng s t fc đn fc Đi vi các tương tác hai layer như trong hình 2.22.
40
F u l l
F u l l
Hình 2.22: Cp nht trng s gia hai fc layer P o o l
F u l l
Hình 2.23: Cp nht trng s gia fc layer và pool layer. Ta có công thc cp nht trng s T mb−1
Θ(o)f
∆f
=
(t)(n) (t)(ν )
yf
δ f
(2.33)
t=0
2.6.3.2 Cp nht trng s t fc đn pool Đi vi các tương tác hai layer như trong hình 2.23. Ta có công thc cp nht trng s T mb−1
Θ(o)f
∆f jk =
(t)(ν )
(t)(ν )
hf j +P k+P δ f
t=0
2.6.3.3 Cp nht trng s t conv đn conv Đi vi các tương tác hai layer như trong hình 2.24. C o n v
C o n v
Hình 2.24: Cp nht trng s gia hai conv layer.
41
(2.34)
P o o l
I n p u t
C o n v
C o n v
Hình 2.25: Cp nht trng s t conv đn pool cũng ging như t conv đn input. F u l l
F u l l
Hình 2.26: Cp nht Coefficient gia hai fc layer. Ta có công thc cp nht trng s Θ(o)f
∆f jk =
T mb−1 T ν +1 −1 N ν +1 −1
t=0
l=0
(t)(n) (t)(ν ) l+ j m +k δ f l+P m+P
yf
(2.35)
m=0
2.6.3.4 Cp nht trng s t conv đn pool và conv đn input Đi vi các tương tác hai layer như trong hình 2.25. Ta có công thc cp nht trng s T mb−1 T ν +1 −1 N ν +1 −1
Θ(o)f
∆f jk =
t=0
l=0
(t)(ν ) (t)(ν ) l+ j m +k δ f l+P m+P
hf
(2.36)
m=0
2.6.4 Cp nht Coefficient Đi vi vic cp nht Coefficient, ta quan tâm đn các trng s gia fc đn fc, fc đn pool, conv đn pool và conv đn conv.
2.6.4.1 Cp nht Coefficient t fc đn fc Vi hai layer như trong hình 2.26 Chúng ta có
42
P o o l
F u l l
P o o l
C o n v
Hình 2.27: Cp nht Coefficient t fc đn pool cũng ging như t conv đn pool. C o n v
C o n v
Hình 2.28: Cp nht Coefficient gia hai conv layer.
γ (n) ∆f
T mb−1 F ν +1 −1
=
t=0
=
t=0
˜ h f
(t)(n) (t)(ν )
δ f
,
f =0
T mb−1 F ν +1 −1 β n ∆f ( )
(o)f
Θf
o f
Θ(f ) δ f ( )( ) , t ν
(2.37)
f =0
2.6.4.2 Cp nht Coefficient t fc đn pool và conv đn pool Vi hai layer như trong hình 2.27 T mb−1 N ν +1 −1 T ν +1 −1 γ n ∆f ( )
=
t=0
l=0
m=0
˜ h
(t)(n)
(t)(ν )
(t)(p)
f S P l+ jf lm +P S P m+kfl m +P
T mb−1 N ν +1 −1 T ν +1 −1 β (n) ∆f
=
t=0
l=0
(t)(p)
(t)(ν )
δ f lm ,
m=0
2.6.4.3 Cp nht Coefficient t conv đn conv Vi hai layer như trong hình 2.28
43
δ f lm ,
(2.38)
Ta có γ (n) ∆f
T mb−1 F ν +1 −1 N ν +1 −1 T ν +1 −1 RC −1 RC −1
=
t=0
f =0
l=0
m=0
j =0
=
t=0
f =0
l=0
m=0
j =0
44
k=0
T mb−1 F ν +1 −1 N ν +1 −1 T ν +1 −1 RC −1 RC −1 β n ∆f ( )
(o)f ˜ (t)(n) (t)(ν ) Θf jk h f l+ j m +k δ f l+P m+P ,
k=0
o f
Θ(f jk) δ f ( )(l+)P m+P . t ν
(2.39)
Chương 3 Recurrent Neural Networks 3.1 Gii thiu Trong chương này, chúng tôi s gii thiu kin trúc Neural Network th ba: Recurrent Neural Networks Graves [2011]. Ngưc li vi CNN, loi network này gii thiu mt kin trúc thc s mi: thay vì ch forward theo hưng "không gian", d liu cũng đưc forward trong mt hưng mi – hưng ph thuc thi gian. Chúng tôi s gii thiu mô hình đu tiên ca kin trúc Recurrent Neural Network (RNN), cũng như mô hình đang ph bin hin ti: Long Short Term Memory (LSTM).
3.2 Kin trúc RNN-LSTM 3.2.1 Hưng Forward trong RNN-LSTM Trong hình 3.1, chúng ta trình bày kin trúc RNN theo cách sơ đ. Đim mi ca loi neural network này là chúng ta đang c gng d đoán mt chui thi gian đưc mã hóa trong kin trúc ca mng. RNN ln đu tiên đưc gii thiu đ d đoán các t tip theo trong mt câu (bài toán phân loi), do đó tp trung vào trình t thi gian trong vic d đoán. Nhưng loi kin trúc neural network này cũng có th đưc áp dng cho các bài toán regression, như s bin đi giá c phiu, hoc d báo nhit đ. Khác vi các neural network mà chúng
45
Hình 3.1: Kin trúc RNN, vi d liu đưc lan truyn theo c "không gian" và "thi gian". Trong ví d, chiu thi gian có kích thưc là 8, không gian có kích thc là 4. tôi đã gii thiu, chúng tôi đnh nghĩa (kí hiu ν trong các chương trưc đó ch s lp theo hưng không gian) (t)(ν )
=
(t)(ν +1)
=
af hf
Weight Averaging Activation function (t)(ν )
hf
(t)(ν )
af
,
,
(3.1)
Bây gi chúng ta có các hidden layer đưc index bi c hai ch s "không gian" và "thi gian" (vi T là kích thưc network theo hưng mi này) và trit lý chung ca RNN là (a thưng đt trưng bi c cho trng thái ca cell, kí hiu này giúp ta d hiu khi nói v LSTM network) (t)(ντ )
cf
(t)(ντ )
hf
= =
Weight Averaging
(t)(ντ −1)
hf
, hf
Activation function 46
(t)(ντ )
cf
(t)(ν −1τ )
,
,
(3.2)
Hình 3.2: Hưng backward trong kin trúc. Do đó không th tính toán gradient ca mt layer mà không tính toán nhng cái mà nó đã đi qua.
3.2.2 Hưng backward trong RNN-LSTM Hưng backward trong RNN-LSTM phi tuân theo mt th t thi gian nht đnh, như minh ha trong hình 3.2. Bây gi chúng ta hãy xem chi tit v cách implementation ca RNN và mô hình tiên tin hơn ca nó, Long Short Term Memory (LSTM).
3.3 Extreme Layers và loss function Nhng phn sau ca RTS-LSTM network đã có nhng thay đi, chúng ta hãy xem xét chúng.
3.3.1 Input layer Trong RNN-LSTM, the input layer đưc đnh nghĩa như sau (t)(0τ +1)
hf
˜ h f
(t)(0τ )
˜ (t)(0τ )
= hf
(t)(N −1τ )
, hf
là h(f t)(0τ ) vi ct ln đu tiên đưc g b.
47
.
(3.3)
3.3.2 Output layer Output layer trong RNN-LSTM F N −1 −1
(t)(N τ )
hf
= o
Θf f h(f )(
t N −1τ )
f =0
,
(3.4)
vi output function o ging như FNN và CNN cho c identity function (bài toán regression) hay cross-entropy function (bài toán nhn dng).
3.3.3 Loss function Loss function cho bài toán regression J (Θ) =
T mb−1 T −1 F N −1
1 2T mb
(t)(N τ )
hf
t=0
τ =0 f =0
2
.
(3.5)
.
(3.6)
−y
(t)(τ )
f
và cho bài toán phân loi J (Θ) =
1
− T
mb
T mb−1 T −1 C −1
t=0
τ =0 c=0
δ c(t)(τ ) yc
(t)(N τ )
ln hf
3.4 Các đc trưng ca RNN 3.4.1 Cu trúc RNN RNN là mt cu trúc rt đơn gin s dng cu trúc thi gian ca d liu đ d đoán. Hãy xem chi tit lp hidden layer trong hình 3.1 hình 3.3, đây chính là mt mô hình Recurrent Neural Network đơn gin. Và cách mà output ca hidden layer đưc trình bày trong hình 3.3 đi vào các hidden unit khác hình 3.4 Chúng tôi s mô t toán nhng gì đưc th hin trong hình 3.3 và 3.4.
48
Hình 3.3: Các chi tit ca RNN hidden unit
Hình 3.4: Cách hidden unit RNN tương tác vi nhau.
49
3.4.2 Forward pass trong RNN Trong RNN, Các quy lut cp nht cho ln đu là (spatial layer bên trái cùng trong hình 3.1) F ν −1 −1
(t)(ντ )
hf
= tanh
ν (ν )f (t)(ν −1τ ) hf
Θf
f =0
,
(3.7)
và cho các ln khác F ν −1 −1
(t)(ντ )
hf
= tanh
F ν −1 ν (ν )f (t)(ν −1τ ) hf
Θf
τ (ν )f (t)(ντ −1) hf
+
f =0
Θf
f =0
.
(3.8)
3.4.3 Backpropagation trong RNN Trit lý backpropagation s không thay đi: tìm các cp nht error rate, t đó suy lun đn cp nht trng s. Nhưng vi các hidden layer, δ bây gi có hai phn là spatial component và temporal component. Do đó ta phi tính (t)(ντ )
δ f
=
δ (t)(ν +1τ )
δhf
J (Θ) ,
(3.9)
(3.10)
đ suy lun f ∆Θindex = f
δ δ ∆Θindex f
f
J (Θ) ,
vi index có th không tn ti (trng s ca ouput layer), ν (ν ) (trng s gia hai spatially connected layer) or τ (ν ) (trng s gia hai temporally connected layers). D dàng tính đưc MSE loss function (ging như cách ca chương 1 cho FNN) (t)(N −1τ )
δ f
=
1 T mb
(t)(N τ )
hf
50
−y
(t)(τ )
f
,
(3.11)
và cho cross entropy loss function (t)(N −1)
=
δ f
1 T mb
Gi (t)(ντ )
T f
và
(t )(ντ )a
Hf f
=1
(t)(N τ )
−
hf
f δ y(t)(τ )
− (t)(ντ )
hf
t )(ν +1τ )
= T f (
2
a ν +1)f
(3.12)
,
Θf (
.
(3.13)
,
(3.14)
chúng ta có (nu τ + 1 tn li) T mb
(t)(ν −1τ )
δ f
=
t =0
1
(tt )(ντ )
J f
F ν +1− −1
=0
(t )(ν −τ +)b (t )(ν −τ +)
Hf f
δ f
.
f =0
vi b0 = ν và b1 = τ .
3.4.4 Cp nht trng s và coefficient trong RNN Đ hoàn tt thut toán backpropagation, chúng ta có
51
(3.15)
ν (ν −)f ∆f
T −1 T mb−1
=
(t)(ντ ) (t)(ν −1τ ) (t)(ν −1τ )
δ f
T f
τ =0
hf
,
(3.16)
,
(3.17)
t=0
T −1 T mb−1
τ ν f ∆f ( )
=
(t)(ντ ) (t)(ν −1τ ) (t)(ντ −1)
τ =1
=
β ντ )
=
1
(t )(ν −τ +)b (t )(ν −τ +)
δ f
=0
,
(3.19)
f =0
1
F ν +1− −1
˜ (t)(ντ )
hf
t=0
(3.18)
F ν +1− −1
Hf f
T mb−1
=
,
t=0
t=0
γ (ντ ) ∆f
δ f
T mb−1
∆f (
(t)(N −1τ ) (t)(N −1τ )
hf
τ =0
hf
t=0
T −1 T mb−1
∆f f
δ f
T f
=0
(t )(ν −τ +)b (t )(ν −τ +)
Hf f
δ f
.
(3.20)
f =0
3.5 Đc trưng ca LSTM Mc dù RNN trên lý thuyt có th h nhng dependency dài, nhưng trên thc t chúng tht bi khi làm th và có xu hưng tr trên thiên v (biased toward) vi nhng đu vào gn nht trong chui Bengio et al. [1994]. Mng b nh dài hn-ngn hn (Long Short-term Memory Networks - LSTMs) đã đưc thit đ khc phc vn đ này bng cách kt hp mt cell b nh và đã đưc chng minh là nm bt đưc các dependency trong mt khong dài.
3.5.1 Cu trúc LSTM Trong mt Long Short Term Memory Neural Network Gers et al. [2000], trng thái ca mt unit nht đnh không đưc xác đnh trc tip bi các hàng xóm bên trái và phía dưi. Thay vào đó, trng thái ca cell đưc cp nht mi hidden unit, và output ca unit này là mt probe ca trng thái cell. Công thc này có v như khó hiu lúc đu, nhưng trit lí ca nó tương t như cách tip cn ResNet chương 1: thay vì c gng đ input phù hp vi mt function phc tp, chúng ta c gng lp các bin th nh ca input, do đó cho phép gradient đi qua mt cách mưt mà hơn trong network. Trong mt LSTM network, nhiu gate đưc
52
h(
ν τ
c(
ν τ
)
h(
ν τ
−1)
)
h(
ν τ
)
h(
ν τ
)
c(
ν τ
−1)
+
×
f ( h(
ν τ
+
Θf τ (ν )
ν τ
σ
)
σ
×
(ν τ )
i
h
(ν τ −1)
Θiτ (ν )
h
(ν τ −1)
Θ
+
g
ν τ
−1)
o(
ν τ
−1 τ )
ν
h(
−1 τ )
ν
Θgν (ν )
h(
−1 τ )
ν
h(
)
h(
)
×
+
h(
)
ν τ
Θoτ (ν )
Θiν (ν )
h(
ν τ
)
+
Θf ν (ν )
)
tanh
tanh
gτ ( ν )
h(
ν τ
(ν τ )
σ
h(
)
ν τ
Θoν (ν )
h(
−1 τ )
ν
Hình 3.5: Chi tit LSTM hidden unit gii thiu : input gate i(f t)(ντ ) xác đnh nu chúng cho phép thông tin mi gf (t)(ντ ) đi vào cell state. The output gate o (f t)(ντ ) xác đnh vic thit lp hay không output hidden value bng 0 , hoc là probe ca trng thái cell hin ti. Cui cùng, forget state f f (t)(ντ ) xác đnh vic có quên hay không trng thái cũ ca cell. Tt c các khái nim này đưc minh ha trên hình 3.5. Sơ đ này s đưc gii thích chi tit trong phn tip theo. Trong mt LSTM, các hidden unit khác nhau tương tác theo cách sau trong hình 3.6
3.5.2 Hưng forward trong LSTM Xem tt c các giá tr ca τ − 1 là 0 khi các gate: input, forget và output
53
τ = 0,
chúng ta có công thc sau cho
h(
ν τ
c(
ν τ
)
h(
ν τ
ν τ
−1)
σ
+
Θgτ (ν)
σ
ν τ
)
c(
×
i(
)
+
−1)
Θiτ (ν)
(ν τ −1)
Θgτ (ν)
ν τ
h(
ν τ
)
ν τ
h(
)
+
× ν τ
ν τ
h(
−1)
f ( h(
)
h(
ν τ
−1)
ν τ
)
tanh
o(
ν τ
h(
−1 τ )
ν
h(
h
Θgν (ν)
−1 τ )
ν
h(
)
×
−1 τ )
ν
(ν τ )
h(
+ Θ
h(
ν τ
)
+
iν (ν )
)
tanh
Θoτ (ν)
Θf ν (ν)
h(
ν τ
g(
σ h
)
ν τ
)
Θoν (ν)
h(
−1 τ )
ν
Hình 3.6: Cách các LSTM hidden unit tương tác vi nhau
F ν −1 −1
(t)(ντ )
if
= σ
F ν −1 i (ν )f (t)(ν −1τ ) hf
Θf ν
+
f =0
f f
= σ
F ν −1 f (ν )f (t)(ν −1τ ) Θf ν hf
+
f =0
of
= σ
F ν −1 o ν f t ν − τ Θf ν ( ) h(f )( 1 )
+
f =0
Θf τ ( o
ν )f (t)(ντ −1) hf
f =0
f (ν )f (t)(ντ −1) hf
Θf τ
f =0
F ν −1 −1
(t)(ντ )
i (ν )f (t)(ντ −1) hf
Θf τ
f =0
F ν −1 −1
(t)(ντ )
,
(3.21)
,
(3.22)
.
(3.23)
Hàm sigmoid chính là lý do ti sao các hàm i, f , o đưc gi là gate: chúng nhn giá tr t 0 đn 1, do đó cho phép hoc ngăng không cho thông tin đi đn bưc k tip. Nhng cp nht trng thái ca cell đưc thc hin theo cách sau F ν −1 −1
(t)(ντ )
gf
= tanh
F ν −1 g (ν )f (t)(ν −1τ ) hf
Θf ν
+
f =0
(t)(ντ )
cf
= f f ( )(
t ντ ) (t)(ντ −1) cf
g (ν )f (t)(ντ −1) hf
Θf τ
f =0
+ i(f )(
t ντ ) (t)(ντ ) gf
54
,
,
(3.24) (3.25)
và như đưc gii thiu, cp nht hidden state ch là mt probe ca trng thái cell hin ti (t)(ντ )
hf
(t)(ντ )
(t)(ντ )
= o f tanh cf
.
(3.26)
3.5.3 Batch normalization Trong batchnorm, các quy lut cp nht cho gate đưc thay đi như sau F ν −1 −1
(t)(ντ )
if
= σ
F ν −1
Θf ν (
ν −)f (t)(ν −1τ ) yf
i
+
f =0
f f
= σ
+
= σ
F ν −1
o ν − f t ν − τ Θf ν ( ) yf ( )( 1 )
+
f =0
(t)(ντ )
gf
= tanh
Θf τ ( o
ν )f (t)(ντ −1) yf
−
f =0
F ν −1 −1
,
(3.27)
,
(3.28)
,
(3.29)
f (−ν )f (t)(ντ −1) yf
Θf τ
f =0
F ν −1 −1
of
ν )f (t)(ντ −1) yf
−
F ν −1
f (ν −)f (t)(ν −1τ ) Θf ν yf
f =0
(t)(ντ )
i
f =0
F ν −1 −1
(t)(ντ )
Θf τ (
F ν −1
g (ν −)f (t)(ν −1τ ) yf
Θf ν
f =0
+
g (−ν )f (t)(ντ −1) yf
Θf τ
f =0
(3.30)
,
vi (t)(ντ )
yf
(ντ ) ˜ (t)(ντ ) (ντ ) = γ f h + β f , f
(3.31)
và (t)(ντ )
˜ (t)(ντ )
hf
=
hf
− hˆ
(ντ )
(3.32)
f
(ντ )
σf
2
+
và ˆ (ντ )
hf
=
1 T mb
T mb−1
t=0
(t)(ντ )
hf
,
2
(ντ )
σf
=
55
1 T mb
T mb−1
(t)(ντ )
hf
t=0
−
ˆ (ντ ) h f
2
.
(3.33)
Điu quan trng là phi tính tng cho trung bình và phương sai, điu này phc v cho vic đánh giá ca cross-validation và tp kim tra (gi e là s vòng lp – iterations/epochs)
và đưc s dng cui là và . (t)(ντ )
(t)(ντ )
hf
E
e+1
eE hf
=
+ ˆh(f
ντ )
e
(t)(ντ )
(t)(ντ )
Var
hf
e+1
eVar hf
=
(3.34)
2
(3.35)
e + 1
(t)(ντ )
T mb Var T mb−1
hf
E
(ντ )
+ σ ˆf
e
,
e + 1
(t)(ντ )
hf
3.5.4 Backpropagation trong LSTM labelsec:appendbackproplstm Backpropagation trong LSTM có cu trúc tương t RNN, c th là (t)(N −1τ )
δ f
=
1 T mb
and T mb
(t)(ν −1τ )
δ f
=
(tt )(ντ )
J f
hf
=0
t =0
(t)(N τ )
−y
(t)(τ )
f
,
(3.36)
F ν +1− −1
1
(t )(ν −τ +)b (t )(ν −τ +)
δ f
Hf f
.
(3.37)
f =0
Nhng thay đi là hình thc ca H, đưc xác đnh bi (t)(ντ )
= h f
(t)(ντ )
= o f
(t)(ντ )
= o f
(t)(ντ )
= o (f )(
Of If F f
Gf
(t)(ντ )
(t)(ντ ) (t)(ντ )
t ντ )
− − − −
− − −
(t)(ντ )
1
of
1
tanh2 cf
1 1
,
(t)(ντ )
gf
tanh2 cf
(t)(ντ )
cf
tanh2 c(f )(
if
t ντ )
và
56
(t)(ντ ) (t)(ντ )
if
(t)(ντ −1) (t)(ντ )
(t)(ντ )
f f
1
(t)(ντ )
1
if
1
(t)(ντ )
gf
,
(t)(ντ )
f f 2
,
,
(3.38)
(t)(ντ )a
H f f
o (ν +1)f
= Θf a
ν +1)f
+ Θf a ( g
(t)(ν +1τ )
Of
(t)(ν +1τ )
Gf
f (ν +1)f
+ Θf a
(t)(ν +1τ )
F f
ν +1)f (t)(ν +1τ ) If
+ Θf a ( i
.
(3.39)
3.5.5 Cp nht trng s và coefficient trong LSTM ging như cho RNN, (nhưng vi H đưc đnh nghĩa mc ??), vi ν = 1 ta có
ρ (ν )f ∆f ν
T −1 T mb−1
=
τ =0
(ντ )(t) (ντ )(t) (ν −1τ )(t)
ρf
δ f
hf
,
(3.40)
t=0
(3.41)
nu ngưc li T −1 T mb −1 ρ ν f ∆f ν ( )
=
τ =0
(ντ )(t) (ντ )(t) (ν −1τ )(t)
ρf
δ f
yf
,
ρ (ν )f ∆f τ
(3.42)
δ f
yf
,
(3.44)
t=0
1
F ν +1− −1
(t)(ν −τ +)b (t)(ν −τ +)
δ f
Hf f
T mb −1
=
,
(3.43)
(ντ )(t) (ντ )(t) (ντ −1)(t)
ρf
t=0
γ (ντ ) ∆f
τ =1
=
yf
T −1 T mb −1
=
δ f
t=0
T mb −1 β ντ ∆f ( )
(ντ )(t) (ντ )(t) (ν −1τ )(t)
ρf
=0
,
(3.45)
f =0
1
F ν +1− −1
˜ (t)(ντ )
hf
t=0
=0
(t)(ν −τ +)b (t)(ν −τ +)
Hf f
δ f
.
f =0
(3.46)
và T −1 T mb −1
∆f f
=
τ =0
(t)(N −1τ ) (t)(N −1τ )
yf
t=0
57
δ f
.
(3.47)
Chương 4 Xây dng mô hình minh ha 4.1 Gii thiu chương này, chúng tôi s mô t li quá trình thc hin cũng như đánh giá kt qu các thí nghim khi thc hin phân loi nh vi mt b d liu ph bin. Chúng tôi hun luyn mt mô hình đơn gin thuc loi convolutional neural network và áp dng các kin thc đã tìm hiu: convolutional, max pooling, droput và fully connected layers.
4.2 Mã ngun Mã ngun đưc chia s ti https://github.com/danhph/friendly-cnn . Môi trưng lp trình s dng Anaconda vi Python 3.x và Tensorflow. Vic cài đt d dàng vi 4 bưc: 1. Ti phn mm Anaconda ti đa ch https://anaconda.org/anaconda/python. 2. Chy câu lnh cài đt môi trưng trong thư mc cha mã ngun: conda env create -f setup_env.yml
3. Kích hot môi trưng lp trình: source activate friendly-cnn
58
Hình 4.1: Minh ha d liu ca CIFAR-10.
4.3 D liu Chúng tôi s dng b d liu CIFAR-10 Krizhevsky et al. bao gm 60000 bc nh màu có kích thưc 32x32 vi phân nhóm 10 và có 6000 nh mi nhóm. B d liu đưc chia làm 50000 nh đ hun luyn và 10000 nh đ th nghim. B d liu đưc chia thành năm batch hun luyn và mt batch th nghim, mi đi có 10000 hình nh. Các batch th nghim cha chính xác 1000 hình nh đưc la chn ngu nhiên t mi lp. Các batch hun luyn cha các hình nh còn li theo th t ngu nhiên, nhưng mt s batch hun luyn có th cha nhiu hình nh ca lp này hơn lp khác. Mi batch cha các nhãn và nh thuc các nhóm sau: airplane, automobile, bird, cat, deer, dog, frog, horse, ship và truck như mô t trong hình 4.1.
4.4 Xây dng mô hình Đu tiên, chúng tôi xây dng các conv-maxpool layer (kt hp Convolution và Max Pooling Layer) vi hàm kích hot ReLU. Bên cnh đó, chúng tôi cũng xây dng các Fully-Connected Layer. Tt c chúng đu đưc t xây dng li da trên
59
I n p u t
C o n v
P o o l
C o n v
P o o l
C o n v
P o o l
F u l l
F u l l
O u t p u t
Hình 4.2: Mô hình CNN đơn gin ca chúng tôi. các TensorFlow package. def conv2d_maxpool(x_tensor, conv_num_outputs, conv_ksize, conv_strides, pool_ksize, pool_strides): """ Apply convolution then max pooling to x_tensor :param x_tensor: TensorFlow Tensor :param conv_num_outputs: Num of outputs for the convolutional layer :param conv_ksize: kernal size 2-D Tuple for the convolutional layer :param conv_strides: Stride 2-D Tuple for convolution :param pool_ksize: kernal size 2-D Tuple for pool :param pool_strides: Stride 2-D Tuple for pool : return: A tensor that represents convolution and max pooling of x_tensor """ pool_ksize = [1, *pool_ksize, 1] pool_strides = [1, *pool_strides, 1] conv_strides = [1, *conv_strides, 1] conv_weights = tf.Variable(tf.random_normal([*conv_ksize, x_tensor.shape[3].value, conv_num_outputs], stddev=0.05)) conv_bias = tf.Variable(tf.zeros(conv_num_outputs)) x = tf.nn.conv2d(x_tensor, conv_weights, strides=conv_strides, padding=’SAME’) x = tf.nn.bias_add(x, conv_bias) x = tf.nn.relu(x) x = tf.nn.max_pool(x, pool_ksize, pool_strides, padding=’SAME’) return x
60
def fully_conn(x_tensor, fully_conn(x_tensor, num_outputs): num_outputs): """ Apply App ly a ful fully ly con conne necte cted d lay layer er to x_ x_ten tenso sor r usi using ng wei weigh ght t and bi bias as : x_t x_tens ensor: or: A 2-D ten tensor sor wh where ere the first dim dimens ension ion is ba batch tch siz size. e. : num num_ou _outpu tputs: ts: The number number of out output put tha that t the new ten tensor sor should should be. : ret return urn: : A 22-D D ten tensor sor whe where re the se secon cond d dim dimen ensio sion n is num num_ou _outp tputs uts. . """ weights = tf.Variable(tf.rand tf.Variable(tf.random_normal( om_normal((x_tensor (x_tensor.shape[1]. .shape[1].value, value, num_outputs), num_outputs), stddev=0.05)) stddev=0.05)) bias = tf.Variable(tf.zero tf.Variable(tf.zeros(num_outp s(num_outputs)) uts)) x = tf.add(t tf.add(tf.ma f.matmul tmul(x_t (x_tenso ensor, r, weights) weights), , bias) bias) x = tf.nn.re tf.nn.relu(x lu(x) ) return x
K tip chúng tôi xây dng mô hình vi ba conv2d_maxpool layer, theo sau bi 2 fully_conn fully_conn layer kt hp 2 dropout layer. layer.
4.5 4.5 Hun Hun luy luyn mô hình hình Sau khi th các b tham s (epochs, (ep ochs, keep_probabi keep_probabilit lity) y) khác nhau. Mô hình cui ca chúng tôi s dng epochs là 50 và keep_probability là 0 .6. Trong mi ln hun luyn, chúng tôi hun luyn mô hình trên mt batch đơn ca CIFAR-10 đ tit kim thi gian. Sau khi đt đưc đ chính xác cao tt hơn, chúng tôi tip túc hun luyn mô hình trên toàn b d liu. Chúng tôi s dng loss function là hàm softmax cross entropy và đánh giá mô hình da trên t l phn trăm d đoán chính xác nhãn ca nh.
61
4.6 Kt qu Vi kt qu kim th, mô hình ca chúng tôi cho đ chính xác là 68.32%. Đây không phi là mt kt qu thp đi vi mt mô hình CNN đơn gin. Và còn rt nhiu k thut khác mà chúng tôi chưa áp dng.
62
Chương 5 Kt lun và hưng phát trin Bài báo cáo này tng kt li nhng tìm hiu ca chúng tôi v k thut Deep Learning. Chúng tôi đã trình bày li kin trúc ca ba loi neutral network ph bin nht, cũng các công thc toán hc dùng đ hun luyn các mô hình này mt cách cn thn. Vi nhng kin thc này, chúng tôi đã hiu thêm v cách mt mô hình neutral network đưc thit k cũng như cách nó hot đng. Bên canh đó, chúng tôi cũng đã xây dng mt mô hình đơn gin thông qua các kin thc đã tìm hiu. Deep Learning là mt lĩnh vc phát trin rt nhanh và các mô hình hin ti s li thi trong tương lai gn. Tuy nhiên nhng cách tip cn đã đưc chúng tôi gii thiu vn s giúp ích cho vic hiu nhng nguyên lí phía sau các mô hình tiên tin sau này. Báo cáo này là mt bài tng hp kin thc vi mong mun giúp các đc gi d dàng tip cn vi lĩnh vc Deep Learning. Tuy đã n lc rt nhiu nhưng không th thiu sót, nht là nhng sai sót liên quan đn vn đ dch các thut ng gia Ting Anh và Ting Vit. Chúng tôi s tip tc b sung và cp nht các kin thc mi trong lĩnh vc cũng như chnh sa các li dch ca thut ng cho bài báo cáo này trong tương lai.
63
Trích dn Bengio, Y., Simard, P. & Frasconi, P. (1994).
Learning long-term depen-
dencies with gradient descent is difficult. IEEE transactions on neural networks , 5 , 157–166. 52 Bengio, Y. et al. (2009).
Learning deep architectures for ai. Foundations and trends in Machine Learning , 2 , 1–127. x R
Duchi, J., Hazan, E. & Singer, Y. (2011). Adaptive subgradient methods for
online learning and stochastic optimization. J. Mach. Learn. Res., 12 , 2121– 2159. 20 Epelbaum, T. (2017).
Deep learning: Technical introduction. ArXiv e-prints . i
Gatys, L.A., Ecker, A.S. & Bethge, M. (2015).
A neural algorithm of
artistic style. arXiv preprint arXiv:1508.06576 . x Gers, F.A., Schmidhuber, J.A. & Cummins, F.A. (2000).
Learning to forget: Continual prediction with lstm. Neural Comput., 12, 2451–2471. 52
Graves, A. (2011). Supervised Sequence Labelling with Recurrent Neural Net-
works .
45
Gu, J., Wang, Z., Kuen, J., Ma, L., Shahroudy, A., Shuai, B., Liu, T., Wang, X. & Wang, G. (2015).
Recent advances in convolutional neural networks. CoRR, abs/1512.07108. 33 Gupta, A., Wang, H. & Ganapathiraju, M. (2015).
Learning structure in gene expression data using deep architectures, with an application to gene clus-
64
TRÍCH DN tering. In Bioinformatics and Biomedicine (BIBM), 2015 IEEE International Conference on , 1328–1335, IEEE. x He, K., Zhang, X., Ren, S. & Sun, J. (2015).
Deep residual learning for
image recognition. 7. 36 Ioffe, S. & Szegedy, C. (2015).
Batch normalization: Accelerating deep network training by reducing internal covariate shift. 13
Kingma, D. & Ba, J. (2014). Adam: A
method for stochastic optimization. 22
Krizhevsky, A., Nair, V. & Hinton, G. (????).
Cifar-10 (canadian institute
for advanced research), 2009a. URL http://www. cs. toronto. edu/kriz/cifar. html . 59 Krizhevsky, A., Sutskever, I. & Hinton, G.E. (2012).
Imagenet classification with deep convolutional neural networks. In F. Pereira, C.J.C. Burges, L. Bottou & K.Q. Weinberger, eds., Advances in Neural Information Processing Systems 25 , 1097–1105, Curran Associates, Inc. 34
Lecun, Y., Bottou, L., Bengio, Y. & Haffner, P. (1998). Gradient-based
learning applied to document recognition. In Proceedings of the IEEE , 2278– 2324. 34 ¨ LeCun, Y., Bottou, L., Orr, G.B. & M uller, K.R. (1998).
Effiicient
backprop. In Neural Networks: Tricks of the Trade, This Book is an Outgrowth of a 1996 NIPS Workshop , 9–50, Springer-Verlag, London, UK, UK. 15 LeCun, Y., Bengio, Y. & Hinton, G. (2015).
Deep learning. Nature , 521,
436–444. ii Nesterov, Y. (1983). A method for unconstrained convex minimization problem
with the rate of convergence o (1/k2). In Doklady an SSSR , vol. 269, 543–547. 20 Osako, K., Singh, R. & Raj, B. (2015).
Complex recurrent neural networks
for denoising speech signals. In Applications of Signal Processing to Audio and Acoustics (WASPAA), 2015 IEEE Workshop on , 1–5, IEEE. x
65