Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 13 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
13
Dung lượng
1,26 MB
Nội dung
Trường Đại học Vinh Tạp chí khoa học, Tập 47, Số 3A (2018), tr 64-76 ỨNG DỤNG MẠNG NƠRON, MẠNG NƠRON XOẮN VÀ SỬ DỤNG KẾT HỢP CPU - GPU ĐỂ TĂNG HIỆU NĂNG TÍNH TỐN TRONG PHÂN LOẠI ẢNH Hồ Sỹ Phương, Phan Văn Dư, Lê Văn Chương, Tạ Hùng Cường Viện Kỹ thuật Công nghệ, Trường Đại học Vinh Ngày nhận 30/9/2018 , ngày nhận đăng 29/11/2018 Tóm tắt: Bài báo trình bày so sánh phương pháp phân loại ảnh dựa mạng nơron nhân tạo nhiều lớp (Multi Layer Perceptron - MLP) mạng nơ ron xoắn (Convolutional Neural Network - CNN) Dữ liệu đưa vào huấn luyện 50.000 ảnh 10 đối tượng khác Kiến trúc thứ sử dụng mạng MLP gồm có 3.853.298 tham số (weight), kiến trúc thứ hai mạng CNN gồm 528.054 tham số Bài báo đề xuất vài phương pháp cấu trúc mạng nhằm tránh tượng q khớp (overfitting), tăng cường độ xác cho mơ hình xấp xỉ 80% Bên cạnh đó, báo trình bày so sánh thời gian huấn luyện sử dụng CPU kết hợp sử dụng CPU với GPU MỞ ĐẦU Trong năm gần đây, phát triển khoa học công nghệ cách mạng công nghiệp 4.0 làm cho nghiên cứu trí tuệ nhân tạo (Artificial Intelligence AI) ứng dụng lĩnh vực robotics, robot tương tác thời gian thực với môi trường xung quanh thu hút quan tâm chuyên gia lĩnh vực điều khiển Trong robot tự hành, để tương tác với môi trường hoạt động điều khiển robot chuyển động theo quỹ đạo mong muốn, vấn đề nhận biết, phân tích, nhận dạng phân loại vật thể đóng vai trò quan trọng, giúp có sở để đưa tín hiệu điều khiển cách xác, kịp thời Nhiều cơng trình nghiên cứu cơng bố tạp chí khoa học nước [1], [10], [12], [15] cho thấy vấn đề giải đưa lại hiệu cao sử dụng mạng MLP, việc nhận dạng chữ viết tay với độ xác lên đến 99,8% Trong báo này, nhóm tác giả nghiên cứu ứng dụng cấu trúc mạng MLP mạng CNN kết hợp với kỹ thuật tối ưu nhằm nâng cao khả phân loại đối tượng, thực so sánh hiệu huấn luyện mạng sử dụng CPU với sử dụng kết hợp CPU - GPU độ xác tốc độ huấn luyện mạng KIẾN TRÚC MẠNG MLP, CNN VÀ CÁC KỸ THUẬT TỐI ƯU MẠNG 2.1 Mạng nơron nhân tạo kiến trúc mạng MLP Mạng nơron nhân tạo, gọi tắt mạng nơron mơ hình toán học xây dựng dựa sở mạng nơron sinh học gồm số lượng lớn phần tử (gọi nơron) kết nối với thông qua liên kết (gọi trọng số liên kết) làm việc thể thống để giải vấn đề cụ thể nhận dạng mẫu, phân loại liệu,v.v thơng qua q trình học từ tập mẫu huấn luyện Email: Hophuong@vinhuni.edu.vn (H S Phương) 64 H S Phương, P V Dư, L V Chương, T H Cường / Ứng dụng mạng Nơron, mạng nơron xoắn… Mơ hình mạng nơron thường sử dụng rộng rãi mơ hình mạng truyền thẳng nhiều lớp (MLP - Multi Layer Perceptron) Một mạng MLP tổng quát mạng có n lớp ( n ) bao gồm lớp vào, lớp nhiều lớp ẩn (hình 1) Hoạt động mạng MLP sau: Tại lớp vào, nơron nhận tín hiệu vào xử lý (tính tổng trọng số, gửi tới hàm truyền) cho kết (là kết hàm truyền); kết truyền tới nơron thuộc lớp ẩn thứ nhất; nơron tiếp nhận tín hiệu đầu vào, xử lý gửi kết đến lớp ẩn thứ 2;…; trình tiếp tục nơron thuộc lớp cho kết Hình 1: Mạng MLP lớp Mạng MPL sử dụng thành công việc nhận dạng chữ viết tay [2], [10] Cơ sở liệu phổ biến rộng rãi cho toán MINST [16], huấn luyện với lớp ẩn cho độ xác lên tới 99,8% Kiến trúc mạng MPL hình hình 1, gồm có lớp đầu vào, lớp ẩn lớp Tùy theo yêu cầu toán, ta có số lượng đầu vào Để có độ xác cao, tránh tượng q khớp (overfitting) số lượng lớp ẩn số nơron yếu tố định [7] Ví dụ, tốn nhận dạng chữ viết tay, liệu huấn luyện từ tập MINST có kích thước 28x28 nên số nơron đầu vào (28x28)= 784, số nơron lớp ẩn 512, lớp ẩn 512 số nơron đầu tương ứng từ 09 10 Độ xác huấn luyện 99.93% kiểm chứng mơ hình độ xác đạt gần 99,8% Trên sở kết đó, nhóm tác giả thực thử nghiệm sử dụng mạng MPL việc phân loại đối tượng 2.2 Kiến trúc mạng CNN kỹ thuật tối ưu mạng Kiến trúc mạng CNN [1], [2], [12] kiến trúc mở rộng mạng MLP sử dụng rộng rãi kỹ thuật học sâu (deep learning) đặc biệt lĩnh vực thị giác máy tính (computer vision) Một giải pháp nhằm tối ưu trình huấn luyện mạng đề xuất giảm số lượng trọng số (weight) để tăng tốc độ tính tốn, giảm thời gian huấn luyện, tránh tượng khớp mà lượng liệu đầu vào lớn ảnh màu, video… 65 Trường Đại học Vinh Tạp chí khoa học, Tập 47, Số 3A (2018), tr 64-76 Hình 2: Kiến trúc mạng CNN Mạng CNN có cấu trúc hình 2, với đầu vào nhân xoắn với ma trận lọc, cơng việc xem phép lọc ảnh với ma trận lọc sử dụng dạng ma trận [7], phép lọc ảnh bình thường khơng gian 2D tích xoắn ứng dụng trong không gian ảnh màu 3D không gian n chiều Sau thu gọn ma trận dạng véc tơ kết hợp với mạng MLP đầy đủ mô tả mục 2.1, với ảnh xám ma trận đầu vào chiều, với ảnh màu ma trận vào chiều Khi xem xét mạng CNN, khái niệm tích xoắn (tích chập) đại số sở phần mạng CNN: Đưa vào ảnh xám X lọc ω có kích thước [m,n], tích xoắn ω X là: y X * , thành phần ma trận y tính theo công thức: m 1 n 1 m 1 n 1 a 0 b 0 a 0 b 0 yij X i a, j b a, b hay yij X i a, j b a, b (1) Giá trị ma trận a, b hiểu giá trị a, b ma trận sau lật từ phải sang trái đảo ngược từ lên (như hình 1) Hình 3: Minh họa phương pháp tìm giá trị a, b từ ma trận gốc bên trái qua phép lật đảo từ lên cho kết ma trận bên phải Kiến trúc mạng CNN bao gồm lớp gọi lớp xoắn với ma trận đầu vào I , lọc K trọng số b Ta giả thiết I ma trận ảnh màu có kích thước C H W , C số ma trận màu R,G,B ảnh có kích thước H ,W Khi I R H WxC , K Rk1k2 xC b có kích thước b R Tích xoắn I K có ma trận ma trận đầu lớp xoắn: D 66 H S Phương, P V Dư, L V Chương, T H Cường / Ứng dụng mạng Nơron, mạng nơron xoắn… k1 1 k2 1 C I K ij Km,n,c Ii m, j n,c b , (2) m 0 n 0 c 1 trường hợp này, I ma trận lật hình từ ma trận lọc I Với lớp CNN có kích thước C cơng thức tính tốn ma K trận có độ sâu C ma trận I Ví dụ, cho ma trận lọc có kích thước 5x5, tích xoắn ảnh màu I với lọc K tạo ma trận xếp hình Hình 4: Ma trận đầu tạo từ ma trận qua phép tích xoắn ma trận vào I ma trận lọc K trượt I Khi xây dựng mạng CNN người ta thêm vào kỹ thuật pooling, dropout, normalizing, regularization để tối ưu thời gian huấn luyện tránh tượng q khớp [7]: - Pooling [7]: Q trình giảm kích thức ảnh sau tính tích xoắn để lấy pixel đặc tính đặc trưng - Dropout [7], [11]: Cắt bớt số nơron thực thuật toán lan truyền ngược nhằm tăng tốc độ huấn luyện mạng - Normalizing [7]: Kỹ thuật chuẩn hóa liệu dạng liệu dải tính tốn phù hợp Giả sử X liệu cần chuẩn hóa, đó: m (i) + Kỳ vọng liệu tính được: (3) X ; m + Sai lệch liệu so với kỳ vọng: (4) X X ; m (X ) , + Phương sai liệu X : (5) m X đầu liệu chuẩn hóa là: X (6) - Regularization [7]: Kỹ thuật sử dụng thêm tham số hàm mục tiêu J tối ưu hóa: m L i l i i L i J regularized y log a y log a Wk ,j (7) m i 1 m2 l k j Các mơ hình CNN xây dựng chủ yếu sử dụng hàm ReLU (hình 5) để tăng tốc độ tính tốn so với hàm phi tuyến khác có đạo hàm không đổi huấn luyện 67 Trường Đại học Vinh Tạp chí khoa học, Tập 47, Số 3A (2018), tr 64-76 Hình 5: Hàm ReLU if (8) if Chúng ta cần mơ hình xác suất cho với đầu vào xác suất để đầu vào rơi vào lớp i phải dương tổng chúng Để làm việc đó, ta xây dựng hàm Softmax (hình 6) Ta có: ReLU yk e Zk C e , i 1, 2, , C ; z W T X (9) Zj j 1 Ta có: yk P(ak k | ik ,W ) , yk thể xác suất đầu mơ hình rơi vào lớp k có đầu vào ik tham số mơ hình W (ma trận trọng số) Hình 6: Mơ hình Softmax Regression dạng Neural Network 68 H S Phương, P V Dư, L V Chương, T H Cường / Ứng dụng mạng Nơron, mạng nơron xoắn… Trong mạng nơron, việc tìm giá trị nhỏ hàm mát (cost functions) điều bắt buộc Việc tìm điểm cực tiểu tồn cục phức tạp, chí bất khả thi Thay vào đó, người ta thường cố gắng tìm điểm cực tiểu địa phương xem nghiệm cần tìm tốn Cách tiếp cận phổ biến xuất phát từ điểm mà xem gần với nghiệm toán, sau dùng phép tốn lặp để tiến dần đến điểm cần tìm, nghĩa đến đạo hàm gần với Giải thuật Gradient Descent biến thể giải thuật dùng nhiều Giả thiết mạng nơron có K lớp, có tập huấn luyện với m liệu vào - sau: x 1 , y , x , y 2 , , x , y m m (10) Lúc hàm mục tiêu (hàm mát - cost function) toán phân lớp hồi quy [5,7]: m i m i i i J y log h x y log h x 2m j (11) m i 1 j 1 Còn với mạng nơron K lớp, hàm mục tiêu [10][7]: 1 y log 1 h x 1m K i i J yk log h x m i 1 k 1 với h x i i k k i k l l l , (12) 2m l 1 i 1 j 1 ji L 1 s s 1 ith đầu thứ i mạng Để tối ưu hóa hàm mục tiêu ta tìm MinJ sau tiến hành cập nhật tham số mơ hình (ma trận trọng số mạng) giải thuật Gradient Descent Giải thuật phổ biến cho hiệu tốt tập liệu lớn (Big data), học sâu người ta đề xuất thêm biến thể giải thuật Gradient Descent SGD [7], [13], [17], Adam [5], [6], [7], [8], RMSProp [7], [8] Trong báo này, chúng tơi sử dụng thuật tốn tối ưu RMSProp phương pháp đơn giản, cho hiệu cao toán phân loại ảnh [1], [12] THỬ NGHIỆM HUẤN LUYỆN VÀ KIỂM CHỨNG MƠ HÌNH 3.1 Tập hợp liệu huấn luyện Trong báo này, tập hợp liệu trích từ tập hợp liệu CIFAR-10 [15] gồm 50.000 ảnh dùng làm tập huấn luyện (training data), 10.000 ảnh dùng làm tập kiểm chứng mơ hình (test data), tập liệu huấn luyện có 10% liệu (5.000 ảnh) ngẫu nhiên loại cách xoay vòng để tránh trường hợp chưa khớp (underfitting), ảnh tập liệu ảnh màu có kích thước 32x32x3 điểm ảnh, ảnh tập liệu tiền xử lý đảm bảo có đối tượng xuất ảnh, liệu phân loại phân theo 10 lớp 69 Trường Đại học Vinh Tạp chí khoa học, Tập 47, Số 3A (2018), tr 64-76 Hình 7: Phân chia tập hợp liệu báo Hình 8: Lấy ngẫu nhiên 36 ảnh tập liệu huấn luyện 3.2 Cấu trúc phần cứng Máy tính sử dụng có cấu hình: - CPU: Intel® Core™ i7 6700HQ Processor; - RAM: DDR4 2133 MHz SDRAM 4GB; - Card đồ họa: Integrated Intel® HD Graphics 530; - GPU rời: NVIDIA® GeForce® GTX 950M với 4G GDDR5 VRAM, đó: + Lõi CUDA: 640; + Xung BoostBase (MHz): 914; + Xung cho nhớ: 2500 MHz; + Giao tiếp nhớ chuẩn GDDR5; + Độ dài liệu giao tiếp với nhớ:128-bit; + Tốc độ giao tiếp với nhớ (GB/sec): 80 Kiến trúc CUDA (Compute Unified Device Architecture) [8] cho phép tăng tốc độ tính tốn chương trình lên nhờ khả tính tốn song song, hỗ trợ chức tính tốn thơng qua ngơn ngữ C, hỗ trợ các ngôn ngữ Python, Fortran, Java MATLAB để cài đặt thuật toán chạy GPU Phần mềm sử dụng Tensor Flow hỗ trợ GPU OpenCV 3.3 Thử nghiệm với mạng MLP Ta xây dựng mạng MLP có kiến trúc hình với thuộc tính bảng để phân loại đối tượng tập liệu nêu mục 3.1 70 H S Phương, P V Dư, L V Chương, T H Cường / Ứng dụng mạng Nơron, mạng nơron xoắn… Hình 9: Mạng MLP ứng dụng nhận dạng Bảng 1: Thuộc tính mạng MLP Tên lớp Đầu vào Lớp ẩn Lớp ẩn Đầu Tổng Số lượng node 3.072 1.000 512 10 4.594 Hàm Dropout ReLU ReLU Softmax 0,2 0,2 Tham số 3.073.000 512.512 262.656 5.130 3.853.298 Mạng MLP sử dụng phương pháp tối ưu RMSprop, kích thước lần đưa vào huấn luyện 32 ảnh, số lần huấn luyện 10 3.3 Thử nghiệm với mạng CNN Mạng CNN xây dựng với thuộc tính mạng bảng rõ hình 10 71 Trường Đại học Vinh Tạp chí khoa học, Tập 47, Số 3A (2018), tr 64-76 Hình 10: Mạng CNN việc phân loại ảnh Bảng 2: Thuộc tính mạng CNN Tên mạng CNN Tên mạng MLP Tổng Tên lớp Layer Layer Layer Tên lớp Input Hidded Layer OutPut Convolution 32x32x16 16x16x32 8x8x64 Hàm Pooling 2 Dropout ReLU Softmax 0,4 Tham số 208 2.080 8.256 Tham số 512.500 5.010 528.054 Việc xây dựng mơ hình thực theo thuật tốn hình 11 để tối ưu hóa mơ hình khơng bị q khớp với độ xác cao, nhóm tác giả sử dụng mơ hình mạng CNN hình 10 72 H S Phương, P V Dư, L V Chương, T H Cường / Ứng dụng mạng Nơron, mạng nơron xoắn… Hình 11: Sơ đồ chương trình huấn luyện mạng CNN 3.4 So sánh kết đạt Hình 12 thể kết mơ hình huấn luyện với ảnh khơng gạch chéo thể kết nhận dạng xác, có gạch chéo cho kết nhận dạng sai Hình 11: Kết thử nghiệm mơ hình CNN Bảng thể kết đạt huấn luyện kiểm nghiệm độ xác với hai kiến trúc mơ hình MLP CNN nêu trên: 73 Trường Đại học Vinh Tạp chí khoa học, Tập 47, Số 3A (2018), tr 64-76 - Mạng MLP cho độ xác 45% huấn luyện 20 lần (Epochs=20) mạng CNN 79% huấn luyện 40 lần (Epochs=40) (độ xác tăng lên xấp xỉ 80% tăng số lần huấn luyện) Khi sử dụng CPU kết hợp GPU tối ưu thời gian huấn luyện lên đến 34 lần (tùy thuộc vào cấu trúc phần cứng sử dụng) so với việc sử dụng CPU Khi số lần huấn luyện tăng lên nhiều thời gian huấn luyện sử dụng CPU kết hợp GPU tăng lên không nhiều, tăng không đáng kể dùng CPU - Khi số lần huấn luyện tăng lên 50, 60,…,100 độ xác không cải thiện thêm mà dao động quanh 45% cho mạng MLP 80% cho mạng CNN tượng khớp Hiện tượng xảy mạng có lực lớn để hạn chế bớt lực mạng ta hạn chế số nút ẩn; ngăn không cho mạng sử dụng trọng số lớn; giới hạn số bước luyện Bảng 3: Kết đạt Tên mạng Thời gian huấn luyện sử dụng CPU (s) MLP Epochs=10 Batch_size=32 MLP Epochs=20 Batch_size=64 CNN Epochs=10 Batch_size=32 CNN Epochs=20 Batch_size=64 CNN Epochs=30 Batch_size=128 CNN Epochs=40 Batch_size=256 Thời gian Độ chạy kiểm xác mơ tra sử dụng hình (%) CPU-GPU (s) 39 987 Thời gian huấn luyện sử dụng CPU-GPU (s) 200 Thời gian chạy kiểm tra sử dụng CPU (s) 2,1 1.133 201 2,2 45 386 177 2,2 1,3 63 710 256 2,2 1,4 69 1.020 319 2,3 1,4 74 1.194 351 2,3 1,4 79 KẾT LUẬN Bài báo trình bày phương pháp phân loại ảnh sử dụng mạng MLP, mạng CNN ứng dụng kỹ thuật tối ưu trình huấn luyện mạng Sau xây dựng thử nghiệm thành cơng hai mơ hình mạng MLP CNN sở sử dụng kết hợp CPUGPU, báo đưa kết so sánh hiệu phân loại ảnh trường hợp sử dụng CPU trường hợp sử dụng kết hợp CPU-GPU q trình huấn luyện kiểm nghiệm mơ hình Thực kiểm nghiệm cho thấy sử dụng mạng 74 H S Phương, P V Dư, L V Chương, T H Cường / Ứng dụng mạng Nơron, mạng nơron xoắn… CNN cho kết phân loại ảnh đạt độ xác gần 80% khơng cải thiện thêm tăng số lần huấn luyện Để nâng cao kết việc huấn luyện ta cần sử dụng tập huấn luyện có chất lượng ảnh cao kỹ thuật khác trình bày [3], [4], [14] TÀI LIỆU THAM KHẢO [1] Alex Krizhevsky, Ilya Sutskever, Geoffrey E Hinton, ImageNet classification with deep convolutional neural networks, Advances in Neural Information Processing Systems, 2012, pp 1097-1105 [2] A Krizhevsky, Learning Multiple Layers of Features from Tiny Images Ph.D dissertation, University of Toronto, 2009 [3] Baoyuan Liu, Min Wang, Hassan Foroosh, Marshall Tappen and Marianna Penksy, Sparse Convolutional Neural Networks, The IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2015, pp 806-814 [4] B Graham, Sparse 3D convolutional neural networks, arXiv:1505.02890v2, 2015 [5] Duchi, J., Hazan, E., & Singer, Y, Adaptive Subgradient Methods for Online Learning and Stochastic Optimization, Journal of Machine Learning Research, 2011, pp 2121–2159 [6] G E Hinton, N Srivastava, A Krizhevsky, I Sutskever, R R Salakhutdinov, Improving neural networks by preventing co-adaptation of feature detectors, arXiv:1207.0580v1, 2012 [7] Ian Goodfellow, Yoshua Bengio, Aaron Courville, Deep Learning, The MIT Press, 2016 [8] Jayshree Ghorpade, Jitendra Parande, Madhura Kulkarni, Amit Bawaskar, GPGPU processing in CUDA architecture, Advanced Computing An International Journal (ACIJ), Vol.3, No.1, 2012 [9] John Duchi, Elad Hazan, and Yoram Singer, Adaptive Subgradient Methods for Online Learning and Stochastic Optimization Journal of Machine Learning Research, 2012 [10] Đinh Văn Nam, Phan Văn Dư, Hồ Sỹ Phương, Nghiên cứu thử nghiệm thiết kế thiết bị tự động đọc ghi liệu máy hiển thị số sở mạng nơ ron nhân tạo, Hội nghị toàn quốc điện tử lần thứ 8, 2016, tr 96-102 [11] N Srivastava, G E Hinton, A Krizhevsky, I Sutskever, R Salakhutdinov, Dropout: a simple way to prevent neural networks from overfitting, Journal of machine learning research 15, 2014, pp 1929-1958 [12] Olga Russakovsky, Jia Deng, Hao Su, Jonathan Krause, Sanjeev Satheesh, Sean Ma, Zhiheng Huang, Andrej Karpathy, Aditya Khosla, Michael Bernstein, Alexander C Berg and Li Fei-Fei, ImageNet Large Scale Visual Recognition Challenge, International Journal of Computer Vision, Volume 115, Issue 3, 2015, pp 211–252 75 Trường Đại học Vinh Tạp chí khoa học, Tập 47, Số 3A (2018), tr 64-76 [13] Sebastian Ruder, An overview of gradient descent optimization algorithms, arXiv:1609.04747, 2017 [14] Sergey Zagoruyko, Nikos Komodakis, Wide Residual Networks, Computer Vision and Pattern Recognition, arXiv:1605.07146, 2017 [15] https://www.cs.toronto.edu/~kriz/cifar.html [16] http://yann.lecun.com/exdb/mnist/ [17] http://ruder.io/optimizing-gradient descent SUMMARY APPLYING NEURAL NETWORKS, CONVOLUTIONAL NEURAL NETWORKS AND COMBINATION OF CPUS AND GPUS TO INCREASE CALCULATING PERFORMANCE FOR IMAGE CLASSIFICATION This paper presents and compares the image classification methods based on MLPs and CNNs Training data is 500,000 pictures of 10 different objects The first architecture to be used is MLPs network that contains 3,853,298 weights, the second architecture is CNNs with 528,054 weights This paper proposes several methods and architectures network to avoid overfitting phenomenon and increases the accuracy of modeling approximately 80% Besides on it, the paper also presents and compares time training of models using CPUs, and combining CPUs with GPUs 76