PHẦN MỞ ĐẦU 1. LÝ DO CHỌN ĐỀ TÀI − Deep Learning là một thuật toán được lấy ý tưởng từ hoạt động của não bộ, trong việc tiếp thu thông tin ở nhiều tầng biểu đạt khác nhau, từ cụ thể đến trừu tượng, nhằm giúp hiểu rõ hơn về nghĩa của dữ liệu. Deep Learning tập trung vào giải quyết các vấn đề liên quan đến mạng thần kinh nhân tạo, nhằm cải thiện các công nghệ như nhận diện giọng nói, tầm nhìn máy tính và xử lý ngôn ngữ tự nhiên. Deep Learning có nhiều ứng dụng thực tế, như điều khiển xe tự lái hoặc robot, nhận diện hình ảnh, phát hiện các loại bệnh hiếm gặp, hệ thống gợi ý trên các nền tảng như Facebook, Amazon, Netflix.
− Trong vài năm gần đây, object detection đã trở thành một đề tài rất hot trong lĩnh vực deep learning, nhờ khả năng ứng dụng cao, dữ liệu dễ chuẩn bị và kết quả ứng dụng đa dạng. Các thuật toán mới trong object detection như YOLO, SSD có tốc độ nhanh và độ chính xác cao, giúp thực hiện các tác vụ gần như real-time, thậm chí nhanh hơn cả con người mà không giảm đi độ chính xác. Các mô hình cũng nhẹ nhàng hơn, có thể hoạt động trên các thiết bị IoT để tạo ra các thiết bị thông minh. − Vì tính ứng dụng cao, dữ liệu dễ chuẩn bị và huấn luyện mô hình đơn giản, báo cáo này sẽ trình bày về thuật toán object detection state-of-the-art, đó chính là YOLO.
TÍNH CẤP THIẾT CỦA ĐỀ TÀI − Giảm ùn tắc giao thông: Kẹt xe giao thông là một vấn đề nghiêm trọng đối với các thành phố lớn và gây ảnh hưởng xấu đến sự di chuyển, thời gian và năng suất. Xây dựng hệ thống dự báo kẹt xe có thể giúp người điều hành giao thông và người dùng tìm lộ trình tối ưu, từ đó giảm ùn tắc và cải thiện hiệu quả giao thông. − Tăng an toàn giao thông: Kẹt xe có thể gây ra tai nạn giao thông và nguy hiểm cho người tham gia giao thông. Hệ thống dự báo kẹt xe sử dụng YOLO có thể giúp phát hiện và cảnh báo về tình huống giao thông nguy hiểm, từ đó giúp tăng cường an toàn giao thông và giảm nguy cơ xảy ra tai nạn.
10 − Tối ưu hóa quy trình quản lý giao thông: Hiểu và dự báo tình trạng kẹt xe là một yếu tố quan trọng trong việc xây dựng các biện pháp quản lý giao thông hiệu quả. Hệ thống dự báo kẹt xe có thể cung cấp thông tin và dữ liệu liên tục về tình trạng giao thông, giúp các cơ quan chức năng và nhà quản lý đưa ra quyết định và triển khai biện pháp phù hợp để giảm thiểu tình trạng kẹt xe. − Ứng dụng trong lĩnh vực Smart City: Xây dựng hệ thống dự báo kẹt xe sử dụng YOLO có thể tích hợp vào các hệ thống Smart City tổng thể. Thông tin về tình trạng kẹt xe có thể được sử dụng để cải thiện hệ thống giao thông, điều chỉnh đèn giao thông, cung cấp thông tin thời gian thực cho người dùng và cải thiện chất lượng cuộc sống trong thành phố.
− Với những lợi ích trên, xây dựng hệ thống dự báo kẹt xe sử dụng YOLO trở thành một đề tài có tính cấp thiết và tiềm năng ứng dụng cao trong thực tế. KẾT QUẢ DỰ KIẾN ĐẠT ĐƯỢC Dựa trên kết quả khảo sát hiện trạng, nhóm chúng em nhận thấy một ứng dụng dự báo kẹt xe cần có những yêu cầu sau đây: − Yêu cầu phi chức năng: Giao diện đơn giản, dễ sử dụng. Tốc độ phản hồi nhanh chóng. Hạn chế xuất hiện lỗi trên giao diện người dùng.
− Yêu cầu chức năng: Dự đoán tổng thể có độ chính xác cao ( >= 79 %). Lựa chọn, tìm kiếm vị trí dự đoán kẹt xe. Hiển thị map tổng thể, có thể hiện và ẩn camera để có thể chọn địa điểm dự đoán. TÌM HIỂU VỀ DEEP LEARNING − Học sâu (tiếng Anh: deep learning, còn gọi là học cấu trúc sâu) là một phần trong một nhánh rộng hơn các phương pháp học máy dựa trên mạng thần kinh nhân tạo kết hợp với việc học biểu diễn đặc trưng (representation learning).
Việc học này có thể có giám sát, nửa giám sát hoặc không giám sát [1],[8]. − Mạng thần kinh nhân tạo được lấy cảm hứng từ việc xử lý thông tin và các nút giao tiếp phân tán trong hệ sinh học. Nó có nhiều khác biệt so với não sinh học. Cụ thể, mạng thần kinh nhân tạo thường có tính tĩnh và mang tính biểu tượng, trong khi não bộ của hầu hết các sinh vật sống có tính động (linh hoạt) và analog.
− Học sâu thường được nhắc đến cùng với Dữ liệu lớn (Big Data) và Trí tuệ nhân tạo (AI). Đã có nhiều ứng dụng trong thực tế , đang phát triển mạnh theo sự phát triển của tốc độ máy tính đặc biệt là khả năng tính toán trên GPU và sự tăng nhanh của dữ liệu cùng với các framework (TensorFlow hay Pytorch) làm việc xây dựng model trở nên dễ dàng hơn. − Học sâu là một phần của một họ các phương pháp học máy rộng hơn dựa trên đại diện học của dữ liệu. Một quan sát (ví dụ như, một hình ảnh) có thể được biểu diễn bằng nhiều cách như một vector của các giá trị cường độ cho mỗi điểm ảnh, hoặc một cách trừu tượng hơn như là một tập hợp các cạnh, các khu vực hình dạng cụ thể, vv.
Một vài đại diện làm khiến việc học các nhiệm vụ dễ dàng hơn (ví dụ, nhận dạng khuôn mặt hoặc biểu hiện cảm xúc trên khuôn mặt) từ các ví dụ. Một trong những hứa hẹn của học sâu là thay thế các tính năng thủ công bằng các thuật toán hiệu quả đối với học không có giám sát hoặc nửa giám sát và tính năng phân cấp. − Nhiều kiến trúc học sâu khác nhau như mạng neuron sâu, mã mạng neuron tích chập sâu, mạng niềm tin sâu và mạng neuron tái phát đã được áp dụng cho các lĩnh vực như thị giác máy tính, tự động nhận dạng giọng nói, xử lý ngôn ngữ tự nhiên, nhận dạng âm thanh ngôn ngữ và tin sinh học, chúng đã được chứng minh là tạo ra các kết quả rất tốt đối với nhiều nhiệm vụ khác nhau. HOẠT ĐỘNG CỦA DEEP LEARNING − Deep Learning là một phương pháp của Machine Learning.
Mạng nơ-ron nhân tạo trong Deep Learning được xây dựng để mô phỏng khả năng tư duy của bộ não con người [9]. − Một mạng nơ-ron bao gồm nhiều lớp (layer) khác nhau, số lượng layer càng nhiều thì mạng sẽ càng “sâu”. Trong mỗi layer là các nút mạng (node) và được liên kết với những lớp liền kề khác. Mỗi kết nối giữa các node sẽ có một trọng số tương ứng, trọng số càng cao thì ảnh hưởng của kết nối này đến mạng nơ-ron càng lớn.
− Mỗi nơ-ron sẽ có một hàm kích hoạt, về cơ bản thì có nhiệm vụ “chuẩn hoá” đầu ra từ nơ-ron này. Dữ liệu được người dùng đưa vào mạng nơ-ron sẽ đi qua tất cả layer và trả về kết quả ở layer cuối cùng, gọi là output layer.1: Điểm khác nhau giữa Machine Learning và Deep Learning [6] − Trong quá trình huấn luyện mô hình mạng nơ-ron, các trọng số sẽ được thay đổi và nhiệm vụ của mô hình là tìm ra bộ giá trị của trọng số sao cho phán đoán là tốt nhất. − Các hệ thống Deep Learning yêu cầu phần cứng phải rất mạnh để có thể xử lý được lượng dữ liệu lớn và thực hiện các phép tính phức tạp. Nhiều mô hình Deep Learning có thể mất nhiều tuần, thậm chí nhiều tháng để triển khai trên những phần cứng tiên tiến nhất hiện nay.
ƯU VÀ NHƯỢC ĐIỂM CỦA DEEP LEARNING 1. Ưu điểm − Deep Learning là một bước ngoặt to lớn trong lĩnh vực trí tuệ nhân tạo, cho phép khác nhà khoa học dữ liệu xây dựng nhiều mô hình có độ chính xác rất cao trong lĩnh vực nhận dạng ảnh, xử lý ngôn ngữ tự nhiên, xử lý giọng nói,… Một số ưu điểm vượt trội của Deep Learning gồm có: Kiến trúc mạng nơ-ron linh hoạt, có thể dễ dàng thay đổi để phù hợp với nhiều vấn đề khác nhau. Có khả năng giải quyết nhiều bài toán phức tạp với độ chính xác rất cao. Tính tự động hoá cao, có khả năng tự điều chỉnh và tự tối ưu.
Có khả năng thực hiện tính toán song song, hiệu năng tốt, xử lý được lượng dữ liệu lớn. Nhược điểm − Bên cạnh những ưu điểm, mặt khác, hiện nay Deep Learning vẫn còn nhiều khó khăn và hạn chế, chẳng hạn như: Cần có khối lượng dữ liệu rất lớn để tận dụng tối đa khả năng của Deep Learning. Chi phí tính toán cao vì phải xử lý nhiều mô hình phức tạp. 1Chưa có nền tảng lý thuyết mạnh mẽ để lựa chọn các công cụ tối ưu cho Deep Learning.
KHÁI NIỆM VỀ CONVOLUTION NEURAL NETWORK − CNN được viết tắt của Convolutional Neural Network là một trong những mô hình Deep Learning cực kỳ tiên tiến, bởi chúng cho phép bạn xây dựng những hệ thống có độ chính xác cao và thông minh. Nhờ khả năng đó, CNN có rất nhiều ứng dụng, đặc biệt là những bài toán cần nhận dạng vật thể (object) trong ảnh. − CNN vô cùng quan trọng để tạo nên những hệ thống nhận diện thông minh với độ chính xác cao trong thời đại công nghệ ngày nay. Các lớp cơ bản của mạng CNN Convolution neural network gồm những lớp cơ bản sau: − Convolutional layer Đây chính là lớp đóng vai trò mấu chốt của CNN, khi layer này đảm nhiệm việc thực hiện mọi tính toán.
Stride, padding, filter map, feature map là những yếu tố quan trọng nhất của convolutional layer. Cơ chế của CNN là tạo ra các filter áp dụng vào từng vùng hình ảnh. Các filter map này được gọi là ma trận 3 chiều, bên trong chứa các parameter dưới dạng những con số. Stride là sự dịch chuyển filter map theo pixel dựa trên giá trị từ trái sang phải.
Padding: Là các giá trị 0 được thêm cùng lớp input. Feature map: Sau mỗi lần quét, một quá trình tính toán sẽ được thực hiện. Feature map sẽ thể hiện kết quả sau mỗi lần filter map quét qua input. − Relu layer Còn có tên gọi khác là activation function, đây là một hàm được kích hoạt trong neural network.
Nó có tác dụng mô phỏng các neuron có tỷ lệ truyền xung qua axon. Trong activation function chúng còn có hàm nghĩa là: Relu, Tanh, Sigmoid, Maxout, Leaky,… Relu layer được ứng dụng phổ biến trong việc huấn luyện nơ-ron do sở hữu nhiều ưu điểm tiên tiến.