Nghiên cứu ứng dụng thư viện Tensorflow trong Machine Learning (Luận văn thạc sĩ)

25 1.2K 2
Nghiên cứu ứng dụng thư viện Tensorflow trong Machine Learning (Luận văn thạc sĩ)

Đ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

Nghiên cứu ứng dụng thư viện Tensorflow trong Machine LearningNghiên cứu ứng dụng thư viện Tensorflow trong Machine LearningNghiên cứu ứng dụng thư viện Tensorflow trong Machine LearningNghiên cứu ứng dụng thư viện Tensorflow trong Machine LearningNghiên cứu ứng dụng thư viện Tensorflow trong Machine LearningNghiên cứu ứng dụng thư viện Tensorflow trong Machine LearningNghiên cứu ứng dụng thư viện Tensorflow trong Machine LearningNghiên cứu ứng dụng thư viện Tensorflow trong Machine LearningNghiên cứu ứng dụng thư viện Tensorflow trong Machine LearningNghiên cứu ứng dụng thư viện Tensorflow trong Machine LearningNghiên cứu ứng dụng thư viện Tensorflow trong Machine LearningNghiên cứu ứng dụng thư viện Tensorflow trong Machine Learning

HỌC VIỆN CƠNG NGHỆ BƢU CHÍNH VIỄN THƠNG LƢƠNG CÔNG DUẨN NGHIÊN CỨU ỨNG DỤNG THƢ VIỆN TENSORFLOW TRONG MACHINE LEARNING Chuyên ngành: Kỹ thuật Viễn thơng Mã số: 85.20.208 TĨM TẮT LUẬN VĂN THẠC SĨ KỸ THUẬT HÀ NỘI – 2018 Luận văn hồn thành tại: HỌC VIỆN CƠNG NGHỆ BƢU CHÍNH VIỄN THƠNG Người hướng dẫn khoa học: TS NGUYỄN NGỌC MINH Phản biện 1: Phản biện 2: Luận văn bảo vệ trước Hội đồng chấm luận văn thạc sĩ Học viện Cơng nghệ Bưu Viễn thông Vào lục: ngày tháng năm 2018 Có thể tìm hiểu luận văn tại: ‐ Thư viện Học viện Cơng nghệ Bưu Viễn Thơng MỞ ĐẦU Hiện nay, Machine learning trở thành thành phần dự kiến có ảnh hưởng lớn đến cách mạng cơng nghiệp 4.0 Các chương trình Data Meaning, Machine learning, Deep learning, Big Data kết hợp với lượng liệu khổng lồ IoT (Internet of Things) thu thập tập trung phát triển mạnh mẽ số năm gần Xu ngày ảnh hưởng lớn tới sống thường ngày, sản xuất, hoạt động xã hội phương thức quản lý giám sát phủ Việc áp dụng khả học máy khoa học công nghệ sống dần trở nên phổ biến Nắm bắt xu đồng thời theo định hướng nghiên cứu sau thân em muốn sử dụng thời gian nghiên cứu xây dựng luận văn để thực nghiên cứu Machine learning nói chung tập trung vào Deep learning từ phát triển ứng dụng làm tảng để tiếp tục phát triển ứng dụng Machine learning mức cao Trong nhiều thư viện hỗ trợ nghiên cứu phát triển Machine learning nói chung Deep learning nói riêng có thư viện Tensorflow cơng cụ có tuổi đời trẻ có lực tốt đánh giá cao lĩnh vực Ở luận văn em định hướng nghiên cứu mơ hình thuật tốn Machine learning nói chung Deep learning nói riêng từ sử dụng Tensorflow để thử nghiệm sử dụng thư viện đồng thời phát triển mơ hình Deep learning sử dụng thư viện Sau trình tìm hiểu nghiên cứu học viên xây dựng luận văn với cấu trúc gồm chương sau:  Chƣơng I: Giới thiệu Machine Learning  Chƣơng II: Xây dựng mơ hình, lựa chọn thuật toán, tiến hành thử nghiệm  Chƣơng III: Xây dựng phần mềm, triển khai huấn luyện đánh giá hiệu huấn luyện mơ hình CHƢƠNG I: GIỚI THIỆU VỀ MACHINE LEARNING 1.1 Khái quát lịch sử phát triển thành tựu đạt đƣợc Machine Learning Machine Learning (Học máy Máy học) lĩnh vực trí tuệ nhân tạo liên quan đến việc nghiên cứu xây dựng kĩ thuật cho phép hệ thống "học" tự động từ liệu để giải vấn đề cụ thể Trong machine learning, máy tính khơng cần phải lập trình cách rõ ràng tự thay đổi cải thiện thuật tốn chúng Hình 1: Biểu đồ thời gian trình phát triển trí tuệ nhân tạo Trí tuệ nhân tạo coi nhân tố lớn cách mạng công nghiệp lần thứ giới Nó áp dụng rộng rãi nhiều lĩnh vực như: Nông nghiệp, công nghiệp, y tế, xã hội,… không dành cho nhà khoa học, tổ chức hay cơng ty lớn mà người áp dụng tốn gặp sống 1.2 Một số mơ hình thƣờng dùng Machine Learning Deep Learning 1.2.1 Học có giám sát (Supervised Learning) Supervised learning chúng có tập hợp biến đầu vào X  {x1 , x2 , , xN } tập nhãn tương ứng Y  { y1 , y2 , , yN } xi , yi vector yi  f ( xi ), i Với mục tiêu tìm hàm xấy xỉ f tốt để có tập giá trị x hàm f tính toán nhãn cách tương ứng hàm xây dựng từ tập mẫu ban đầu Hình 1: Mơ hình học máy có giám sát Thuật tốn học có giám sát chia làm hai loại là: Phân loại (Classification) Hồi quy (Regression) 1.2.1.1 Phân loại (Classification) Một toán gọi phân loại nhãn liệu đầu vào chia thành số hữu hạn nhóm theo nhãn Cơng việc phân loại tiến hành mơ hình học máy tiến hành học dựa vào tập liệu có sẵn từ sau đưa liệu mới, cho liệu loại nhãn khai báo tập liệu mẫu 1.2.1.2 Hồi quy (Regression) Đối với toán mà tập đích tập liệu huấn luyện có dạng liên tục khơng thể khó để phân nhóm tốn xếp vào dạng tốn hồi quy 1.2.2 Học khơng giám sát (Unsupervised Learning) Không phải tất liệu thu thập thực tế có giá trị nhãn xác định mà có tập liệu đầu vào Thuật tốn học khơng giám sát lúc chủ yếu dựa vào cấu trúc tập liệu để thực cơng việc phân nhóm giảm chiều liệu để làm gọn tập liệu thuận tiện cho việc lưu trữ tính tốn sau Các toán Unsupervised learning tiếp tục chia nhỏ thành hai loại là: Phân nhóm giảm chiều liệu 4 1.2.2.1 Phân nhóm (Clustering) Bài tốn phân nhóm tốn phân nhóm tồn liệu từ tập đầu vào X thành nhóm nhỏ dựa vào liên quan liệu nhóm Bài tốn tương tự tốn phân loại mục học có giám sát bị bỏ tập nhãn đầu nhiên việc phân nhóm kết đầu hồn tồn khơng thể xác định thuật toán thực 1.2.2.2 Giảm chiều liệu (Dimensionality reduction) Trên thực tế có số thơng số liệu đầu vào không ảnh hưởng ảnh hưởng không nhiều đến kết đầu thực tế loại bỏ thơng số để tiết kiệm tài nguyên lưu trữ làm gia tăng tốc độ tính tốn hệ thống học Điều thực thuật tốn giảm chiều liệu Với đầu vào tất thông số thu thập đầu tập liệu loại bỏ thành phần liệu không thực cần thiết 1.2.3 Học bám giám sát (Semi-Supervised Learning) Trong thực tế có tốn có tập liệu mà phần lượng lớn liệu đính nhãn đầu Bài toán toán nằm tốn học có giám sát học khơng có giám sát Một thuật tốn học bán giám sát sử dụng học ví dụ có nhãn, sau tiến hành gán nhãn cho số (có lựa chọn) ví dụ khơng có nhãn cách hợp lý, có đánh giá chất lượng cơng việc hay độ xác Tiếp theo, chọn ví dụ vừa gán nhãn có độ tin cậy cao (vượt ngưỡng chọn trước) đưa vào kết hợp với tập liệu có nhãn, tạo thành tập liệu huấn luyện sau áp dụng phương pháp kiểm thử để đánh giá hiệu năng/độ xác mơ hình 1.2.4 Học củng cố (Reinforcement Learning) Học củng cố toán giúp cho hệ thống tự động xác định hành vi dựa hoàn cảnh để đạt lợi ích cao Hiện tại, học củng cố chủ yếu áp dụng vào Lý Thuyết Trò Chơi (Game Theory), thuật toán cần xác định nước để đạt điểm số cao 5 1.3 Một số thuật toán đặc trƣng huấn luyện Machine Learning 1.3.1 Gradient Descent Thuật toán coi thuật toán huấn luyện Machine Learning Giả sử bắt đầu điểm w0 sau tiến hành lặp để tìm điểm wi thông số mà mong muốn đáp ứng Mỗi bước di chuyển từ wi đến wi 1 theo chiều di   gi Vì vậy, để tiến hành tiến hành lặp theo chuỗi công thức sau: wi 1  wi  gii Hệ số  coi tỉ lệ học Việc tối ưu vector tham số chia làm bước sau:  Tính tốn giá trị chiều sai số thông số  Hiệu chỉnh thơng số phương trình 1.3.2 Phương pháp Newton Phương pháp Newton thuật tốn tối ưu hóa thứ hai sử dụng phương pháp tảng ma trận Hessian Mục tiêu thuật tốn tìm hướng huấn luyện tốt cách sử dụng đạo hàm bậc hai hàm mát Thuật toán Newton cho thấy hiệu cao việc tìm giá trị tối thiểu hàm mát Tuy nhiên, thuật toán có vấn đề khó khăn triển khai thực tế vấn đề tốn tài nguyên hệ thống việc tính tốn ma trận đảo ma trận Hessian ( H 1 ) 1.3.3 Gradient kết hợp Thuật toán Gradient kết hợp coi thuật toán kết hợp Gradient Desent thuật toán Newton Phương pháp xây dựng với mục tiêu khắc phục hội tụ chậm phương pháp Gradient Desent giảm bớt phức tạp tính tốn lưu trữ nhớ phương pháp Newton Giả sử d vector huấn luyện, tiến hành bắt đầu huấn luyện với vector thông số w0 khởi tạo vector huấn luyện theo công thức d   gi Phương pháp gradient kết hợp tiến hành dựa vào phương trình lặp sau: di 1  gi 1  di i Với  i gọi thơng số kết hợp Thơng số có nhiều cách tính có hai cách phổ biến phương pháp Fletcher, Reeves Polak, Ribiere Sau tính tốn thơng số vector huấn luyện tiến hành cập nhật giá trị tham số theo công thức sau: wi 1  wi  di i Phương pháp đánh giá có hiệu huấn luyện tốt phương pháp Gradient Desent ngồi phương pháp khơng u cầu tính tốn ma trận Hessian thường khuyến nghị dùng mạng neural có số tham số lớn 1.3.4 Phương pháp Quasi-Newton Từ ưu nhược điểm phương pháp Newton phương pháp khác có tên Quasi-Newton thiết kế để giải hạn chế phương pháp Newton Phương án tận dụng khả tính tốn nhan phương pháp Newton tránh việc tính tốn ma trận Hessian cách sử dụng phương án tính xấp xỉ ma trận Hessian nghịch đảo Ý tưởng phương án tính xấp ma trận Hessian nghịch đảo ma trận khác có tên G Thuật toán sử dụng nhiều trường hợp khả tính tốn thiện so với phương pháp Newton tốc độ hội tụ nhanh nhiều so với Gradient Desent Gradient kết hợp 1.3.5 Thuật toán Levenberg-Marquardt Thuật toán Levenberg-Marquardt thuật toán thiết kế hoạt động dành riêng cho hàm mát xây dựng tảng tổng bình phương sai số Thuật tốn hoạt động dựa tảng vector gradient ma trận Jacobian Thuật tốn có ưu điểm tích hợp ưu điểm phương pháp Gradient Desent Newton thời điểm phù hợp khác đặc biệt thiết kế để huấn luyện nhanh Tuy nhiên, phương pháp có nhược điểm tập mẫu lớn thuật toán chiếm tài ngun lớn thuật tốn khơng ưu tiên sử dụng toán huấn luyện với lượng liệu kiến trúc mạng lớn 7 1.3.6 So sánh thuật toán tốc độ nhớ Hình 2: So sánh tốc độ xử lý nhớ thuật tốn Dựa vào hình cho thấy thuật tốn có tốc độ nhanh chiếm nhiều nhớ thuật toán Levenberg-Marquardt thuật toán có tốc độ chậm chiếm nhớ thuật tốn Gradient Desent Phương pháp có khả cân tốt tốc độ nhớ phương pháp Quasi-Newton 1.4 Giới thiệu thƣ viện Tensorflow ứng dụng 1.4.1 Giới thiệu 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ữ TensorFlow 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 Vào tháng 6/2016, Jeff Dean Google cho biết có 1.500 repository (kho) GitHub đề cập tới TensorFlow, có đến từ Google Các mơ hình Deep Learning phát triển TensorFlow sử dụng nhiều tảng hệ điều hành, phần cứng khác CPU lẫn GPU Hình 3: TensorFlow hỗ trợ tính tốn song song CPU GPU 1.4.2 Các khái niệm Tensorflow 1.4.2.1 Node Vì Tensorflow mơ tả lại dòng chảy liệu thông qua graph nên điểm giao cắt graph gọi Node Vì Node điểm đại diện cho việc thay đổi liệu nên việc lưu trữ lại tham chiếu Node quan trọng 1.4.2.2 Tensor Tensorflow cung cấp loại liệu gọi Tensor giới Tensorflow, kiểu liệu quy mối gọi Tensor hay Tensorflow 1.4.2.3 Rank Rank bậc hay độ sâu Tensor Ví dụ Tensor = [1] có rank 1, Tensor = [[[1,1,1], [178,62,74]]] có rank 3, Tensor = [[1,1,1], [178,62,74]] có rank Cách nhanh để xác định rank Tensor đếm số lần mở ngoặc vuông giá trị khác ngoặc vuông Việc phân rank quan trọng đồng thời giúp phân loại liệu Tensor 1.4.2.4 Shape Shape tuple có số chiều với rank Tensor tương ứng dùng để mô tả lại cấu trúc Tensor 1.4.2.5 Tốn tử - Operator Được viết tắt op, khái niệm Operator toán tử dùng để thực thi Tensor node Các tốn tử Hằng số, Biến số, Phép cộng, Phép nhân 1.4.2.6 DType Đây kiểu liệu phần tử Tensor Vì Tensor có thuộc tính DType nên từ suy có kiểu DType cho toàn phần tử có Tensor 1.5 Kết luận Chương trình bày sơ lược q trình hình thành phát triển trí tuệ nhân tạo, học máy, học sâu giới thiệu mơ hình mạng, thuật tốn thơng dụng chương trình học máy Ngồi ra, chương giới thiệu thành phần thư viện học máy Tensorflow Chương trình bày sâu mơ hình thuật tốn mà học viên sử dụng từ đưa mơ hình mạng phù hợp để tiến hành huấn luyện thử nghiệm 10 CHƢƠNG II: XÂY DỰNG MƠ HÌNH, LỰA CHỌN THUẬT TỐN, TIẾN HÀNH THỬ NGHIỆM 2.1 Giới thiệu toán vấn đề áp dụng mơ hình Machine Learning Với mục đích nghiên cứu Deep Learning sử dụng thư viện Tensorflow để thử nghiệm tìm hiểu mình, dựa vào mục tiêu nghiên cứu lâu dài thân hệ thống xe tự lái (self-driving) luận văn học viên định hướng tìm hiểu nghiên cứu tốn nhận diện hình ảnh cụ thể nhận diện biển báo giao thơng sử dụng mơ hình mạng neural tích chập (CNN - Convolution Neural Network) làm tảng cho nghiên cứu sau Bài toán nhận diện hình ảnh tốn phù hợp với nghiên cứu Deep Learning giai đoạn đầu Với định hướng sử dụng mạng CNN vấn đề đặt việc hiểu kiến thức chung Machine Learning, chương em trình bày kiến thức thu lượm trình nghiên cứu tìm hiểu mạng CNN mơ hình mạng neural truyền thống từ phát triển nghiên cứu tiếp tục mạng CNN 2.2 Lựa chọn mơ hình mạng Machine Learning phù hợp Ở phần em trình bày lý thuyết mạng neural truyền thống mạng neural tích chập mạng neural phổ biến cách chương trình huấn luyện có giám sát Deep Learning 2.2.1 Giới thiệu mạng Neural truyền thống (MLP – Multilayer Perceptron) 2.2.1.1 Vấn đề đặt 2.2.1.2 Các ký hiệu khái niệm a Lớp mạng 11 Hình 1: Ví dụ mạng MLP gồm lớp ẩn b Nút mạng Một hình tròn lớp hình gọi nút mạng Tên nút mạng lớp có tên theo tên lớp sau: nút vào, nút ẩn, nút Tại nút mạng có giá trị z giá trị đầu vào giá trị đầu a sau chịu tác hàm kích hoạt c Trọng số số gia Một mạng MLP có L lớp có L ma trận trọng số Các ma trận ký hiệu W (l )  ¡ d ( l 1)d ( l ) , l  1, 2, , L Ma trận W (l ) thể cho toàn kết nối lớp l  đến lớp thứ l Trong cách thức tính liên kết lớp thể cơng thức hình Tập hợp trọng số ký hiệu W b d Hàm kích hoạt Ở hàm sigmoid với giá trị đầu vào lớn hàm cho giá trị đầu gần với 1, với đầu vào giá trị nhỏ hàm có giá trị đầu gần với Đây hàm sử dụng nhiều năm trước nhiên gần sử dụng có số nhược điểm đầu vào có giá trị tuyệt đối lớn gradient hàm đầu gần với số tương ứng với hệ số tương ứng nút mạng gần không cập nhật Và tương tự hàm Để khắc phục nhược điểm hai hàm gần người ta sử dụng khác hàm khác có tên ReLU (Rectified Linear Unit) hàm đơn giản Đồ thị mơ tả hình sau: 12 Hình 2: Hàm ReLU 2.2.2 Giới thiệu mạng Neural tích chập (CNN - Convolution Neural Network) Một ví dụ nhận diện kí tự “X” “O” Nhiệm vụ xây dựng mạng CNN có nhiệm vụ đưa vào ảnh mạng có vai trò đưa phán đốn “X” hay “O” với điều kiện chắn hình ảnh đưa vào loại Dưới kiến trúc mạng CNN: Hình 3: Kiến trúc mạng CNN Tích chập (Conv) Khi xem hình ảnh mới, CNN khơng biết xác nơi đặc tính khớp nên thử chúng khắp nơi Khi tính tốn khớp đặc tính tồn ảnh, làm thành lọc (filter) Phần toán ta sử dụng để làm điều gọi tích chập Hợp (Pooling) Hợp cơng cụ hỗ trợ làm co hình ảnh lại nhỏ mà giữ nguyên thông tin quan trọng ảnh Hợp sử dụng mặt nạ ma trận vng có kích thước n*n duyệt qua tất ô ma trận ảnh từ tìm điểm có giá trị lớn lấy giá trị trung bình tất điểm thay cho cụm ma trận có kích thước n*n ảnh Trong hai hình thức lấy trung bình lấy giá trị lớn mặt nạ phương pháp lấy giá trị lớn (Gọi Max pooling) cho thấy tính hiệu tốt 13 Tinh chỉnh tuyến tính (ReLU) Cơng việc ReLU đơn giản tính tốn đóng vai trò quan trọng hoạt động mạng CNN Cơng việc thực tiến hành thay số âm số Điều giúp cho CNN giữ độ tin cậy toán học nhờ việc giữ giá trị không bị mắc kẹt gần bị trôi vô cực Đầu ReLU ma trận có kích thước giống với ma trận đầu vào Lớp kết nối đầy đủ (Fully connected layers) Lớp kết nối đầy đủ công cụ quan trọng CNN thực lấy hình ảnh lọc cấp trước tiến hành chuyển thành phiếu bầu Trong trường hợp ví dụ phiếu bầu dành cho “X” hay “O” Thay coi đầu vào mảng hai chiều, lớp coi ảnh danh sách đơn tất xử lý giống Mỗi giá trị bỏ phiếu riêng bầu cho hình ảnh “X” hay “O” Loại thu nhiều phiếu chọn kết đầu tương ứng chọn loại 2.3 Lựa chọn thuật toán huấn luyện 2.3.1 Giới thiệu thuật tốn Gradient Descent Trong Machine Learning nói riêng tốn tối ưu nói chung, thường xun phải tìm giá trị nhỏ (hoặc lớn nhất) hàm số Nhìn chung, việc tìm giá trị tối thiểu toán cục (global minimum) hàm mát Machine Learning phức tạp Thay vào đó, người ta thường cố gắng tìm điểm tối thiểu cục (local minimum), mức độ đó, coi nghiệm cần tìm tốn Hướng tiếp cận phổ biến xuất phát từ điểm mà coi gần với nghiệm tốn, sau dùng phép tốn lặp để tiến dần đến điểm cần tìm, tức đến đạo hàm gần với Gradient Descent (GD) biến thể phương pháp dùng nhiều 14 Hình 4: Ví dụ tìm điểm cực tiểu đồ thị 2.3.2 Gradient Descent cho hàm biến nhiều biến Từ hình vẽ mục trên, giả sử có thuật tốn tìm điểm cực tiểu sau vòng lặp xt điểm mà tìm sau t vòng lặp Chúng ta cần thuật tốn để đưa xt gần với x* gần tốt Chúng ta thấy điểm sau: Nếu đạo hàm hàm số điểm xt : f '( xt )  ta có xt nằm phía bên phải so với x* ngược lại Để điểm xt 1 gần so với x* ta cần thực di chuyển xt 1 phía phía âm tức phía ngược dấu với đạo hàm xt 1  xt    đại lượng ngược dấu với đạo hàm f '( xt ) xt xa x* giá trị | f '( xt ) | lớn Vì lượng cần di chuyển  tỉ lệ thuận với  f '( xt ) Từ nhận xét trên, có cách tiếp cận đơn giản cập nhật giá trị xt qua vòng lặp theo cơng thức sau: xt 1  x t  f '( xt ) Trong hệ số  gọi tốc độ học (Learning rate) 2.3.3 Ví dụ Gradient Descent ngôn ngữ Python nhận xét Ở đây, em trình bày ví dụ hàm biến đơn giản để kiểm tra khả hoạt động thuật toán Gradient Descent 2.3.4 Một số biến thể Gradient Descent a Gradient Descent với Momentum b Nesterov accelerated gradient 2.3.5 Điều kiện dừng Theo lý thuyết chương trình tối ưu dừng tìm điểm tồn cục thực phương trình, nhiên nói thực tế việc gần 15 việc chọn hệ số nhỏ thời gian chấp nhận để thực tối ưu chương trình có hạn Có số phương pháp sau:  Giới hạn số vòng lặp  So sánh gradient nghiệm hai lần cập nhật liên tiếp  So sánh giá trị hàm mát nghiệm lần cập nhật liên tiếp, giá trị đủ nhỏ dừng lại  Cách thường dùng so sánh nghiệm sau vài lần cập nhật, thay đổi qua nhiều điểm liên tiếp trì mức đủ nhỏ lựa chọn nghiệm 2.4 Giới thiệu cơng cụ phụ trợ cho chƣơng trình 2.4.1 Thư viện Numpy Numpy thư viện tảng sử dụng cho tính tốn số học sử dụng cho ngơn ngữ lập trình Python Trong luận văn này, em sử dụng thư viện Numpy để làm công cụ chuyển liệu từ tập liệu huấn luyện tập liệu thử nghiệm kiểu liều chuẩn phù hợp với thư viện Tesorflow 2.4.2 Thư viện Matplotlib Matplotlib thư viện mạnh mẽ việc tạo biểu đồ ngơn ngữ lập trình Python Matplotlib tích hợp hàm làm việc tương tự MATLAB 2.4.3 Thư viện OpenCV Ở luận văn này, trình sử dụng tập mẫu có số lượng ảnh nhãn không cân nên em sử dụng thư viện OpenCV để làm công cụ thực cân chỉnh nhằm cân số lượng hình ảnh mức tương đối cân Ngồi ra, tiến hành xử lý mơ hình tập liệu thực tế em dự kiến sử dụng thư viện vào lọc tiền xử lý thực chuẩn đầu vào liệu phù hợp với mơ hình huấn luyện 2.5 Xây dựng mơ hình cấu trúc chƣơng trình Ban đầu, em thử nghiệm mức độ đơn giản vao gồm kiến trúc mạng sau: 16 Hình 5: Kiến trúc mạng thiết kế ban đầu Sau tiến hành thử nghiệm huấn luyện, mạng học cho độ xác 46.14% Mạng cho thấy hoạt động mạng CNN nhiên khả trích chọn đặc trưng hạn chế Ngoài ra, mức độ học sâu mạng đơn giản Từ đánh giá em tiến hành cải tiến thêm mạng thêm vào số khối định Sau trải qua trình nâng cấp thử nghiệm, em tiến hành thiết kế kiến trúc mạng cho độ xác 92,6% sau: Hình 6: Kiến trúc mạng đƣợc thiết kế luận văn Ở mạng này, mức độ sâu mạng tăng thêm lớp trích chọn đặc trưng (Gồm lớp: Tích chập, tinh chỉnh tuyến tính, hợp đặc trưng), ngồi em tiến hành bổ sung thêm lớp kết nối đầy đủ để tăng mức độ phức tạp khối bầu chọn thơng số khả mở rộng thông tin học mạng cải thiện thêm nhiều Mạng CNN xây dựng bao gồm lớp trình bày chi tiết sau: Tên lớp Đầu vào liệu Lớp Lớp Lớp Lớp – Đầu Chi tiết Ảnh có kích thước [3 32 32] Đầu vào = Đầu vào liệu Tích chập + Tinh chỉnh: Tích chập 5x5, Độ rộng lớp: 108 mảng Hợp lớn nhất: 2x2 Đầu = “Conv1” Đầu vào = “Conv1” Tích chập + Tinh chỉnh : Tích chập 3x3, Độ rộng lớp: 200 mảng Hợp lớn : 2x2 Đầu = “Conv2” Đầu vào = “Conv2” Kết nối đầy đủ + Tinh chỉnh + Kết nối đầy đủ + Tinh chỉnh (768 mảng – 300 mảng) Đầu = “FC” Đầu vào = “FC” Đầu ra: 43 bit (43 loại biển báo) Bảng 1: Chi tiết cấu trúc mạng CNN sử dụng 17 2.6 Kết luận Chương hai trình bày chi tiết mơ hình mạng neural từ giới thiệu cấu trúc, cách thức mạng neural tích chập - CNN, thuật tốn huấn luyện Gradient Descent biến thể Từ hai lựa chọn kết hợp với công cụ hỗ trợ khác mơ hình mạng học máy xây dựng để tiến hành huấn luyện thử nghiệm Chương sau trình bày chi tiết trình huấn luyện đánh giá hoạt động mạng từ đưa kết luận định hướng nghiên cứu 2 CHƢƠNG III: XÂY DỰNG PHẦN MỀM, TRIỂN KHAI HUẤN LUYỆN VÀ ĐÁNH GIÁ HIỆU NĂNG CỦA MƠ HÌNH 3.1 Lựa chọn tảng xây dựng chƣơng trình 3.1.1 Ngơn ngữ Python Ở luận văn em lựa chọn ngơn ngữ Python làm cơng cụ để thiết kế phần mềm thực mô phỏng, huấn luyện thử nghiệm mơ hình mạng xây dựng Ngơn ngữ cho phép người lập trình thay đổi phiên kiến trúc mạng cách nhanh chóng để tập trung thời gian vào thử nghiệm, đánh giá hệ thống 3.1.2 Thư viện Tensorflow Thư viện Tensorflow thư viện Google tạo với mục đích hỗ trợ người dùng nghiên cứu thiết kế chương trình Machine Learning Thư viện Tensorflow hỗ trợ tính tốn phép tốn ma trận tốt sở phương pháp tính tốn ma trận tối ưu từ nhà toán học Thư viện Tensorflow em sử dụng để xây dựng chương trình học huấn luyện Đây coi cơng cụ luận văn 3.1.3 Thư viện OpenCV Ở luận văn, em sử dụng thư viện vào hai nhiệm vụ chính:  Lọc ảnh hàm lọc bản, chuẩn kích thước, độ sâu, định dạng lưu trữ hình ảnh trước đưa đưa vào kiến trúc mạng huấn luyện thử nghiệm  Hỗ trợ xoay ảnh để làm cân liệu nhãn trước tiến hành huấn luyện để mạng đạt khả học tất đối tượng 3.2 Quá trình thu thập tạo tập mẫu Trong toán thực tế học máy có giám sát có bước quan trọng tốn nhiều chi phí thời gian xây dựng tập liệu mẫu để đưa vào huấn luyện mạng nhằm đạt kết huấn luyện tốt Tập mẫu huấn luyện tốt cần đáp ứng điều kiện về: Số lượng mẫu đủ lớn, dạng số lượng trường hợp mẫu,… Trong số tập liệu mà em tìm được, em định lựa chọn tập mẫu GTSRB (German Traffic Sign Recognition Benchmark dataset) Tập liệu chứa nhiều hình ảnh nhiều loại biển báo phổ biến khác Đức Một số thông tin tập liệu sau:  Mỗi ảnh chứa loại biển báo  Chứa 43 loại biển báo phổ biến Đức  Chứa tổng số 50.000 ảnh biển báo giao thơng  Ảnh lưu trữ nhiều kích thước khác Dưới đồ thị phân bố hình ảnh loại biển báo: Hình 1: Sự phân bố số lƣợng ảnh loại tập liệu Có thể thấy có khác biệt lớn số lượng mẫu loại Các loại biển báo nửa đầu tập mẫu có số lượng lớn nhiên nửa sau có sụt giảm lớn số lượng Điều khiến cho độ xác mơ hình mạng loại biển báo nửa sau tập mẫu thấp nhiều so với biển báo nửa đầu biển báo Để giải toán cần tiến hành tạo thêm ảnh mẫu cho loại biển báo có số lượng nhỏ Em sử dụng thư viện OpenCV tiến hành xoay góc lệch khoảng 0-10o, làm mờ gây vài nhiễu nhỏ ảnh gốc để thu thêm liệu làm tăng đa dạng làm cân mẫu loại tập liệu Sau tiến hành thực tạo liệu phương pháp trên, tập mẫu có phân bố sau: Hình 2: Phân bố số mẫu loại sau cân Ngoài ra, tập mẫu ảnh lưu trữ với kích thước khác (từ 15x15 đến 250x250) trước đưa vào huấn luyện cần phải chuẩn hóa ảnh kích thước chuẩn Kiến trúc mạng luận văn sử dụng ảnh đầu vào có kích thước 3x32x32 (32 pixel ngang, 32 pixel dọc lớp màu), em sử dụng thư viện OpenCV để tiến hành chỉnh tất ảnh về chung kích thước 3x32x32 3.3 Huấn luyện đánh giá Sau nghiên cứu sử dụng công cụ em xây dựng chương trình thử nghiệm tiến hành huấn luyện vớp tập mẫu xây dựng (Chương trình chi tiết đính kèm phụ lục) Chương trình tiến hành chạy huấn luyện với 39.209 mẫu đính nhãn, 12.630 mẫu kiểm nghiệm 43 loại mẫu khác cho kết chạy sau: >> >> >> >> Time to trainning: 4673.0710661411285s Validation accuracy: 0.9854 Test accuracy: 0.9260 Time to process a picture: 0.253s Bảng 1: Thông số kết sau chạy mô Dựa vào kết cho thấy tổng thời gian huấn luyện cho mạng chiếm khoảng 77 phút cho lần huấn luyện tập liệu 39.029 ảnh duyệt lại 50 lần liên tiếp (1.951.450 ảnh huấn luyện) thu độ khớp với tập huấn luyện 98,54% (Tỉ lệ xác huấn luyện) lấy mơ hình thử nghiệm với tập mẫu thử độ xác 92,6% Sau tiến hành huấn luyện, chương trình thử nghiệm em tiến hành xây dựng thêm hàm tính tốn thời gian xử lý ảnh đầu vào định Kết cho thấy thời gian trung bình kể từ đưa ảnh vào đến đạt dự đoán đầu 0.252 giây 5 Hình 3: Đồ thị trình huấn luyện mạng Đồ thị cho thấy độ hội tụ mạng trình thay đổi sai số độ xác mạng suốt q trình huấn luyện Ở đây, mạng tiến hành huấn luyện khoảng gần 40.000 bước (sau 50 lần lặp huấn luyện) cho kết độ xác 92,6% giai đoạn từ bước thứ 10.000 giá trị sai số độ xác mạng thay đổi chậm cho thấy sau khoảng 13 lần lặp mạng đạt số gần hội tụ 3.4 Đánh giá định hƣớng phát triển Mạng xây dựng có kiến trúc tương đối đơn giản cho kết đáp ứng tương đối tốt tập liệu GTSRB Đây kết chưa thực cao so với nghiên cứu khác mạng CNN tốn nhận diện hình ảnh giới (Hiện 99,46%) chứng tỏ hoạt động tốt mơ hình Kết tạo tiền đề tốt cho nghiên cứu em Machine Learning nói chung xây dựng mơ hình xe tự lái nói riêng Độ xác mạng đạt số 92,6% tập liệu thử nghiệm Hiện nay, số thử nghiệm tập liệu thử nghiệm chưa phải liệu thực tế Trong định hướng nghiên cứu phát triển tiếp theo, em định hướng tiến hành thử nghiệm mạng số hình ảnh mơi trường thực tế từ đưa đánh giá khả hoạt động mạng mơi trường thực tế từ rút điều chỉnh cần thiết Ngoài ra, số 92,6% chưa phải số thực cao độ xác Em định hướng phát triển mạng thêm số lớp trích chọn đặc trưng gia tăng thêm độ rộng lớp để nâng cao độ xác nhận diện mạng Về tốc độ xử lý mạng sau huấn luyện xử lý ảnh máy tính có cấu hình CPU Core i7 (4 luồng vật lý), Ram 16GB cho kết thời gian xử lý ảnh 0.253s (3,95 hình/s) 3.5 Kết luận Chương cuối luận văn trình bày trình xây dựng phần mềm thử nghiệm, trình huấn luyện đánh giá khả hoạt động mạng Kết cho thấy mạng thiết kế có kiến trúc khơng phức tạp cho kết đáp ứng với độ xác tương đối cao (92,6%) Kết cho thấy mô hình hoạt động tốt nhiên cần có điều chỉnh triển khai nghiên cứu thêm để nâng cao độ xác tốc độ đáp ứng mạng phục vụ cho nghiên cứu em 7 KẾT LUẬN Dưới hướng dẫn người hướng dẫn khoa học với tập trung nghiên cứu thân, sau trình tìm hiểu, nghiên cứu, xây dựng giải tốn đặt luận văn học viên hồn thiện nội dung luận văn đáp ứng yêu cầu nội dung đặt theo đề cương xây dựng Về kiến thức kết thực tế học viên tiếp thu ứng dụng kiến thức vấn đề sau:  Các phương pháp học thường sử dụng học máy tập trung vào tìm hiểu nghiên cứu tốn phân loại thuộc phương pháp học có giám sát  Nghiên cứu tập trung cấu trúc hoạt động mơ hình mạng học máy cụ thể: Mạng tích chập (CNN)  Tìm hiểu phương pháp huấn luyện bản, thông dụng tập trung vào phương pháp là: Gradient Descent  Tìm hiểu cấu trúc cách thức sử dụng ngơn ngữ lập trình Python, thư viện Tensorflow, OpenCV số công cụ khác  Xây dựng mơ hình mạng CNN cho tốn nhận diện biển báo giao thơng sử dụng ngơn ngữ Python thư viện Tensorflow Kết mạng cho thấy độ xác tương đối cao (92,6%) thời gian đáp ứng cho liệu đầu vào 0.253s Về định hướng nghiên cứu tiếp theo, học viên dự kiến thực công việc sau:  Hồn thiện kiến trúc mạng CNN cho tốn nhận diện biển báo giao thơng để đạt kết xác cao (Dự kiến khoảng 95%)  Cải thiện tốc độ xử lý cách sử dụng GPU có hỗ trợ CUDA tính tốn song song ... đánh giá hệ thống 3.1.2 Thư viện Tensorflow Thư viện Tensorflow thư viện Google tạo với mục đích hỗ trợ người dùng nghiên cứu thiết kế chương trình Machine Learning Thư viện Tensorflow hỗ trợ tính... nghiên cứu Machine learning nói chung tập trung vào Deep learning từ phát triển ứng dụng làm tảng để tiếp tục phát triển ứng dụng Machine learning mức cao Trong nhiều thư viện hỗ trợ nghiên cứu phát... Machine learning nói chung Deep learning nói riêng từ sử dụng Tensorflow để thử nghiệm sử dụng thư viện đồng thời phát triển mơ hình Deep learning sử dụng thư viện Sau trình tìm hiểu nghiên cứu học

Ngày đăng: 08/03/2018, 10:48

Từ khóa liên quan

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

Tài liệu liên quan