Tải bản đầy đủ (.pdf) (60 trang)

PHÂN LOẠI GIỐNG CHÓ BẰNG MÔ HÌNH PHÂN LỚP SVM

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.84 MB, 60 trang )

BỘ CÔNG THƯƠNG
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP
----------------------***-----------------------

ĐỒ ÁN CHUYÊN NGÀNH
NGÀNH: KHOA HỌC MÁY TÍNH
ĐỀ TÀI: PHÂN LOẠI GIỐNG CHĨ BẰNG MƠ HÌNH
PHÂN LỚP SVM
GVHD: TS.Nguyễn Mạnh Cường
Lớp: KHMT1 – K15
Nhóm: 8
Thành viên:
1.

Vũ Đức Quảng - 2020603632

2.

Nguyễn Ngọc Long – 2020601627

3.

Nguyễn Thành Nam – 2020602442

Hà Nội, năm 2024
1


MỤC LỤC
DANH MỤC NHỮNG TỪ VIẾT TẮT ................................................................................ 5
LỜI CẢM ƠN........................................................................................................................ 6


CHƯƠNG 1: KHẢO SÁT VÀ PHÁT BIỂU BÀI TOÁN .................................................. 10
1.1.

Nguồn gốc giống chó ....................................................................................................... 10

1.2.

Đặc điểm sinh học............................................................................................................ 10

1.3.

Phân loại giống chó ......................................................................................................... 11

1.4.

Tầm quan trọng của phân loại giống chó ...................................................................... 12

1.5.

Bài tốn phân loại giống chó trong trí tuệ nhân tạo..................................................... 13

1.6.

Ứng dụng mơ hình SVM vào bài tốn phân loại giống chó ......................................... 13

CHƯƠNG 2: CÁC KỸ THUẬT GIẢI QUYẾT BÀI TOÁN .............................................. 15
2.1

Phương hướng tiếp cận bài toán .................................................................................... 15


2.2

Một số kỹ thuật giải quyết bài toán ............................................................................... 15

2.2.1
Thuật toán CNN-Convolutional Neural Network ................................................................................ 15
2.2.2
Thuật toán Random Forests ................................................................................................................. 18
2.2.3
Thuật toán Naive Bayes ....................................................................................................................... 23
2.2.4
Thuật toán Transfer Learning ............................................................................................................... 24
2.2.5. Thuật toán K-Nearest Neighbors (KNN) ............................................................................................. 26
2.2.6. Thuật tốn SVM ....................................................................................................................................... 27

2.3.

Đề xuất mơ hình SVM để giải quyết bài tốn ............................................................... 30

CHƯƠNG 3: THỰC NGHIỆM ......................................................................................... 32
3.1
3.2

Dữ liệu thực nghiệm ........................................................................................................ 32
Huấn luyện mơ hình ........................................................................................................ 34
Mơi trường sử dụng .............................................................................................................................. 34
Cách tiến hành huấn luyện mơ hình ..................................................................................................... 35

3.2.1
3.2.2


3.3

Kiểm tra mơ hình đã huấn luyện ................................................................................... 41

3.4

Các kết quả thực nghiệm ................................................................................................ 45

CHƯƠNG 4: XÂY DỰNG SẢN PHẨM DEMO ............................................................... 47
4.1
4.1.1
4.1.2

Vue ....................................................................................................................................................... 47
Flask ..................................................................................................................................................... 48

4.2

Phân tích thiết kế hệ thống ............................................................................................. 48
Biểu đồ use case hệ thống .................................................................................................................... 48
Mô tả chi tiết use case .......................................................................................................................... 49

4.2.1
4.2.2

4.3
4.3.1
4.3.2


Giới thiệu các framework sử dụng ................................................................................ 47

Các bước xây dựng sản phẩm demo .............................................................................. 50
Định nghĩa một endpoint API /api/getall ............................................................................................. 50
Định nghĩa endpoint /results ................................................................................................................ 52

1


Xây dựng giao diện bằng Vue .............................................................................................................. 52

4.3.3

4.4

Giao diện hệ thống và cách dùng ................................................................................... 55

KẾT LUẬN ......................................................................................................................... 57
TÀI LIỆU THAM KHẢO ................................................................................................... 58

2


DANH MỤC BẢNG BIỂU
Bảng 2. 1. So sánh giữa Bagging và Boosting ....................................... 21
Bảng 3. 1. Tổng quát các bộ dữ liệu ....................................................... 33
Bảng 3. 2. Kết quả test với bộ dữ liệu "archive" .................................... 46
Bảng 4. 1. Mô tả use case xem thơng tin dự đốn dữ liệu...................... 49
Bảng 4. 2. Mô tả use case xem kết quả dự đoán..................................... 50


3


DANH MỤC HÌNH ẢNH
Hình 2. 1. Hình ảnh mảng ma trận RGB 6x6x3 ..................................... 15
Hình 3. 1. Một số hình ảnh của bộ "archive" ......................................... 32
Hình 3. 2. Một số hình ảnh của bộ "Dog_Breed_Classification" ........... 33
Hình 4. 1. Bảng mơ tả use case ............................................................... 48
Hình 4. 2. Giao diện trang web ............................................................... 55
Hình 4. 3. Giao diện kết quả dự đoán ..................................................... 56

4


DANH MỤC NHỮNG TỪ VIẾT TẮT
CNN

Convolutional Neural Network

SVM

Support Vector Machine

AI

Artificial Intelligence

KNN

K-Nearest Neighbors


NBC

Naive Bayes Classifier

ReLU

Rectified Linear Unit

RGB

Red Green Blue

HTML

HyperText Markup Language

5


LỜI CẢM ƠN
Trước hết, chúng em xin gửi lời cảm ơn chân thành đến thầy Nguyễn
Mạnh Cường - người đã tận tình hướng dẫn, giúp đỡ chúng em hồn thành bài
báo cáo bài tập lớp môn Đồ án chuyên ngành này.
Sự hướng dẫn tận tình, chu đáo của thầy đã giúp chúng em hiểu rõ hơn về
nội dung bài học, từ đó có thể hồn thành bài báo cáo một cách đầy đủ và chính
xác. Bên cạnh đó, thầy cũng đã giúp chúng em rèn luyện kỹ năng viết báo cáo
khoa học, giúp chúng em có thêm kinh nghiệm trong việc nghiên cứu và thực
hiện các bài tập về sau.
Trong quá trình làm đồ án, cũng như là trong quá trình làm bài báo cáo,

khó tránh khỏi sai sót. Chúng em rất mong nhận được ý kiến đóng góp từ thầy
cô để học thêm được nhiều kinh nghiệm và sẽ hồn thành tốt hơn bài báo cáo
tới.
Nhóm chúng em xin chúc thầy cô luôn dồi dào sức khỏe, luôn vui vẻ và
thành công trong cuộc sống.

Sinh viên thực hiện
Vũ Đức Quảng
Nguyễn Thành Nam
Nguyễn Ngọc Long

6


LỜI MỞ ĐẦU
Trí tuệ nhân tạo (AI) là một lĩnh vực khoa học máy tính tập trung vào việc
tạo ra các hệ thống máy tính có thể thực hiện các nhiệm vụ thông minh mà con
người thường làm, chẳng hạn như học hỏi, suy luận và giải quyết vấn đề. Trí
tuệ nhân tạo đang đi vào cuộc sống của mỗi quốc gia, mỗi con người. Trí tuệ
nhân tạo đang biến những điều không tưởng thành hiện thực. Những căn nhà
thông minh, những robot chẩn đoán bệnh hay hoạt động trong lĩnh vực quân
sự, những chiếc xe không người lái. Được sự ủng hộ và thúc đẩy của các ông
lớn công nghệ như thế, chúng ta hiểu rằng tương lai sẽ còn nhiều và trên phạm
vi rộng rãi hơn thế nữa.
Ưu điểm của việc dùng trí tuệ nhân tạo là mọi thứ đều hoạt động bằng máy
tính và kết quả có nhanh chóng, các cấu trúc phân tích, dự đốn, tính tốn dữ
liệu có thể được học và điều chỉnh tự động hoàn toàn .
Sau nhiều thập kỷ đổi mới, Việt Nam đã có bước phát triển mạnh mẽ, trở
thành nền kinh tế hội nhập, năng động, hấp dẫn đầu tư trong khu vực. Phát triển
thuộc top nhanh trên thế giới. Trong bối cảnh phát triển và hội nhập quốc tế,

cùng với sự phát triển mạnh mẽ của cuộc cách mạng công nghiệp 4.0, Việt Nam
xác định tập trung phát triển cơng nghệ trí tuệ nhân tạo (AI) - một mũi nhọn,
được dự báo trở thành ngành công nghệ đột phá nhất trong 10 năm tới.
Tại Việt Nam, AI đã và đang được ứng dụng mạnh mẽ trong nhiều lĩnh
vực như y tế, giáo dục, nông nghiệp, giao thông, thương mại điện tử... Công
nghệ AI cũng đã mang lại cho Việt Nam sự phát triển vượt bậc thời gian qua.
Đặc biệt, AI đang được sử dụng mạnh mẽ trong phân loại động vật học. Động
vật học là ngành khoa học nghiên cứu về giới Động vật (Animalia), bao gồm
cấu trúc, phôi học, phân loại học, hành vi và phân bố của các động vật cả động
vật còn sinh tồn và tuyệt chủng, với cách thức chúng tương tác với hệ sinh thái.
Hiện nay, công nghệ AI đang từng bước tiến đến việc phân loại các giống
lồi. Trong đó, việc phân loại động vật cùng một loài nhưng nhiều chủng loại
khác nhau do sự lai tạo và đột biến gen đang được AI tiến hành phát triển.
Chính vì vậy, bằng việc ứng dụng các công nghệ trong các lĩnh vực như học
máy, xử lý ảnh, trí tuệ nhân tạo, bài báo cáo này tìm hiểu và nghiên cứu đề tài
“Phân loại giống chó bằng mơ hình phân lớp SVM”.
Với mục tiêu áp dụng sự phát triển mạnh mẽ của trí tuệ nhân tạo để giải
quyết bài tốn phân loại giống chó, nghiên cứu sẽ tập trung vào ứng dụng kỹ
7


thuật học sâu Deep Learning, học máy Machine Learning đồng thời kết hợp
cùng các thuật toán phân lớp Classification sau đó tiến hành thử nghiệm trên
một số giống chó khác nhau, xây dựng và ứng dụng thử nghiệm trên máy tính.
Việc thực hiện đề tài sẽ góp phần thúc đẩy trào lưu nghiên cứu, sản xuất các
sản phẩm phần mềm trí tuệ nhân tạo và mở ra nhiều hướng nghiên cứu, ứng
dụng nhận dạng bằng hình ảnh.
Để thực hiện đề tài, trước tiên cần nghiên cứu thực hiện khảo sát và phân
tích bài tốn nhận dạng giống chó. Sau đó là tiến hành thu thập và tiền xử lý bộ
dữ liệu huấn luyện cho các module trí tuệ nhân tạo. Dữ liệu tập trung vào một

số loại giống chó khác nhau và các lại giống chó lai. Tiếp theo là tập trung vào
việc nghiên cứu về các kỹ thuật có thể sử dụng cho bài tốn phân loại hình ảnh
bao gồm SVM, CNN, KNN, Transfer Learning. Trong đó, nhóm sẽ tập trung
nghiên cứu chi tiết về thuật toán SVM và áp dụng nó vào bài tốn phân loại
giống chó. Cuối cùng là tiến hành thực nghiệm, đánh giá kết quả và xây dựng
chương trình demo.
Đề tài được hồn thiện đã đóng góp những ý nghĩa về cả mặt khoa học và
thực tiễn. Về mặt khoa học, một mơ hình học SVM được sử dụng để xử
lý bài toán nhận dạng và phân lớp giống chó đã cho thấy những kết quả cải
thiện đáng kể so với các phương pháp khác về độ chính xác khi thực nghiệm.
Xét trên ý nghĩa thực tiễn, bài toán được giải quyết tốt sẽ mang lại nhiều lợi ích
cho nền động vật học nước nhà. Để áp dụng kết quả nghiên cứu đề tài vào thực
tế, chúng tơi đã phát triển một chương trình có chức năng chính như một trợ lý
ảo hỗ trợ phân loại giống chó.
Nội dung quyển báo cáo đồ án chuyên ngành sẽ bao gồm các chương như
sau:
Chương 1: Khảo sát và phát biểu bài toán
Trong chương 1, tiến hành khảo sát hiện trang tình trạng các giống chó
của Việt Nam cũng như trên thế giới để biết cụ thể và chi tiết. Sau đó, tiến hành
khảo sát những loại chó mới mà chưa có ai phân loại hay những loại chó mà
được tạo ra từ những giống chó cũ để có thể chuẩn đốn ra giống loại. Sau phần
khảo sát sẽ là phần nhận dạng về các loại giống chó qua hình ảnh.
Chương 2: Các kỹ thuật giải quyết bài toán
Sau khi đã phát biểu và xác định rõ ràng được u cầu bài tốn, là trình
bày các kỹ thuật giải quyết bài tốn hiện có cùng các ưu và nhược điểm của
8


chúng, cũng như các nghiên cứu nổi bật đã đạt được thành cơng nhất định từ
những kỹ thuật đó. Tiếp theo, đề xuất giải pháp cho bài toán được đặt ra.

Chương 3: Thực nghiệm
Tại chương 3, tập trung trình bày về quá trình thực nghiệm cũng như các
kết quả đạt được với kỹ thuật giải quyết bài toán được đề xuất ở chương 2. Tiến
hành so sánh kết quả thực nghiệm thu được từ phương pháp đề xuất giải quyết
bài với một số phương pháp phổ biến hiện nay và đưa ra nhận xét.
Phần kết luận:
Cuối cùng trong phần kết luật, tổng hợp các kết quả đạt được, các hướng
phát triển và mở rộng đề tài nghiên cứu trong tương lai.

9


CHƯƠNG 1: KHẢO SÁT VÀ PHÁT BIỂU BÀI TOÁN
1.1.

Nguồn gốc giống chó

Chó, có tên khoa học là Canis lupus familiaris, là một loài động vật cưng
phổ biến trên toàn thế giới và đã được thuần hóa từ sói khoảng hàng ngàn năm
trước [1].
Chó bắt đầu xuất hiện khoảng tầm 15.000 năm trước, lâu trước khi nông
nghiệp ra đời. Và lúc ấy, chó là một trong những giống lồi được thuần hóa
thành vật ni sớm nhất. Chúng tách ra từ lồi sói cổ, nhưng các nhà khoa học
khơng rõ rằng việc thuần hóa này xảy ra bên phía châu Âu hay châu Á.
Vấn đề này phức tạp bởi một lý do: các nhà khảo cổ học tìm thấy dấu vết
của lồi chó từ hàng ngàn năm trước ở cả hai đầu của lục địa Á Âu khổng lồ.
Những nghiên cứu mới nhất cho thấy rằng chó được thuần hóa ít nhất vào hai
thời điểm khác nhau, và ở hai phần khác nhau của thế giới.
1.2.


Đặc điểm sinh học

Chó có kích thước, hình dáng, màu lơng và tính cách đa dạng tùy theo
từng giống. Chúng có khả năng thích ứng và thay đổi để phù hợp với môi trường
và mục tiêu của con người.
Kích thước và hình dáng: Chó có sự biến đổi lớn về kích thước và hình
dáng tùy theo từng giống cụ thể. Chúng có thể từ nhỏ như Chihuahua với trọng
lượng khoảng 1 kg, đến lớn như Saint Bernard với trọng lượng lên đến 90 kg.
Hình dáng cũng thay đổi, ví dụ, Greyhound có hình thể mảnh khảnh và thon
dài, trong khi Bulldog có hình dạng rộng lớn và cơ bắp [1, 2].
Màu lơng: Lơng của chó có rất nhiều màu sắc khác nhau, bao gồm đen,
trắng, nâu, vàng, xám và nhiều biến thể màu khác nhau. Màu lông cũng biến
đổi tùy theo giống.
Tính cách và hành vi: Tính cách và hành vi của chó cũng đa dạng và thay
đổi tùy theo từng giống. Một số giống chó có tính cách thân thiện, trung thành
và hồ đồng, trong khi các giống khác có tính cách độc lập, năng động hoặc
bảo thủ. Các yếu tố di truyền và môi trường chăm sóc cũng có thể ảnh hưởng
đến tính cách và hành vi của chó.
Thời gian sống: Thời gian sống trung bình của một con chó thường dao
động từ 10 đến 13 năm, tuy nhiên, thời gian sống có thể biến đổi tùy theo giống,
10


kích thước, và điều kiện chăm sóc. Một số giống chó nhỏ có thể sống lâu hơn,
trong khi các giống lớn thường có thời gian sống ngắn hơn.
Dinh dưỡng: Chó là lồi ăn thịt, nhưng chúng đã thích nghi để ăn cả thực
phẩm thực vật trong quá trình co-evolution với con người. Chó cần một chế độ
dinh dưỡng cân đối với các thành phần như protein, chất béo, carbohydrate, và
các loại vi lượng chất để duy trì sức khỏe.
Sinh sản: Chó có khả năng sinh sản và sống sót trong nhiều môi trường

khác nhau. Thời kỳ mang thai của một con chó kéo dài khoảng 9 tuần và mỗi
lứa có thể có từ một vài con đến nhiều con, tùy thuộc vào giống. Con chó cái
thường có thể sinh sản một lứa con mỗi 6-12 tháng [2].
Tương tác xã hội: Chó là lồi xã hội và có thể tạo ra mối quan hệ mật thiết
với con người và các thành viên trong gia đình. Chúng thường sẵn sàng tương
tác với con người và có khả năng học và hiểu lời chỉ thị từ con người.
1.3.

Phân loại giống chó

Giống chó là nhóm chó có những đặc điểm chung về kích thước, hình
dáng, màu sắc lơng, cấu trúc cơ thể và tính cách. Các giống chó được phát triển
thơng qua q trình lai tạo và chọn lọc nhằm tạo ra những dòng chó có những
đặc điểm mong muốn và phục vụ cho các mục đích cụ thể như săn bắn, chăn
cừu, canh gác, dẫn đường, cảnh sát, cứu hộ, hoặc chỉ đơn giản là chó ni gia
đình. Mỗi giống chó có những tiêu chuẩn quy định đặc biệt để phân loại và
nhận biết chúng.
Phân loại giống chó là q trình xác định và phân loại các giống chó dựa
trên các tiêu chuẩn và đặc điểm quy định. Điều này giúp nhận biết và phân biệt
giữa các giống chó khác nhau, từ đó giúp cho việc chăm sóc, huấn luyện và
ni dưỡng chó trở nên dễ dàng và hiệu quả hơn. Quá trình phân loại giống chó
thường dựa trên các thơng số về kích thước, hình dáng, màu sắc lơng, cấu trúc
cơ thể và các đặc điểm khác của chó. Các tiêu chuẩn phân loại giống chó thường
được thiết lập bởi các tổ chức chó địa phương hoặc quốc tế như Fédération
Cynologique Internationale (FCI) hoặc American Kennel Club (AKC) [1].

11


1.4.


Tầm quan trọng của phân loại giống chó

Việc phân loại giống chó có tầm quan trong lớn đối với cả con người và
lồi chó trong nhiều lĩnh vực khác nhau như y học, sinh học hay chăn ni. Có
thể kể đến như:
• Tính năng và nhiệm vụ: Mỗi giống chó có những đặc điểm về hình
dáng, kích thước, màu lơng, tính cách và năng lực cụ thể. Phân loại giống chó
giúp con người lựa chọn chó phù hợp với mục đích cụ thể của họ. Ví dụ, một
số giống chó được chọn lựa cho cơng việc như cảnh sát, chó cứu hộ, hoặc chó
săn; trong khi những giống khác thích hợp cho cuộc sống trong gia đình như
chó bảo vệ, chó ni.
• Trong lĩnh vực thú y: Tính khả thi về sức khỏe: Phân loại giống chó
cũng có thể dự báo một số vấn đề về sức khỏe phổ biến mà một giống chó cụ
thể có thể gặp phải. Điều này giúp người ni chó chuẩn bị cho việc chăm sóc
và điều trị khi cần.
• Tính đa dạng giống chó: Việc duy trì sự đa dạng giống chó là quan
trọng để đảm bảo rằng có sự lựa chọn cho mọi nhu cầu của con người. Phân
loại giống chó giúp bảo vệ và duy trì những giống chó đặc biệt hoặc có nguy
cơ bị tuyệt chủng.
• Nghiên cứu và phát triển: Phân loại giống chó hỗ trợ việc nghiên cứu
và phát triển về giống chó, bao gồm việc tạo ra các giống mới thơng qua chương
trình lai tạo. Điều này có thể cải thiện sức khỏe, tính cách và khả năng của chó
trong tương lai.
• Phát triển chuẩn giống: Phân loại giống chó giúp xác định các chuẩn
giống cụ thể, bao gồm kích thước, hình dáng, màu lơng và tính cách, giúp đảm
bảo rằng giống chó được ni dưỡng tn theo những tiêu chuẩn này.
• Tạo ra các giống đặc biệt: Những nghiên cứu và cơng việc phân loại
giống chó có thể dẫn đến sự tạo ra các giống chó đặc biệt mới thơng qua việc
lai tạo chó. Những giống chó này có thể được tạo ra để có các đặc điểm cụ thể

hoặc để cải thiện sức khỏe và tính cách.
• Nghiên cứu về di truyền: Phân loại giống chó đóng vai trị quan trọng
trong việc nghiên cứu về di truyền. Chó là một mơ hình quan trọng cho nghiên
cứu di truyền vì có nhiều giống chó với các đặc điểm di truyền khác nhau. Điều
này có thể hỗ trợ nghiên cứu về di truyền và cảnh báo về các bệnh di truyền
ảnh hưởng đến cả chó và con người.
12


• Chó cũng được sử dụng làm thú cưng trợ thính hoặc chó dẫn đường cho
người khiếm thính hoặc mù. Phân loại giống chó có thể giúp chọn ra những
giống chó có tính cách và khả năng tốt cho các mục đích này.
• Phân loại giống chó đóng vai trị quan trọng trong nghiên cứu về di
truyền, hành vi động vật, và thậm chí cả nghiên cứu về tâm lý học động vật.
Các giống chó cung cấp các mơ hình thực nghiệm hữu ích để hiểu sâu hơn về
nhiều khía cạnh của sinh học và tâm lý học.
• Chó thường được sử dụng trong nhiều nhiệm vụ an ninh như công việc
canh gác, cảnh sát, quân đội, và an ninh sân bay. Việc phân loại giống chó có
thể giúp lựa chọn và đào tạo chó cho các mục tiêu an ninh cụ thể.
1.5.

Bài tốn phân loại giống chó trong trí tuệ nhân tạo

Bài tốn phân loại giống chó là một bài tốn nhận dạng và phân loại hình
ảnh chó vào các giống chó tương ứng. Đây là một bài tốn quan trọng trong
lĩnh vực nhận dạng hình ảnh và trí tuệ nhân tạo. Bài tốn này có thể được giải
quyết thông qua các phương pháp máy học và học sâu.
Đầu vào của bài tốn phân loại giống chó trong trí tuệ nhân tạo là một
hình ảnh chó, thường được biểu diễn dưới dạng một ma trận các điểm ảnh. Hình
ảnh này có thể được đọc vào và xử lý bằng các thư viện hoặc cơng cụ phân tích

hình ảnh.
Đầu ra của bài tốn là nhãn hoặc tên của giống chó tương ứng với hình
ảnh đó. Khi mơ hình phân loại chó được áp dụng, kết quả đầu ra sẽ chỉ ra giống
chó mà hình ảnh đó thuộc về. Ví dụ, nếu hình ảnh là một con chó Golden
Retriever, đầu ra sẽ là "Golden Retriever".
Bài tốn phân loại giống chó là một bài tốn quan trọng trong lĩnh vực
nhận dạng hình ảnh và trí tuệ nhân tạo. Qua việc phân loại chó vào từng giống
chó tương ứng, chúng ta có thể nhận biết và hiểu rõ hơn về các đặc điểm và
tính chất của từng giống chó, từ đó giúp cho việc chăm sóc, huấn luyện và ni
dưỡng chó trở nên dễ dàng và hiệu quả hơn.
1.6.

Ứng dụng mơ hình SVM vào bài tốn phân loại giống chó

Bài tốn sẽ được giải quyết bằng cách sử dụng Support Vector Machine
(SVM),đây là một trong những thuật toán phân loại truyền thống mạnh mẽ, có
thể giải quyết bài tốn phân loại giống chó dựa trên hình ảnh. SVM là một cơng
13


cụ mạnh trong máy học và được sử dụng rộng rãi trong các bài tốn phân
loại.Trong đó cần phải tìm hiểu cách áp dụng SVM vào bài toán này, từ việc
tiền xử lý dữ liệu hình ảnh cho đến xây dựng và huấn luyện mơ hình SVM.
Với đầu vào của bài tốn là hình ảnh của một loại chó. Hình ảnh này có
thể có kích thước hoặc độ phân giải khác nhau.Chính vì thế mà cần phải tiền
xử lý dữ liệu để chuẩn hóa thành một dữ liệu chuẩn rồi mới đưa vào mơ hình
để nhận dạng. Trong bài tốn này nhóm sử dụng bộ dữ liệu ….( điền sau) để
làm tập dữ liệu huấn luyện với 70% bộ dữ liệu sẽ dùng làm tập training và 30%
còn lại sử dụng cho tập test.
Còn với đầu ra của dữ liệu là tên của giống chó của hình ảnh đầu vào được

mơ hình dự đốn.Ví dụ như: Golden, BullDog… Ngồi ra cịn có cả độ chính
xác của mơ hình huấn luyện và đồ thị biểu diễn độ chính xác mơ hình huấn
luyện.
Mục tiêu chính của bài tốn phân loại giống chó là phân biệt và xác định
chính xác giống chó mà hình ảnh đầu vào thuộc về.
Kỳ vọng là mơ hình hoặc hệ thống phân loại có khả năng dự đốn chính
xác giống chó dựa trên dữ liệu hình ảnh. Điều này giúp người dùng nhận biết
và xác định giống chó một cách tự động và hiệu quả.

14


CHƯƠNG 2: CÁC KỸ THUẬT GIẢI QUYẾT BÀI TOÁN
2.1

Phương hướng tiếp cận bài tốn

Q trình giải quyết bài tốn bắt đầu bằng việc thu thập và tiền xử lý các
bộ dữ liệu thực nghiệm liên quan tới phân loại giống chó. Tiếp đến là nghiên
cứu và áp dụng kỹ thuật trí tuệ nhân tạo để nhận dạng và phân loại giống chó.
2.2

Một số kỹ thuật giải quyết bài tốn

2.2.1

Thuật tốn CNN-Convolutional Neural Network

Trong mạng neural, mơ hình mạng neural tích chập (CNN) là 1 trong
những mơ hình để nhận dạng và phân loại hình ảnh. Trong đó, xác định đối

tượng và nhận dạng khuôn mặt là 1 trong số những lĩnh vực mà CNN được sử
dụng rộng rãi.
CNN phân loại hình ảnh bằng cách lấy 1 hình ảnh đầu vào, xử lý và phân
loại nó theo các hạng mục nhất định (Ví dụ: Chó, Mèo, Hổ, ...).
Máy tính coi hình ảnh đầu vào là 1 mảng pixel và nó phụ thuộc vào độ
phân giải của hình ảnh. Dựa trên độ phân giải hình ảnh, máy tính sẽ thấy H x
W x D (H: Chiều cao, W: Chiều rộng, D: Độ dày). Ví dụ: Hình ảnh là mảng ma
trận RGB 6x6x3 (3 ở đây là giá trị RGB) [3].

Hình 2. 1. Hình ảnh mảng ma trận RGB 6x6x3
(Nguồn: hình ảnh được trích dẫn từ tài liệu tham khảo [3])
15


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 (Kernels), 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à tồ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ị.
Lớp tích chập - Convolution Layer
Là lớp chính trong CNN, nó thực hiện việc tạo ra các bản đồ đặc trưng từ
hình ảnh đầu vào bằng cách áp dụng các bộ lọc (kernel) thơng qua phép tích
chập. Bản đồ đặc trưng giúp mạng nơ-ron "học" các đặc điểm quan trọng trong
hình ảnh như cạnh, góc, hoặc kết cấu [3].
Khi nhắc đến lớp Convolutional Layer, chúng ta cần làm rõ một số khái
niệm đó là: Filter Map, Stride, Padding, Feature Map:
 Filter Map: Những Filter Map này có thể xem là một ma trận 3 chiều, bao

gồm những con số và các con số chính là Parameter.
 Stride: Trong CNN, Stride được hiểu là khi chúng ta dịch chuyển Filter Map

theo Pixel và dựa vào giá trị từ trái sang phải. Stride đơn giản là biểu thị sự
dịch chuyển này.
 Padding: Padding chính là những giá trị 0 được thêm vào lớp Input.ư
 Feature Map: Đây là kết quả hiển thị sau mỗi lần Filter Map quét qua Input.
Cứ mỗi lần quét như vậy, bạn sẽ thấy sự xuất hiện của q trình tính tốn
được xảy ra.
Lớp gộp – Pooling layer
Là lớp dùng để giảm kích thước của bản đồ đặc trưng, giúp giảm lượng
tính tốn và kiểm sốt overfitting. Lớp gộp thường sử dụng phép tổng hợp
(max-pooling hoặc average-pooling) để chọn ra giá trị lớn nhất hoặc trung bình
từ một vùng nhỏ trên bản đồ đặc trưng.
Tại Pooling Layer, khi bạn sử dụng lớp Max Pooling thì số lượng
Parameter có thể sẽ giảm đi. Vì vậy, Convolutional Neural Network sẽ xuất
hiện nhiều lớp Filter Map, mỗi Filter Map đó sẽ cho ra một Max Pooling khác
nhau.

16


Lớp kết nối đầy đủ - Fully Connected Layer
Sau khi thơng tin đã được trích xuất từ các lớp tích chập và gộp, thông tin
này sẽ được đưa vào lớp kết nối đầy đủ để thực hiện việc phân loại hoặc dự
đoán. Đây là lớp cuối cùng trong CNN và thường được sử dụng trong bài tốn
phân loại hình ảnh.
Hàm phi tuyến – ReLU ( Rectified Linear Unit)
ReLU là hàm kích hoạt trong mạng CNN, được gọi là activation function.
Nó có tác dụng mơ phỏng những nơron có tỷ lệ truyền xung qua axon. Các hàm
activation khác như Leaky, Sigmoid, Leaky, Maxout,... tuy nhiên hiện nay, hàm
ReLU được sử dụng phổ biến và thông dụng nhất.
Hàm này được sử dụng cho những yêu cầu huấn luyện mạng nơron với

những ưu điểm nổi bật điển hình là hỗ trợ tính tốn nhanh hơn. Trong quá trình
dùng hàm ReLU, bạn cần chú ý đến việc tùy chỉnh những learning rate và dead
unit. Những lớp ReLU được dùng sau khi filter map được tính và áp dụng ReLU
lên các giá trị của filter map.
Ưu điểm
 Khả năng trích xuất đặc trưng tự động: CNN có khả năng tự động học cách








trích xuất các đặc trưng quan trọng từ dữ liệu đầu vào, như cạnh, góc, và các
đặc điểm cấu trúc khác mà khơng cần đến việc lập trình chúng một cách
tường minh.
Tính phi tuyến và khả năng biểu diễn: CNN giới thiệu tính phi tuyến vào mơ
hình, giúp nó học được các biểu diễn phức tạp của dữ liệu, như các mối quan
hệ khơng tuyến tính giữa các đặc trưng.
Phù hợp cho dữ liệu lưới: CNN được phát triển ban đầu để xử lý dữ liệu lưới
như hình ảnh và video, vì vậy chúng rất hiệu quả trong việc xử lý các tình
huống như thị giác máy tính.
Tiền xử lý thấp: CNN thường khơng địi hỏi nhiều tiền xử lý dữ liệu so với
các mạng nơ-ron truyền thống.
Hiệu năng cao: CNN thường cho hiệu năng ấn tượng trong các ứng dụng thị
giác máy tính và có thể được tối ưu hóa để chạy nhanh trên phần cứng đặc
thù như GPU.

17



Nhược điểm
 Cần nhiều dữ liệu huấn luyện: Để huấn luyện một CNN hiệu quả cần có một









lượng lớn dữ liệu huấn luyện, điều này có thể là một thách thức đối với các
ứng dụng có ít dữ liệu.
Tốc độ tính tốn: CNN u cầu tốc độ tính tốn cao, đặc biệt là trong giai
đoạn huấn luyện. Điều này có thể đòi hỏi phần cứng mạnh như GPU để đảm
bảo hiệu suất.
Cấu trúc mơ hình phức tạp: CNN có thể có cấu trúc phức tạp với nhiều lớp
và tham số, điều này có thể làm tăng thời gian và nguồn lực cần thiết cho
việc huấn luyện và triển khai mô hình.
Khả năng kháng nhiễu thấp: CNN có thể bị ảnh hưởng bởi nhiễu trong dữ
liệu đầu vào, đặc biệt là khi dữ liệu không được tiền xử lý cẩn thận hoặc khi
có nhiễu mơi trường.
Khơng thể giải quyết tồn bộ loại vấn đề: CNN thích hợp cho các vấn đề thị
giác máy tính và xử lý ảnh, nhưng khơng phải lúc nào cũng là lựa chọn tốt
cho các loại dữ liệu khác nhau như văn bản hoặc âm thanh.

2.2.2


Thuật toán Random Forests

Random Forest là thuật tốn học có giám sát (supervised learning). Nó có
thể được sử dụng cho cả phân lớp và hồi quy. Nó cũng là thuật tốn linh hoạt
và dễ sử dụng nhất [4].
Mơ hình Random Forest được huấn luyện dựa trên sự phối hợp giữa luật
kết hợp (Ensembling) và quá trình lấy mẫu tái lặp (Bootstrapping). Cụ thể thuật
toán này tạo ra nhiều cây quyết định (Decision Tree) mà mỗi cây quyết định
được huấn luyện dựa trên nhiều mẫu con khác nhau và kết quả dự báo là bầu
cử (voting) từ toàn bộ những cây quyết định. Như vậy một kết quả dự báo được
tổng hợp từ nhiều mơ hình nên kết quả của chúng sẽ khơng bị chệch. Đồng thời
kết hợp kết quả dự báo từ nhiều mơ hình sẽ có phương sai nhỏ hơn so với chỉ
một mơ hình. Điều này giúp cho mơ hình khắc phục được hiện tượng quá khớp
(overfitting).
Random forests có nhiều ứng dụng, chẳng hạn như công cụ đề xuất, phân
loại hình ảnh và lựa chọn tính năng.
Mơ hình kết hợp, hay còn được gọi là ensemble model, là một kỹ thuật
trong machine learning và data mining, sử dụng nhiều mô hình dự đốn để tạo
ra một dự đốn cuối cùng. Ý tưởng đằng sau mơ hình kết hợp là kết hợp sức
18


mạnh của nhiều mơ hình khác nhau để cải thiện độ chính xác và hiệu suất dự
đốn.
Có nhiều phương pháp để xây dựng mơ hình kết hợp, nhưng hai phương
pháp phổ biến nhất là bagging và boosting.
Bagging (Bootstrap Aggregating) là một phương pháp Ensemble Learning
(học tập kết hợp) được sử dụng trong Machine Learning để nâng cao độ chính
xác của mơ hình dự đốn. Trong Bagging, chúng ta tạo ra nhiều mơ hình dự
đốn độc lập với nhau từ các tập dữ liệu con được lấy mẫu ngẫu nhiên với sự

thay thế từ tập dữ liệu huấn luyện ban đầu. Sau đó, chúng ta kết hợp các dự
đốn của các mơ hình này để đưa ra dự đốn cuối cùng.
Khi áp dụng Bagging cho cây quyết định, chúng ta sẽ tạo ra nhiều cây
quyết định độc lập với nhau từ các tập dữ liệu con được lấy mẫu ngẫu nhiên
với sự thay thế từ tập dữ liệu huấn luyện ban đầu. Mỗi cây quyết định trong tập
các cây được huấn luyện với các tập dữ liệu con khác nhau, đồng thời có thể có
các siêu tham số khác nhau, như số lượng đặc trưng được chọn hoặc độ sâu của
cây.
Sau đó, chúng ta kết hợp các dự đốn của các cây quyết định này bằng
cách lấy trung bình các dự đoán của các cây quyết định để đưa ra dự đốn cuối
cùng.
Một ví dụ về Bagging trong cây quyết định là Random Forest. Random
Forest là một mơ hình dự đốn được xây dựng bằng cách sử dụng nhiều cây
quyết định độc lập với nhau và kết hợp dự đoán của chúng để đưa ra kết quả
cuối cùng. Các cây quyết định trong Random Forest được huấn luyện với các
tập dữ liệu con được lấy mẫu ngẫu nhiên với sự thay thế từ tập dữ liệu huấn
luyện ban đầu.
Việc Bagging được sử dụng khi mục tiêu của chúng ta là giảm phương sai
của cây quyết định. Ở đây, khái niệm là tạo một vài tập dữ liệu con từ mẫu huấn
luyện, được chọn ngẫu nhiên với sự thay thế. Bây giờ mỗi bộ sưu tập dữ liệu
tập hợp con được sử dụng để chuẩn bị cây quyết định của chúng, do đó, chúng
tơi kết thúc với một tập hợp các mơ hình khác nhau. Giá trị trung bình của tất
cả các giả định từ nhiều tress được sử dụng, điều này mạnh hơn một cây quyết
định đơn lẻ.
Random Forest là một sự mở rộng qua việc Bagging. Cần thêm một bước
để dự đoán một tập hợp con dữ liệu ngẫu nhiên. Nó cũng thực hiện lựa chọn
19


ngẫu nhiên các tính năng thay vì sử dụng tất cả các tính năng để phát triển cây.

Khi chúng ta có nhiều cây ngẫu nhiên, nó được gọi là Random Forest.
Boosting là một quy trình tổng hợp khác để tạo ra một tập hợp các yếu tố
dự đốn. Nói cách khác, chúng tôi sắp xếp các cây liên tiếp, thường là các mẫu
ngẫu nhiên và ở mỗi bước, mục tiêu là giải quyết sai số thuần từ các cây trước
đó.
Boosting là một kỹ thuật trong học máy được sử dụng để cải thiện khả
năng dự đoán của một thuật toán học máy bằng cách tập trung vào việc học từ
các trường hợp khó khăn hơn. Nó hoạt động bằng cách tạo ra các phiên bản của
mơ hình học máy ban đầu và tập trung vào việc xử lý các trường hợp bị sai lệch
của mơ hình trước đó, cho đến khi đạt được một mức độ chính xác mong muốn.
Các thuật toán boosting thường sử dụng trong cây quyết định bao gồm
AdaBoost và Gradient Boosting. Với AdaBoost, các cây quyết định được tạo
ra tuần tự, mỗi cây sẽ trọng số lại các mẫu dữ liệu, để tập trung vào các mẫu dữ
liệu bị sai lệch. Với Gradient Boosting, mỗi cây quyết định được xây dựng dựa
trên các trường hợp khó khăn trong q trình học của mơ hình trước đó.
Nếu một đầu vào nhất định bị phân loại sai theo lý thuyết, thì trọng số của
nó sẽ tăng lên để giả thuyết sắp tới có nhiều khả năng phân loại nó chính xác
hơn bằng cách hợp nhất tồn bộ tập hợp cuối cùng chuyển đổi những người học
yếu thành các mơ hình hoạt động tốt hơn.
Gradient Boosting là sự mở rộng của quy trình Boosting.
Gradient Boosting = Gradient Descent + Boosting
Nó sử dụng một thuật tốn giảm độ dốc có thể tối ưu hóa bất kỳ chức năng
mất mát nào có thể phân biệt được. Một cụm cây được xây dựng riêng lẻ và các
cây riêng lẻ được tổng hợp liên tiếp. Cây tiếp theo cố gắng khôi phục sự mất
mát (Đó là sự khác biệt giữa giá trị thực tế và giá trị dự đốn).
Ví dụ về sử dụng boosting trong cây quyết định có thể là trong bài tốn
phân loại email, nơi có các email rác và email hợp lệ. Mơ hình cây quyết định
ban đầu có thể không phân loại được một số email rác, nhưng thông qua
boosting, mơ hình mới sẽ được tập trung vào việc học từ các trường hợp khó
khăn này và đạt được độ chính xác cao hơn.


20


Bagging vs Boosting
Bảng 2. 1. So sánh giữa Bagging và Boosting

Boosting

Bagging

Các tập hợp con dữ liệu đào tạo
Mỗi tập hợp con mới chứa các
khác nhau được rút ngẫu nhiên với sự thành phần đã bị phân loại sai bởi
thay thế từ tồn bộ tập dữ liệu đào các mơ hình trước đó.
tạo.
Nếu bộ phân loại khơng ổn định
Nếu bộ phân loại ổn định và
(phương sai cao), thì chúng ta cần áp đơn giản (độ lệch cao), thì chúng ta
dụng tính năng Bagging
cần áp dụng Boosting.
Mọi mơ hình đều nhận được một
Các mơ hình được tính theo
trọng lượng như nhau
hiệu suất của chúng.
Mục tiêu để giảm phương sai,
Mục tiêu để giảm độ chệch,
không thiên vị
không phải phương sai.
Đây là cách dễ nhất để kết nối các

Đó là một cách kết nối các dự
dự đoán thuộc cùng một loại
đoán thuộc về các loại khác nhau.
Mọi mơ hình đều được xây dựng
Các mơ hình mới bị ảnh
độc lập
hưởng bởi hiệu suất của mơ hình đã
phát triển trước đó.

Lấy mẫu tái lập (bootstrapping)
Thuật tốn Random Forest sử dụng mẫu tái lập (bootstrapping) để xây
dựng cây quyết định trong mỗi cây con trong rừng. Quá trình lấy mẫu tái lập
được thực hiện như sau:
Đầu tiên, chúng ta xác định số lượng cây quyết định (decision tree) mà
chúng ta muốn tạo trong rừng Random Forests.
Với mỗi cây quyết định, chúng ta thực hiện quá trình lấy mẫu tái lập
(bootstrapping) từ tập dữ liệu huấn luyện ban đầu. Quá trình này sẽ tạo ra một
tập dữ liệu con mới có kích thước bằng với tập dữ liệu gốc, nhưng được tạo ra
bằng cách chọn ngẫu nhiên các mẫu từ tập dữ liệu gốc với việc tái lập (cho phép
21


một mẫu xuất hiện nhiều lần hoặc không xuất hiện). Mục đích của việc lấy mẫu
tái lập là tạo sự đa dạng trong các cây trong rừng.
Sau khi có tập dữ liệu con mới từ quá trình lấy mẫu tái lập, chúng ta sẽ
xây dựng một cây quyết định trên tập dữ liệu con này. Quá trình xây dựng cây
quyết định có thể sử dụng các thuật tốn như CART (Classification and
Regression Trees) để tìm ra các quy tắc phân loại dựa trên các đặc trưng của dữ
liệu.
Quá trình xây dựng cây quyết định được lặp lại cho đến khi số lượng cây

quyết định đã đạt đủ.
Khi cần dự đoán trên dữ liệu mới, Random Forest sẽ truyền dữ liệu mới
qua mỗi cây quyết định trong rừng và tính tốn đầu ra dự đốn từ mỗi cây. Sau
đó, kết quả dự đốn cuối cùng được tính tốn dựa trên đa số phiếu bầu (majority
vote) của các cây quyết định.
Quá trình lấy mẫu tái lập trong Random Forest giúp tạo ra sự ngẫu nhiên
và đa dạng trong các cây quyết định, từ đó giảm thiểu hiện tượng overfitting và
tăng tính tổng qt của mơ hình. Ngồi ra, việc sử dụng majority vote từ nhiều
cây quyết định cũng giúp cân nhắc và ổn định kết quả dự đốn.
Đánh giá mơ hình dựa trên mẫu nằm ngoài túi (out of bag)
Phương pháp bỏ túi cho phép lấy mẫu lặp lại các quan sát trên tập huấn
luyện nên sẽ có một lượng lớn những quan sát chưa được đưa vào các tập huấn
luyện con. Tập hợp những mẫu này gọi là mẫu nằm ngoài túi (out of bag), được
viết tắt là oob. Những dữ liệu này được lựa chọn ngẫu nhiên, độc lập và hồn
tồn khơng được học từ mơ hình nên có thể được sử dụng để đánh giá mơ hình
tương đương với một tập kiểm tra. Trong sklearn.ensemble.BaggingClassifier
chúng ta sử dụng thêm tuỳ chọn oob_score=True để đánh giá mơ hình dựa trên
các mẫu oob [5].
Mơ hình Random Forests
Mơ hình rừng cây sẽ áp dụng cả hai phương pháp học kết hợp (ensemble
learning) và lấy mẫu tái lập (bootstrapping) [5]. Thứ tự của q trình tạo thành
một mơ hình rừng cây như sau:
 Lấy mẫu tái lập một cách ngẫu nhiên từ tập huấn luyện để tạo thành một tập
dữ liệu con.

22


 Lựa chọn ra ngẫu nhiên d biến và xây dựng mơ hình cây quyết định dựa trên
những biến này và tập dữ liệu con ở bước 1. Chúng ta sẽ xây dựng nhiều cây

quyết định nên bước 1 và 2 sẽ lặp lại nhiều lần.
 Thực hiện bầu cử hoặc lấy trung bình giữa các cây quyết định để đưa ra dự
báo.
Kết quả dự báo từ mơ hình rừng cây là sự kết hợp của nhiều cây quyết
định nên chúng tận dụng được trí thơng minh đám đơng và giúp cải thiện độ
chính xác so với chỉ sử dụng một mơ hình cây quyết định.
Nếu như mơ hình cây quyết định thường bị nhạy cảm với dữ liệu ngoại lai
(outlier) thì mơ hình rừng cây được huấn luyện trên nhiều tập dữ liệu con khác
nhau, trong đó có những tập được loại bỏ dữ liệu ngoại lai, điều này giúp cho
mơ hình ít bị nhạy cảm với dữ liệu ngoại lai hơn.
Sự kết hợp giữa các cây quyết định giúp cho kết quả ít bị chệch và phương
sai giảm. Như vậy chúng ta giảm thiểu được hiện tượng quá khớp ở mơ hình
rừng cây, một điều mà mơ hình cây quyết định thường xuyên gặp phải.
Cuối cùng các bộ dữ liệu được sử dụng từ những cây quyết định đều xuất
phát từ dữ liệu huấn luyện nên quy luật học được giữa các cây quyết định sẽ
gần tương tự như nhau và tổng hợp kết quả giữa chúng không có xu hướng bị
chệch.
2.2.3

Thuật tốn Naive Bayes
Giới thiệu

Naive Bayes Classification (NBC) – thuật toán phân loại Naive Bayes - là
một thuật toán dựa trên định lý Bayes về lý thuyết xác suất để đưa ra các phán
đoán cũng như phân loại dữ liệu dựa trên các dữ liệu được quan sát và thống
kê, được ứng dụng rất nhiều trong các lĩnh vực Machine learning dùng để đưa
các dự đốn có độ chính xác cao, dựa trên một tập dữ liệu đã được thu thập.
NBC thuộc vào nhóm học máy có giám sát [6].
Định lý Bayes
Định lý Bayes cho phép tính xác suất xảy ra của một sự kiện ngẫu nhiên

A khi biết sự kiện liên quan B đã xảy ra. Xác suất này được ký hiệu là P(A|B),
và đọc là “xác suất của A nếu có B”. Đại lượng này được gọi xác suất có điều
kiện hay xác suất hậu nghiệm vì nó được rút ra từ giá trị được cho của B hoặc
phụ thuộc vào giá trị đó [6].
23


Theo định lý Bayes, P(A|B) sẽ phụ thuộc vào 3 yếu tố:
- Xác suất xảy ra A của riêng nó, khơng quan tâm đến B. Kí hiệu là P(A).
- Xác suất xảy ra B của riêng nó, khơng quan tâm đến A. Kí hiệu là P(B).
- Xác suất xảy ra B khi biết A xảy ra. Kí hiệu là P(B|A). Đại lượng này
gọi là khả năng (likelihood) xảy ra B khi biết A đã xảy ra.
Ở trên ta có thể thấy xác suất xảy ra của sự kiện A phụ thuộc và xác suất
của sự kiện B, nhưng trong thực tế xác suất A có thể phụ thuộc vào xác suất
của nhiều các giác thuyết khác có thể là B1, B2, B3 … Bn. Vậy định luật Bayes
có thể được mở rộng bằng cơng thức sau:
Trên thực tế thì ít khi tìm được dữ liệu mà các thành phần là hoàn toàn độc
lập với nhau. Tuy nhiên giả thiết này giúp cách tính tốn trở nên đơn giản,
training data nhanh, đem lại hiệu quả bất ngờ với các lớp bài tốn nhất định.
Naive Bayes Classifier
Naive Bayes là một trong nhóm các thuật toán áp dụng định lý Bayes với
một giả định khá ngây thơ - đúng nghĩa đen của từ Naive, rằng mọi features
đầu vào đều độc lập với nhau. Bạn có thể hiểu features ở đây là danh sách các
biến đầu vào: độ tuổi, giới tính, mức lương, tình trạng hơn nhân,... Ví dụ 2 biến
độc lập là: size giày và giới tính của bạn. Ví dụ 2 biến phụ thuộc là: số tiền
quảng cáo bỏ ra và doanh số thu được [7].
Naive Bayes là bộ phân loại theo xác suất (probability classifier) nên
chúng ta sẽ đi tính tốn xác suất bằng cách sử dụng định lý Bayes. Ví dụ khi
bạn nhận được một tấm ảnh chứa một chữ số bất kì từ 0- 9, bạn sẽ đi tính toán
xác suất ảnh này với 10 con số từ 0-9 P(8| Ảnh) = x, P(7| Ảnh)=y, ..., sau đó

chọn ra cặp nào có xác suất cao nhất thì đấy chính là kết quả. Naive Bayes
Classifier đã được áp dụng thành cơng trong nhiều lĩnh vực, một trong số đó là
Xử lý ngơn ngữ tự nhiên (Natural Language Processing).
2.2.4

Thuật tốn Transfer Learning

Transfer learning là một kỹ thuật trong Machine Learning, cho phép sử
dụng các mơ hình đã được huấn luyện trước đó trên một tập dữ liệu để giải
quyết các vấn đề khác [8].
Khi áp dụng transfer learning, chúng ta có thể sử dụng các kiến thức đã
học từ các mô hình có kết quả hiệu quả cao và sử dụng chúng để giúp huấn
24


×