Nghiên cứu mô hình CNN và xây dựng phần mềm phân loại hình ảnh vẽ tay sử dụng framework Pandas, CVpython.Đây là một dự án khá hay cho các bạn mới tìm hiểu về trí tuệ nhân tạo. Dựa trên trò chơi Quick Draw của Google
Trang 1MỤC LỤC
DANH MỤC BẢNG BIỂU iv
DANH MỤC HÌNH ẢNH v
BẢNG CHÚ GIẢI CÁC CHỮ VIẾT TẮT vi
LỜI MỞ ĐẦU vii
Ý TƯỞNG vii
MỤC TIÊU NGHIÊN CỨU vii
ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU vii
Đối tượng nghiên cứu vii
Phạm vi nghiên cứu viii
PHƯƠNG PHÁP NGHIÊN CỨU viii
CẤU TRÚC CỦA ĐỀ TÀI viii
CHƯƠNG 1 MACHINE LEARNING VÀ BÀI TOÁN PHÂN LOẠI HÌNH ẢNH 1
1.1 Học máy 1
1.1.1 Trí tuệ nhân tạo 1
1.1.2 Học máy là gì 2
1.1.3 Một số ví dụ 3
1.2 Phân loại các thuật toán học máy 3
1.2.1 Phân loại theo phương thức học 3
1.2.2 Phân loại dựa trên nhóm chức năng 8
1.3 Mạng nơron nhân tạo 11
1.3.1 Giới thiệu mạng nơron 11
1.3.2 Cấu tạo và quá trình xử lý của một nơron sinh học 11
1.3.3 Cấu tạo và quá trình xử lý của một nơron nhân tạo 12
1.3.4 Các mô hình hàm kích hoạt của mạng nơron nhân tạo 14
1.3.5 Mô hình mạng nơron 17
1.3.6 Một số kiểu mạng nơron 19
i
Trang 21.3.7 Thuật toán lan truyền ngược 20
1.4 Tổng quan về bài toán nhận dạng ảnh 21
1.5 Các hướng tiếp cận phân loại ảnh 22
1.5.1 Phương pháp học máy truyền thống 22
1.5.2 Phương pháp học sâu 23
1.6 Tổng quan về Deep learning 24
CHƯƠNG 2 KIẾN TRÚC MẠNG NƠRON TÍCH CHẬP 25
2.1 Lịch sử hình thành và phát triển của Computer vision và mạng thần kinh chuyển đổi CNN 25
2.1.1 Thị giác máy tính (Computer vision) 25
2.1.2 Mạng thần kinh chuyển đổi CNN 25
2.2 Sự khác biệt của thị giác máy tính (computer vision) và xử lý ảnh (image processing) 26
2.3 Deep learning và kỹ thuật hình ảnh số 26
2.3.1 Tích chập (Convolution) là gì? 28
2.3.2 Cấu trúc mạng CNN 29
2.3.3 Các siêu tham số của bộ lọc 38
2.3.4 Đánh giá độ phức tạp của mô hình 39
2.4 Một số bài toán phổ biến 41
2.4.1 Phát hiện vật thế (Object detection) 41
2.4.2 Nhận diện và dự đoán 42
2.5 Những kiến thức sử dụng Computational tricks 42
CHƯƠNG 3 XÂY DỰNG CHƯƠNG TRÌNH THỰC NGHIỆM 43
3.1 Thư viện hỗ trợ 43
3.2 Dữ liệu và chương trình 44
3.2.1 Dữ liệu 44
3.2.2 Mô hình thực nghiệm 44
3.3 Kết quả thực nghiệm 49
Trang 33.4 Xây dựng ứng dụng phân loại hình ảnh 51 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 59 TÀI LIỆU THAM KHẢO 60
iii
Trang 4DANH MỤC BẢNG BIỂU
Bảng 2.1 Giải thích hàm Softmax
Bảng 2.2 Cách tính các tham số của mạng nơron tích chập
Trang 5DANH MỤC HÌNH ẢNH
Hình 1.1 Tóm tắt quá trình phát triển của trí tuệ nhân tạo 1
Hình 1.2 Cấu trúc neuron sinh học 12
Hình 1.3 Cấu trúc của một nơron nhân tạo 12
Hình 1.4 Mô tả đơn giản mạng nơron nhân tạo 13
Hình 1.5 Thiên lệch được thêm vào trong thực tế 13
Hình 1.6 Đồ thị hàm Sigmoid 14
Hình 1.7 Đồ thị hàm tanh 15
Hình 1.8 Đồ thị hàm tuyến tính 16
Hình 1.9 Đồ thị hàm ReLU 17
Hình 1.10 Mô hình mạng nơron truyền thẳng 19
Hình 1.11 Mô hình mạng nơron hồi quy 20
Hình 2.1 Mạng thần kinh chuyển đổi CNN 27
Hình 2.2 Tích chập (convolution) 28
Hình 2.3 Convolution Layer 30
Hình 2.4 ReLU layer (Rectified Linear Unit) 31
Hình 2.5 Pooling layer 34
Hình 2.6 Đồ thị hàm ReLU 36
Hình 2.7 Trực quan hoá mô hình CNN 41
Hình 3.1 Trực quan hoá các lớp được sử dụng trong mô hình phân loại hình ảnh 48
Hình 3.2 Đồ thị model Loss 50
Hình 3.3 Đồ thị model Accuracy 51
Hình 3.4 Demo ứng dụng 58
v
Trang 6BẢNG CHÚ GIẢI CÁC CHỮ VIẾT TẮT
1 AI Artificial Intelligence Trí tuệ nhân tạo
2 ANN Artificial Neural Networks Mạng thần kinh nhân tạo
3 SVM Support Vector Machine Máy véctơ hỗ trợ
4 CNN Convolutional Neural Network Mạng nơron tích chập
6 RNN Recurrent Neural Network Mạng thần kinh hồi quy
Trang 7LỜI MỞ ĐẦU
Ý TƯỞNG
Bài toán phân loại ảnh là một vấn đề quan trọng trong lĩnh vực thị giác máy tính(computer vision), được thiết kế để phân biệt và xác định lớp của các ảnh đã được phânloại trước đó Với vai trò là một trong những bài toán cốt lõi của lĩnh vực trí tuệ nhântạo và thị giác máy tính, phân loại ảnh có nhiều ứng dụng rộng rãi trong thực tiễn Vìvậy, việc hiểu và áp dụng kỹ thuật xử lý bài toán này là cần thiết và quan trọng trongnghiên cứu
Các ứng dụng của phân loại ảnh đa dạng, bao gồm phân loại ảnh viễn thám hoặc
vệ tinh, phân loại biển báo giao thông và nhận dạng biển báo trong các phần mềmthông báo trên xe hơi, và phân loại ảnh y tế Tất cả đều là bài toán với đầu vào là mộtảnh và đầu ra là lớp của ảnh trong một danh mục đã được xác định trước
Việc phân loại ảnh hiện nay thu hút được nhiều sự quan tâm trong lĩnh vực côngnghệ thông tin Việc nghiên cứu đề tài khoa học này sẽ giúp chúng ta hiểu thêm về kiếnthức và kinh nghiệm trong lĩnh vực trí tuệ nhân tạo, từ đó phát triển các kỹ năng cầnthiết để phục vụ cho công việc trong tương lai Chính vì vậy, nhóm chúng em đã chọn
đề tài này để thực hiện
MỤC TIÊU NGHIÊN CỨU
- Nghiên cứu về kỹ thuật deep learning, bao gồm nguyên lý và thủ tục xây dựng
mô hình học máy, nhằm ứng dụng giải quyết bài toán phân loại và nhận dạng ảnh
- Nghiên cứu về mạng neural nhân tạo (ANN) là cơ sở của kỹ thuật deep learning.
- Nghiên cứu về mạng neural tích chập (CNN) là cơ sở để xây dựng mô hình deep
learning cho bài toán phân loại ảnh
- Thực hiện cài đặt chương trình học máy deep learning để phân loại và nhận
dạng ảnh được vẽ tay
ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU
Đối tượng nghiên cứu
Nghiên cứu lý thuyết tập trung vào các mạng neural nhân tạo (ANN), mạngneural tích chập (CNN), và mô hình deep learning trong việc phân loại và nhận dạngảnh
Trong khi đó, đối tượng nghiên cứu thực tiễn là mô hình deep learning được ápdụng cho việc phân loại và nhận dạng ảnh vẽ tay
vii
Trang 8PHƯƠNG PHÁP NGHIÊN CỨU
- Phương pháp nghiên cứu lý thuyết và phương pháp thực nghiệm
- Dựa trên các tài liệu thu thập từ nhiều nguồn tổng hợp, phân tích và trình bày lạitheo sự hiểu biết của bản thân
- Thử nghiệm để đánh giá mô hình
CẤU TRÚC CỦA ĐỀ TÀI
Bài báo cáo gồm 3 chương gồm
Chương 1: Giới thiệu tổng quan về học máy, bài toán phân loại ảnh, mạngneural và cơ chế lan truyền ngược Giới thiệu một số kiểu mạng neural
Chương 2: Trình bày về mạng neural tích chập, so sánh giữa thị giác máy tính
và phân loại ảnh, và giới thiệu một số bài toán phổ biến liên quan
Chương 3: Áp dụng mạng neural tích chập vào thực tiễn Trình bày kết quả thực
tế của việc áp dụng vào bài toán phân loại ảnh vẽ tay
Trang 9CHƯƠNG 1 MACHINE LEARNING VÀ BÀI TOÁN PHÂN
LOẠI HÌNH ẢNH 1.1 Học máy
1.1.1 Trí tuệ nhân tạo
Trí tuệ nhân tạo (Artificial Intelligence - AI) là một lĩnh vực trong khoa học máytính và công nghệ thông tin liên quan đến việc phát triển các hệ thống máy tính có khảnăng tự học, tự động hóa các nhiệm vụ và thực hiện các tác vụ thông minh như conngười Mục tiêu của trí tuệ nhân tạo là xây dựng các hệ thống máy tính có khả năng
"suy nghĩ" và "hành động" giống như con người
Để đạt được mục tiêu này, trí tuệ nhân tạo sử dụng nhiều phương pháp và kỹthuật khác nhau, bao gồm học máy (machine learning), xử lý ngôn ngữ tự nhiên(natural language processing), thị giác máy tính (computer vision), robotics, học sâu(deep learning), và học tăng cường (reinforcement learning)
Trí tuệ nhân tạo là một lĩnh vực khoa học máy tính và công nghệ thông tin, đượcphát triển trong hơn nửa thế kỷ qua Một số giai đoạn chính trong lịch sử phát triển củatrí tuệ nhân tạo:
- Những năm 1940 và 1950: Trong giai đoạn này, các nhà khoa học máy tính đầutiên đã bắt đầu nghiên cứu về trí tuệ nhân tạo và các hệ thống thông minh Nhữngngười tiên phong trong lĩnh vực này bao gồm John McCarthy, Marvin Minsky, ClaudeShannon, Norbert Wiener và Alan Turing
- Những năm 1960 và 1970: Trong giai đoạn này, các nhà khoa học tiếp tụcnghiên cứu và phát triển các hệ thống AI và các phương pháp học máy mới Điển hình
là các công trình của John McCarthy, Marvin Minsky, Seymour Papert và David Marr
- Những năm 1980 và 1990: Trong giai đoạn này, AI đã được áp dụng rộng rãi
trong các ứng dụng thực tế, bao gồm xử lý ngôn ngữ tự nhiên, thị giác máy tính và hệthống chuyên gia Trong giai đoạn này, các phương pháp học máy và mạng nơ-ronnhân tạo được phát triển mạnh mẽ
- Những năm 2000 đến nay: Trong giai đoạn này, các công nghệ AI tiếp tục pháttriển nhanh chóng, đặc biệt là các phương pháp học sâu và học tăng cường Các ứngdụng của AI bao gồm xe tự lái, hệ thống nhận diện giọng nói, hệ thống trợ lý ảo và cácứng dụng trong lĩnh vực y tế và tài chính
1
Hình 1.1 Tóm tắt quá trình phát triển của trí tuệ nhân tạo
Trang 10Trong suốt quá trình phát triển, trí tuệ nhân tạo đã gặp phải nhiều thách thức vàkhó khăn, nhưng nó đã và đang tiếp tục phát triển và trở thành một phần quan trọng củacuộc cách mạng công nghệ hiện đại.
1.1.2 Học máy là gì
Trong thời gian gần đây, trí tuệ nhân tạo (AI - Artificial Intelligence) và đặc biệt
là học máy (ML - Machine Learning) đã trở thành bằng chứng cho sự phát triển mạnh
mẽ trong cách mạng công nghiệp lần thứ tư, tiếp theo sau động cơ hơi nước, nănglượng điện và công nghệ thông tin Trí tuệ nhân tạo đang được tích hợp trong mọi lĩnhvực cuộc sống, ví dụ như hệ thống xe tự lái của Google và Tesla, hệ thống gợi ý sảnphẩm của Amazon, trợ lý ảo Siri của Apple và nhiều ứng dụng khác của AI / ML Tuynhiên, hiện vẫn chưa có định nghĩa chính thức nào cho học máy Ngay cả các chuyêngia vẫn còn đang tranh cãi giữa "học máy" và "máy học" nhưng đa phần khi tìm tài liệutrên mạng, chúng ta sẽ thấy định nghĩa về học máy như thế này:
Theo Tom Mitchell: "Một chương trình máy tính học hỏi từ dữ liệu, cải thiện độchính xác của tác vụ đo lường P, nếu các chỉ số đo lường P cải thiện qua thời gian"
Với Arthur Samuel: "Học máy là lĩnh vực nghiên cứu giúp máy tính tự động họchỏi mà không cần phải được lập trình cụ thể"
Còn với Ethem Alpaydin: "Học máy là một tập hợp các kỹ thuật để giúp máytính tìm hiểu các mối quan hệ ẩn trong dữ liệu bằng cách sử dụng các mô hình toánhọc"
Và theo Michael Jordan: "Học máy là nghiên cứu cách mà máy tính có thể họchỏi để thực hiện một nhiệm vụ cụ thể, không phải bằng cách lập trình tường minh, màbằng cách tìm kiếm cấu trúc trong các tập dữ liệu đại diện cho nhiệm vụ này
Một ý tưởng cơ bản của các quy trình học máy là tạo ra một mô hình dựa trênmột số thuật toán để thực hiện các nhiệm vụ cụ thể như phân loại, phân lớp, hồi quy, Quá trình huấn luyện được thực hiện bằng cách sử dụng dữ liệu đầu vào và mô hìnhđược xây dựng để dự đoán kết quả đầu ra Kết quả này phụ thuộc vào mục tiêu ban đầu
và các điều kiện thực hiện
1.1.3 Một số ví dụ
Gmail của Google hiện đã tích hợp tính năng trả lời thông minh khi gửi và nhậnthư, đề xuất các câu trả lời ngắn gọn cho các email dựa trên nội dung của chúng Tùychọn soạn thư thông minh cung cấp cho người dùng các đề xuất như lời chào, lời kếtthúc hoặc các câu hoàn chỉnh khác để giúp tiết kiệm thời gian khi nhập email
Trang 11Tại Netflix, học máy được sử dụng liên tục để đưa ra các đề xuất và cá nhân hóacho người dùng Nó được áp dụng trong nhiều lĩnh vực, bao gồm quảng cáo nội dung,
mô hình hóa giá cả, phân phối nội dung và tiếp thị Hầu hết nền tảng hoạt động trêncông cụ đề xuất, trong đó mạng neuron là một phần quan trọng để đưa ra các đề xuất vàtạo ra các nhóm vị giác
Học máy cũng là một phần cơ bản của công nghệ Uber, được sử dụng để ướctính thời gian và xác định vị trí của taxi và khách hàng Thuật toán được sử dụng đểphân tích dữ liệu từ các chuyến đi trước đó và tùy chỉnh theo tình hình hiện tại.UberEATS cũng sử dụng học máy để ước tính thời gian giao hàng bằng cách tính toáncác yếu tố khác nhau như thời gian chuẩn bị thức ăn
Siri và Cortana sử dụng hệ thống nhận dạng giọng nói hoàn toàn dựa trên họcmáy, với mạng neural sâu là một phần của hệ thống này Họ được đào tạo để bắt chướctương tác của con người và hiểu cấu trúc và ngữ pháp của ngôn ngữ Với các tiếng lóngnổi tiếng, các ứng dụng này có thể tự động kích hoạt với một số phản hồi được ghitrước từ hệ thống
Cách mà Spotify sử dụng máy tính tương tự như Netflix Mỗi tuần, Spotify cậpnhật một danh sách khoảng 30 bài hát mà bạn nên nghe Danh sách đó sẽ được tạo trựctiếp và gửi đến người dùng Tất cả các bài hát trong danh sách này được chọn bằng cácthuật toán máy tính phân tích hoạt động và sở thích âm nhạc của bạn dựa trên nhữngbài hát bạn đã nghe trước đó
1.2 Phân loại các thuật toán học máy
1.2.1 Phân loại theo phương thức học
Các thuật toán machine learning được phân loại thành 4 nhóm theo phương thứchọc, bao gồm:
- Học có giám sát (Supervised learning)
- Học không giám sát (Unsupervised learning)
Trong học có giám sát, chúng ta có một tập dữ liệu huấn luyện gồm các cặp (đầuvào, đầu ra) đã được gán nhãn Nhiệm vụ của mô hình máy học là học từ dữ liệu này để
3
Trang 12tạo ra một hàm ánh xạ từ đầu vào sang đầu ra Quá trình này được thực hiện thông quaviệc tối ưu hóa một hàm mất mát (loss function) để đưa ra các dự đoán chính xác nhất
về đầu ra của dữ liệu mới
Ví dụ, trong bài toán phân loại hình ảnh, chúng ta có một tập dữ liệu huấn luyệngồm các hình ảnh đã được gán nhãn theo từng lớp Nhiệm vụ của mô hình máy học làhọc từ tập dữ liệu này để phân loại các hình ảnh mới vào các lớp tương ứng Quá trìnhnày được thực hiện bằng cách sử dụng các mô hình máy học như mạng neural tích chập(CNN) và tối ưu hóa hàm mất mát để đưa ra các dự đoán chính xác nhất về lớp của cáchình ảnh mới
Các thuật toán học có giám sát thường được chia thành hai loại chính là phânlớp và hồi quy
Bài toán phân lớp được xem là phân lớp nếu nhãn của dữ liệu đầu vào được chia
thành một số hữu hạn lớp (miền giá trị là rời rạc), ví dụ như phân loại email là spamhay không, hoặc phân loại hình ảnh là chó hay mèo Bài toán nhận dạng ký số viết taycũng là bài toán phân lớp, với mười lớp tương ứng với các số từ 0 đến 9 Tương tự, bàitoán nhận dạng khuôn mặt với hai lớp phải và không phải khuôn mặt cũng là bài toánphân lớp
Bài toán hồi quy được xem là hồi quy nếu nhãn không được chia thành các
nhóm mà là một giá trị thực cụ thể (miền giá trị là liên tục), ví dụ như dự đoán giá nhàhay giá cổ phiếu dựa trên diện tích, số phòng và khoảng cách đến trung tâm thành phố.Kết quả dự đoán sẽ là một giá trị số thực
Một số thuật toán nổi tiếng thuộc về nhóm học có giám sát như:
- Phân lớp: k-Nearest Neighbors, mạng nơron nhân tạo, SVM, …
- Hồi quy: Linear Regression, Logistic Regression, …
Ưu điểm của học có giám sát:
- Hiệu suất tốt: Với tập dữ liệu đầy đủ và đúng, học giám sát có thể cung cấp kếtquả tốt nhất cho các tác vụ phân loại, dự đoán và hồi quy
- Dễ triển khai: Học giám sát có thể triển khai một cách dễ dàng với các thư việnphổ biến như Scikit-learn, TensorFlow, PyTorch,
- Dễ hiểu và giải thích: Khi mô hình đã được huấn luyện, nó có thể được giảithích một cách đơn giản cho các chuyên gia trong lĩnh vực liên quan
Nhược điểm của học có giám sát:
Trang 13- Phụ thuộc vào tập dữ liệu: Học giám sát phụ thuộc rất nhiều vào chất lượng củatập dữ liệu huấn luyện Nếu tập dữ liệu không đầy đủ hoặc có nhiễu, kết quả huấnluyện và kiểm tra của mô hình có thể không tốt.
- Yêu cầu nhiều dữ liệu huấn luyện: Học giám sát yêu cầu tập dữ liệu huấn luyện
đủ lớn để mô hình có thể học được các mẫu và đặc trưng của dữ liệu Nếu tập dữ liệuhuấn luyện quá nhỏ, mô hình có thể bị quá khớp (overfitting) hoặc không đủ mạnh để
dự đoán kết quả cho dữ liệu mới
Các bài toán học không giám sát có thể được chia thành hai loại: phân nhóm(Clustering) và kết hợp (Association)
Phân nhóm: là bài toán phân chia toàn bộ dữ liệu X thành các nhóm con dựatrên sự tương đồng giữa các dữ liệu trong mỗi nhóm Ví dụ: phân nhóm khách hàngdựa trên hành vi mua hàng Tương tự như việc đưa cho một đứa trẻ rất nhiều mảnhghép với các hình thù và màu sắc khác nhau, và yêu cầu trẻ phân chúng thành từngnhóm Mặc dù trẻ không biết mảnh nào tương ứng với hình nào hoặc màu nào, nhưng
có thể phân loại các mảnh ghép theo màu hoặc hình dạng
Kết hợp: là bài toán khi muốn khám phá ra một quy luật dựa trên nhiều dữ liệucho trước Ví dụ: khách hàng nam mua quần áo thường cũng mua thêm đồng hồ hoặcthắt lưng; khán giả xem phim Spider Man thường cũng xem thêm phim Bat Man Dựatrên đó, tạo ra một hệ thống gợi ý khách hàng (Recommendation System), thúc đẩy nhucầu mua sắm
Ưu điểm của học không giám sát:
- Không yêu cầu dữ liệu được gắn nhãn: Học không giám sát không yêu cầu tập
dữ liệu được gắn nhãn, do đó, nó có thể áp dụng cho các tác vụ mà không có sẵn tập dữliệu huấn luyện được gắn nhãn hoặc đòi hỏi chi phí thu thập dữ liệu cao
- Tự động hóa quá trình học: Học không giám sát có thể tự động tìm ra các mẫu
và đặc trưng của dữ liệu, giúp giảm thiểu sự can thiệp của con người trong quá trìnhhọc
5
Trang 14- Khả năng khám phá: Học không giám sát có thể khám phá các mẫu mới hoặcbất thường trong dữ liệu mà không cần biết trước các thông tin về chúng.
Nhược điểm của học không giám sát:
- Khó đánh giá kết quả: Học không giám sát không có đầu ra dự đoán cụ thể, do
đó, khó đánh giá kết quả của mô hình
- Mất thời gian và tài nguyên tính toán cao: Học không giám sát có thể yêu cầunhiều thời gian và tài nguyên tính toán để tìm ra các mẫu và đặc trưng của dữ liệu
- Không thể sử dụng cho các tác vụ cụ thể: Học không giám sát thường khôngphù hợp cho các tác vụ cụ thể như phân loại hoặc dự đoán cụ thể
- Chi phí huấn luyện cao: Một số thuật toán học giám sát có thể yêu cầu nhiều tàinguyên tính toán và thời gian để huấn luyện mô hình, đặc biệt là khi sử dụng các mạngneuron sâu (deep learning)
- Không thể áp dụng cho các tác vụ khác: Một mô hình học giám sát được huấnluyện cho một tác vụ cụ thể, không thể được áp dụng cho các tác vụ khác mà không có
sự điều chỉnh phù hợp
1.2.1.3 Học bám sát
Học bán giám sát là một lớp thuật toán trong lĩnh vực trí tuệ nhân tạo và máyhọc, nằm giữa hai hình thức học chính: học giám sát và học không giám sát Trong họcbán giám sát, một phần dữ liệu được gán nhãn (labeled data) và một phần còn lại khôngđược gán nhãn (unlabeled data) Mô hình học bán giám sát được huấn luyện để học từ
cả hai loại dữ liệu này
Ưu điểm của học bám sát:
- Hiệu quả cao: Học bám sát là một phương pháp học có hiệu quả cao trong việc
dự đoán và phân loại dữ liệu, đặc biệt là trong các bài toán phân loại
- Dễ dàng triển khai: Học bám sát có thể triển khai dễ dàng trong thực tế, vì nócung cấp các kết quả dự đoán chính xác và đáng tin cậy
- Có khả năng giải thích kết quả: Học bám sát cho phép giải thích được cách mà
mô hình đưa ra các kết quả dự đoán, do đó cho phép người sử dụng hiểu được cách mà
mô hình hoạt động và có thể điều chỉnh nếu cần thiết
Nhược điểm của học bám sát:
- Đòi hỏi nhiều dữ liệu huấn luyện: Học bám sát đòi hỏi nhiều dữ liệu huấn luyện
để mô hình đạt hiệu quả cao, do đó việc thu thập và xử lý dữ liệu là một thách thức
Trang 15- Dễ bị overfitting: Trong quá trình huấn luyện, mô hình có thể bị overfitting (quákhớp) nếu không có các biện pháp kiểm soát và giám sát.
- Không thể áp dụng cho các tác vụ không có dữ liệu huấn luyện: Học bám sátkhông thể áp dụng cho các tác vụ không có dữ liệu huấn luyện, do đó không phù hợpcho các bài toán mới hoặc không có sẵn dữ liệu huấn luyện
1.2.1.4 Học tăng cường
Học tăng cường là một lớp thuật toán trong lĩnh vực trí tuệ nhân tạo và máy học,
có thể được sử dụng để giải quyết các vấn đề tối ưu hóa trong các tác vụ tương tác liênquan đến môi trường Mục đích của học tăng cường là tìm cách để chương trình máytính có thể học cách tương tác với môi trường, tìm cách tối đa hoá lợi ích trong tươngtác đó
Mô hình học tăng cường thường được biểu diễn bởi một hệ thống bao gồm mộttác nhân (agent) và môi trường Tác nhân là một chương trình máy tính có thể tươngtác với môi trường, có thể đưa ra các hành động và nhận lại các phản hồi từ môitrường Mục tiêu của tác nhân là tìm cách để tối đa hoá lợi ích trong tương tác đó
Ưu điểm của học tăng cường:
- Tính tương tác cao: Học tăng cường có tính tương tác cao với môi trường, nó cóthể học và thích nghi với môi trường và tối ưu hóa kết quả
- Khả năng học theo thời gian thực: Học tăng cường có thể học trong thời gianthực, tức là học khi mô hình đang tương tác với môi trường, giúp cho quá trình họcđược nhanh chóng và hiệu quả hơn
- Tính linh hoạt cao: Học tăng cường có tính linh hoạt cao, có thể được áp dụngcho nhiều lĩnh vực khác nhau, từ các ứng dụng trò chơi đến các ứng dụng thực tiễn như
tự lái ô tô
Nhược điểm của học tăng cường:
- Đòi hỏi nhiều tài nguyên tính toán: Học tăng cường yêu cầu nhiều tài nguyêntính toán, do đó có thể gây ra chi phí đáng kể
- Không có sự đảm bảo về kết quả: Học tăng cường không đảm bảo rằng các hànhđộng của mô hình sẽ dẫn đến kết quả tốt nhất trong môi trường, do đó cần phải có cácchiến lược kiểm soát và giám sát
- Khó khăn trong việc thiết kế hệ thống phản hồi: Học tăng cường yêu cầu việcthiết kế hệ thống phản hồi phức tạp để giám sát và điều khiển hành động của mô hình
7
Trang 161.2.2 Phân loại dựa trên nhóm chức năng
1.2.2.1 Các thuật toán hồi quy
Hồi quy là quá trình nghiên cứu mối liên hệ giữa một biến phụ thuộc (hay còngọi là biến được giải thích, biến được dự báo, biến hồi quy, biến phản ứng hoặc biếnnội sinh) và một hoặc nhiều biến độc lập (hay còn gọi là biến giải thích, biến dự báo,biến hồi quy, biến tác nhân hoặc biến kiểm soát, biến ngoại sinh) Mục đích của quátrình này là để dự đoán hoặc ước tính giá trị kỳ vọng của biến phụ thuộc khi biết giá trịcủa biến độc lập
Ví dụ, để dự đoán mức tăng của lượng tiền gửi khi lãi suất tiền gửi tăng thêm0,1%, ngân hàng A cần phân tích mối liên hệ giữa lượng tiền gửi và lãi suất tiền gửi.Trong trường hợp này, lượng tiền gửi là biến phụ thuộc và lãi suất tiền gửi là biến độclập.Các thuật toán hồi quy phổ biến nhất:
Linear Regression: là một trong những thuật toán đơn giản nhất và phổ biến nhấttrong học máy Nó tìm ra một mô hình tuyến tính giữa biến đầu vào và biến đầu ra Vídụ: Dự đoán giá nhà dựa trên các yếu tố như diện tích, vị trí, và tiện ích xung quanh
Polynomial Regression: là một dạng mở rộng của Linear Regression bằng cáchthêm các biến bậc cao hơn để mô hình quan hệ không tuyến tính giữa biến đầu vào vàbiến đầu ra Ví dụ: Dự đoán sản lượng cây trồng dựa trên nhiệt độ, độ ẩm, thời giantrồng và một số biến liên quan khác
Decision Tree Regression: tạo ra một cây quyết định để dự đoán giá trị của biếnđầu ra dựa trên quan hệ giữa các biến đầu vào Ví dụ: Dự đoán giá trị của một căn hộdựa trên khu vực, diện tích, số phòng ngủ và các yếu tố liên quan khác
Random Forest Regression: là một tập hợp các Decision Trees được tạo ra mộtcách ngẫu nhiên để dự đoán giá trị của biến đầu ra Ví dụ: Dự đoán giá trị của mộtchiếc xe hơi dựa trên hãng sản xuất, năm sản xuất, tình trạng xe, số lần sửa chữa và cácyếu tố liên quan khác
Support Vector Regression: dựa trên phân tích toán học và tối ưu hóa để xácđịnh một đường biên tối ưu nhất để dự đoán giá trị của biến đầu ra Ví dụ: Dự đoánlượng khí thải của một xe hơi dựa trên các thông số kỹ thuật của động cơ
1.2.2.2 Các thuật toán phân cụm
Phân cụm dữ liệu là quá trình phân chia tập dữ liệu ban đầu thành các cụm cótính chất "tương tự" và "phi tương tự" giữa các phần tử trong các cụm Số lượng cụm
có thể được xác định trước hoặc tự động xác định bằng phương pháp phân cụm Saukhi đặc tính của dữ liệu được xác định, các phương pháp được sử dụng để tính khoảng
Trang 17cách giữa các đối tượng dữ liệu, đo sự tương đồng giữa các cặp đối tượng dữ liệu thôngqua các hàm tính độ tương tự hoặc độ phi tương tự Giá trị của hàm độ đo tương tựcàng lớn thì độ tương đồng càng cao và ngược lại, độ phi tương tự càng cao thì độtương đồng càng thấp.
Phân cụm dữ liệu được áp dụng rộng rãi trong nhiều lĩnh vực liên quan đến sứckhỏe và tâm lý, bao gồm cả việc đẩy mạnh và duy trì sức khỏe như: xác định các nhómngười có lợi từ các dịch vụ y tế hoặc xác định các nhóm người có nguy cơ phát triểnbệnh và điều kiện của những người có nguy cơ cao Một ví dụ điển hình về phân cụm
dữ liệu là trong hoạt động phân đoạn ảnh để phân tích mức xám hoặc màu sắc của ảnh
và chia ảnh thành các phân vùng đồng nhất, giúp phát hiện ranh giới của các đối tượngtrong ảnh
Các thuật toán phân cụm phổ biến nhất bao gồm:
K-means: Là một thuật toán phân cụm đơn giản nhất và phổ biến nhất Nó phâncụm dữ liệu thành các nhóm khác nhau bằng cách tìm kiếm trung tâm của các cụm
Agglomerative Hierarchical Clustering: Phân cụm bắt đầu bằng cách mỗi điểm
dữ liệu được coi là một cụm riêng biệt Các cụm liên kết với nhau dựa trên khoảngcách giữa chúng và kết quả cuối cùng là một cấu trúc cây
DBSCAN: Là một thuật toán phân cụm dựa trên mật độ, nó phân cụm dữ liệuthành các cụm có mật độ tương đối cao và không có các điểm dữ liệu cô lập
Gaussian Mixture Models (GMMs): Là một phương pháp phân cụm dựa trên môhình xác suất, nó giả định rằng dữ liệu phân phối theo các phân phối chuẩn khác nhau
và tìm cách phân cụm dựa trên các phân phối này
Spectral Clustering: Dựa trên việc chuyển đổi dữ liệu thành một không gian mới
và phân cụm dựa trên mật độ của các điểm dữ liệu trong không gian mới này
Fuzzy C-means: Giống như K-means, nhưng mỗi điểm dữ liệu có thể thuộc vềnhiều hơn một cụm với một mức độ xác suất nhất định
1.2.2.3 Các thuật toán phát hiện luật
Các thuật toán phát hiện luật (rule discovery) là một phần quan trọng của khaithác dữ liệu và học máy Chúng được sử dụng để tìm kiếm các quy tắc hoặc mẫu xuấthiện thường xuyên trong các tập dữ liệu
Một số ví dụ về các thuật toán phát hiện luật và cách chúng được sử dụng trongthực tế:
9
Trang 18Apriori: được sử dụng để tìm kiếm các quy tắc kết hợp phổ biến trong các bộ dữliệu Ví dụ, nếu một siêu thị muốn tìm các quy tắc kết hợp về các sản phẩm được muacùng nhau, Apriori có thể được sử dụng để tìm kiếm các mặt hàng thường được muacùng nhau, chẳng hạn như cà phê và đường.
FP-growth: được sử dụng để tìm kiếm các quy tắc kết hợp trong các bộ dữ liệulớn Ví dụ, nếu một công ty muốn tìm kiếm các mẫu tiêu dùng của khách hàng trêntrang web của họ, FP-growth có thể được sử dụng để tìm kiếm các sản phẩm hoặc dịch
vụ thường được mua cùng nhau trên trang web đó
Eclat: được sử dụng để tìm kiếm các tập hợp phổ biến của các mục trong các bộ
dữ liệu Ví dụ, nếu một công ty muốn tìm kiếm các nhóm sản phẩm thường được muacùng nhau để quảng cáo chúng trong một chiến dịch tiếp thị, Eclat có thể được sử dụng
để tìm kiếm các nhóm sản phẩm thường được mua cùng nhau
CBA (Classification Based on Association): được sử dụng để phân loại dữ liệubằng cách sử dụng các quy tắc kết hợp Ví dụ, nếu một công ty muốn phân loại cáckhách hàng của mình dựa trên các mẫu mua hàng của họ, CBA có thể được sử dụng đểtìm kiếm các quy tắc kết hợp của các sản phẩm được mua cùng nhau và sử dụng chúng
để phân loại khách hàng
Tất cả các thuật toán phát hiện luật trên đều có thể được áp dụng trong nhiềulĩnh vực khác nhau, chẳng hạn như thương mại điện tử, y tế, giáo dục và nhiều lĩnh vựckhác Chúng có thể giúp các công ty và tổ chức tìm ra các quy tắc kết hợp hoặc mẫutrong dữ liệu của họ, từ đó giúp tăng doanh số, cải thiện trải nghiệm khách hàng và đưa
ra các quyết định hiệu quả hơn
1.3 Mạng nơron nhân tạo
1.3.1 Giới thiệu mạng nơron
Mạng neural (NN) là một hệ thống tính toán dựa trên hoạt động của các nơ-rontrong hệ thống thần kinh, với từ "neural" xuất phát từ từ "neuron" và thuật ngữ
"network" chỉ một cấu trúc đồ thị NN là một mô hình toán học hoặc mô hình tính toán
mô phỏng cấu trúc và chức năng của mạng lưới thần kinh sinh học để ước tính hoặcxấp xỉ khoảng cách Mạng lưới thần kinh được hình thành bởi một số lượng lớn các kếtnối thần kinh nhân tạo Mạng neural đã được nghiên cứu từ năm 1950 với công trìnhcủa McCulloch và Pitts
Một trong những đặc điểm quan trọng của mạng neural là khả năng học từ dữliệu để điều chỉnh bộ trọng số của nó một cách thích hợp nhằm đạt được sự tối ưu cho
hệ thống Năm 1985, Hopfield đã đưa ra một mạng với cấu trúc động và năm 1986,
Trang 19Rumelhart và McClelland giới thiệu thuật toán lan truyền ngược trên mạng nhiều mức.
Mô hình tính toán của mạng neural được ứng dụng nhiều trong các lĩnh vực như nhậndạng mẫu, tối ưu, hồi quy cũng như lập luận và ra quyết định
Mạng neural được đánh giá cao bởi khả năng học theo mẫu và tính toán songsong của chúng Để đạt được những tính năng này, mạng neural có những đặc trưngđộc đáo như tập dữ liệu mẫu để thực hiện suy diễn trong mạng neural và do đó, dữ liệuchính được xử lý trong mạng neural là thông tin định lượng Việc học của mạng neuralđược thực hiện thông qua việc tổ chức tính toán tại các neural trong mạng theo thuậttoán, cũng như việc bổ sung và thay đổi các trọng số để đạt được hiệu suất tối ưu
1.3.2 Cấu tạo và quá trình xử lý của một nơron 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ấtcủa não Não chúng ta gồm khoảng 10 triệu neural và mỗi neural liên kết với 10.000neural khác Ở mỗi neural có: soma, dendrites, axon và synapses
- Soma: là hạt nhân
- Dendrites: là phần nhận tín hiệu đầu vào
- Axon: là phần dẫn ra tín hiệu xử lý
- Synapses: là đường tín hiệu điện hóa giao tiếp giữa các neural
Mỗi neural trong mạng neural nhận tín hiệu điện từ các neural khác thông quasợi nhánh Nếu tín hiệu này đủ lớn để kích hoạt neural, thì nó sẽ truyền qua sợi trục đếncác neural khác Tại mỗi neural, quyết định kích hoạt neural đó hay không phụ thuộcvào các tín hiệu nhận được
11
Hình 1.2 Cấu trúc neuron sinh học
Trang 20Tuy nhiên, Neural Network không hoàn toàn bắt chước các chức năng của não
chỉ
lấy cảm hứng từ nó Mô hình này được sử dụng để giải quyết các bài toán thực tế
1.3.3 Cấu tạo và quá trình xử lý của một nơron nhân tạo
Dựa vào cấu tạo của một neural sinh học, các nhà khoa học nghiên cứu và lậptrình đã đưa ra kiến trúc của một neural nhân tạo:
Mạng neural nhân tạo có thể mô tả đơn giản lại như sau:
Trong đó:
Danh sách đầu vào: Là tập hợp các thuộc tính đầu vào của một neural network.Thông thường, số lượng thuộc tính đầu vào là nhiều hơn một và được biểu diễn dướidạng một vector nhiều chiều hoặc được kết nối từ nhiều neural layer trước tới mộtneural layer sau
Trọng số liên kết: Là giá trị số biểu thị độ mạnh yếu của các kết nối giữa cácneural Các tín hiệu đầu vào được tính bằng cách nhân trọng số liên kết với giá trị củađầu vào tương ứng
Hàm tổng: Tính tổng của tích giữa các đầu vào và trọng số liên kết, mô phỏngquá trình kết nối giữa các neural Sau đó, giá trị này được đưa vào hàm kích hoạt đểtính toán giá trị đầu ra của neural
Hình 1.3 Cấu trúc của một nơron nhân tạo Hình 1.4 Mô tả đơn giản mạng nơron nhân tạo
Trang 21Thiên lệch (bias): Là giá trị được cộng thêm vào sau khi tính toán hàm tổng, tạo
ra giá trị đầu ra cuối cùng trước khi đưa vào hàm kích hoạt Mục đích của thiên lệch làdịch chuyển chức năng của hàm kích hoạt sang trái hoặc phải, giúp cho việc huấn luyệnmạng neural hiệu quả hơn Thiên lệch được biểu diễn dưới dạng một node đơn lẻ trongmạng neural Hình ảnh vị trí thiên lệch được thêm vào trong mạng neural thực tế
1.3.4 Các mô hình hàm kích hoạt của mạng nơron nhân tạo
Trong mạng nơron nhân tạo có nhiều mô hình hàm kích hoạt như: Sigmoid,Tanh, tuyến tính, ReLU, Leaky ReLU, Softmax, Swish…
1.3.4.1 Hàm Sigmoid
Công thức: f(x) = 1−e1−x
Đạo hàm: f’(x) = f(x)(1 – f(x))
Hàm sigmoid có đặc tính chuyển đổi đầu vào thành một giá trị giữa 0 và 1, có
dạng của một đường cong hình chữ S Điều này là do công thức hàm sigmoid có sựxuất hiện của hàm mũ Khi giá trị đầu vào x tiến đến vô cùng, giá trị f(x) của hàmsigmoid sẽ tiến đến 1 Ngược lại, khi giá trị đầu vào x tiến đến âm vô cùng, giá trị f(x)của hàm sigmoid sẽ tiến đến 0
Hàm sigmoid thường được sử dụng trong các lớp ẩn của mạng nơ-ron nhân tạo.Khi được áp dụng vào các giá trị đầu vào, nó sẽ chuyển đổi các giá trị này thành cácgiá trị giữa 0 và 1, và giúp cho các giá trị này dễ dàng được xử lý và tính toán tiếp theo.Tuy nhiên, hàm sigmoid cũng có một số nhược điểm, bao gồm độ dốc của đường congđối với các giá trị lớn hoặc nhỏ, và dễ gây ra vấn đề về gradient vanishing trong quátrình huấn luyện mạng nơ-ron
13
Hình 1.5 Thiên lệch được thêm vào trong thực tế
Hình 1.6 Đồ thị hàm Sigmoid
Trang 22Tương tự như hàm sigmoid, hàm tanh thường được sử dụng trong các lớp ẩn củamạng nơ-ron nhân tạo Tuy nhiên, hàm tanh có một số ưu điểm so với hàm sigmoid,đặc biệt là độ dốc của đường cong của hàm tanh lớn hơn đối với các giá trị gần 0, giúpcho việc học của mạng nơ-ron hiệu quả hơn Hơn nữa, hàm tanh có tính chất phản ánhđối xứng qua gốc tọa độ (0,0), đây là đặc tính quan trọng của hàm tanh giúp cho mạngnơ-ron học được các mối quan hệ phức tạp giữa các đặc trưng của dữ liệu.
Tuy nhiên, tương tự như hàm sigmoid, hàm tanh cũng có một số hạn chế nhưgradient vanishing và độ dốc của đường cong đối với các giá trị lớn hoặc nhỏ
Trang 231.3.4.4 Hàm ReLU
Công thức: f(x) =
{
0 khi∧x <0 x khi∧x ≥ 0Đạo hàm: f’(x) =
{
0 khi∧x< 0 1 khi∧x ≥ 0Trong những năm gần đây, hàm ReLU (Rectified Linear Unit) đã trở thành mộttrong những hàm kích hoạt phổ biến nhất trong việc huấn luyện các mạng neuron HàmReLU áp dụng với những trường hợp cần đầu ra nằm trong khoảng (0, +∞) HàmReLU đơn giản là loại bỏ các giá trị đầu vào nhỏ hơn 0 Điều này có thể giải thích bởicông thức toán học của nó
Hàm ReLU có nhiều ưu điểm so với các hàm kích hoạt khác như Sigmoid vàTanh: nó có tốc độ hội tụ nhanh hơn gấp 6 lần so với Tanh và tính toán nhanh hơn
Tuy nhiên, nhược điểm của hàm ReLU là khi giá trị đầu vào là âm, giá trị đầu ra
sẽ bằng 0, dẫn đến hiện tượng "Dying ReLU" Để khắc phục vấn đề này, Leaky ReLU
đã được giới thiệu
Ngoài ra, khi learning rate quá lớn, hàm ReLU cũng có thể gây ra tình trạngdừng việc cập nhật các trọng số (weights)
15
Hình 1.8 Đồ thị hàm tuyến tính
Trang 241.3.5 Mô hình mạng nơron
Mô hình mạng nơron (neural network) là một trong những mô hình quan trọngcủa trí tuệ nhân tạo Nó được thiết kế để mô phỏng cách thức hoạt động của hệ thầnkinh sinh học Mô hình mạng nơron được xây dựng từ nhiều nơron nhân tạo (artificialneurons) kết nối với nhau để tạo thành các lớp (layers) trong mạng Các lớp này được
sử dụng để biến đổi đầu vào (input) thành đầu ra (output) thông qua các quá trình tínhtoán và học tập
Một mạng nơron có thể được chia thành ba phần chính: lớp đầu vào (inputlayer), các lớp ẩn (hidden layers) và lớp đầu ra (output layer)
Lớp đầu vào (input layer) là lớp đầu tiên trong kiến trúc của mạng nơron nhântạo Nhiệm vụ của lớp này là nhận đầu vào từ bên ngoài và chuyển nó thành đầu vàocho các lớp tiếp theo của mạng Các đầu vào này có thể là các giá trị số, văn bản, hìnhảnh, âm thanh hoặc bất kỳ dữ liệu nào mà mạng cần xử lý
Số lượng nơron trong lớp đầu vào phụ thuộc vào số lượng đặc trưng (features)
có trong dữ liệu đầu vào Ví dụ, nếu đầu vào là một bức ảnh màu có kích thước 32x32pixel, thì số lượng đặc trưng sẽ là 3x32x32 (3 là số kênh màu RGB), tức là 3072 Do
đó, lớp đầu vào sẽ có 3072 nơron, mỗi nơron sẽ nhận giá trị đầu vào của một pixel
Một số phương thức chuẩn hóa (normalize) được áp dụng lên đầu vào để tăngcường hiệu quả của mạng, chẳng hạn như chuẩn hóa min-max hoặc chuẩn hóa z-score
Ngoài ra, lớp đầu vào thường được kết nối với các lớp ẩn (hidden layers) thôngqua các trọng số (weights) và độ lệch (biases) được khởi tạo ngẫu nhiên hoặc dựa trên
Hình 1.9 Đồ thị hàm ReLU
Trang 25các phương pháp khởi tạo trọng số khác nhau Các lớp ẩn tiếp tục xử lý dữ liệu từ lớpđầu vào để rút trích ra các đặc trưng có ý nghĩa và đưa ra dự đoán cuối cùng.
Lớp ẩn trong mạng nơron nhân tạo là lớp nằm giữa lớp đầu vào và lớp đầu ra.Lớp này có chức năng xử lý thông tin đầu vào và truyền tải thông tin qua mạng đến lớpđầu ra
Mỗi lớp ẩn trong mạng nơron nhân tạo có thể chứa nhiều nơron, số lượng nơronnày phụ thuộc vào kiến trúc mạng và độ phức tạp của bài toán cần giải quyết Mỗinơron trong lớp ẩn có nhiều kết nối đầu vào từ các nơron ở lớp trước đó và một hàmkích hoạt (activation function) để tính toán đầu ra của nơron đó
Việc lựa chọn hàm kích hoạt cho lớp ẩn là rất quan trọng để đạt được hiệu suấttối ưu cho mạng nơron Một số hàm kích hoạt thông dụng cho lớp ẩn bao gồmSigmoid, ReLU (Rectified Linear Unit), Tanh, LeakyReLU, ELU (Exponential LinearUnit) và Softplus
Qua lớp ẩn, thông tin được truyền tải và xử lý để tạo ra đầu ra của mạng Quátrình này thường được thực hiện thông qua lan truyền thuận (forward propagation)trong đó đầu vào của lớp ẩn được nhân với ma trận trọng số tương ứng và đưa qua hàmkích hoạt để tạo ra đầu ra của lớp ẩn Đầu ra này sẽ được truyền đến lớp tiếp theo củamạng nơron
Lớp đầu ra là lớp cuối cùng trong mạng nơron nhân tạo và có nhiệm vụ chuyểnđổi kết quả đầu ra của các lớp ẩn thành đầu ra mong muốn của mô hình Số lượngnơron trong lớp đầu ra phụ thuộc vào số lượng lớp đầu ra cần dự đoán Ví dụ, nếu bàitoán là phân loại chó và mèo, thì số lượng nơron trong lớp đầu ra sẽ là 2
Các hàm kích hoạt thường được sử dụng trong lớp đầu ra bao gồm:
Hàm softmax: Được sử dụng trong bài toán phân loại nhiều lớp, hàm softmaxbiến đổi đầu ra của các nơron thành xác suất tương ứng với mỗi lớp, đảm bảo tổng cácxác suất bằng 1
Hàm sigmoid: Được sử dụng trong bài toán phân loại hai lớp, hàm sigmoid biếnđổi đầu ra của nơron thành một giá trị xác suất nằm trong khoảng từ 0 đến 1
Lớp đầu ra là lớp quan trọng trong mô hình và ảnh hưởng đến độ chính xác của
mô hình Việc lựa chọn hàm kích hoạt phù hợp trong lớp đầu ra cũng đóng vai trò quantrọng trong quá trình huấn luyện và đánh giá mô hình
Các nơron trong mạng nơron có chức năng tính toán trên các giá trị đầu vàobằng cách sử dụng các hàm kích hoạt (activation functions) Các nơron được kết nối
17
Trang 26với nhau bằng các liên kết trọng số (weight connections) Những liên kết này được điềuchỉnh và cập nhật trong quá trình học tập của mạng nơron để tối ưu hóa kết quả đầu ra.
Có nhiều loại mô hình mạng nơron khác nhau, bao gồm mạng nơron lan truyềntiến (feedforward neural network), mạng nơron tự truy hồi (recurrent neural network),
và mạng nơron tích chập (convolutional neural network) Mỗi loại mạng nơron có ứngdụng khác nhau và được sử dụng trong nhiều lĩnh vực khác nhau của trí tuệ nhân tạo
Mô hình mạng nơron đã đóng vai trò quan trọng trong nhiều ứng dụng của trítuệ nhân tạo, bao gồm xử lý ngôn ngữ tự nhiên, xử lý ảnh và nhận dạng giọng nói Một
số ứng dụng cụ thể của mạng nơron bao gồm: nhận dạng chữ viết tay, nhận dạng khuônmặt, và dịch máy tự động
1.3.6 Một số kiểu mạng nơron
Có hai kiểu mạng neural chính: mạng neural truyền thằng (feedforward neuralnetwork) và mạng neural hồi quy (recurrent neural network) Mạng truyền thẳng và hồiquy được minh họa như sau:
Mạng nơron truyền thẳng (feedforward neural network) là một mô hình mạngnơron nhân tạo đơn giản, trong đó các nơron được tổ chức thành các lớp, với các liênkết chỉ được cho phép từ lớp trước đến lớp sau Dữ liệu đầu vào được đưa vào lớp đầutiên và các tính toán được thực hiện thông qua các liên kết trọng số giữa các nơron, chođến khi dữ liệu đầu ra được tính toán ở lớp cuối cùng Mạng nơron truyền thẳng được
sử dụng trong nhiều bài toán như phân loại, dự đoán, nhận diện hình ảnh và xử lý ngônngữ tự nhiên
Hình 1.10 Mô hình mạng nơron truyền thẳng
Trang 27Một loại khác là mạng neural hồi quyMạng nơron hồi quy (recurrent neuralnetwork) là một loại mạng nơron có khả năng xử lý dữ liệu chuỗi (sequence data) Môhình này có khả năng lưu trữ thông tin trong các nơron trước đó và sử dụng thông tin
đó để xử lý các dữ liệu mới trong chuỗi đầu vào Mạng nơron hồi quy thường được sửdụng trong các bài toán liên quan đến dữ liệu chuỗi như dự đoán chuỗi thời gian, xử lýngôn ngữ tự nhiên và nhận diện giọng nói
1.3.7 Thuật toán lan truyền ngược
Thuật toán lan truyền ngược (backpropagation) là một thuật toán được sử dụng
để huấn luyện các mạng neuron nhân tạo (neural networks) phân loại và dự đoán.Thuật toán này là cơ sở cho hầu hết các mô hình mạng neuron hiện đại
Thuật toán backpropagation được xây dựng trên nguyên tắc lan truyền tiến(forward propagation), trong đó các giá trị đầu vào được truyền qua mạng để tạo ra mộtgiá trị đầu ra dự đoán Sau đó, thuật toán tính toán sai số (error) giữa giá trị dự đoán vàgiá trị thực tế, và sử dụng nó để điều chỉnh các trọng số của các liên kết giữa cácneuron trong mạng
Thuật toán backpropagation bắt đầu bằng việc tính toán độ lỗi của giá trị đầu ra,
sử dụng hàm mất mát (loss function) để đánh giá sai số giữa giá trị dự đoán và giá trịthực tế Sau đó, độ lỗi được truyền ngược từ đầu ra trở về đầu vào của mạng neuron, đểtính toán đạo hàm của độ lỗi theo từng trọng số trong mạng
Các giá trị đạo hàm này được sử dụng để điều chỉnh các trọng số của mạngneuron, với mục tiêu giảm thiểu độ lỗi của mô hình Việc điều chỉnh trọng số này đượcthực hiện thông qua việc sử dụng một thuật toán tối ưu hóa, chẳng hạn như gradientdescent
19
Hình 1.11 Mô hình mạng nơron hồi quy
Trang 28Thuật toán backpropagation có thể được thực hiện thông qua các thư viện vàframework như TensorFlow, PyTorch và Keras Nó là một phần quan trọng của họcsâu (deep learning), cho phép các mô hình mạng neuron phức tạp có thể được huấnluyện để giải quyết các vấn đề phân loại, dự đoán và nhận dạng trong nhiều lĩnh vựcứng dụng khác nhau.
1.4 Tổng quan về bài toán nhận dạng ảnh
Bài toán phân loại ảnh là một trong những bài toán quan trọng và được quan tâmnhiều trong lĩnh vực trí tuệ nhân tạo (AI) Đây là bài toán đưa ra một bức ảnh và yêucầu một hệ thống AI phân loại bức ảnh đó thuộc về đối tượng nào
Lịch sử của bài toán phân loại ảnh bắt đầu từ những năm đầu của thế kỷ 21, khicác nhà khoa học bắt đầu áp dụng các mô hình máy học (machine learning) để giảiquyết bài toán này Trong những năm đầu, các phương pháp phân loại ảnh dựa trên cácthuật toán truyền thống như Support Vector Machines (SVM), Decision Trees (Câyquyết định), k-Nearest Neighbors (KNN) và Random Forests (Rừng ngẫu nhiên) Tuynhiên, các phương pháp này đòi hỏi các đặc trưng (feature) phải được xác định trước
đó và thường yêu cầu sự can thiệp của con người để lựa chọn các đặc trưng phù hợp
Với sự phát triển của deep learning, đặc biệt là mạng neural tích chập(convolutional neural network - CNN), bài toán phân loại ảnh đã có những bước tiếnđáng kể CNN cho phép học đặc trưng từ dữ liệu đầu vào và tự động tìm ra các đặctrưng quan trọng để phân loại ảnh CNN đã trở thành phương pháp phổ biến cho bàitoán phân loại ảnh từ đó đến nay Nhiều mô hình CNN nổi tiếng đã được đưa ra nhưLeNet, AlexNet, VGG, Inception và ResNet
Ngoài ra, các phương pháp học sâu khác cũng được áp dụng để giải quyết bàitoán phân loại ảnh, chẳng hạn như mạng neural tự chú ý (self-attention network), mạngneural ngẫu nhiên (random neural network) và mạng neural tiên tiến (advanced neuralnetwork) Các phương pháp này giúp cải thiện độ chính xác và hiệu suất của các môhình phân loại ảnh
Hiện nay, bài toán phân loại ảnh vẫn là một trong những bài toán quan trọng củatrí tuệ nhân tạo, với ứng dụng trong nhiều lĩnh vực như y học, an ninh, giao thông, giảitrí
Trong quá trình nhận dạng hình ảnh, việc phân loại đối tượng trong ảnh yêu cầuphải trích xuất thông tin từ ảnh Trong số các bài toán nhận dạng, bài toán nhận dạngchữ số viết tay được coi là đơn giản nhất Tuy nhiên, bài toán nhận dạng ảnh tự nhiênlại được coi là bài toán khó nhất do sự đa dạng trong các điểm nhìn Một vật thể có thể
Trang 29được quan sát từ nhiều góc độ khác nhau, dẫn đến sự khác biệt trong các hình ảnh thuđược Sự đa dạng về kích thước là một thách thức khác, vì máy tính chỉ có thể tính toánđược tỉ lệ tương đối của vật thể so với kích thước của bức ảnh, không thể tính toánđược kích thước thực tế của vật thể Để đối mặt với những thách thức này, máy tínhcần phải có khả năng hiểu được các thông tin trên ảnh Ngoài ra, ánh sáng cũng có ảnhhưởng mạnh mẽ đến thông tin thể hiện trong bức ảnh, đặc biệt là ở mức độ thấp nhưmức độ điểm ảnh.
Việc ẩn giấu một phần của vật thể: Trong ảnh, vật thể không nhất thiết phải hiệndiện với đầy đủ hình dạng mà có thể bị che khuất bởi nền hoặc các đối tượng khác Sựthiếu sót về hình dạng của vật thể sẽ dẫn đến việc mất đi thông tin, đặc trưng và gây rathêm khó khăn cho bài toán nhận dạng
Tình trạng lộn xộn phức tạp của nền: Trong nhiều trường hợp, vật thể cần nhậndạng bị phân tán gần như hoàn toàn trên nền của bức ảnh Màu sắc và họa tiết của vậtthể và nền lẫn lộn khiến cho việc nhận dạng trở nên vô cùng khó khăn, kể cả với thịgiác của con người
Sự đa dạng về loại vật thể: Vật thể cần nhận dạng có thể thuộc nhiều loại khácnhau, với hình dạng, màu sắc và kết cấu vô cùng đa dạng Đây chính là một thách thứcđối với bài toán nhận dạng
1.5 Các hướng tiếp cận phân loại ảnh
Bài toán nhận dạng hình ảnh đã xuất hiện từ lâu và đã có rất nhiều bài báo, côngtrình khoa học được đưa ra nhằm đề xuất hoặc cải tiến các thuật toán nhận dạng có haihướng để tiếp cận
1.5.1 Phương pháp học máy truyền thống
Có hai giai đoạn chính trong quá trình học máy là huấn luyện và thử nghiệm.Trong mỗi giai đoạn này, hai thành phần quan trọng nhất do người xử lý bài toán thiết
kế là trích chọn đặc trưng (gọi là Feature Engineering hoặc Feature Extraction) và sửdụng các thuật toán phân loại và nhận dạng
Đầu vào: Dữ liệu không có định dạng chuẩn và có kích thước không xác định,bao gồm cả thông tin nhiễu và không có giá trị Vì chứa toàn bộ thông tin, kích thướclưu trữ của dữ liệu đầu vào thường rất lớn và không thuận tiện cho việc tính toán
Đầu ra: Các thông tin hữu ích được rút trích từ dữ liệu đầu vào, loại bỏ các thànhphần nhiễu và vô nghĩa Kích thước dữ liệu đầu ra đã được thu gọn đáng kể so với kíchthước đầu vào, giúp cho việc tính toán tiếp theo trở nên nhanh chóng và thuận tiện hơnrất nhiều
21
Trang 30Trích chọn đặc trưng: trong thực tế, dữ liệu thô chưa được xử lý là những gì ta
thường gặp trong các bài toán học máy Để sử dụng chúng trong quá trình huấn luyện,
ta cần thực hiện một số phép biến đổi để chuyển chúng thành dữ liệu chuẩn có khảnăng biểu diễn tốt hơn Việc biến đổi này bao gồm loại bỏ dữ liệu nhiễu và tính toán đểtrích xuất các thông tin đặc trưng có ý nghĩa từ dữ liệu thô ban đầu Tuy nhiên, cácthông tin đặc trưng này thường khác nhau tùy thuộc vào từng loại dữ liệu và bài toán
cụ thể Do đó, việc tùy biến phép biến đổi để cải thiện độ chính xác của mô hình dựđoán là rất quan trọng Quá trình này được gọi là Feature Engineering, là một trongnhững thành phần cốt lõi của các phương pháp học máy truyền thống
Thuật toán: sau khi hoàn thành quá trình trích chọn đặc trưng, các thông tin đặctrưng sẽ được lưu trữ ở định dạng chuẩn về kiểu dữ liệu, kích thước dữ liệu và cácthuộc tính khác Những thông tin này có thể được sử dụng cùng với thông tin trước đó
về dữ liệu (nếu có) để xây dựng các mô hình dự đoán phù hợp bằng cách áp dụng cácthuật toán khác nhau
Các phương pháp học máy truyền thống có độ chính xác dự đoán phụ thuộc rấtnhiều vào chất lượng các đặc trưng được lựa chọn Các đặc trưng phù hợp với bài toánđưa ra sẽ đem lại kết quả tốt hơn Tuy nhiên, đây cũng là điểm yếu của các phươngpháp này vì việc trích chọn đặc trưng đòi hỏi sự hiểu biết thấu đáo về bài toán, cácthuật toán và thông số huấn luyện Đặc trưng được thiết kế riêng cho từng bài toán, do
đó, chúng hiếm khi có thể tái sử dụng cho các bài toán khác mà cần phải được cải thiệnhoặc thay thế bởi các đặc trưng khác
1.5.2 Phương pháp học sâu
Học sâu là một nhánh của học máy, được phát triển để giải quyết các vấn đềphức tạp với đầu vào có tính tương quan cao Học sâu đã đạt được những thành tựuđáng kể trong nhiều lĩnh vực như xử lý ngôn ngữ tự nhiên, nhận dạng giọng nói vàhình ảnh, và trò chơi
Các mạng nơ-ron sâu là công cụ cốt lõi của học sâu Chúng được tạo ra bằngcách kết nối nhiều nơ-ron với nhau để tạo ra các lớp xử lý đầu vào và đầu ra Các mạngnày sử dụng một phương pháp gọi là lan truyền ngược để cập nhật các trọng số giữacác lớp và điều chỉnh đầu ra của mô hình
Một ví dụ cụ thể về học sâu là mạng nơ-ron tích chập (Convolutional NeuralNetwork - CNN) được sử dụng trong nhận dạng hình ảnh Với mạng CNN, các lớp đầutiên sẽ tìm kiếm các đường thẳng và đường cong trong hình ảnh, còn các lớp sau đó sẽtìm ra các đặc trưng phức tạp hơn của vật thể trong hình ảnh Cuối cùng, mạng CNN sẽ
Trang 31đưa ra dự đoán về đối tượng được hiển thị trong hình ảnh dựa trên các đặc trưng đượctìm thấy.
Mặc dù học sâu đã đạt được nhiều thành tựu, nhưng việc xây dựng mô hình họcsâu vẫn là một thách thức lớn đối với các nhà nghiên cứu và kỹ sư Cần phải tinh chỉnhcác tham số và kiến trúc của mô hình để đạt được kết quả tốt nhất cho từng vấn đề cụthể
1.6 Tổng quan về Deep learning
Deep Learning là một nhánh của h c máy dựa trên một tập hợp các thuật toán để
mô hình hóa dữ liệu trừu tượng bằng cách sử dụng nhiều lớp xử lý với cấu trúc phứctạp
Để đánh giá tốt hơn các công cụ có thể thúc đẩy khả năng tiếp cận và hiệu quảtrong học tập sâu, trước tiên chúng ta hãy xem quy trình thực sự của một ứng dụng họcsâu điển hình (có giám sát) bao gồm các bước khác nhau, bắt đầu từ dữ liệu thô và kếtthúc bằng các dự đoán trong tự nhiên
Sở dĩ có tên gọi là deep learning là bởi các mạng mô phỏng có các lớp (có độ sâu)khác nhau theo mức độ học hỏi Tất cả các vấn đề đòi hỏi khả năng "tư duy" để giảiquyết, đều là những vấn đề deep learning có thể học hỏi và tìm ra giải pháp
Deep learning mở ra khả năng giải quyết các vấn đề phức tạp trong khi làm việctrên những bộ dữ liệu rất đa dạng, không có cấu trúc hay liên kết với nhau Các thuậttoán deep learning càng được nghiên cứu sâu hơn càng cung cấp những tiềm năng ứngdụng lớn hơn
23
Trang 32CHƯƠNG 2 KIẾN TRÚC MẠNG NƠRON TÍCH CHẬP 2.1 Lịch sử hình thành và phát triển của Computer vision và mạng thần kinh chuyển đổi CNN.
2.1.1 Thị giác máy tính (Computer vision).
Thị giác máy tính là một lĩnh vực của khoa học máy tính tập trung vào việc táitạo hoặc mô phỏng các phần phức tạp của hệ thống thị giác con người Thị giác máytính cho phép máy tính xác định và xử lý các đối tượng trong đồ họa hình ảnh và videobằng cách mô phỏng quá trình quan sát và cảm nhận của con người đối với thế giớitrực quan Lịch sử của Computer Vision bắt đầu từ những năm 50 và bùng nổ vàonhững năm 1990 khi Internet phát triển Tuy nhiên, vào thời điểm đó, do thiếu điềukiện phát triển, thị giác máy tính đã bị giới hạn và lãng quên trong một thời gian dài
Hiện nay, có một số yếu tố đang tương tác để đẩy mạnh phát triển của thị giácmáy tính:
- Phần cứng được thiết kế đặc biệt cho thị giác và phân tích máy tính được sửdụng phổ biến hơn trước đây
- Số lượng dữ liệu đồ họa rất lớn, ước tính hơn 3 tỷ hình ảnh và video được chia
sẻ trực tuyến mỗi ngày
- Các thuật toán mới, chẳng hạn như mạng nơ-ron tích tụ, có thể tận dụng các khảnăng được cung cấp bởi phần cứng và phần mềm
- Giá cả của điện toán hiện nay rẻ hơn và dễ dàng hơn để truy cập
Các tiến bộ này đã khiến tầm nhìn của máy tính đi xa hơn một cách đáng kinhngạc Tỷ lệ nhận dạng và phân loại đối tượng đã tăng từ 50% lên 99% chỉ trong chưađầy 10 năm - và hiện nay, các hệ thống có thể nhanh chóng nhận ra và phản ứng vớicác đầu vào trực quan chính xác hơn cả con người
Trong những năm gần đây, việc áp dụng Deep Learning/Machine Learning đãgiúp Computer Vision có những bước tiến lớn, vượt xa khỏi việc tái tạo và mô phỏngthị giác con người
2.1.2 Mạng thần kinh chuyển đổi CNN.
Mạng thần kinh tích chập (Convolutional Neural Network - CNN hay ConvNet)
là một loại mạng thần kinh sâu (Deep Neural Network) được sử dụng phổ biến trongviệc phân tích hình ảnh CNN còn được gọi là mạng thần kinh/nơ-ron tích chập hoặcmạng thần kinh/nơ-ron chuyển đổi, và nó được thiết kế dựa trên kiến trúc trọng số đượcchia sẻ và đặc tính đối xứng tịnh tiến (translational symmetry) CNN là một loại mạng