Tuy nhiên, khi phần cứng dần được cải thiện, các thuật toán họcmáy phát triển, đặc biệt là sự có mặt của học sâu thì các trở ngại kia dần đã có lời giải.Với tính thiết thực của đề tài, e
Trang 1MỤC LỤC
DANH MỤC CÁC TỪ VIẾT TẮT 7
DANH MỤC HÌNH ẢNH 8
MỞ ĐẦU 9
1 Giới thiệu 9
2 Mục tiêu của đề tài 9
3 Đối tượng, phạm vi và phương pháp tiếp cận 10
4 Đóng góp của đề tài 10
5 Bố cục của đề tài 10
CHƯƠNG 1: TỔNG QUAN VỀ CÔNG CỤ VÀ MÔI TRƯỜNG PHÁT TRIỂN 11
1.1 CƠ SỞ LÝ THUYẾT 11
1.1.1 Trí tuệ nhân tạo: 11
1.1.2 Machine Learning: 12
1.1.3 Deep Learning 16
1.1.5 Thuật toán tối ưu hàm mất mát: Gradient Descent 21
1.1.6 Thị giác máy tính 24
1.1.7 Mạng thần kinh nhân tạo (Neural Network) 25
1.1.8 Ngôn ngữ lập trình Python 28
1.1.9 OpenCV 29
1.1.10 YOLO 30
1.1.11 Google Colab 32
1.1.12 Bài toán phát hiện đối tượng (Object Detection) 33
1.2 Giới thiệu đồ án 36
1.3 Kết chương 1 36
CHƯƠNG 2 PHÂN TÍCH THIẾT KẾ HỆ THỐNG 37
2.1 Các đối tượng tương tác với hệ thống 37
2.2 Thiết kế hệ thống 37
2.2.1 Biểu đồ ca sử dụng 37
2.2.2 Biểu đồ lớp 38
2.3 Kết chương 2 38
CHƯƠNG 3 XÂY DỰNG HỆ THỐNG 39
3.1 Dataset 39
3.1.1 Dataset dùng cho model 39
3.1.2 Training 41
3.2 Giao diện ứng dụng 42
Trang 23.2.1 Màn hình đăng nhập 42
3.2.2 Màn hình nhận diện 42
3.2.3 Đăng nhập hệ thống trên web 43
3.2.4 Màn hình đăng ký 43
3.2.5 Màn hình quên mật khẩu 44
3.2.6 Màn hình danh sách các đối tượng bị phát hiện 44
3.2.7 Chi tiết phát hiện 45
3.2.8 Cảnh báo được gửi qua mail 45
3.2 Kết chương 3 45
KẾT LUẬN 47
Trang 315 NAG Nesterov accelerated Gradient Descent
Trang 4DANH MỤC HÌNH ẢNH
Hình 1 1 Mối quan hệ giữa AI, Machine Learning và Deep Learning (nguồn: thegreengrid.org) 12
Hình 1 2 Phân loại học có giám sát (nguồn: towardsdatascience.com) 13
Hình 1 3 Phân loại học không giám sát (nguồn: towardatascience.com) 14
Hình 1 4 So sánh học giám sát, học không giám sát và học bán giám sát (nguồn: towardatascience.com15 Hình 1 5 AlphaGo chiến thằng kì thủ cờ vây số 1 thế giới Lee Sedol (nguồn: Zing.vn) 15
Hình 1 6 Đồ thị biểu diễn hàm Mean Square Error 18
Hình 1 7 Sự biến thiên của hàm Binay Cross-Entropy Loss theo xác suất dự đoán 19
Hình 1 8 Các giá trị của hàm hinge loss dựa trên nhãn 20
Hình 1 9 Mô phỏng thuật toán Gradient Descent (nguồn: ibm.com) 22
Hình 1 10 So sánh sự hội tụ của thuật toán Gradient Descent khi learning rate khác nhau 23
Hình 1 11 Ứng dụng thị giác máy tính trong xe tự hành (nguồn: vinbigdata.com) 24
Hình 1 12 Mô hình thần kinh con người (nguồn: askabiologist.asu.edu) 25
Hình 1 13 Kiến trúc mạng thần kinh nhân tạo (nguồn: xenonstack.com) 26
Hình 1 14 Ma trận RGB 6x6x3 (nguồn: DataScience+) 27
Hình 1 15 Mô hình mạng CNN (nguồn: vinbigdata.com) 28
Hình 1 16 OpenCV Module (nguồn: opencv.org) 29
Hình 1 17 Phát hiện đối tượng bằng YOLO (nguồn: aicurious.io) 30
Hình 1 18 Kiến trúc các lớp trong Yolo (aicurious.io) 30
Hình 1 19 Cách Yolo dự đoán (nguồn: aicurious.io) 31
Hình 1 20 Sử dụng Google Colab để training data 32
Hình 1 21 Nhận diện biển số xe bằng OpenCV (nguồn: opencv.org) 33
Hình 1 22 Kiến trúc hệ thống HOG để phát hiện đối tượng (nguồn: Neptune.AI) 34
Hình 1 23 Chu trình phát hiện đối tượng với mạng CNN (nguồn: neptune.ai) 35
Hình 1 24 Minh họa mô hình Fast-RCNN (nguồn: neptune.ai) 35
Hình 2 25 Sơ đồ ca sử dụng hệ thống phát hiện vũ khí 37
Hình 2 26 Biểu đồ lớp hệ thống phát hiện vũ khí 38
Hình 3 27 Ảnh dùng để training cho mô hình 39
Hình 3 28 Nhãn của các ảnh dùng để training 39
Hình 3 29 Nhãn chứa tọa độ của các đối tượng nguy hiểm một ảnh 40
Hình 3 30 Quá trình training bằng Google Colab 41
Hình 3 31 Màn hình đăng nhập 42
Hình 3 32 Màn hình nhận diện 42
Hình 3 33 Màn hình đăng nhập hệ thống trên web 43
Hình 3 34 Đăng ký tài khoản 43
Hình 3 35 Màn hình quên mật khẩu 44
Hình 3 36 Danh sách các lần phát hiện 44
Hình 3 37 Chi tiết lần phát hiện 45
Hình 3 38 Cảnh báo được gửi qua gmail 45
Trang 5MỞ ĐẦU
1 Giới thiệu
Hiện nay, chúng ta đang sống trong thời đại mà xã hội đề cao tầm quan trọng củaKhoa học, Kỹ thuật và Công nghệ Và khi khoa học, công nghệ, kĩ thuật phát triển thìnhững trí tuệ nhân tạo như trí tuệ nhân tạo, học máy, học sâu, cũng dần trở nên phổ biến Và khi cuộc cách mạng công nghiệp 4.0 vẫn đang len lỏi đến đời sống củachúng ta hàng ngày, thì những khái niệm đó cũng đã và đang dần dần trở nên quenthuộc, được ứng dụng nhiều hơn trong cuộc sống, hứa hẹn đây sẽ là một ngành côngnghiệp đầy tiềm năng và phát triển vượt bậc của ngành khoa học kỹ thuật nói chung,
và ngành công nghệ thông tin nói riêng
Với việc trí tuệ nhân tạo càng được ứng dụng rộng rãi, thì các bài toán trước kiatưởng như là bất khả thi như nhận diện, phân loại, xử lý với các loại dữ liệu phức tạpnhư
âm thanh, tập dữ liệu lớn… thì cũng có đã phương pháp giải quyết Một trong nhữngbài toán cơ bản và phổ biến nhất trong lĩnh vực trí tuệ nhân tạo đó là bài toán
“Nhận diện vật thể thời gian thực (Object Detection Realtime)” Trước kia, với nhữngtrở ngại về mặt phần cứng và mô hình, thuật toán thì bài toán này dường như khôngmang tính thực tế Tuy nhiên, khi phần cứng dần được cải thiện, các thuật toán họcmáy phát triển, đặc biệt là sự có mặt của học sâu thì các trở ngại kia dần đã có lời giải
Với tính thiết thực của đề tài, em đã chọn đề tài: “Ứng dụng deep learning để xây
dựng hệ thống phát hiện con người ở nơi công cộng” với mục đích nghiên cứu,
tìm hiểu và hoàn thành hệ thống phát hiện chuyển động con người Ngoài ra, đề tài còn
là một phương pháp để em có thể ứng dụng các thuật toán, mô hình đã học trong môn
“Học máy”, và “Thị giác máy tính” từ đó có thể ứng dụng cho các bài toán khác tronglĩnh vực Trí tuệ nhân tạo và Khoa học dữ liệu
2 Mục tiêu của đề tài
Mục đích của đề tài là có thể phát hiện các loại vũ khí có thể gây nguy hiểm nhưsúng, đạn, bom, dao từ dó có thể phát cảnh báo đến người dùng để người dùng có thểchủ động ứng phó
Trang 63 Đối tượng, phạm vi và phương pháp tiếp cận
● Đối tượng nghiên cứu: hệ thống phát hiện con người
● Phạm vi nghiên cứu: Đáp ứng theo yêu cầu của khách hàng để có thể phát triểnmột hệ thống:
+ Xác định yêu cầu
+ Phân tích, thiết kế các chức năng, yêu cầu của hệ thống
+ Phát triển mô hình, sau đó ứng dụng mô hình vào hệ thống
● Phạm vi nghiên cứu:
+ Tổng hợp các kết quả nghiên cứu từ các tư liệu liên quan
+ Sử dụng các kiến thức đã có và các công cụ để thiết kế hệ thống
+ Quan sát hoạt động và quy trình các hệ thống tương tự
+ Góp ý của giảng viên hướng dẫn
Chương 2 Phân tích thiết kế “Hệ thống phát hiện vũ khí”.
Nội dung chương bao gồm các phân tích, thiết kế các yêu cầu và chức của ứng dụng, xây dựng các sơ đồ đê mô tả các chức năng, cũng như cách mà hệ thống hoạt động
Chương 3 Xây dựng hệ thống Chương này trình bày các kết quả, chức năng
cài đặt được trong hệ thống
Cuối cùng là Kết luận, Tài liệu tham khảo và Phụ lục liên quan đến đề tài.
Trang 7CHƯƠNG 1: TỔNG QUAN VỀ CÔNG CỤ VÀ
MÔI TRƯỜNG PHÁT TRIỂN 1.1 CƠ SỞ LÝ THUYẾT
1.1.1 Trí tuệ nhân tạo:
Trí tuệ nhân tạo (Artificial Intelligence hay AI) là một lĩnh vực của khoa học máy tính, nhấn mạnh việc tạo ra các máy móc thông minh, hoạt động và phản ứng nhưcon người, mô phỏng quá trình trí tuệ của con người bằng máy móc, đặc biệt là các
hệ thống hệ máy tính AI giúp máy móc có thể học hỏi kinh nghiệm, điều chỉnh các đầu vào mới và thực hiện các nhiệm vụ giống con người Ngày nay, ta có thể dễ dàng nhận thấy các ứng dụng của trí tuệ nhân tạo trong các lĩnh vực thiết yếu trong đời sốngnhư y tế, giáo dục, kinh doanh, tài chính – ngân hàng, trong sản xuất,
AI là một ngành khoa học được sinh ra với mục đích làm cho máy tính có đượctrí thông minh Mục tiêu này vẫn khá mơ hồ vì không phải ai cũng đồng ý với một định nghĩa thống nhất về trí thông minh Các nhà khoa học phải định nghĩa một số mục tiêu cụ thể hơn, một trong số đó là việc làm cho máy tính lừa được Turing Test Turing Test được tạo ra bởi Alan Turing (1912-1954), người được xem là cha đẻ củangành khoa học máy tính hiện đại, nhằm phân biệt xem người đối diện có phải làngười hay không
AI có thể coi là ngành khoa học của máy tính liên quan đến việc tự động hóacác hành vi thông minh Với AI, trí tuệ được tạo ra có thể tư duy, suy nghĩ và học hỏi,
xử lý dữ liệu ở mức rộng hơn, quy mô hơn, khoa học hơn và nhanh hơn so với conngười
AI mang lại những lợi ích to lớn với ngành công nghiệp máy móc, khoa học máy tínhtuy vậy chính bản thân AI cũng còn tồn tại rất nhiều hạn chế Hiện nay những gì chúng ta đang phát triển chỉ dừng ở AI hẹp Công nghệ này có khả năng thực hiện cácnhiệm vụ cụ thể một cách giống hoặc thậm chí tốt hơn con người
Trong quá trình phát triển của mình, Trí tuệ nhân tạo đã sinh ra 2 ngành đượccoi là “ngành con” là Machine Learning và Deep Learning, sự xuất hiện của Machine Learning và đặc biệt là Deep Learning đã tạo ra một bước đột phá, một cuộc cách mạng trong Trí tuệ nhân tạo, và là một trong số cái yếu tố then chốtgiúp Trí tuệ nhân tạo vươn mình trở thành một ngành quan trọng bậc nhất trong cuộc cách mạng công nghiệp 4.0
Trang 8Hình 1 1 Mối quan hệ giữa AI, Machine Learning và Deep Learning (nguồn: thegreengrid.org) 1.1.2 Machine Learning:
1.1.2.1 Khái niệm về Machine Learning.
Machine Learning là một thuật ngữ rộng để chỉ hành động con người dạy máy tính cải thiện một nhiệm vụ mà nó đang thực hiện Khả năng cơ bản nhất củaMachine Learning là sử dụng thuật toán để phân tích những thông tin có sẵn, học hỏi
từ nó rồi đưa ra quyết định hoặc dự đoán về một thứ gì đó có liên quan Thay vì tạo ramột phần mềm với những hành động, hướng dẫn chi tiết để thực hiện một nhiệm vụ cụthể, máy tính được “huấn luyện” bằng cách sử dụng lượng dữ liệu và các thuật toán để học cách thực hiện nhiệm vụ
Ngược dòng lịch sử, Machine Learning đã xuất hiện từ rất lâu trước khi mạng Internet ra đời Một trong những thuật toán machine learning đầu tiên là
thuật toán perceptron được phát minh ra bởi Frank Rosenblatt vào năm 1957.
Trong một bài toán Machine Learning, sẽ luôn luôn tồn tại các thành phần:
Dữ liệu: có thể là một bức ảnh, một đoạn âm thanh, một văn bản, hoặc một tập hành vi của con người trên Internet Dữ liệu thường được đưa về dưới dạng các
con số mà mỗi con số là một đặc trưng (feature) Các điểm dữ liệu thường được biểu
diễn dưới dạng các mảng một chiều, hay còn được gọi là các vector đặc trưng (featurevector) Vector đặc trưng của một điểm dữ liệu thường được ký hiệu là x ∈ R d
Trang 9 Mô hình: một hệ thống tính toán nhận đầu vào là một dạng dữ liệu và sau đó trả về kết quả dự đoán, có thể ở một dạng dữ liệu khác Cụ thể, ta quan tâm tới các
mô hình thống kê mà ta có thể ước lượng được từ dữ liệu
Thuật toán: cách để mô hình có thể học tập dựa trên các kinh nghiệm, hay đặc trưng từ các điểm dữ liệu, từ đó đưa ra các dự đoán cho các dữ liệu mới
Hình 1 2 Phân loại học có giám sát (nguồn: towardsdatascience.com)
Trang 10 Học không giám sát (Unsupervised Learning): Ngược lại với học giám sát,học không giám sát sẽ không có outcome hay nhãn, mà chỉ có tập các dữ liệu đầu vào Thuật toán unsupervised learning sẽ dựa vào cấu trúc của dữ liệu đểthực hiện một công việc nào đó, ví dụ như phân nhóm (clustering) hoặc giảm số chiều của dữ liệu (dimension reduction) để thuận tiện trong việc lưu trữ vàtính toán Các thuật toán Unsupervised Learning được chia thành 2 loại là Phân nhóm (Clustering) và Kết hợp (Association) Học không giám sát được ứng dụngvào nhiều bài toán như Hệ thống gợi ý khách hàng (Recommendation System) hay phân cụm khách hàng dựa trên hành vi mua sắm.
Hình 1 3 Phân loại học không giám sát (nguồn: towardatascience.com)
Học bán giám sát (Semi – Supervised Learning): Các bài toán khi chúng ta cómột lượng lớn dữ liệu X nhưng chỉ một phần trong chúng được gán nhãn được gọi làSemi-Supervised Learning Những bài toán thuộc nhóm này nằm giữa hai nhóm đượcnêu bên trên Một ví dụ điển hình của nhóm này là chỉ có một phần ảnh hoặc văn bản được gán nhãn (ví dụ bức ảnh về người, động vật hoặc các văn bản khoa học, chính trị) và phần lớn các bức ảnh/văn bản khác chưa được gánnhãn được thu thập từ internet
Trang 11Hình 1 4 So sánh học giám sát, học không giám sát và học bán giám sát (nguồn:
towardatascience.com)
Học củng cố (Reinforcement Learning): Học củng cố là các bài toán giúp chomột hệ thống tự động xác định hành vi dựa trên hoàn cảnh để đạt được lợi íchcao nhất Hiện tại, học củng cố chủ yếu được áp dụng vào Lý Thuyết Trò Chơi (Game Theory), các thuật toán cần xác định nước đi tiếp theo để đạt được điểm số caonhất Một ví dụ cực kì nổi tiếng về học củng cố là AlphaGo của Google Để có thể chiến thắng được kì thủ cờ vây số 1 thế giới Lee Sedol, AlphaGo, được xây dựng dựa trên các thuật toán thuộc cả học giám sát và học củng cố, đã phải chọn ra 1 nước
đi tối ưu trong số hơn 10761 nước đi Trong phần học giám sát, dữ liệu từ các ván cờ do con người chơi với nhau được đưa vào để huấn luyện Tuy nhiên, mục đích cuối cùngcủa AlphaGokhông phải là chơi như con người mà phải thậm chí thắng cả con người
Vì vậy, sau khi học xong các ván cờ của con người, AlphaGo tự chơi với chính nó vớihàng triệu ván chơi để tìm ra các nước đi mới tối ưu hơn
Hình 1 5 AlphaGo chiến thằng kì thủ cờ vây số 1 thế giới Lee Sedol (nguồn: Zing.vn)
Trang 121.1.2.3 Ứng dụng.
Nếu AI thể hiện mục tiêu của con người, thì Machine Learning sẽ là phương thứcđược kì vọng sẽ giúp con người hiện thực hoá được các mục tiêu đấy Hiện nay, Machine Learning được áp dụng vào nhiều lĩnh vực, giải quyết nhiều vấn đề Tuynhiên, có 2 mục tiêu mà Machine Learning tập trung giải quyết:
Làm cho máy tính có khả năng nhận thức cơ bản của con người như nghe, nhìn,hiểu được ngôn ngữ, giải toán, lập trình,
Hỗ trợ con người trong việc xử lý một khối lượng thông tin khổng lồ màchúng ta phải đối mặt hàng ngày, hay còn gọi là Big Data
Machine Learning ra đời đã làm giảm bớt những hạn chế vốn có của AI khi nómang lại cho máy tính khả năng có thể tìm ra mọi thứ mà không được lập trình rõràng
Ngày nay học máy đã chứng tỏ được sự hữu ích của mình qua vô vàn những ứng dụng tích cực Trong giới công nghiệp, từ các công ty lớn như Google, Facebook,Microsoft đến các công ty khởi nghiệp đều đầu tư vào Machine Learning Hàng loạtcác ứng dụng sử dụng Machine Learning ra đời trên mọi lĩnh vực của cuộc sống,
từ khoa học máy tính đến những ngành ít liên quan hơn như vật lý, hóa học, y học, chính trị AlphaGo, cỗ máy đánh cờ vây với khả năng tính toán trong một không gian
có số lượng phần tử còn nhiều hơn số lượng hạt trong vũ trụ, tối ưu hơn bất kì đại kìthủ nào, là một trong rất nhiều ví dụ hùng hồn cho sự vượt trội của Machine Learning
so với các phương pháp cổ điển
1.1.3 Deep Learning.
Deep Learning là một phương pháp học máy sâu hơn với các mạng neural nhiềutầng (neural network) có khả năng học và trích xuất các đặc trưng phức tạp từ dữ liệuđầu vào Có thể hiểu nôm na Deep Learning là một “kĩ thuật” của Machine Learning,
mà trong đó máy tự đào tạo chính nó Deep Learning đòi hỏi rất nhiều dữ liệu đầu vào
và sức mạnh tính toán hơn nhiều so với Machine Learning
Trang 13Machine Learning và Deep Learning đều là là các phương pháp của trí tuệ nhân tạo để máy tính “học hỏi” từ dữ liệu Để nói về sự khác biệt giữa MachineLearning và Deep Learning, thì đầu tiên ta có thể kể độ phức tạp của dữ liệu mà chúng
có thể xử lý Machine Learning thường được sử dụng để xử lý các dữ liệu có tính chấttuyến tính, trong khí đó Deep Learning có thể xử lý được các dữ liệu phức tạp hơn vớinhiều chiều, cấu trúc phức tạp hơn Machine Learning là phương pháp truyền thống sửdụng các thuật toán để tìm ra các mô hình hoặc quy tắc phổ biến trong dữ liệu, trongkhi Deep Learning sử dụng nhiều lớp thuật toán để học được các mức độ trừu tượng vàphức tạp hơn Deep Learning có thể tự động học các đặc trưng từ dữ liệu và có khảnăng xử lý dữ liệu có tính tương quan cao, nhưng cần nhiều dữ liệu hơn và thời gianhuấn luyện cũng lâu hơn so với Machine Learning truyền thống
Deep Learning đã có những đóng góp rất lớn đối với các lĩnh vực như xử lýngôn ngữ tự nhiên, thị giác máy tính, nhận dạng giọng nói, xử lý tín hiệu và nhiều lĩnhvực khác Trong các lĩnh vực như nhận dạng hình ảnh và video, Deep Learning đã đạtđược những thành tựu đáng kể Các mô hình Deep Learning như Convolutional NeuralNetworks (CNNs) đã được sử dụng để phát hiện và phân tích hình ảnh, từ việc pháthiện khuôn mặt và đối tượng trong hình ảnh đến việc phân tích tình trạng bệnh trên cácảnh y học Ngoài ra, Deep Learning cũng được ứng dụng trong các lĩnh vực như xử lýngôn ngữ tự nhiên, trong đó các mô hình như Recurrent Neural Networks (RNNs) vàLong Short-Term Memory (LSTM) được sử dụng để dịch máy, tạo ra các câu mô tả và
phân loại văn bản tự động Ứng dụng của Deep Learning không chỉ giúp cho các lĩnh vực trên đạt được kết quả tốt hơn, mà còn mang lại nhiều tiềm năng trong việc giải quyết các vấn đề phức tạp và cải thiện chất lượng cuộc sống của con người
1.1.4 Hàm mất mát.
Trong DL nói riêng và ML nói chung, khi xây dựng một mô hình để dự đoán,người ta luôn luôn quan tâm đến “ độ lỗi” của mô hình, hoặc có thể hiểu nôm n là độsai lệch giữa kết quả mà mô hình dự đoán (thường được kí hiệu là ^y) và kết quả thực tế(thường được kí hiệu là y), do đó Loss Function (hàm mất mát) đóng vai trò quantrọng trong việc đánh giá chất lượng mô hình Chúng giúp đo đạc khoảng cách giữakết quả dự đoán và giá trị thực tế, từ đó giúp cập nhật trọng số của mô hình để cảithiện hiệu suất Một cách đơn giản, ta có thể đo đạc độ sai lệch này bằng cách lấy hiệucủa y và ^y:
L(y , ^y)= y−^y
Trang 14Tuỳ vào từng loại mô hình thì sẽ có mỗi loss function riêng Dưới đây một số loss function thường được sử dụng trong Machine Learning và Deep Learning:
1.1.4.1 Mean Square Error.
Hàm mất mát Mean Square Error (MSE) là một trong những hàm mất mát được
sử dụng phổ biến và thường thấy nhất trong các bài toán hồi quy MSE được sử dụng
để tính toán sai số bình phương trung bình giữa giá trị dự đoán và giá trị thực tế MSEtính toán tổng bình phương sai số (squared error) và chia cho số lượng các điểm dữliệu để tính toán sai số trung bình Cụ thể công thức MSE được biểu diễn qua côngthức:
L(y , ^y)= 1
2 N‖y −^y‖
2 2
Hình 1 6 Đồ thị biểu diễn hàm Mean Square Error.
Từ công thức trên, ta có thể dễ dàng thấy MSE là một hàm lồi (convex function)
và có đạo hàm liên tục trên toàn miền giá trị, tức là nó có thể được tối ưu bằng cácphương pháp tối ưu hóa đạo hàm Tuy nhiên, trong thực tế, vì dữ liệu thường rất phức tạp nên người ta thường dùng phương pháp tối ưu bằng Gradient Descent để
có thể tối ưu được hàm mất mát MSE
1.1.4.2 Binay Cross-Entropy Loss.
Binay Cross-Entropy Loss là một hàm mất mát thường được sử dụng trong các bài toán phân loại nhị phân trong ML và DL Hàm mất mát này được sử dụng để tính toán khoảng cách giữa phân phối dự đoán và phân phối thực tế để đo lường mức
độ khác biệt giữa các lớp Trong các bài toán phân loại nhị phân sử dụng hàm BinaryCross-Entropy, các nhãn sẽ mang giá một trong hai giá trị là {0,1}
Trang 15Xét về mặt công thức toán học, nếu như MSE tính toán khoảng cách giữa 2 đại lượng số thì cross-entropy được hiểu nôm na là phương pháp tính khoảng cáchgiữa 2 phân bố xác suất.
Binary Cross-Entropy Loss được biểu diễn qua công thức dưới:
L(y , ^y)=− ¿ Trong bài toán Logistic Regression, bài toán sử dụng hàm này làm hàm mấtmát, thì công thức được biểu diễn lại như sau:
Hình 1 7 Sự biến thiên của hàm Binay Cross-Entropy Loss theo xác suất dự đoán.1.1.4.3 Hinge Loss.
Hinge loss là một hàm mất mát thường được sử dụng trong bài toán phân lớp Hàm mất mát này được sử dụng để đánh giá sự sai khác giữa dự đoán và kết quả thực tế của một thuật toán phân lớp
Hinge loss đo lường khoảng cách giữa giá trị dự đoán và giá trị thực tế của mộtmẫu dữ liệu, đồng thời xác định xem liệu mẫu đó được phân loại đúng hay sai Nếumẫu dữ liệu được phân loại đúng, hàm mất mát sẽ bằng 0, còn nếu mẫu dữ liệu bị phân
Trang 16loại sai, hàm mất mát sẽ tăng theo một giá trị số dương tương ứng với mức độ sai lệchcủa dự đoán Cụ thể, Hingle Loss được biểu diễn qua công thức:
L Hinge(y , ^y)=max (0 , 1− y ∙ ^y) Nếu mô hình phân loại đúng, nghĩa là tích của y ∙ ^y ≥ 1, nên Hingle Loss lúc này
sẽ bằng 0 Ngược lại, nếu mô hình phân loại sai, tích y ∙ ^y<1, nên Hingle Loss sẽ tăngtheo mức độ sai lệch của dự đoán Trong công thức của Hingle Loss, đơn vị “1” thểhiện các margin (lề)
Hình 1 8 Các giá trị của hàm hinge loss dựa trên nhãn.
Hinge loss thường được sử dụng trong các thuật toán phân loại nhị phân nhưSupport Vector Machine (SVM) Trên SVM sử dụng Hinge Loss để tối ưu hàm mụctiêu trong quá trình tìm ra siêu phẳng tốt nhất để phân chia hai lớp dữ liệu Hinge lossđược lựa chọn vì nó là một hàm mất mát đơn giản, tính toán nhanh chóng và cho kếtquả tốt trong nhiều trường hợp
1.1.4.4 Categorical Cross-Entropy Loss.
Categorical Entropy Loss là một hàm mất mát tương tự như Binay Entropy Loss Nếu Binay Cross-Entropy Loss sử dụng trong bài toán phân lớp nhịphân, thì Categorical Cross-Entropy Loss được sử dụng trong các bài toán phân loại đalớp (multiclass classification), khi mà mô hình cần phải dự đoán xác suất cho từng lớp
Trang 17Cross-Hàm mất mát này được sử dụng để đo lường sự khác biệt giữa phân phối xác suất dựđoán của mô hình và phân phối xác suất thực tế của các nhãn đầu ra.
Cụ thể, giả sử ta có một mẫu dữ liệu với nhãn là y và phân phối xác suất dự đoáncủa mô hình là ^y thì hàm Categorical Cross Entropy Loss được tính bằng công thức:
L(y , ^y)=−∑
i
N
( y ilog^y i) Trong đó, y là phân phối xác suất thực tế của các nhãn đầu ra, ^y là phân phối xác suất dự đoán của mô hình, y i và ^y i lần lượt là giá trị xác suất của nhãn i trong y và
^y Hàm log được sử dụng để đánh giá sự khác biệt giữa hai phân phối xác suất
Nếu nhãn y của mẫu dữ liệu là i, ta sẽ tính toán mất mát bằng cách lấy giá trị xác suất log của phân phối dự đoán tương ứng với nhãn i Tổng của các giá trị mấtmát này cho tất cả các lớp đầu ra sẽ được sử dụng để đánh giá chất lượng của mô hình phân loại
1.1.5 Thuật toán tối ưu hàm mất mát: Gradient Descent.
Trong một bài toán Deep Learning nói riêng và Machine Learning nói riêng,một trong những yêu cầu tiên quyết đó chính là làm cho hàm mất mát phải luôn đượctối thiểu nhất Ta gọi việc làm tối thiểu hàm mất mát là tối ưu hàm mất mát (Loss Function Optimization)
Để có thể tối ưu được hàm mất mát, ta phải sử dụng các thuật toán tối ưu,
và một trong những thuật toán cơ bản và thường được sử dụng nhất để tối ưu hàm mất mát chính là Gradient Descent
Gradient Descent (GD) là thuật toán tìm tối ưu chung cho các hàm số Ý tưởngchung của GD là điều chỉnh các tham số để lặp đi lặp lại thông qua mỗi dữ liệu huấn luyện để giảm thiểu hàm chi phí
Gradient Descent là một thuật toán tối ưu lặp (iterative optimization algorithm)được sử dụng trong các bài toán Machine Learning và Deep Learning (thường là các bài toán tối ưu lồi — Convex Optimization) với mục tiêu là tìm một tập các biến bắtđầu (internal parameters) cho việc tối ưu models Trong đó:
Gradient là tỷ lệ độ nghiêng của đường dốc (rate of inclination or declination
of a slope) Về mặt toán học, Gradient của một hàm số là đạo hàm của hàm số đó tương ứng với mỗi biến của hàm Đối với hàm số đơn biến, chúng ta sử dụng kháiniệm Derivative thay cho Gradient
Trang 18 Descent: là từ viết tắt của descending, nghĩa là giảm dần.
Gradient Descent có nhiều dạng khác nhau như Stochastic Gradient Descent(SGD), Batch and Mini-batch SDG, Nesterov accelerated gradient decent (NAG) Tuy nhiên, về cơ bản thì chúng đều được thực thi như sau:
Bước 1: Khởi tạo biến bắt đầu
Bước 2: Đánh giá model dựa vào biến bắt đầu và hàm mất mát (Loss Function)
Bước 3: Cập nhật các biến bắt đầu theo hướng tối ưu hàm mất mát (findingoptimal points)
Bước 4: Lặp lại bước 2 và bước 3 cho đến khi thoả mãn điều kiện dừng
Công thức cập nhật tham số trong GD có thể được viết dưới dạng:
θ n =θ n−1−η ∇ θ
Trong đó:
θ là các tham số cần được cập nhật
η là tốc độ học (learning rate)
∇ θ là Gradient của hàm mất mát theo tham số θ
Hình 1 9 Mô phỏng thuật toán Gradient Descent (nguồn: ibm.com).
Trang 19Trong Gradient Descent, tốc độ học và điểm khởi tạo đống yếu tố quan trọngtrong việc tăng độ chính xác cũng như giảm thời gian thực hiện thuật toán.
Trong công thức cập nhật tham số trong Gradient Descent, ta dễ dàng thấybước nhảy của Gradient Descent sẽ theo tỉ lệ của tốc độ học η Nếu ta cho tốc độ họcquá nhỏ, dẫn đến việc bước nhảy thuật toán Gradient Descent quá nhỏ, mất thời gian
để tìm được điểm tối ưu Nếu ta cho tốc độ học quá lớn, bước nhảy của GradientDescent từ đó cũng lớn theo, do đó thuật toán sẽ dao động quanh điểm tối ưu màkhông hội tụ Do đó, ta cần phải chọn bước nhảy hợp lí, để thuật toán có thể hội tụ tạiđiểm tối ưu mà mất ít thời gian nhất
Để giảm thời gian thực hiện thuật toán Gradient Descent, người ta thường sẽchọn điểm khởi tạo sao cho gần với điểm tối ưu nhất có thể Càng gần điểm tối ưu, sốlần lặp sẽ càng ít, dẫn đến việc thời gian thực hiện thuật toán cũng giảm xuống Dovậy,
việc lựa chọn điểm khởi tạo cho Gradient Descent cũng rất quan trọng để đạt đượckết quả nhanh
Hình 1 10 So sánh sự hội tụ của thuật toán Gradient Descent khi learning rate khác nhau.
Để tránh việc thuật toán Gradient Descent bị lặp vô hạn, ta phải thiết lập điều kiện dừng trước khi thực hiện thuật toán Trong thực nghiệm, có một vài phương pháp dưới đây:
Giới hạn số vòng lặp: đây là phương pháp phổ biến nhất và cũng để đảm bảorằng chương trình chạy không quá lâu Tuy nhiên, một nhược điểm của cách làm nàylà
có thể thuật toán dừng lại trước khi đủ gần với nghiệm
Trang 20 So sánh gradient của nghiệm tại hai lần cập nhật liên tiếp, khi nào giá trị này
đủ nhỏ thì dừng lại Phương pháp này cũng có một nhược điểm lớn là việc tính đạo hàm đôi khi trở nên quá phức tạp (ví dụ như khi có quá nhiều dữ liệu), nếu áp dụng phương pháp này thì coi như ta không được lợi khi sử dụng SGD và mini-batch GD
So sánh giá trị của hàm mất mát của nghiệm tại hai lần cập nhật liên tiếp, khinào giá trị này đủ nhỏ thì dừng lại Nhược điểm của phương pháp này là nếu tại một thời điểm, đồ thị hàm số có dạng bẳng phẳng tại một khu vực nhưng khu vực đókhông chứa điểm local minimum (khu vực này thường được gọi là saddle points), thuật toán cũng dừng lại trước khi đạt giá trị mong muốn
Trong SGD và mini-batch GD, cách thường dùng là so sánh nghiệm sau một vài lần cập nhật
1.1.6 Thị giác máy tính.
Thị giác máy tính được hiểu là khả năng thu nhận và phân tích dữ liệu trực quan,sau đó đưa ra những đánh giá, quyết định liên quan đến những thành phần được thunhận được của máy tính Từ định nghĩa này cho thấy, thị giác máy tính là quá trình xửlý
đồng thời các đối tượng khác nhau, không xử lý độc lập một đối tượng nào khác Máy móc ngày càng thông minh, nó không chỉ thay thế con người làm những công việc tính toán đơn giản đến khó khăn, mà nó còn có khả năng bắt chước độngvật và con người Một trong số những khả năng đó là nhận biết được thế giới qua
“mắt”
của nó Bằng việc kết hợp các mô hình khác như: máy học, mạng neural,… giúp cho chúng dần tiến tới một hệ thống nhân tạo có những quyết định linh hoạt và chính xáchơn
Hiểu đơn giản, thị giác máy tính là quá trình máy tính đọc, hiểu và tiếp thu nhữngthông tin từ hình ảnh
Thị giác bao gồm các lĩnh vực:
Xử lí hình ảnh: Phát triển các thuật toán xử lí ảnh như tăng/giảm chất lượngảnh, lọc nhiễu
Nhận diện mẫu: Giải thích các kỹ thuật khác nhau để phân loại mẫu
Quang trắc: Liên quan đến việc thu thập các số đo chính xác từ hình ảnh
Trang 21Hình 1 11 Ứng dụng thị giác máy tính trong xe tự hành (nguồn: vinbigdata.com).
1.1.7 Mạng thần kinh nhân tạo (Neural Network).
1.1.7.1 Tổng quan
Về mặt sinh học, neural là đơn vị cơ bản cấu tạo hệ thống thần kinh và
là một phần quan trọng nhất của não Não chúng ta gồm khoảng 10 triệu neural và mỗineural liên kết với 10.000 neural khác Ở mỗi neural có phần thân (soma) chứa nhân,các tín hiệu đầu vào qua sợi nhánh (dendrites) và các tín hiệu đầu ra qua sợi trục(axon) kết nối với các neural khác Hiểu đơn giản mỗi neural nhận dữ liệu đầu vào qua
sợi nhánh và truyền dữ liệu đầu ra qua sợi trục, đến các sợi nhánh của các neural khác.Mỗi neural nhận xung điện từ các neural khác qua sợi nhánh Nếu các xung điện này
đủ lớn để kích hoạt neural, thì tín hiệu này đi qua sợi trục đến các sợi nhánh của các neural khác Ở mỗi neural cần quyết định có kích hoạt neural đấy hay không
Hình 1 12 Mô hình thần kinh con người (nguồn: askabiologist.asu.edu).
Trang 22Giống như cái tên, mạng thần kinh nhân tạo (Neural Network) được lấy cảmhứng từ cách hoạt động của não bộ chúng ta Kết hợp với các kĩ thuật học sâu (DeepLearning), Neural Network đang trở thành một công cụ rất mạnh mẽ mang lại hiệu quả
Hình 1 13 Kiến trúc mạng thần kinh nhân tạo (nguồn: xenonstack.com).
Layer đầu tiên là input layer, các layer ở giữa gọi là hidden layer, layer cuối cùnggọi là output layer Một mạng neural network bắt buộc phải có input layer và output layer, các layer ẩn có thể có hoặc không
Các hình tròn trong layer gọi là node, hay còn gọi là các neural Những node nàyliên kết với tất cả các node trước đó và hệ số w riêng Mỗi node đều có 1 hệ số bias briêng và sau đó sẽ tính tổng các weight với input trước đó rồi áp dụng activationfunction để truyền tới các node của layer tiếp theo
Trang 231.1.7.3 Mạng CNN (Convolutional Neural Networks).
Với sự phát triển của phần cứng mạnh mẽ cho phép tính toán song song hàng tỉ phép tính, tạo tiền đề cho Mạng neural tích chập trở nên phổ biến và đóng vai trò quan trọng trong sự phát triển của trí tuệ nhân tạo nói chung và xử lý ảnhnói riêng Một trong các ứng dụng quan trọng của mạng neural tích chập đó là chophép các máy tính có khả năng “nhìn” và “phân tích”, nói 1 cách dễ hiểu, Convnets được sử dụng để nhận dạng hình ảnh bằng cách đưa nó qua nhiều layer vớimột bộ lọc tích chập để sau cùng có được một điểm số nhận dạng đối tượng
Vì vậy mà người ta cho rằng mạng CNN được lấy cảm hứng từ vỏ não thị giác
Mỗi khi chúng ta nhìn thấy một cái gì đó, một loạt các lớp tế bào thần kinh đượckích hoạt, và mỗi lớp thần kinh sẽ phát hiện một tập hợp các đặc trưng như đườngthẳng, cạnh, màu sắc,… của đối tượng Lớp thần kinh càng cao sẽ phát hiện các đặctrưng
Về kỹ thuật, mô hình CNN để training và kiểm tra, mỗi hình ảnh đầu vào
sẽ chuyển nó qua 1 loạt các lớp tích chập với các bộ lọc (Kernals), tổng hợp lại các lớpđược kết nối đầy đủ (Full Connected) và áp dụng hàm Softmax để phân loại đối tượng
có giá trị xác suất giữa 0 và 1 Hình dưới đây là toàn bộ luồng CNN để xử lý hình ảnhđầu vào và phân loại các đối tượng dựa trên giá trị