Bài báo nghiên cứu và thiết kế hệ thống mạng nơron tích chập sâu (Deep Convolutional Neural Network - DCNN) trong việc phân loại trái cây. Cụ thể hệ thống gồm 5 tầng tích chập, mỗi tầng đều có ReLU kèm theo, một số tầng sử dụng thêm max pooling. Ngoài ra hệ thống còn sử dụng 3 tầng fully connected với tầng cuối cùng có 60 nơron kết hợp với hàm softmax để phân lớp dữ liệu. Mời các bạn cùng tham khảo!
PHÂN LỚP ẢNH TRÁI CÂY BẰNG MẠNG NƠRON TÍCH CHẬP SÂU Nguyễn Văn Phúc1, Vũ Thanh Hiền2 Học viên cao học ngành CNTT, trường Đại học Ngoại ngữ - Tin học TP HCM Khoa CNTT, trường Đại học Cơng nghệ TP HCM (HUTECH) TĨM TẮT Bài báo nghiên cứu thiết kế hệ thống mạng nơron tích chập sâu (Deep Convolutional Neural Network DCNN) việc phân loại trái Cụ thể hệ thống gồm tầng tích chập, tầng có ReLU kèm theo, số tầng sử dụng thêm max pooling Ngoài hệ thống sử dụng tầng fully connected với tầng cuối có 60 nơron kết hợp với hàm softmax để phân lớp liệu Để giảm vấn đề overfitting, báo sử dụng kỹ thuật sinh thêm liệu phương pháp “dropout” Chính hệ thống cho kết với độ xác cao so với báo gốc tập liệu mẫu Từ khóa: Convolutional Neural Network , Deep Learning, Deep Convolutional Neural Network, Fruit Classification, Image Classification GIỚI THIỆU Phân lớp đối tượng ảnh toán quan trọng thị giác máy tính, giai đoạn quan trọng việc hiểu đối tượng ảnh Tuy nhiên, thời điểm này, có nhiều giải pháp hiệu giải toán phân lớp loại sở liệu (CSDL) ảnh, tốn phân lớp ảnh nói chung cịn tốn thách thức Có hai lý giải thích tốn cịn thách thức: – Khả biểu diễn đặc trưng đối tượng: đặc trưng đối tượng học tự động từ CSDL học phân cấp từ đơn giản đến phức tạp [1, 2] chưa thể thiết kế hệ thống học tự động độ lớn đặc trưng xác định mức độ phân cấp cần học Cho nên CSDL, ta phải phân tích định tham số – Khả phân lớp: nhiều toán phân lớp ảnh cụ thể, khác biệt đối tượng lớp có giá trị lớn, khác biệt đối tượng lớp khác lại có giá trị nhỏ Hay nói cách khác, biến động đặc trưng lớp lớn biến động đặc trưng hai lớp khác làm cho việc phân lớp khó khăn Bài tốn phân lớp loại trái thực tế có đặc điểm vừa kể Trong loại trái cây, đơi có hình dạng khác nhau, hay màu sắc khác hay góc nhìn khác có hình dáng, màu sắc khác Chẳng hạn hình 1, ba ảnh hình loại táo lấy từ CSDL Fruits [3] thấy rằng, loại táo ba hình khác màu sắc, hình dáng góc nhìn khác tạo Giữa hai lớp trái khác đơi có hình dáng, màu sắt giống Như hai hình sau: hình nho trắng loại 1, hình nho trắng loại 2, hình hai loại nho khác nhau, khác biệt hai loại khơng khác nhiều Để giải tốn phân lớp ảnh trái cây, Horea Muresan, Mihai Oltean [4] xây dựng hệ thống học sâu gồm có tất tầng, có tầng convolutions, tầng fully connected Các tầng convolution có kích thước 5x5 Tầng fully connected kích thước 2704×60 Độ xác đạt 94.59% 210 Bài báo tiến hành phân tích đặc điểm CSDL Fruits, từ đề xuất kiến trúc CNN phù hợp để giải tốn hiệu Hình Hình dạng khác loại táo Hình Nho trắng loại Hình Nho trắng loại 2 PHÂN TÍCH CƠ SỞ DỮ LIỆU CSDL ảnh Fruits [3] gồm 60 loại trái cây, có tổng cộng 38,409 ảnh, ảnh có kích thước 100×100 pixel Mỗi ảnh gán 60 nhãn, tên nhãn mã số nhãn mô tả bảng Bảng Mã hóa loại trái Mã Tên trái Mã Tên trái Mã Tên trái Mã Tên trái Apple Braeburn 15 Cactus fruit 30 Kiwi 45 Pear Apple Golden 16 Carambula 31 Kumquats 46 Pear Abate Apple Golden 17 Cherry 32 Lemon 47 Pear Monster Apple Golden 18 Clementine 33 Lemon Meyer 48 Pear Williams Apple Granny Smith 19 Cocos 34 Limes 49 Pepino Apple Red 20 Dates 35 Litchi 50 Pineapple Apple Red 21 Granadilla 36 Mandarine 51 Pitahaya Red Apple Red 22 Grape Pink 37 Mango 52 Plum Apple Red Delicious 23 Grape White 38 Maracuja 53 Pomegranate Apple Red Yellow 24 Grape White 39 Nectarine 54 Quince 10 Apricot 25 Grapefruit Pink 40 Orange 55 Raspberry 11 Avocado 26 Grapefruit White 41 Papaya 56 Salak 12 Avocado ripe 27 Guava 42 Passion Fruit 57 Strawberry 13 Banana 28 Huckleberry 43 Peach 58 Tamarillo 14 Banana Red 29 Kaki 44 Peach Flat 59 Tangelo Mô tả CSDL Fruits { () () } Với ảnh trái với kênh màu RGB, , nhãn ảnh , , -, số lượng liệu huấn luyện Tất ảnh CSDL có chất lượng cao khơng có Điều tạo nhiều thuận lợi cho việc xây dựng mơ hình: – Các đặt trưng ảnh rõ ràng: giúp cho mơ hình biểu diễn đặc trưng xác – Tạo điều kiện thuận lợi cho việc sinh thêm liệu cần thêm nhiễu vào ảnh, thêm khác cho ảnh Không giống phần lớn CSDL khác CIFAR [5] chứa đối tượng nhiễu nên cần phải tiến hành tiền xử lý trước đưa vào mơ hình – Mức độ chi tiết đặc trưng ảnh nhỏ nên cần ưu tiên kích thước học đặc trưng nhỏ 211 Mỗi loại trái chụp góc nhìn khác (3600), điều phản ảnh đầy đủ đặc trưng loại trái Tuy nhiên, CSDL số hạn chế: – Mỗi loại trái chụp có vài hình: CSDL chưa phản ánh đầy đủ đặc trưng loại trái Các ảnh trái không chụp theo độ phát triển trái theo thời gian – Số lượng mẫu chưa nhiều Trong mơ hình học sâu thường cần lượng liệu lớn để đảm bảo tạo mơ hình mạnh Chính xây dựng mơ hình để giải tốn phải cân nhắc việc thiết kế số tầng, số nơron cho tầng, số lượng lọc, kích thước lọc cho phù hợp với CSDL MƠ HÌNH ĐỀ XUẤT CNN [6, 7] có nhiều đột phá tốn phân lớp liệu ảnh CNN mơ hình học theo chiến lược end-to-end, nghĩa tích hợp phần học đặc trưng phần học phân lớp mơ hình Tuy nhiên đặc điểm tốn khác nên áp dụng mơ hình CNN cần phải thiết kế kiến trúc mơ hình phù hợp với toán giải Kiến trúc tổng quan mơ hình giải tốn thiết kế hình 3.1 Kiến trúc Mơ hình có tầng convolutions để học đặc trưng, theo sau mạng fully connected để phân lớp liệu Cấu trúc ý nghĩa tầng sau: – Tầng input: Chấp nhận ảnh có kích thước input nhận ảnh pixel với kênh màu RGB Đầu vào tầng – Tầng convolution: Có tầng convolutions dùng để khám phá đặc trưng ảnh liệu – Hàm activation: Tất tầng (tầng convolution tầng fully connected) dùng hàm activation ReLU (Rectified Linear Units) ( ) ( ) [[8]] để giúp mạng không bị dày đặc giúp việc huấn luyện mạng nhanh – Tầng pooling: Các thông tin tầng trước (thông tin cấp thấp) dùng để tổng hợp thành thông tin tầng sau (thông tin cấp cao hơn) để tổng hợp hiệu quả, thông tin lớp trước cần phải giản lược bớt độ phức tạp Cho nên báo dùng max pooling giải vấn đề Max pooling dùng có giá trị stride với giá trị padding – Tầng fully connected: Có tầng dùng để phân lớp liệu Tất tầng fully connected dùng kỹ thuật dropout [9] giúp tránh vấn đề overfitting – Tầng output: Tầng output có 60 nơron, nơron tương ứng với lớp Xác suất lớp xác định thông qua hàm softmax ∑ Chi tiết tham số tầng mơ tả bảng 212 Hình Kiến trúc mơ hình CNN Bảng Kiến trúc mạng STT Tầng Chiều rộng Chiều cao Chiều sâu Kernel Stride Padding 100 100 - - - Input Convolution 9 32 - ReLU 9 32 - - - Pooling 9 32 2 Convolution 7 64 - ReLU 7 64 - - - Pooling 7 64 2 Convolution 5 128 - ReLU 5 128 - - - Pooling 5 128 2 10 Convolution 5 256 - 11 ReLU 5 256 - - - 12 Pooling 5 256 2 13 Convolution 3 512 - 14 ReLU 3 512 - - - 15 Pooling 3 512 2 16 Fully connected 1 1000 - - - 17 ReLU 1 1000 - - - 18 Dropout 1 1000 - - - 19 Fully connected 1 10000 - - - 20 ReLU 1 10000 - - - 21 Dropout 1 10000 - - - 22 Fully connected 1 60 - - - 23 Softmax 1 60 - - - 213 3.2 Hàm loss Để đánh giá lỗi output mạng giá trị ground truth tập liệu chọn hàm loss hàm category cross entropy ( ̂) Trong đó, () ∑( () ( ̂ ( )) ground truth label điểm liệu ( () () ) ( ̂ ( ) )) , ̂ ( ) giá trị dự đoán 3.3 Phƣơng pháp huấn luyện Để huấn luyện tham số, báo dùng thuật toán Adaptive Moment Estimation (Adam) [12] để tối ưu hóa hàm loss THỰC NGHIỆM VÀ ĐÁNH GIÁ 4.1 Môi trƣờng thực nghiệm Hệ thống phát triển môi trường Python 3.5, sử dụng Framework Tensorflow [[10]] để phát triển mơ hình CNN Cấu hình máy dùng để huấn luyện đánh giá mơ hình: Dell Precision m3800, 16 GB RAM, NVIDIA Quadro K1100M 4.2 Thực nghiệm 4.2.1 Huấn luyện – Dữ liệu dùng để huấn luyện: 28736 ảnh (75% kích thức CSDL) – Input: ảnh chuẩn hóa đoạn [-0.5, 0.5] – Kích thước batch: 200 ảnh – Khởi tạo trọng số: trọng khởi tạo ngẫu nhiên theo phương pháp Xavier [[11]] nhằm đảm bảo trọng số có giá trị dao động xung quanh phương sai có giá trị ( ) số nơron tầng phía trước – Hệ số học có giá trị khởi tạo ban đầu: 0.001 – Phương pháp tối ưu hàm loss: trình dùng thuật toán Adaptive Moment Estimation (Adam) [12] để tối ưu hàm loss, phần thực nghiệm cịn sử dụng cách tính hệ số học thích nghi cho tham số hàm loss Trong trình huấn luyện, giá trị hàm lỗi giảm nhanh Chỉ 300 epoch giá trị hàm lỗi tiệm cận (hình 5) Trong 300 epoch q trình huấn luyện, độ xác mơ hình tăng đạt gần ngưỡng 100% (hình 6) 4.2.2 Đánh giá – Dữ liệu dùng để kiểm tra: 9673 ảnh (25% kích thước CSDL) – Kết độ xác: 94.84% 214 Hệ thống Horea Muresan, Mihai Oltean [4] có độ xác 94.59% Như vậy, hệ thống đề xuất đạt độ xác tốt hệ thống Horea Muresan, Mihai Oltean 0.25% Hình Giá trị hàm loss trình huấn luyện Hình Độ xác mơ hình trình huấn luyện KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN Bài báo phân tích, thiết kế mơ hình CNN để nhận dạng ảnh màu trái cây, mơ hình sử dụng ba kênh RGB để phân lớp ảnh Kết thực nghiệm cho thấy độ xác mơ hình 94.84% Hướng phát triển xem xét việc sinh thêm liệu cách gây nhiễu ảnh gốc, tạo cho ảnh để sử dụng mơ hình liệu ảnh có Biến đổi ảnh sang ảnh có kênh màu kết hợp số mơ hình lại với độ xác cao TÀI LIỆU THAM KHẢO [1] Yoshua Bengio, Aaron Courville, and Pascal Vincent, “Representation Learning: A Review and New Perspectives”, IEEE Trans Pattern Anal Mach Intell., vol 35, pp 1798-1828, 2013 [2] Yann LeCun, Yoshua Bengio, Geoffrey Hinton, “Review Deep learning”, Nature, vol 512, 2015 [3] Fruits dataset, https://www.kaggle.com/moltean/fruits (truy cập ngày 18/5/2018) [4] Horea Muresan, Mihai Oltean, “Fruit recognition from images using deep learning”, Technical Report, Babes-Bolyai University, 2017 [5] CIFAR-10 and CIFAR-100 Datasets https://www.cs.toronto.edu/~kriz/cifar.html (truy cập ngày 18/5/2018) [6] Alex Krizhevsky, Ilya Sutskever, Geoffrey E Hinton, “ImageNet Classification with Deep Convolutional Neural Networks”, Advances in Neural Information Processing Systems 25, 2012 215 [7] Catherine F Higham, Desmond J Highamy, "Deep Learning: An Introduction for Applied Mathematicians", arXiv:1801.05894, 2018 [8] Vinod Nair, Geoffrey E Hinton, “Rectified Linear Units Improve Restricted Boltzmann Machines”, Proceedings of the 27th International Conference on Machine Learning, p 807–814, 2010 [9] Srivastava, N., Hinton, G., Krizhevsky, A., Sutskever, I., & Salakhutdinov, R “Dropout: A simple way to prevent neural networks from overfitting”, The Journal of Machine Learning Research, 15(1), p.1929-1958, 2014 [10] Martín Abadi , Paul Barham , Jianmin Chen , Zhifeng Chen , Andy Davis, Jeffrey Dean , Matthieu Devin , Sanjay Ghemawat , Geoffrey Irving , Michael Isard , Manjunath Kudlur , Josh Levenberg , Rajat Monga , Sherry Moore , Derek G Murray , Benoit Steiner , Paul Tucker , Vijay Vasudevan , Pete Warden , Martin Wicke , Yuan Yu , Xiaoqiang Zheng, “TensorFlow: a system for large-scale machine learning”, Proceedings of the 12th USENIX conference on Operating Systems Design and Implementation, 2016 [11] Saiprasad Koturwar, Shabbir N Merchant, “Weight Initialization of Deep Neural Networks(DNNs) using Data Statistics”, arXiv:1710.10570, 2017 [12] Diederik P Kingma, Jimmy Ba, "Adam: A Method for Stochastic Optimization", arXiv:1412.6980, 2017 216 ... loại trái cây, có tổng cộng 38,409 ảnh, ảnh có kích thước 100×100 pixel Mỗi ảnh gán 60 nhãn, tên nhãn mã số nhãn mô tả bảng Bảng Mã hóa loại trái Mã Tên trái Mã Tên trái Mã Tên trái Mã Tên trái. .. huấn luyện KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN Bài báo phân tích, thiết kế mơ hình CNN để nhận dạng ảnh màu trái cây, mơ hình sử dụng ba kênh RGB để phân lớp ảnh Kết thực nghiệm cho thấy độ xác mơ hình... loại trái chụp góc nhìn khác (3600), điều phản ảnh đầy đủ đặc trưng loại trái Tuy nhiên, CSDL số hạn chế: – Mỗi loại trái chụp có vài hình: CSDL chưa phản ánh đầy đủ đặc trưng loại trái Các ảnh trái