Deep Learning là một trong những mảng phát triển nhất của Machine Learning. Có thể hiểu đơn giản Deep Learning là mạng nơron đa lớp có cấu trúc đặc biệt. Recurrent Neural Network RNN (mạng nơron hồi quy), Convolutional Neural Network CNN (mạng nơ ron tíchchập) hay Deep Convolutional Generative Adversarial Networks DCGANs (mạng đối kháng sinh mẫu tích chập đa lớp) đều là các thuật toán trong Deep Learning ỨNG DỤNG MẠNG CNN TRONG VIỆC TÌM KIẾM HÌNH ẢNH Để có thể dự đoán ảnh chim hay không, chúng ta cần viết một chương trình dự đoán ảnh chim (mà chúng ta sẽ để cập chi tiêt trong mục 4). Nhưng để thực sự biết sự hiệu quả của mạng, ta cần kiểm nghiệm với rất rất nhiều ảnh. Dữ liệu tôi tạo ra có 15.000 ảnh kiểm chứng, và kết quả cho độ chính xác 95%. Các công cụ 4.1.1. Python 3.5 (with pip) 4.1.2. Cuda 8.0 (for GPU) 4.1.3. CIFAR10 data sets 4.1.4. CaltechUCSD Birds200–2011 data sets 4.1.5. Framework TFLearn 4.1.6. Framework TensorFlow (của Google) Cài đặt, thiết lập hệ thống 1.Download và cài đặt Python3.5 with pip 2.Upgrade pip (Bắt buộc) (pip18.1py2.py3noneany.whl) python m pip install upgrade pip 3.Download và cài Cuda 8.0 (optionalHỗ trợ GPU) 4.Cài đặt tensorflow (tensorflow1.11.0cp35cp35mwin_amd64.whl) python m pip install tensorflow python m pip install tensorflowgpu (Nếu đã cài Cuda) python m pip install tensorflow1.11.0cp35cp35mwin_amd64.whl 5.Download và cài đặt curses 2.2 python m pip install curses2.2+utf8cp35cp35mwin_amd64.whl 6.Cài đặt tflearn (tflearn0.3.2.tar.gz) python m pip install tflearn ...
Ứng dụng Mạng nơ-ron tích chập (CNN) cho tốn nhận diện chim MỤC LỤC Ứng dụng Mạng nơ-ron tích chập (CNN) cho tốn nhận diện chim BẢNG CÁC TỪ VIẾT TẮT STT Từ viết tắt Từ Tiếng Anh Giải thích CNN Convolutional Neural Network Mạng Nơ ron tích-chập DCGANs Deep Convolutional Generative Adversarial Networks Mạng tích-chập đối kháng sinh mẫu đa lớp DNN Deep Neural Network Mạng Nơ-ron đa lớp FCNN Fully-connected Neural Network Mạng Nơ-ron kết nối hoàn chỉnh MNIST Modified National Institute Tập chữ viết tay MNIST of Standards and Technology NN Neural Networks Mạng Nơ-ron RNN Recurrent Neural Network Mạng Nơ-ron hồi quy DL Deep Learning Kỹ thuật học sâu Ứng dụng Mạng nơ-ron tích chập (CNN) cho toán nhận diện chim ĐẶT VẤN ĐỀ Lý chọn đề tài Mạng nơ-ron nhân tạo (Neural Network - NN) mơ hình lập trình tiên tiến lấy cảm hứng từ mạng nơ-ron thần kinh Kết hợp với kĩ thuật học sâu (Deep Learning), NN trở thành công cụ mạnh mẽ mang lại hiệu tốt cho nhiều tốn khó nhận dạng ảnh, giọng nói hay xử lý ngôn ngữ tự nhiên Mạng Nơ-ron truyền thống (Neural Network) hoạt động không thực hiệu với liệu đầu vào hình ảnh Trong mạng nơ-ron truyền thống tất đầu vào đầu độc lập với nhau, tức chúng không liên kết thành chuỗi với Nhưng mơ hình khơng phù hợp nhiều tốn; Ví dụ, muốn đốn từ xuất câu ta cần biết từ trước xuất Convolutional Neural Network (CNNs hay Convnets – Mạng nơ-ron tích chập) mơ hình Deep Learning tiên tiến giúp cho xây dựng hệ thống thơng minh với độ xác cao CNN lấy cảm hứng từ vỏ não thị giác, nhìn thấy đó, loạt lớp tế bào thần kinh kích hoạt, lớp thần kinh phát tập hợp đặc trưng đường thẳng, cạnh, màu sắc, v.v… đối tượng lớp thần kinh cao phát đặc trưng phức tạp để nhận thấy Mạng nơ-ron tích chập cho phép máy tính có khả “nhìn” “phân tích” cách đưa qua nhiều layer với lọc tích chập để sau có điểm số nhận dạng đối tượng cách tốt CNN ngày sử dụng rộng rãi tốn nhận dạng hình ảnh, xử lý ngơn ngữ tự nhiên toán dự đoán Với phát triển phần cứng mạnh mẽ cho phép tính tốn song song hàng tỉ phép tính, tạo tiền đề cho Mạng nơron tích chập trở nên phổ biến đóng vai trị quan trọng phát triển trí Ứng dụng Mạng nơ-ron tích chập (CNN) cho tốn nhận diện chim tuệ nhân tạo nói chung xử lý ảnh nói riêng Hiện hệ thống xử lý ảnh lớn Facebook, Google hay Amazon đưa vào sản phẩm chức thơng minh nhận diện khuôn mặt người dùng, phát triển xe tự lái hay drone giao hàng tự động Phạm vi nghiên cứu Trong phạm vi nghiên cứu Báo cáo này, chúng tơi trình bày vấn đề mạng nơ-ron, gồm: khái niệm mạng nơ-ron nhân tạo, lịch sử phát triển, mơ hình mạng phương pháp xây dựng huấn luyện mạng Trong sâu vào nghiên cứu hoạt động Mạng nơ-ron tích chập ứng dụng mạng cho toán cụ thể toán nhận dạng đối tượng Báo cáo trình bày thực nghiệm cho ứng dụng mạng nơ-ron tích chập cho việc tìm kiếm hình ảnh chứa chim Ứng dụng Mạng nơ-ron tích chập (CNN) cho tốn nhận diện chim NỘI DUNG NHỮNG KHÁI NIỆM CƠ BẢN 1.1 Machine Learning gì? Machine Learning ý tưởng có thuật tốn chung chung (generic algorithms) cho bạn biết điều thú vị liệu mà không cần phải viết mã tùy chỉnh cụ thể cho vấn đề Thay viết mã, bạn đưa liệu vào thuật toán chung chung xây dựng logic riêng dựa liệu Ví dụ thuật tốn phân loại liệu, đưa liệu vào nhóm khác Thuật toán phân loại sử dụng để nhận dạng số viết tay sử dụng để phân loại email rác email thường mà không thay đổi dịng mã Cùng thuật tốn đào tạo tập liệu khác với mục đích khác Thuật tốn Machine Learning hộp đen sử dụng lại cho nhiều vấn đề phân loại khác Machine Learning thuật ngữ bao hàm nhiều thuật toán chung chung Hai loại thuật toán Machine Learning Thuật toán Machine Learning có hai loại chính: học có giám sát học không giám sát Sự khác biệt đơn giản thực quan trọng Học có giám sát Trong q trình học có giám sát, bạn máy tính tìm mối quan hệ cho bạn Và bạn biết phép toán học cần thiết để giải vấn đề cụ thể này, bạn trả lời cho vấn đề khác loại! Học không giám sát Học tập theo chế độ giám sát tập trung cho phần lại đăng này, khơng phải học khơng giám sát khơng hữu ích hay thú vị Trên thực tế, học không giám sát ngày trở nên quan trọng Ứng dụng Mạng nơ-ron tích chập (CNN) cho toán nhận diện chim thuật tốn tốt sử dụng mà không cần gắn nhãn liệu với câu trả lời xác Do đó, cần điều chỉnh tất trọng số để "lăn xuống" điểm cực tiểu Nếu thay đổi trọng số tí một, theo chiều hướng cực tiểu, cuối cùng, tìm lời giải, mà khơng phải thử tất trọng số ý tưởng ban đầu Trong mơn Giải tích, biết rằng: đạo hàm hàm số cho ta biết hệ số góc hàm số điểm Hay nói theo cách khác, cho ta biết chiều mà ta cần để chạm tới cực tiểu Chúng ta thay đổi trọng số cách trừ giá trị đạo hàm phần hàm mát trọng số Lặp lại trình chạm tới cực tiểu có giá trị tốt trọng số Đó giải thích ngắn gọn phương pháp tìm trọng số với tên gọi batch gradient descent - xuống dốc toàn cục Khi sử dụng thư viện để giải vấn đề, tất điều ẩn Dẫu thì, hiểu điều diễn có ích cho bạn Ứng dụng Mạng nơ-ron tích chập (CNN) cho tốn nhận diện chim Liệu học máy có thật giải vấn đề? Khi bạn nhìn thấy thuật tốn học máy áp dụng dễ dàng để giải vấn đề phức tạp (như nhận diện chữ viết), bạn bắt đầu cảm thấy bạn sử dụng học máy để giải vấn đề nhận câu trả lời, miễn bạn có tập liệu đủ lớn Chỉ cần đưa liệu vào cách đó, máy tính đưa hàm số phù hợp với liệu Nhưng nhớ rằng, học máy hiệu vấn đề thực giải liệu bạn đưa vào Ví dụ, bạn xây dựng mơ hình dự đoán giá nhà dựa số giỏ nhà, hàm số tìm khơng thể áp dụng Khơng có mối liên hệ số giỏ giá nhà Bạn mơ hình hóa mối quan hệ thực tồn đại lượng 1.2 Mạng nơ-ron thần kinh gì? Kết nối tồn mơ tả ta có đồ thị kết hợp sau: Ứng dụng Mạng nơ-ron tích chập (CNN) cho toán nhận diện chim Mỗi nơ-ron chứa giá trị đầu vào, áp dụng trọng số cho chúng tính tốn kết đầu Bằng cách kết nối nhiều tầng nơ-ron với nhau, mơ hình hóa chức phức tạp Ý tưởng đơn giản diễn đạt lại theo cách sau: - Chúng ta tạo nên hàm dự đốn đơn giản, thực tính tốn cách nhân giá trị nơ-ron với trọng số tương ứng Mỗi hàm đơn giản gọi tế bào thần kinh - Kết nối nhiều tế bào thần kinh đơn giản lại với nhau, xây đựng mạng thần kinh để mơ hình hóa nhiều toán phức tạp mà tế bào thần kinh không làm Tư tưởng giống ghép hình LEGO Chúng ta khơng thể tạo mơ hình với mảnh ghép, cách kết hợp nhiều mảnh ghép với nhau, ta tạo nên robot, máy bay, xe tăng Ứng dụng Mạng nơ-ron tích chập (CNN) cho tốn nhận diện chim Tự động tạo văn Cung cấp nhớ cho mạng thần kinh (NN) Mạng thần kinh luôn trả kết giống với tập liệu đầu vào giống Nó khơng có nhớ Trong thuật ngữ lập trình, thuật toán phi trạng thái Trong nhiều trường hợp (giống ước lượng giá trị ngơi nhà), xác điều bạn mong muốn Nhưng việc mà loại mô hình khơng thể làm đáp ứng với mơ hình liệu theo thời gian Ví dụ cho bạn bàn phím yêu cầu bạn viết câu chuyện Nhưng trước bạn bắt đầu, dự đốn ký tự bạn gõ Tơi nên đốn chữ gì? Tơi sử dụng kiến thức tiếng Anh để nâng cao tỉ lệ đốn tơi Ví dụ, bạn chọn gõ ký tự thông dụng Nếu xem qua câu chuyện bạn viết trước đó, tơi dựa xác suất từ bạn thường sử dụng đầu câu chuyện để thu hẹp tập kết dự đoán hơn, xây dựng mạng thần kinh để mơ hình hóa khả bạn bắt đầu thư với ký tự Mô sau: Nhưng làm vấn đề khó khăn Làm để tơi dự đoán ký tự bạn gõ thời điểm câu chuyện bạn Đây vấn đề thú vị nhiều Ứng dụng Mạng nơ-ron tích chập (CNN) cho tốn nhận diện chim 1.3 Deep Learning Deep Learning mảng phát triển Machine Learning Có thể hiểu đơn giản Deep Learning mạng nơ-ron đa lớp có cấu trúc đặc biệt Recurrent Neural Network - RNN (mạng nơ-ron hồi quy), Convolutional Neural Network - CNN (mạng nơ ron tích-chập) hay Deep Convolutional Generative Adversarial Networks - DCGANs (mạng đối kháng sinh mẫu tích chập đa lớp) thuật toán Deep Learning Ở mạng nơ-ron đa lớp thường, giá trị đầu lớp đầu vào lớp tiếp theo, lần chạy mạng với giá trị truyền vào độc lập với Ở mạng RNN, mạng nơ-ron lần chạy lưu trạng thái, sử dụng lần chạy Ở mạng CNN, đặc trưng giá trị truyền vào trích lọc chuỗi phương pháp tích chập, giảm mẫu, kết nối mạng trước phân nhóm 1.4.1 Nhận diện vật thể Deep Learning Bạn nhìn thấy đoạn hoạt hình tiếng trước Bức tranh mô tả ý tưởng: đứa trẻ tuổi nhận tranh chim, để nhận dạng vật thể với máy tính câu đố cho nhà khoa học máy tính giỏi vịng 50 năm vừa qua Trong khoảng vài năm gần đây, cuối cùng, tìm phương pháp thích hợp để nhận dạng vật thể sử dụng Deep Convolutional Neural Networks - mạng nơ-ron tích chập đa lớp Để hiểu thuật toán này, viết chương trình nhận dạng chim từ ảnh 1.4.2 Bắt đầu từ Bài toán đơn giản Trước học cách nhận diện chim, nhận diện số chữ số viết tay - chương trình đơn giản Chúng ta biết mạng nơ-ron giải vấn đề phức tạp cách kết nối nhiều nơ-ron đơn giản Chúng ta tạo mạng nơ-ron nhỏ, để dự đoán giá nhà dựa số phịng ngủ có, độ rộng ngơi nhà, hay hàng xóm ngơi nhà 10 Ứng dụng Mạng nơ-ron tích chập (CNN) cho toán nhận diện chim Chúng ta bắt đầu với ảnh lớn, kết thúc với nhiều mảng nhỏ Những mảng lưu trữ phần đáng ý từ ảnh ban đầu Từ bước đến bước gọi trình tích chập (Convolutional) - lấy giá trị đầu với mảnh ảnh, thông qua trọng số cố định Bước 4: Giảm mẫu Ở bước 3, ta có chuỗi mảng chứa đặc trưng ảnh Tuy thế, chuỗi mảng lớn, khiến việc tính tốn máy tính trở nên khó khăn Hơn nữa, ngồi đặc trưng, mảng chứa nhiễu 20 Ứng dụng Mạng nơ-ron tích chập (CNN) cho tốn nhận diện chim Để giảm chiều mảng, ta dùng thuật toán max pooling - tách lọc lớn Với ô trống 2x2 mảng giá trị, ta lưu lại giá trị lớn - đặc trưng rõ ràng thú vị ảnh Bước 5: Truyền đặc trưng vào mạng nơ-ron khác dự đoán Chúng ta chuyển ảnh lớn ban đầu thành tập hợp đặc trưng bật Giờ đây, kết nối tất đặc trưng lại tạo thành Fully-connected Neural Network - mạng nơ-ron kết nối hồn chỉnh Gía trị mạng dùng làm đầu vào cho mạng nơ-ron phân nhóm để tìm kết cuối Kết nối mạng giống tìm tay, chân, đầu, ta cần lắp ghép lại thành người hoàn chỉnh Vì phương pháp khơng phụ thuộc vào vị trí người ảnh, mà phụ thuộc vị trí tương đối đặc trưng: tay, chân, đầu với nhau, nên dù ảnh vị trí nhận biết Từ đầu đến cuối, toàn trình sau: 21 Ứng dụng Mạng nơ-ron tích chập (CNN) cho tốn nhận diện chim Chèn thêm nhiều bước nữa: Quá trình nhận diện ảnh chuỗi bước: tích chập, giảm mẫu kết nối mạng hoàn chỉnh Khi giải vấn đề thực tế, bước kết nối nhiều lần Bạn có 2, chí 10 lớp tích chập Bạn chèn giảm mẫu vào vị trí bạn muốn Ý tưởng ảnh lớn, bước trích xuất đặc trưng, giảm chiều để có kết cuối Càng nhiều bước tích chập, mơ hình nhận diện đặc trưng phức tạp Việc có nhiều lớp tích chập giúp ta tìm đặc trưng nhỏ thể người: Thay nhận diện tay chân đầu, nhận diện bàn tay, cánh tay, khửu tay Nhiều lớp tích chập giúp ta nhận diện đốt tay, móng tay, vân tay Cứ tiếp tục thế, ta tìm người cách tìm đặc trưng cấp độ phân tử (just kidding ) Cũng giống nhận diện người qua phân tử (tưởng tượng vậy), hầu hết số trích xuất từ học máy đặc trưng mà người khơng hình dung được, máy tính lại biết Người ta thường coi hộp đen thần kì học máy Hiện nay, tồn số hệ thống nhận diện ảnh tốt người Vì nhận dạng cấp độ nhỏ hay nhỏ, nhận diện gà hay chó, tơ hay xe máy có số q trình tách lọc đặc trưng giống Nên mạng nơ-ron dùng để phân biệt động vật tái sử dụng (transfer learning) để phân biệt xe cộ, loại hoa, đồ vật cần tinh chỉnh trọng số mạng lớp cuối Đây mạng lưới CNN thực tế nghiên cứu khoa học: 22 Ứng dụng Mạng nơ-ron tích chập (CNN) cho toán nhận diện chim Trong trường hợp này, họ bắt đầu với ảnh 224x224 pixel, áp dụng lần tích chập giảm mẫu, lần tích chập tiếp, giảm mẫu thêm lần mạng kết nối Kết cuối giúp ta nhận dạng 1000 nhóm khác Xây dựng mạng lưới tốt Vậy làm bạn biết bước bạn cần làm để nhận diện ảnh hoạt động tốt Sự thật thì, bạn phải làm nhiều thử nghiệm kiểm chứng Bạn đào tạo 100 mạng trước bạn tìm cấu trúc tham số tối ưu Học máy bao gồm nhiều thử nghiệm loại lỗi ỨNG DỤNG MẠNG CNN TRONG VIỆC TÌM KIẾM HÌNH ẢNH 3.1 Nhận diện chim ảnh Từ nghiên cứu trên, ta cần thực nghiệm chương trình xác định ảnh có chứa chim hay khơng Để làm việc đó, ta cần có liệu Tập liệu CIFAR10 chứa 6000 ảnh chim 52,000 ảnh không chứa chim Nhưng để có nhiều liệu hơn, cung cấp thêm tập liệu Caltech-UCSDBirds bao gồm 12,000 ảnh chim Để viết ngắn gọn tạm gọi ảnh chứa chim ảnh chim, ảnh không chứa chim ảnh không chim Dưới tập hợp chim từ tổ hợp liệu: 23 Ứng dụng Mạng nơ-ron tích chập (CNN) cho toán nhận diện chim Và 52,000 ảnh không chim: Tập liệu hoạt động tốt cho nhu cầu thử nghiệm, 72,000 ảnh chất lượng bé so với ứng dụng thực tế Nếu bạn muốn đạt chất lượng Google, bạn cần hàng triệu ảnh cỡ lớn Trong học máy, có nhiều liệu lúc quan trọng có thuật tốn tốt Bạn hiểu Google sẵn lòng cho bạn lưu trữ ảnh không giới hạn Họ muốn nguồn liệu dồi từ bạn đó) Trong q trình đào tạo, độ xác tăng lên Sau vài lần chạy, độ xác khoảng 75,4% Sau 10 lần, 91,7% Sau 50 lần, giao động khoảng 95,5% lần chạy khơng làm tăng độ xác nên tơi dừng lại trình đào tạo 3.2 Kiểm nghiệm mạng nơ-ron Để dự đốn ảnh chim hay khơng, cần viết chương trình dự đốn ảnh chim (mà để cập chi tiêt mục 4) Nhưng để thực biết hiệu mạng, ta cần kiểm nghiệm với rất nhiều ảnh Dữ liệu tơi tạo có 15.000 ảnh kiểm chứng, kết cho độ xác 95% 95% có thực tốt? 24 Ứng dụng Mạng nơ-ron tích chập (CNN) cho tốn nhận diện chim 95% có ý nghĩa khác nhau, điều phụ thuộc vào chi tiết q trình đào tạo Ví dụ, 5% tập đào tạo gồm ảnh chim, 95% ảnh khơng chim Và chương trình đốn khơng chim cho tất lần đốn, tỉ lệ xác 95%! Nhưng điều hồn tồn vơ nghĩa Chúng ta cần nhìn kĩ vào giá trị độ xác tổng thể Để đánh giá hệ thống có thực tốt, cần biết mạng lỗi nào, khơng % dự đốn sai Thay nghĩ dự đốn hay sai, chia nhỏ thành tập phân biệt Các tập có cơng thức A + B, với A True False (dự đoán hay sai) B Positives hay Negatives (dự đoán chứa chim hay khơng chứa chim) Ví dụ: True Positives: dự đoán chứa chim, dự đoán Ảnh chim dự đốn xác có chim, gọi tập True Positives: Ảnh không chứa chim dự đốn xác, gọi True Negatives: 3.Ảnh khơng chứa chim đốn có chim, gọi False Positives: Ảnh chứa chim dự đốn khơng chim, gọi False Negatives: Kiểm nghiệm với 15.000 ảnh, bảng tổng kết: 25 Ứng dụng Mạng nơ-ron tích chập (CNN) cho tốn nhận diện chim Tại lại phân chia kết này? Bởi khơng phải sai lầm bình đẳng Tưởng tượng viết chương trình phát ưng thư từ hình ảnh MRI - cộng hưởng từ Trong trường hợp phát ung thư, giết nhầm (đốn có khơng phải) cịn bỏ sót (đốn khơng có lại có) Bỏ sót trường hợp tồi tệ nhất, giết chết sinh mạng người Chúng ta nhìn độ xác tổng thể thơng qua giá trị Precision and Recall Precision = True Positives / Total Positives: Trong tất dự đốn có (Positives), bạn đốn % Recall = True Positives / Total True: Trong tất tồn (True), bạn đoán % Trong lần dự đoán, 97.1%, ảnh chim, ta đoán 91% Với điều kiện thực nghiệm, ta coi kết tốt CÀI ĐẶT, CHẠY THỬ NGHIỆM ỨNG DỤNG 26 Ứng dụng Mạng nơ-ron tích chập (CNN) cho tốn nhận diện chim 4.1 Các công cụ 4.1.1 Python 3.5 (with pip) Python cơng cụ lập trình giúp viết đoạn mã để khởi tạo huấn luyện mạng Nơ ron tích chập Phiên sử dụng thực nghiệm phiên 3.5 công cụ pip 4.1.2 Cuda 8.0 (for GPU) CUDA (Compute Unified Device Architecture - Kiến trúc thiết bị tính tốn hợp nhất) kiến trúc tính tốn song song NVIDIA phát triển Nói cách ngắn gọn, CUDA động tính tốn GPU (Graphics Processing Unit Đơn vị xử lý đồ họa) NVIDIA, lập trình viên sử dụng thơng qua ngơn ngữ lập trình phổ biến Lập trình viên dùng ngơn ngữ C for CUDA, dùng trình biên dịch PathScale Open64 C[1], để cài đặt thuật toán chạy GPU Kiến trúc CUDA hỗ trợ chức tính tốn thơng qua ngôn ngữ C Python sử dụng CUDA việc dễ dàng thực tính tốn CPU 4.1.3 CIFAR10 data sets CIFAR10 data sets liệu chứa 60000 ảnh màu 32x32 phân loại làm 10 nhóm, 6000 images nhóm 50000 training images, 10000 test images Dữ liệu dùng để nhận dạng ảnh chim không chứa chim 27 Ứng dụng Mạng nơ-ron tích chập (CNN) cho toán nhận diện chim 4.1.4 Caltech-UCSD Birds-200–2011 data sets Caltech-UCSD Birds-200–2011 data sets liệu chứa 200 nhóm với 11788 ảnh chứa chim Do liệu chưa đủ lớn để nhận dạng chim nên ta bổ sung liệu CaltechUCSD Birds-200–2011 cho việc học máy trở nên xác 28 Ứng dụng Mạng nơ-ron tích chập (CNN) cho toán nhận diện chim 4.1.5 Framework TFLearn Để xây dựng phân nhóm, sử dụng TFLearn TFLearn xây dựng TensorFlow cho phép sử dụng hàm có sẵn để xây dựng mạng nơ-ron tích chập Đây đoạn mã xây dựng đào tạo mạng nơ-ron: Nếu bạn đào tạo mạng với thẻ đồ họa hình tốt đủ nhớ RAM (như Nvidia GTX980 Ti tốt hơn), mạng hình thành sau khoảng 1h, bạn đào tạo với CPU thông thường, thời gian lâu nhiều 4.1.6 Framework TensorFlow (của Google) TensorFlow thư viện phần mềm mã nguồn mở dành cho máy học nhiều loại hình tác vụ nhận thức hiểu ngơn ngữ Nó sử dụng cho nghiên cứu lẫn sản xuất 50 đội khác hàng tá sản phẩm thương mại Google, nhận dạng giọng nói, Gmail, Google Photos, tìm kiếm, TensorFlow nguyên thủy phát triển đội Google Brain cho mục đích nghiên cứu sản xuất Google sau phát hành theo giấy phép mã nguồn mở Apache 2.0 vào ngày 9/11/2015 29 Ứng dụng Mạng nơ-ron tích chập (CNN) cho tốn nhận diện chim 4.2 Các bước xây dựng triển khai 4.2.1 Cài đặt hệ thống Cài đặt, thiết lập hệ thống 1.Download cài đặt Python3.5 with pip 2.Upgrade pip (Bắt buộc) (pip-18.1-py2.py3-none-any.whl) python -m pip install upgrade pip 3.Download cài Cuda 8.0 (optional-Hỗ trợ GPU) 4.Cài đặt tensorflow (tensorflow-1.11.0-cp35-cp35m-win_amd64.whl) python -m pip install tensorflow python -m pip install tensorflow-gpu (Nếu cài Cuda) python -m pip install tensorflow-1.11.0-cp35-cp35m-win_amd64.whl 5.Download cài đặt curses 2.2 python -m pip install curses-2.2+utf8-cp35-cp35m-win_amd64.whl 6.Cài đặt tflearn (tflearn-0.3.2.tar.gz) python -m pip install tflearn 30 Ứng dụng Mạng nơ-ron tích chập (CNN) cho tốn nhận diện chim 7.Download datasets from https://s3-us-west-2.amazonaws.com/ml-is- fun/data.zip (unzip thành full_dataset.pkl) 8.Download install numpy+mkl python -m pip install numpy-1.14.6+mkl-cp35-cp35m-win_amd64.whl 9.Download install SciPy (Phải cài numpy trước) python -m pip install scipy-1.1.0-cp35-cp35m-win_amd64.whl 10.Download install hdf5 (h5py-2.8.0-cp35-cp35m-win_amd64.whl) 4.2.2.Tiến trình Khởi tạo, huấn luyện mạng Đây đoạn mã chương trình khởi tạo, huấn luyện mạng 31 Ứng dụng Mạng nơ-ron tích chập (CNN) cho tốn nhận diện chim 4.2.3.Tiến trình kiểm tra kết Đây đoạn mã chương trình kiểm tra kết Tập ảnh sử dụng để kiểm tra kết 4.3 Đánh giá kết 32 Ứng dụng Mạng nơ-ron tích chập (CNN) cho tốn nhận diện chim KẾT LUẬN Báo cáo trình bày vấn đề mạng nơ-ron, gồm: khái niệm mạng nơ-ron nhân tạo, lịch sử phát triển, mơ hình mạng phương pháp xây dựng huấn luyện mạng Trong sâu vào nghiên cứu hoạt động mạng nơ-ron tích chập mạng nơ-ron hồi quy Báo cáo trình bày thực nghiệm cho ứng dụng mạng nơ-ron cho việc tìm kiếm hình ảnh Các vấn đề cịn chưa có báo cáo, cần nghiên cứu triển khai là: - Tìm hiểu thuật tốn huấn luyện mạng nơ ron khác, để đưa so sánh, chọn mơ hình thích hợp cho tốn cụ thể - Phát triển chương trình thực nghiệm thành chương trình có ý nghĩa thực tế hơn, nhận dạng chữ viết tay, nhận dạng ảnh, dựa tảng mạng xây dụng Trong thời gian hạn hẹp khơng thể thiếu sót, mong đóng góp ý kiến Cơ cho tiểu luận hồn thiện 33 Ứng dụng Mạng nơ-ron tích chập (CNN) cho toán nhận diện chim TÀI LIỆU THAM KHẢO [1] Genevieve Orr, Nici Schraudolph and Fred Cummins http://www.willamette.edu/~gorr/classes/cs449/intro.html [2] Neural Networks, Christos Stergiou and Dimitrios Siganos http://www.doc.ic.ac.uk/~nd/surprise_96/journal/vol4/cs11/report.html [3] Foundations of Neural Networks, Fuzzy Systems, and Knowledge Engineering, Nikola K Kasabov, Massachusetts Institute of Technology [4] Ứng dụng Convolutional Neural Network toán phân loại ảnh, https://viblo.asia/p/ung-dung-convolutional-neural-network-trong-bai-toan-phanloai-anh-4dbZNg8ylYM [5] Sử dụng CNN toán nhận dạng mặt người, https://techblog.vn/sudung-cnn-trong-bai-toan-nhan-dang-mat-nguoi-phan-1 [6] Machine Learning is Fun! Part 3: Deep Learning and Convolutional Neural Networks, https://medium.com/@ageitgey/machine-learning-is-fun-part-3-deeplearning-and-convolutional-neural-networks-f40359318721 [7] https://www.cs.toronto.edu/~kriz/cifar.html [8] http://www.vision.caltech.edu/visipedia/CUB-200-2011.html 34 ... https://viblo.asia/p /ung- dung- convolutional-neural-network-trong -bai- toan- phanloai-anh-4dbZNg8ylYM [5] Sử dụng CNN toán nhận dạng mặt người, https://techblog.vn/sudung -cnn- trong -bai- toan- nhan- dang- mat-nguoi-phan-1... chứa chim ảnh không chim Dưới tập hợp chim từ tổ hợp liệu: 23 Ứng dụng Mạng nơ-ron tích chập (CNN) cho toán nhận diện chim Và 52,000 ảnh không chim: Tập liệu hoạt động tốt cho nhu cầu thử nghiệm,... ảnh chứa chim Do liệu chưa đủ lớn để nhận dạng chim nên ta bổ sung liệu CaltechUCSD Birds-200–2011 cho việc học máy trở nên xác 28 Ứng dụng Mạng nơ-ron tích chập (CNN) cho toán nhận diện chim 4.1.5