tìm hiểu về deep learning và xây dụng mô hình minh họa

78 14 0
tìm hiểu về deep learning và xây dụng mô hình minh họa

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM ĐỒ ÁN CHUN NGÀNH CƠNG NGHỆ PHẦN MỀM Tìm hiểu Deep Learning xây dựng mơ hình minh họa GIẢNG VIÊN HƯỚNG DẪN: PGS TS Vũ Thanh Nguyên SINH VIÊN THỰC HIỆN: Phạm Hữu Danh - 14520134 Phạm Văn Sĩ - 14520763 12, 2017 LỜI CÁM ƠN Trong suốt thời gian thực đồ án, nhận nhiều giúp đỡ từ thầy cô trường Đại học Công nghệ thông tin, đặc biệt thầy Vũ Thanh Nguyên – người trực tiếp giảng dạy hướng dẫn thực đồ án Trong q trình thực hiện, chúng tơi tham khảo dựa tổng hợp Tiếng Anh Wang et al [2017] Epelbaum [2017], xin gửi lời cám ơn chân thành đến đóng góp tác giả Mặc dù cố gắng nhiều chắn tránh khỏi sai sót Chúng tơi mong nhận đóng góp từ q thầy bạn đọc báo cáo TÓM TẮT Deep learning hướng tiếp cận lĩnh vực trí tuệ nhân tạo (Artificial Intelligence - AI) bàn luận sôi Deep learning cải thiện cách đáng kể phương pháp đại nhiều vấn đề AI phát đối tượng, nhận diện giọng nói, dịch máy (machine translation) [LeCun et al., 2015] Bài báo cáo giới thiệu mơ hình tiên tiến phổ biến gồm Feedforward Neural Network, Convolutional Neural Network Recurrent Neural Network Thay áp dụng Deep Learning với số thư viện có sẵn, chúng tơi mong muốn thực hiểu Chúng tơi tập trung vào ý tưởng ban đầu để hình thành, phát triển chúng đánh giá mơ hình Mục lục Mục lục iii Danh sách hình vẽ vii Giới thiệu Feedforward Neural Networks 1.1 Giới thiệu 1.2 Kiến trúc FNN 1.3 Các kí hiệu 1.4 Cân trọng số 1.5 Hàm kích hoạt 1.5.1 Hàm sigmoid 1.5.2 Hàm 1.5.3 Hàm ReLU 1.5.4 Hàm leaky-ReLU 1.5.5 Hàm ELU 1.6 Các layer 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ỹ thuật Regularization 1.8.1 L2 regularization 1.8.2 L1 regularization x iii 1 4 5 8 9 10 11 11 12 MỤC LỤC 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 Cập nhật error 1.9.3 Cập nhật trọng số 1.9.4 Cập nhật Coefficient 1.10 Dữ liệu sử dụng cho gradient descent? 1.10.1 Full-batch 1.10.2 Stochastic Gradient Descent (SGD) 1.10.3 Mini-batch 1.11 Những kỹ thuật 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 Khởi tạo trọng số Convolutional Neural Networks 2.1 Giới thiệu 2.2 Kiến trúc CNN 2.3 Tính đặc thù CNN 2.3.1 Feature map 2.3.2 Input layer 2.3.3 Padding 2.3.4 Convolution 2.3.5 Pooling 2.3.6 Towards fully connected layers 2.3.7 Fully connected layers 2.3.8 Output connected layer iv 13 13 13 15 16 16 17 18 18 18 18 19 19 19 20 20 21 21 22 22 24 24 24 25 25 25 26 26 28 29 30 31 MỤC LỤC 2.4 2.5 đến đến 31 32 33 34 34 35 35 36 37 37 37 37 38 38 39 39 40 40 40 41 41 Recurrent Neural Networks 3.1 Giới thiệu 3.2 Kiến trúc RNN-LSTM 3.2.1 Hướng Forward RNN-LSTM 45 45 45 45 2.6 Các điều chỉnh với Batch Normalization Các kiến 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 Backpropagation 2.6.1 Backpropagate Batch Normalization 2.6.2 Cập nhật 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 Cập nhật trọng số 2.6.3.1 Cập nhật trọng số từ fc đến fc 2.6.3.2 Cập nhật trọng số từ fc đến pool 2.6.3.3 Cập nhật trọng số từ conv đến conv 2.6.3.4 Cập nhật trọng số từ conv đến pool input 2.6.4 Cập nhật Coefficient 2.6.4.1 Cập nhật Coefficient từ fc đến fc 2.6.4.2 Cập nhật Coefficient từ fc đến pool pool 2.6.4.3 Cập nhật Coefficient từ conv đến conv v conv conv 42 42 42 43 43 MỤC LỤC 3.3 3.4 3.5 3.2.2 Hướng backward RNN-LSTM Extreme Layers loss function 3.3.1 Input layer 3.3.2 Output layer 3.3.3 Loss function Các đặc trưng RNN 3.4.1 Cấu trúc RNN 3.4.2 Forward pass RNN 3.4.3 Backpropagation RNN 3.4.4 Cập nhật trọng số coefficient RNN Đặc trưng LSTM 3.5.1 Cấu trúc LSTM 3.5.2 Hường forward LSTM 3.5.3 Batch normalization 3.5.4 Backpropagation LSTM 3.5.5 Cập nhật trọng số coefficient LSTM Xây dựng mơ hình minh họa 4.1 Giới thiệu 4.2 Mã nguồn 4.3 Dữ liệu 4.4 Xây dựng mơ hình 4.5 Huấn luyện mơ hình 4.6 Kết 47 47 47 48 48 48 48 50 50 51 52 52 53 55 56 57 58 58 58 59 59 61 62 Kết luận hướng phát triển 63 Trích dẫn 64 vi Danh sách hình vẽ 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 Neural Network với N + layers (N − hidden layers) Shallow architectures thường có hidden layer Deep learning có số hidden layer, thường chứa số lượng hidden neuron Quá trình weight averaging Hàm sigmoid đạo hàm Hàm đạo hàm Hàm RELU đạo hàm Hàm leaky-RELU đạo hàm Hàm ELU đạo hàm Neural network hình 1.1 với dropout cho hidden layer input Thông thường, tỉ lệ khác (thấp hơn) dùng cho việc tắc nơ-ron input hidden layers Một kiến trúc CNN (đây LeNet): convolution operation theo sau pooling operation, kích thước feature map giảm cịn Fully connected layers sau kết nối Input layer Padding feature map Những số không thêm vào tile màu đỏ, kích thước padding P = Convolution operation The pooling operation Fully connected operation để lấy chiều rộng chiều cao Fully connected operation, giống FNN operations Sơ đồ đại diện layer khác vii 14 25 26 27 27 29 30 31 33 DANH SÁCH HÌNH VẼ 2.9 2.10 2.11 2.12 2.13 2.14 2.15 2.16 2.17 2.18 2.19 2.20 2.21 2.22 2.23 2.24 2.25 2.26 2.27 2.28 3.1 3.2 3.3 Realistic Fully connected operation Realistic Convolution operation The LeNet CNN The AlexNet CNN The VGG CNN The GoogleNet CNN Kiến trúc Bottleneck Residual Sơ đồ lí thuyết bên trái, thực tế bên phải Nó cần × conv với stride padding 0, sau VGG conv chuẩn × conv The ResNet CNN Backpropagate từ output đến fc Backpropagate từ fc đến fc Backpropagate từ fc đến pool Backpropagate từ pool đến conv Backpropagate từ conv đến conv Backpropagate từ conv đến pool Cập nhật trọng số hai fc layer Cập nhật trọng số fc layer pool layer Cập nhật trọng số hai conv layer Cập nhật trọng số từ conv đến pool giống từ conv đến input Cập nhật Coefficient hai fc layer Cập nhật Coefficient từ fc đến pool giống từ conv đến pool Cập nhật Coefficient hai conv layer Kiến trúc RNN, với liệu lan truyền theo "không gian" "thời gian" Trong ví dụ, chiều thời gian có kích thước 8, khơng gian có kích thức Hướng backward kiến trúc Do khơng thể tính tốn gradient layer mà khơng tính tốn mà qua Các chi tiết 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 3.5 3.6 Cách hidden unit RNN tương tác với Chi tiết LSTM hidden unit Cách LSTM hidden unit tương tác với 49 53 54 4.1 4.2 Minh họa liệu CIFAR-10 Mơ hình CNN đơn giản 59 60 ix T −1 Tmb −1 ν(ν−)f ∆f (t)(ντ ) (t)(ν−1τ ) (t)(ν−1τ ) δf hf , (3.16) (t)(ντ ) (t)(ν−1τ ) (t)(ντ −1) δf hf , (3.17) Tf = τ =0 t=0 T −1 Tmb −1 τ (ν)f ∆f Tf = τ =1 t=0 T −1 Tmb −1 (t)(N −1τ ) (t)(N −1τ ) δf ∆ff = hf τ =0 Tmb −1 β(ντ ) ∆f (t )(ν− τ + )b Hf f = t=0 =0 t=0 3.5 (t )(ν− τ + ) δf , (3.19) f =0 Fν+1− −1 (t )(ν− τ + )b ˜ (t)(ντ ) h f = (3.18) Fν+1− −1 Tmb −1 γ(ντ ) ∆f , t=0 Hf f =0 (t )(ν− τ + ) δf (3.20) f =0 Đặc trưng LSTM Mặc dù RNN lý thuyết họ dependency dài, thực tế chúng thất bại làm có xu hướng trở thiên vị (biased toward) với đầu vào gần chuỗi Bengio et al [1994] Mạng nhớ dài hạn-ngắn hạn (Long Short-term Memory Networks - LSTMs) thiết để khắc phục vấn đề cách kết hợp cell nhớ chứng minh nắm bắt dependency khoảng dài 3.5.1 Cấu trúc LSTM Trong Long Short Term Memory Neural Network Gers et al [2000], trạng thái unit định không xác định trực tiếp hàng xóm bên trái phía Thay vào đó, trạng thái cell cập nhật hidden unit, output unit probe trạng thái cell Công thức khó hiểu lúc đầu, triết lí tương tự cách tiếp cận ResNet chương 1: thay cố gắng để input phù hợp với function phức tạp, cố gắng lắp biến thể nhỏ input, cho phép gradient qua cách mượt mà network Trong LSTM network, nhiều gate 52 h(ν τ ) c(ν τ −1) h(ν τ −1) Θfτ (ν) h(ν τ −1) Θiτ (ν) h(ν τ −1) Θgτ (ν) h(ν τ −1) Θoτ (ν) h(ν τ ) × f (ν τ ) σ σ + + h(ν τ ) h(ν τ ) c(ν τ ) + i(ν τ ) × g (ν τ ) h(ν τ ) σ o(ν τ ) h(ν τ ) × + h(ν τ ) + Θfν (ν) Θiν (ν) Θgν (ν) Θoν (ν) h(ν−1 τ ) h(ν−1 τ ) h(ν−1 τ ) h(ν−1 τ ) h(ν τ ) Hình 3.5: Chi tiết LSTM hidden unit (t)(ντ ) (t)(ντ ) giới thiệu : input gate if xác định chúng cho phép thông tin gf (t)(ντ ) vào cell state The output gate of xác định việc thiết lặp hay không output hidden value 0, probe trạng thái cell Cuối cùng, forget (t)(ντ ) state ff xác định việc có qn hay khơng trạng thái cũ cell Tất khái niệm minh họa hình 3.5 Sơ đồ giải thích chi tiết phần Trong LSTM, hidden unit khác tương tác theo cách sau hình 3.6 3.5.2 Hường forward LSTM Xem tất giá trị τ − τ = 0, có cơng thức sau cho gate: input, forget output 53 h(ν τ ) c(ν τ −1) h(ν τ −1) Θgτ (ν) (ν τ −1) h Θiτ (ν) h(ν τ −1) Θgτ (ν) h(ν τ −1) Θoτ (ν) + h(ν τ ) × f (ν τ ) σ σ h(ν τ ) h(ν τ ) c(ν τ ) + i(ν τ ) + × g (ν τ ) h(ν τ ) σ o(ν τ ) h(ν τ ) × + h(ν τ ) + Θfν (ν) Θiν (ν) Θgν (ν) Θoν (ν) h(ν−1 τ ) h(ν−1 τ ) h(ν−1 τ ) h(ν−1 τ ) h(ν τ ) Hình 3.6: Cách LSTM hidden unit tương tác với Fν−1 −1 (t)(ντ ) if F ν −1 i (ν)f =σ Θfν (t)(ν−1τ ) hf (t)(ντ ) of + (3.21) (t)(ντ −1) , (3.22) f =0 f =0 Fν −1 o (ν)f Θfν (t)(ν−1τ ) hf (t)(ντ −1) (3.23) + f =0 f (ν)f hf o (ν)f hf Θfτ Fν−1 −1 =σ , Fν −1 f (ν)f (t)(ν−1τ ) Θfν hf =σ (t)(ντ −1) hf f =0 f =0 F ν−1 −1 (t)(ντ ) ff i (ν)f Θfτ + Θfτ f =0 Hàm sigmoid lý hàm i, f, o gọi gate: chúng nhận giá trị từ đến 1, cho phép ngăng không cho thông tin đến bước Những cập nhật trạng thái cell thực theo cách sau Fν−1 −1 (t)(ντ ) gf Fν −1 g (ν)f (t)(ν−1τ ) Θfν hf = f =0 (t)(ντ ) cf (t)(ντ ) (t)(ντ −1) cf = ff g (ν)f + Θfτ (t)(ντ −1) hf , (3.24) f =0 (t)(ντ ) (t)(ντ ) gf + if 54 , (3.25) giới thiệu, cập nhật hidden state probe trạng thái cell (t)(ντ ) hf 3.5.3 (t)(ντ ) (t)(ντ ) = of cf (3.26) Batch normalization Trong batchnorm, quy luật cập nhật cho gate thay đổi sau Fν−1 −1 (t)(ντ ) if F ν −1 i (ν−)f (t)(ν−1τ ) Θfν yf =σ F ν−1 −1 (3.28) o (−ν)f (t)(ντ −1) yf , (3.29) Fν −1 o (ν−)f (t)(ν−1τ ) Θfν yf Θfτ + f =0 f =0 Fν−1 −1 (t)(ντ ) gf , f =0 Fν−1 −1 =σ f (−ν)f (t)(ντ −1) yf Θfτ + f =0 (t)(ντ ) of (3.27) Fν −1 f (ν−)f (t)(ν−1τ ) Θfν yf =σ , f =0 f =0 (t)(ντ ) ff i (−ν)f (t)(ντ −1) yf Θfτ + Fν −1 g (ν−)f (t)(ν−1τ ) yf Θfν = g (−ν)f (t)(ντ −1) yf Θfτ + , (3.30) f =0 f =0 với (t)(ντ ) yf (ντ ) ˜ (t)(ντ ) hf = γf (ντ ) + βf , (3.31) (t)(ντ ) ˜ (t)(ντ ) = h f hf (ντ ) ˆ −h f (ντ ) σf (3.32) + ˆ (ντ ) = h f Tmb Tmb −1 (t)(ντ ) hf t=0 , (ντ ) σf = Tmb 55 Tmb −1 (t)(ντ ) hf t=0 (ντ ) ˆ −h f (3.33) Điều quan trọng phải tính tổng cho trung bình phương sai, điều phục vụ cho việc đánh giá cross-validation tập kiểm tra (gọi e số vòng lặp – iterations/epochs) (t)(ντ ) (t)(ντ ) E hf eE hf = (ντ ) e ˆ +h f (t)(ντ ) (t)(ντ ) Var hf eVar hf = (3.34) (ντ ) e + σ ˆf (3.35) e+1 e+1 (t)(ντ ) sử dụng cuối E hf 3.5.4 , e+1 e+1 Tmb Var Tmb −1 (t)(ντ ) hf Backpropagation LSTM labelsec:appendbackproplstm Backpropagation LSTM có cấu trúc tương tự RNN, cụ thể (t)(N −1τ ) δf = (t)(N τ ) (t)(τ ) hf − yf Tmb Fν+1− −1 , (3.36) and Tmb (t)(ν−1τ ) δf (t )(ν− τ + )b (tt )(ντ ) Jf = Hf f =0 t =0 (t )(ν− τ + ) δf (3.37) f =0 Những thay đổi hình thức H, xác định (t)(ντ ) = hf (t)(ντ ) = of (t)(ντ ) = of (t)(ντ ) = of Of If Ff Gf (t)(ντ ) − of (t)(ντ ) (t)(ντ ) − tanh2 cf (t)(ντ ) − tanh2 cf (t)(ντ ) − tanh2 cf , (t)(ντ ) gf (t)(ντ ) cf (t)(ντ ) if 56 (t)(ντ ) (t)(ντ ) if (t)(ντ ) − if (t)(ντ −1) (t)(ντ ) ff (t)(ντ ) (t)(ντ ) − ff (t)(ντ ) − gf , , , (3.38) (t)(ντ )a Hf f o (ν+1)f Of g (ν+1)f Gf = Θfa + Θfa 3.5.5 (t)(ν+1τ ) (t)(ν+1τ ) f (ν+1)f (t)(ν+1τ ) Ff + Θ fa i (ν+1)f + Θfa (t)(ν+1τ ) If (3.39) Cập nhật trọng số coefficient LSTM giống cho RNN, (nhưng với H định nghĩa mục ??), với ν = ta có T −1 Tmb −1 ρ (ν)f ∆fν (ντ )(t) (ντ )(t) (ν−1τ )(t) δf hf = ρf τ =0 , (3.40) t=0 (3.41) ngược lại T −1 Tmb −1 ρ (ν)f ∆fν (ντ )(t) (ντ )(t) (ν−1τ )(t) δf yf ρf = τ =0 (ντ )(t) (ντ )(t) (ν−1τ )(t) δf yf ρf , (3.42) t=0 , (3.43) T −1 Tmb −1 ρ (ν)f ∆fτ (ντ )(t) (ντ )(t) (ντ −1)(t) δf yf ρf = τ =1 Fν+1− −1 (t)(ν− τ + )b Hf f = t=0 =0 , (3.45) Fν+1− −1 (t)(ν− τ + )b ˜ (t)(ντ ) h f = (t)(ν− τ + ) δf f =0 Tmb −1 γ(ντ ) ∆f (3.44) t=0 Tmb −1 β(ντ ) ∆f , Hf f =0 t=0 (t)(ν− τ + ) δf f =0 (3.46) T −1 Tmb −1 ∆ff (t)(N −1τ ) (t)(N −1τ ) δf = yf τ =0 t=0 57 (3.47) Chương Xây dựng mơ hình minh họa 4.1 Giới thiệu Ở chương này, mơ tả lại q trình thực đánh giá kết thí nghiệm thực phân loại ảnh với liệu phổ biến Chúng tơi huấn luyện mơ hình đơn giản thuộc loại convolutional neural network áp dựng kiến thức tìm hiểu: convolutional, max pooling, droput fully connected layers 4.2 Mã nguồn Mã nguồn chia sẻ https://github.com/danhph/friendly-cnn Mơi trường lập trình sử dụng Anaconda với Python 3.x Tensorflow Việc cài đặt dễ dàng với bước: Tải phần mềm Anaconda địa https://anaconda.org/anaconda/python Chạy câu lệnh cài đặt môi trường thư mục chứa mã nguồn: conda env create -f setup_env.yml Kích hoạt mơi trường lập trình: source activate friendly-cnn 58 Hình 4.1: Minh họa liệu CIFAR-10 4.3 Dữ liệu Chúng sử dụng liệu CIFAR-10 Krizhevsky et al bao gồm 60000 ảnh màu có kích thước 32x32 với phân nhóm 10 có 6000 ảnh nhóm Bộ liệu chia làm 50000 ảnh để huấn luyện 10000 ảnh để thử nghiệm Bộ liệu chia thành năm batch huấn luyện batch thử nghiệm, đợi có 10000 hình ảnh Các batch thử nghiệm chứa xác 1000 hình ảnh lựa chọn ngẫu nhiên từ lớp Các batch huấn luyện chứa hình ảnh cịn lại theo thứ tự ngẫu nhiên, số batch huấn luyện chứa nhiều hình ảnh lớp lớp khác Mỗi batch chứa nhãn ảnh thuộc nhóm sau: airplane, automobile, bird, cat, deer, dog, frog, horse, ship truck mơ tả hình 4.1 4.4 Xây dựng mơ hình Đầu tiên, chúng tơi xây dựng conv-maxpool layer (kết hợp Convolution Max Pooling Layer) với hàm kích hoạt ReLU Bên cạnh đó, chúng tơi xây dựng Fully-Connected Layer Tất chúng tự xây dựng lại dựa 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 giản chúng tơi 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, num_outputs): """ Apply a fully connected layer to x_tensor using weight and bias : x_tensor: A 2-D tensor where the first dimension is batch size : num_outputs: The number of output that the new tensor should be : return: A 2-D tensor where the second dimension is num_outputs """ weights = tf.Variable(tf.random_normal((x_tensor.shape[1].value, num_outputs), stddev=0.05)) bias = tf.Variable(tf.zeros(num_outputs)) x = tf.add(tf.matmul(x_tensor, weights), bias) x = tf.nn.relu(x) return x Kế tiếp chúng tơi xây dựng mơ hình với ba conv2d_maxpool layer, theo sau fully_conn layer kết hợp dropout layer 4.5 Huấn luyện mơ hình Sau thử tham số (epochs, keep_probability) khác Mơ hình cuối chúng tơi sử dụng epochs 50 keep_probability 0.6 Trong lần huấn luyện, chúng tơi huấn luyện mơ hình batch đơn CIFAR-10 để tiết kiệm thời gian Sau đạt độ xác cao tốt hơn, chúng tơi tiếp túc huấn luyện mơ hình tồn liệu Chúng sử dụng loss function hàm softmax cross entropy đánh giá mơ hình dựa tỉ lệ phần trăm dự đốn xác nhãn ảnh 61 4.6 Kết Với kết kiểm thử, mơ hình chúng tơi cho độ xác 68.32% Đây kết thấp mơ hình CNN đơn giản Và cịn nhiều kỹ thuật khác mà chưa áp dụng 62 Chương Kết luận hướng phát triển Bài báo cáo tổng kết lại tìm hiểu chúng tơi kỹ thuật Deep Learning Chúng tơi trình bày lại kiến trúc ba loại neutral network phổ biến nhất, cơng thức tốn học dùng để huấn luyện mơ hình cách cẩn thận Với kiến thức này, hiểu thêm cách mơ hình neutral network thiết kế cách hoạt động Bên canh đó, chúng tơi xây dựng mơ hình đơn giản thơng qua kiến thức tìm hiểu Deep Learning lĩnh vực phát triển nhanh mô hình lỗi thời tương lai gần Tuy nhiên cách tiếp cận giới thiệu giúp ích cho việc hiểu ngun lí phía sau mơ hình tiên tiến sau Báo cáo tổng hợp kiến thức với mong muốn giúp đọc giả dễ dàng tiếp cận với lĩnh vực Deep Learning Tuy nỗ lực nhiều khơng thể thiếu sót, sai sót liên quan đến vấn đề dịch thuật ngữ Tiếng Anh Tiếng Việt Chúng tiếp tục bổ sung cập nhật kiến thức lĩnh vực chỉnh sửa lỗi dịch thuật ngữ cho báo cáo tương lai 63 Trích dẫn Bengio, Y., Simard, P & Frasconi, P (1994) Learning long-term dependencies with gradient descent is difficult IEEE transactions on neural networks, 5, 157–166 52 Bengio, Y et al (2009) Learning deep architectures for Foundations and trends R in Machine Learning, 2, 1–127 x 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 Networks 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 DẪN 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 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 ¨ ller, K.R (1998) Effiicient LeCun, Y., Bottou, L., Orr, G.B & Mu 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 TRÍCH DẪN Qian, N (1999) On the momentum term in gradient descent learning algorithms Neural Networks, 12, 145 – 151 19 Rosenblatt, F (1958) The perceptron: A probabilistic model for information storage and organization in the brain Psychological Review , 65–386 x Simonyan, K & Zisserman, A (2014) Very deep convolutional networks for large-scale image recognition CoRR, abs/1409.1556 35 Srivastava, N., Hinton, G., Krizhevsky, A., Sutskever, I & Salakhutdinov, R (2014) Dropout: A simple way to prevent neural networks from overfitting J Mach Learn Res., 15, 1929–1958 13 Szegedy, C., Liu, W., Jia, Y., Sermanet, P., Reed, S., Anguelov, D., Erhan, D., Vanhoucke, V & Rabinovich, A (2015) Going deeper with convolutions In Computer Vision and Pattern Recognition (CVPR) 35 Wang, H., Meghawat, A., Morency, L.P & Xing, E.P (2016) Selectadditive learning: Improving cross-individual generalization in multimodal sentiment analysis arXiv preprint arXiv:1609.05244 x Wang, H., Raj, B & Xing, E.P (2017) On the origin of deep learning CoRR, abs/1702.07800 i Zeiler, M.D (2012) Adadelta: An adaptive learning rate method CoRR, abs/1212.5701 21 66 ... lĩnh vực nghiên cứu deep learning Để tham gia thúc đẩy trình nghiên cứu deep learning, cần phải hiểu rõ kiến trúc mơ hình chúng tồn Chúng tơi tập trung vào ba loại mơ hình deep learning phổ biến... trọng số coefficient LSTM Xây dựng mơ hình minh họa 4.1 Giới thiệu 4.2 Mã nguồn 4.3 Dữ liệu 4.4 Xây dựng mơ hình 4.5 Huấn luyện mơ hình 4.6 Kết ... (hai bước xử lí đảo ngược) Chúng áp dụng mô tả đơn giản hóa bên phải Cùng đề cập Gu et al [2015] tiếp gần CNN, bắt đầu với CNN sử dụng cộng đồng deep learning , Hình 2.9: Realistic Fully connected

Ngày đăng: 20/12/2021, 16:44

Mục lục

  • Danh sách hình vẽ

  • 1.4 Cân bằng trọng số

  • 1.9 Backpropagation

    • 1.9.1 Backpropagate thông qua Batch Normalization

    • 1.9.3 Cập nhật trọng số

    • 1.10.2 Stochastic Gradient Descent (SGD)

    • 1.12 Khởi tạo trọng số

    • 2.3.6 Towards fully connected layers

    • 2.4 Các điều chỉnh với Batch Normalization

    • 2.6 Backpropagation

      • 2.6.1 Backpropagate trong Batch Normalization

      • 2.6.2 Cập nhật 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 Cập nhật trọng số

          • 2.6.3.1 Cập nhật trọng số từ fc đến fc

          • 2.6.3.2 Cập nhật trọng số từ fc đến pool

          • 2.6.3.3 Cập nhật trọng số từ conv đến conv

          • 2.6.3.4 Cập nhật trọng số từ conv đến pool và conv đến input

          • 2.6.4 Cập nhật Coefficient

            • 2.6.4.1 Cập nhật Coefficient từ fc đến fc

Tài liệu cùng người dùng

Tài liệu liên quan