Trong chương2, chúng tôi giới thiệu convolutional neural network, đặc biệt dùng để xử lí dữ liệu hình ảnh.. Những điểm mới vànhững sửa đổi sẽ được mô tả chi tiết trong văn bản chính, và
Trang 1ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
12, 2017
Trang 2LỜI CÁM ƠN
Trong suốt thời gian thực hiện đồ án, chúng tôi đã nhận được rấtnhiều sự giúp đỡ từ các thầy cô của trường Đại học Công nghệ thôngtin, đặc biệt là thầy Vũ Thanh Nguyên – người đã trực tiếp giảng dạy
và hướng dẫn chúng tôi thực hiện đồ án này
Trong quá trình thực hiện, chúng tôi đã tham khảo dựa trên các bàitổng hợp trong Tiếng Anh củaWang et al [2017] vàEpelbaum[2017],chúng tôi xin gửi lời cám ơn chân thành đến những đóng góp của cáctác giả
Mặc dù chúng tôi đã cố gắng rất nhiều nhưng chắc chắn không thểtránh khỏi những sai sót Chúng tôi rất mong nhận được sự đóng góp
từ quý thầy cô cũng như các bạn đã đọc bài báo cáo này
Trang 3Bài báo cáo này giới thiệu các mô hình tiên tiến phổ biến gồm forward Neural Network, Convolutional Neural Network và RecurrentNeural Network Thay vì chỉ áp dụng Deep Learning với một số thưviện có sẵn, chúng tôi mong muốn thực sự hiểu nó là gì Chúng tôitập trung vào những ý tưởng ban đầu để hình thành, sự phát triểncủa chúng cho đến hiện tại và đánh giá các mô hình.
Trang 4Feed-Mục lục
1.1 Giới thiệu 1
1.2 Kiến trúc FNN 1
1.3 Các kí hiệu 2
1.4 Cân bằng trọng số 3
1.5 Hàm kích hoạt 4
1.5.1 Hàm sigmoid 4
1.5.2 Hàm tanh 5
1.5.3 Hàm ReLU 5
1.5.4 Hàm leaky-ReLU 6
1.5.5 Hàm ELU 7
1.6 Các layer của FNN 8
1.6.1 Input layer 8
1.6.2 Fully connected layer 9
1.6.3 Output layer 9
1.7 Loss function 10
1.8 Các kỹ thuật Regularization 11
1.8.1 L2 regularization 11
1.8.2 L1 regularization 12
Trang 5MỤC LỤC
1.8.3 Clipping 13
1.8.4 Dropout 13
1.8.5 Batch Normalization 13
1.9 Backpropagation 15
1.9.1 Backpropagate thông qua Batch Normalization 16
1.9.2 Cập nhật error 16
1.9.3 Cập nhật trọng số 17
1.9.4 Cập nhật Coefficient 18
1.10 Dữ liệu nào sử dụng cho gradient descent? 18
1.10.1 Full-batch 18
1.10.2 Stochastic Gradient Descent (SGD) 18
1.10.3 Mini-batch 19
1.11 Những kỹ thuật Gradient optimization 19
1.11.1 Momentum 19
1.11.2 Nesterov accelerated gradient 20
1.11.3 Adagrad 20
1.11.4 RMSprop 21
1.11.5 Adadelta 21
1.11.6 Adam 22
1.12 Khởi tạo trọng số 22
2 Convolutional Neural Networks 24 2.1 Giới thiệu 24
2.2 Kiến trúc CNN 24
2.3 Tính đặc thù của 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
Trang 6MỤC LỤC
2.4 Các điều chỉnh với Batch Normalization 31
2.5 Các kiến trúc CNN 32
2.5.1 Realistic architectures 33
2.5.2 LeNet 34
2.5.3 AlexNet 34
2.5.4 VGG 35
2.5.5 GoogleNet 35
2.5.6 ResNet 36
2.6 Backpropagation 37
2.6.1 Backpropagate trong Batch Normalization 37
2.6.2 Cập nhật Error 37
2.6.2.1 Backpropagate từ output đến fc 37
2.6.2.2 Backpropagate từ fc đến fc 38
2.6.2.3 Backpropagate từ fc đến pool 38
2.6.2.4 Backpropagate từ pool đến conv 39
2.6.2.5 Backpropagate từ conv đến conv 39
2.6.2.6 Backpropagate từ conv đến pool 40
2.6.3 Cập nhật trọng số 40
2.6.3.1 Cập nhật trọng số từ fc đến fc 40
2.6.3.2 Cập nhật trọng số từ fc đến pool 41
2.6.3.3 Cập nhật trọng số từ conv đến conv 41
2.6.3.4 Cập nhật trọng số từ conv đến pool và conv đến input 42
2.6.4 Cập nhật Coefficient 42
2.6.4.1 Cập nhật Coefficient từ fc đến fc 42
2.6.4.2 Cập nhật Coefficient từ fc đến pool và conv đến pool 43
2.6.4.3 Cập nhật Coefficient từ conv đến conv 43
3 Recurrent Neural Networks 45 3.1 Giới thiệu 45
3.2 Kiến trúc RNN-LSTM 45
3.2.1 Hướng Forward trong RNN-LSTM 45
Trang 7MỤC LỤC
3.2.2 Hướng backward trong RNN-LSTM 47
3.3 Extreme Layers và loss function 47
3.3.1 Input layer 47
3.3.2 Output layer 48
3.3.3 Loss function 48
3.4 Các đặc trưng của RNN 48
3.4.1 Cấu trúc RNN 48
3.4.2 Forward pass trong RNN 50
3.4.3 Backpropagation trong RNN 50
3.4.4 Cập nhật trọng số và coefficient trong RNN 51
3.5 Đặc trưng của LSTM 52
3.5.1 Cấu trúc LSTM 52
3.5.2 Hường forward trong LSTM 53
3.5.3 Batch normalization 55
3.5.4 Backpropagation trong LSTM 56
3.5.5 Cập nhật trọng số và coefficient trong LSTM 57
4 Xây dựng mô hình minh họa 58 4.1 Giới thiệu 58
4.2 Mã nguồn 58
4.3 Dữ liệu 59
4.4 Xây dựng mô hình 59
4.5 Huấn luyện mô hình 61
4.6 Kết quả 62
Trang 8Danh sách hình vẽ
1.1 Neural Network với N + 1 layers (N − 1 hidden layers) Shallow architectures thường chỉ có một hidden layer Deep learning có một
số hidden layer, thường chứa 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 của nó 4
1.4 Hàm tanh và đạo hàm của nó 5
1.5 Hàm RELU và đạo hàm của nó 6
1.6 Hàm leaky-RELU và đạo hàm của nó 7
1.7 Hàm ELU và đạo hàm của nó 8
1.8 Neural network trong hình1.1 với dropout cho cả các hidden layer và input Thông thường, một tỉ lệ khác nhau (thấp hơn) dùng cho việc tắc các nơ-ron của input và các hidden layers 14
2.1 Một kiến 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 giảm còn một Fully connected layers sau đó được kết nối 25
2.2 Input layer 26
2.3 Padding của feature map Những số không được thêm vào là những tile màu đỏ, kích thước padding này là P = 1 27
2.4 Convolution operation 27
2.5 The pooling operation 29
2.6 Fully connected operation để lấy chiều rộng và chiều cao 1 30
2.7 Fully connected operation, giống như FNN operations 31
2.8 Sơ đồ đại diện của các layer khác nhau 33
Trang 9DANH SÁCH HÌNH VẼ
2.9 Realistic Fully connected operation và Realistic Convolution
oper-ation 33
2.10 The LeNet CNN 34
2.11 The AlexNet CNN 34
2.12 The VGG CNN 35
2.13 The GoogleNet CNN 35
2.14 Kiến trúc Bottleneck Residual Sơ đồ trên lí thuyết bên trái, thực tế ở bên phải Nó cần một 1 × 1 conv với stride 1 và padding 0, sau đó một VGG conv chuẩn và 1 × 1 conv 36
2.15 The ResNet CNN 36
2.16 Backpropagate từ output đến fc 38
2.17 Backpropagate từ fc đến fc 38
2.18 Backpropagate từ fc đến pool 39
2.19 Backpropagate từ pool đến conv 39
2.20 Backpropagate từ conv đến conv 40
2.21 Backpropagate từ conv đến pool 40
2.22 Cập nhật trọng số giữa hai fc layer 41
2.23 Cập nhật trọng số giữa fc layer và pool layer 41
2.24 Cập nhật trọng số giữa hai conv layer 41
2.25 Cập nhật trọng số từ conv đến pool cũng giống như từ conv đến input 42
2.26 Cập nhật Coefficient giữa hai fc layer 42
2.27 Cập nhật Coefficient từ fc đến pool cũng giống như từ conv đến pool 43
2.28 Cập nhật Coefficient giữa hai conv layer 43
3.1 Kiến trúc RNN, với dữ liệu được lan truyền theo cả "không gian" và "thời gian" Trong ví dụ, chiều thời gian có kích thước là 8, không gian có kích thức là 4 46
3.2 Hướng backward trong kiến trúc Do đó không thể tính toán gra-dient của một layer mà không tính toán những cái mà nó đã đi qua 47
3.3 Các chi tiết của RNN hidden unit 49
Trang 10DANH SÁCH HÌNH VẼ
3.4 Cách hidden unit RNN tương tác với nhau 49
3.5 Chi tiết LSTM hidden unit 53
3.6 Cách các LSTM hidden unit tương tác với nhau 54
4.1 Minh họa dữ liệu của CIFAR-10 59
4.2 Mô hình CNN đơn giản của chúng tôi 60
Trang 11Giới thiệu
Bản chất kiến trúc nhiều lớp cho phép deep learning khả năng giải quyết nhiềuvấn đề AI phức tạp hơn [Bengio et al.,2009] Vì vậy, các nhà nghiên cứu đang mởrộng ứng dụng deep learning tới các lĩnh vực và vấn đề mới, ví dụ: Osako et al.[2015] sử dụng recurrent neural network để denoise các tính hiệu thoại; Gupta
et al [2015] để khám phá các pattern phân cụm của các biểu hiện gen; Gatys
et al [2015] sử dụng một mô hình nơ-ron để tạo ra các hình ảnh với các kiểukhác nhau; Wang et al [2016] dùng deep learning để phân tích tâm lý từ nhiềuphương thức đồng thời; vv Đây là giai đoạn chứng kiển sự bùng nổ của lĩnh vựcnghiên cứu deep learning
Để tham gia và thúc đẩy quá trình nghiên cứu deep learning, chúng ta cần phảihiểu rõ các kiến trúc của các mô hình và tại sao chúng tồn tại Chúng tôi tậptrung vào ba loại mô hình deep learning phổ biến theo một trình tự từ đơn giảnđến phức tạp thông qua các chương
Chương 1 bắt đầu với loại mô hình đầu tiên được giới thiệu trong lịch sự: môhình feedforward neural network, đây là bước phát triển từ thuật toán perceptronnguyên bản Rosenblatt[1958] Các mô hình feedforward network có cấu trúc xếpchồng các lớp perceptron lên trên những lớp khác, như non-linear regression
Trong chương2, chúng tôi giới thiệu convolutional neural network, đặc biệt dùng
để xử lí dữ liệu hình ảnh Chúng tôi giới thiệu về những kiến thứ toán như lution, pooling, v.v Cũng như cho thấy sự thay đổi của các kiến trúc khối đượcgiới thiệu ở chương 1 Nhiều kiến trúc neural network được giới thiệu kèm theo
Trang 12convo-Chương 3 sẽ giới thiệu recurrent neural network, kiến trúc thích hợp để xử lícác dữ liệu có cấu trúc temporal–như thời gian và văn bản Những điểm mới vànhững sửa đổi sẽ được mô tả chi tiết trong văn bản chính, và các phụ lục cungcấp các công thức phức tạp nhất của loại kiến trúc mạng này.
Ở chương 4, chúng tôi xây dựng một mô hình minh họa thuộc loại tional Neural Network (được giới thiệu trong chương 2), áp dụng các kỹ thuật,phương pháp trong bài báo cáo để thực hành các kiến thức đã tìm hiểu
Trang 13xử lý các dữ liệu có cấu trúc "sâu": neural network với một số lượng đáng kể cáchidden state và các hidden layer, những thứ đã được chứng minh là rất khó đểhuấn luyện (các vấn đề vanishing gradient và overfitting).
1.2 Kiến trúc FNN
Một FNN được tạo thành bởi một input layer, một (shallow network) hoặc nhiềuhơn (deep network) các hidden và một output layer Mỗi layer của network (trừoutput) được kết nối với một layer phía sau Kết nối này là trung tâm của cấutrúc FNN và có hai tính năng chính ở dạng đơn giản nhất: cân bằng trọng số vàkích hoạt Chúng tôi sẽ trình bày các tính năng này trong các phần sau
Trang 14Hình 1.1: Neural Network với N + 1 layers (N − 1 hidden layers) Shallow tectures thường chỉ có một hidden layer Deep learning có một số hidden layer,thường chứa cùng số lượng hidden neuron.
archi-1.3 Các kí hiệu
Trong những phần sau, chúng tôi sẽ sử dụng
• N số lượng layer (không tính input) trong một Neural Network
• Ttrain số lượng example trong dữ dữ liệu huấn luyện
• Tmb số lượng example trong một mini-batch (xem phần 1.7)
• t ∈J0, Tmb− 1K instance trong mini-batch.
• ν ∈ J0, N K số lượng layer của FNN.
• Fν số lượng nơ-ron của layer thứ ν
• Xf(t) = h(0)(t)f với f ∈J0, F0 − 1K các biến đầu vào.
• y(t)f với f ∈ [0, FN − 1] các biến đầu ra (để dự đoán)
Trang 15Hình 1.2: Quá trình weight averaging.
• ˆy(t)f với f ∈ [0, FN − 1] đầu ra của network
• Θ(ν)ff 0 với f ∈ [0, Fν − 1], f0 ∈ [0, Fν+1 − 1] và ν ∈ [0, N − 1] các ma trậntrọng số (weights matrix)
1.4 Cân bằng trọng số
Một trong hai component chính của FNN là quá trình cân bằng trọng số, ướclượng để cân bằng các output layer phía trước với những ma trận trọng số để điđến layer kế tiếp Minh họa trên Hình 1.2
Quá trình cân bằng trọng số dưới dạng công thức:
Trang 16Hình 1.3: Hàm sigmoid và đạo hàm của nó.
1.5 Hàm kích hoạt
Hidden neuron của mỗi layer được định nghĩa như sau
h(t)(ν+1)f = ga(t)(ν)f , (1.2)
với ν ∈ J0, N − 2K, f ∈ J0, Fν+1− 1K và t ∈ J0, Tmb − 1K Ở đây g làm một hàmkích hoạt – thành phần chính thứ hai của FNN – dự đoán dữ liệu đầu ra mộtcách không tuyến tính Trong thực tế, g thường là một trong những hàm được
mô tả trong những phần dưới đây
Trang 17Hình 1.4: Hàm tanh và đạo hàm của nó.
Trang 18Hình 1.5: Hàm RELU và đạo hàm của nó.
The leaky-ReLU nhận giá trị trong đoạn [−∞, +∞] và là một sửa đổi nhỏ củaReLU cho phép các hidden neuron nhận giá trị khác không với bất kì giá trị x.Công thức của nó là
Trang 19Hình 1.6: Hàm leaky-RELU và đạo hàm của nó.
Trang 20Hình 1.7: Hàm ELU và đạo hàm của nó.
sample của dữ liệu huận luyện, với T mb T train Trông các phần sau, sẽ có t ∈J0, Tmb − 1K.
Trang 21và f ∈ J0, F0 − 1K Một bước xử lí thông thường để trung tâm hóa dữ liệu đầuvào:
˜
Xf(t) = Xf(t)− µf , (1.15)với
The fully connected operation thực chất chỉ là hoạt động kết nối giữa việc cấnbằng trọng số và quá trình kích hoạt Cụ thể, ∀ν ∈J0, N − 1K
Đầu ra của FNN
h(t)(N )f = o(a(t)(N −1)f ) , (1.20)
Trang 22với o được gọi làm hàm output Trong các trường hợp Euclidean loss function,hàm output chỉ là nhận dạng Các các bài toán phân loại, o là hàm softmax.
Trang 23λ−1L2 với
Trang 24cùng tham số λL2, chúng ta có biểu thức sau
f 0 h(t)(ν)
(1.29)Lấy log của nó và bỏ qua các constant term, ta có
và term cuối cùng chính xác là L2 regulator cho một giá trị nu cho trước (xemcông thức (1.26)
Θ(ν)ff0
(1.31)
Nó cũng thường được sử dụng như L2 regularization, nhưng không dùng theo cáchriêng lẻ giá trị thông thường của λL1 trong khoảng 10−4− 10−2 L1 regularizationvới suy luận Bayes với phân phối chuẩn Laplacian
FΘ(ν)ff0
Trang 25
số trường hợp, ngay cả một số biến đầu vào) cho mỗi example huấn luyện.
Việc tính toán này được thực hiện thông qua: với ν ∈J1, N − 1K
Trang 26mini-Hình 1.8: Neural network trong hình 1.1 với dropout cho cả các hidden layer
và input Thông thường, một tỉ lệ khác nhau (thấp hơn) dùng cho việc tắc cácnơ-ron của input và các hidden layers
Ở đây, chúng tôi xem xét trường hợp ∀ν ∈J0, N − 2K
˜
h(t)(ν)f = h
(t)(ν+1)
f − ˆh(ν)fr
ˆ
Trang 27y(t)(ν)f = γf(ν)˜h(t)(ν)f + βf(ν)= ˜γf(ν)h(t)(ν)f + ˜βf(ν) (1.38)
Hệ số βf(ν) thúc đẩy chúng ta thoát khỏi xu hướng thiên vị, vì nó được baogồm trong batchnorm Trong quá trình huấn luyện, ta phải tính tóa giá trị trungbình và phương sai, phục vụ cho việc đánh giá cross-validation và tập dữ liệukiểm tra (gọi e là số các vòng lặp – iterations/epochs)
Trang 28nhiên, nếu được thực hiện đúng, đây là công việc hữu ích và quan trọng nhấttrong FNN Do đó chúng tôi mô tả sẽ chi tiết làm thế nào để tính toán mỗi trọng
số (và Batistorm coefficients) gradients
Backpropagation giới thiệu một gradient mới
δff0Jf(tt0)(ν) = ∂y
(t0)(ν)
f 0
∂h(t)(ν+1)f . (1.43)với
Trang 29và với cross entropy loss function
f000=0
∂Θ(ν)f00
Trang 301.10 Dữ liệu nào sử dụng cho gradient descent?
Từ đầu chúng ta đã kí hiệu Tmb dữ liệu mẫu mà chúng ta sẽ huấn luyện mô hình.Thủ tục này được lặp lại với thời gian dài (mỗi lần được gọi là epoch) Tồn tại
ba cách để lấy mẫu từ các dữ liệu: Full-batch, Stochastic và Mini-batch gradientdescent Chúng tôi nêu rõ các điều khoản này trong các phần sau Chúng tôi nêu
rõ các vấn đề này trong các phần sau
SGD tính toán để lấy một phần mẫu của dữ liệu trong mỗi epoch
Trang 31Sự lựa chọn này dẫn đến việc tính toán nhanh hơn, nhưng vì vậy không ổn định
về số lượng Sự lựa chọn chuẩn nhất cho đến nay là Mini-batch gradient descent
Tất cả các tính toán trong báo cáo này đều sử dụng kỹ thuật gradient descent
1.11 Những kỹ thuật Gradient optimization
Khi mà các gradient cho backpropagation được tính toán, câu hỏi là làm thế nào
để thêm chúng vào các trọng số đã tồn tại Đơn giản nhất là dùng
Θ(ν)ff0 = Θ(ν)ff0 − η∆Θ(i)ff0 (1.58)với η là một tham số ngẫu nhiên được tạo bởi cross-validation Nó cũng có thểđược tính dựa vào epoch Khi sử dụng Mini-batch gradient descent, sự lựa chọncập nhật này cho các trọng số có thể bị kẹt ở các điểm local mininum Một sốphương pháp đã được phát minh để ngăn ngừa nguy cơ này Chúng tôi sẽ xemxét chúng trong các phần tiếp theo
MomentumQian [1999] đưa ra một vec-tơ mới vevà sử dụng để lưu các cập nhật
ở những epoch trước Gọi e là số epoch và bỏ đi các chỉ sốf, f0, ν gradients đểgiảm bớt ký hiệu, chúng ta có
Trang 32và những trọng số ở mỗi epoch e sẽ được cập nhật như sau
γ là tham số mới, thường là 0.9 nhưng có thể thay đổi bởi cross-validation
Nesterov accelerated gradient Nesterov [1983] là một sự điều chỉnh nhỏ của kỹthuật momentum cho phép gradients thoát các điểm local minimum
Trang 33riêng biệt cho từng trọng số thông qua ve term dùng để tránh các trường hợpchia cho 0, và nó thường là 10−8.
Adadelta Zeiler[2012] là một phần mở rộng của RMSprop, với mục đích bỏ tham
số η Để làm được điều đó, một vec-tơ mới được giới thiệu
me = γme−1+ (1 − γ) √me−1+
√
ve+ ∆
Θ e
Learning rate đã được tính hoàn toàn từ quy tắc, nhưng phương thức để làm là
ad hoc (thực hiện chỉ với một mục đích cụ thể) Kỹ thuật tối ưu hóa tiếp theo vàcuối cùng được trình bày có vẻ tự nhiên hơn và là sự lựa chọn mặc định đối với
Trang 341.11.6 Adam
Adam Kingma & Ba [2014] track cả gradient và bình phương của nó thông quahai vec-tơ độc lập
me= β1me−1+ (1 − β1)∆Θe , ve = β2ve+ (1 − β2) ∆Θe2 , (1.69)với β1 và β2 thường là 0.9 và 0.999 Nhưng sức mạnh và tính chắc chắn củaAdam nằm ở việc nó làm cho toàn bộ quá trình học tập phụ thuộc yếu tố vàoprecise Để tránh những vấn đề về số trong các bước đầu tiên, các vector nàyđược thay đổi tỷ lệ
ˆ
me= me
1 − βe 1
1 − βe 2
Trang 35tạo chúng quá lớn Một heuristic tốt là
Trang 36xe, v.v Chúng tôi sẽ giới thiệu các điểm mới liên quan đến CNN khi so sánh vớiFNN Theo đó là những khối xây dựng cơ bản của CNN: convolution và pooling.Ngoài ra chúng tôi sẽ nói đến những thay đổi phải chú ý khi áp dụng các kỹ thuậtregularization được giới thiệu trong phần FNN Cuối cùng, chúng tôi sẽ trình bàycác kiến trúc CNN phổ biến nhất: từ LeNet đến ResNet.
2.2 Kiến trúc CNN
Một CNN được hình thành bởi một số operation convolution và pooling, thường
là theo sau bởi một hoặc nhiều fully connected layer (tương tự như các layer FNNtruyền thống) Chúng tôi sẽ chỉ rõ các điểm mới được giới thiệu trong phần tiếptheo
Trang 37Hình 2.1: Một kiến trúc CNN (đây là LeNet): các convolution operation đượctheo sau là pooling operation, cho đến khi kích thước feature map giảm còn một.Fully connected layers sau đó được kết nối.
2.3 Tính đặc thù của CNN
Trong mỗi layer của CNN, dữ liệu không còn được gắn nhãn bởi một index nhưtrong FNN Chúng ta nên xem index trong FNN tương đương với nhãn một tấmảnh trong môt layer của CNN Nhãn này là một feature map
Trong mỗi feature map f ∈ J0, Fν − 1K của layer thứ ν , hình ảnh được đặctrưng bởi hai chỉ số bổ sung tương ứng là chiều cao height k ∈ Tν − 1 và chiềurộng j ∈ Nν− 1 Một bộ f, j, k đặc trưng cho một pixel duy nhất của một featuremap Bây giờ chúng ta hãy xem xét các lớp khác nhau của CNN
Chúng ta xét đầu với với F0kênh Với một ảnh thông thường, kênh này tương ứngvới kênh màu RGB (F0 = 3) Mỗi ảnh trong mỗi kênh sẽ có kích thước N0× T0(rộng × cao) Input sẽ được kí hiệu Xf j k(t) , với t ∈ J0, Tmb− 1K (kích thước củaMini-batch, xem chương 1), j ∈J0, N0− 1K và k ∈ J0, T0− 1K.Một cách xử lý đầuvào tiêu chuẩn là tập trung dữ liệu theo một trong hai thủ tục sau
˜
Xf j k(t) = Xi j k(t) − µf , X˜f j k(t) = Xi j k(t) − µf j k (2.1)
Trang 38Khi chúng ta xử lí, để thuận tiện chúng ta "pad" các feature maps để bảo vệchiều rộng và chiều cao của hình ảnh khi đi qua các hidden layer Padding tăngthêm 0 quanh hình ảnh ban đầu Với một padding có kích thước P , chúng tôithêm P zeros vào đầu mỗi hàng và cột của một feature map nhất định Điều nàyđược minh họa trong hình 2.3
Convolution operation được đặt tên cho CNN vì đây là khối chính của loại neuralnetwork này Nó nhận một feature map vào một input hidden layer với một matrận trọng số để tạo ra một feature map đầu ra Các trọng số này là các tensor 4
Trang 39Hình 2.3: Padding của feature map Những số không được thêm vào là nhữngtile màu đỏ, kích thước padding này là P = 1.
Vì RC là kích thước của convolutional receptive field (pooling operation cũng
có receptive field và stride) và SC là convolutional stride Chiều rộng và chiều caocủa hình đầu ra có thể được tính theo chiều rộng đầu vào N và chiều cao đầu
... chiều cao hình ảnh qua hidden layer Padding tăngthêm quanh hình ảnh ban đầu Với padding có kích thước P , chúng tôithêm P zeros vào đầu hàng cột feature map định Điều nàyđược minh họa hình 2.3Convolution... cross-validation Nó có thểđược tính dựa vào epoch Khi sử dụng Mini-batch gradient descent, lựa chọncập nhật cho trọng số bị kẹt điểm local mininum Một sốphương pháp phát minh để ngăn ngừa nguy Chúng xemxét... class="text_page_counter">Trang 26
mini -Hình 1.8: Neural network hình 1.1 với dropout cho hidden layer
và input Thông thường, tỉ lệ khác (thấp hơn) dùng cho việc tắc