TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
----- 🕮 -----
BÁO CÁO BÀI TẬP LỚN
HỌC PHẦN: ĐỒ ÁN CHUYÊN NGÀNH
ĐỀ TÀI: PHÂN LOẠI GIỐNG CHÓ BẰNG MẠNG NƠ RON
TÍCH CHẬP
Giảng viên hướng dẫn
Ts. Nguyễn Mạnh Cường
Nhóm thực hiện:
Nhóm 22
Thành viên nhóm:
Phan Hồng Phong
2020605552
Nguyễn Quang Hiếu
2020606997
Nguyễn Tuấn Vũ
2020605541
Lớp
2023IT60520002
Khóa: 15
Hà Nội - 2023
MỤC LỤC
DANH MỤC HÌNH ẢNH ....................................................................................... iv
DANH MỤC TỪ VIẾT TẮT .................................................................................. vi
LỜI CẢM ƠN ........................................................................................................... 1
LỜI MỞ ĐẦU ........................................................................................................... 2
CHƯƠNG 1. PHÁT BIỂU BÀI TOÁN .................................................................. 4
1.1. Tổng quan về học máy và bài toán nhận dạng ....................................... 4
1.1.1. Tổng quan về học máy .................................................................... 4
1.1.2. Bài toán nhận dạng trong học máy ................................................. 5
1.2. Bài toán nhận dạng giống chó qua hình ảnh .......................................... 5
1.2.1. Lý do lựa chọn đề tài ....................................................................... 5
1.2.2. Giới hạn và phạm vi nghiên cứu ..................................................... 6
1.2.3. Đầu vào và đầu ra bài toán ............................................................ 7
1.2.4. Ràng buộc của bài toán .................................................................. 7
1.2.5. Ứng dụng và thách thức của bài toán ............................................. 8
1.2.6. Phát biểu bài toán ........................................................................... 8
1.3. Các kỹ thuật giải quyết bài toán ............................................................. 9
1.3.1. Lý thuyết mạng nơ ron tích chập (CNNs) ....................................... 9
1.3.2. Xử lý ảnh và trích xuất đặc trưng ................................................. 10
1.3.3. Thu thập dữ liệu và chuẩn bị tập dữ liệu ...................................... 10
1.3.4. Đánh giá mô hình .......................................................................... 10
CHƯƠNG 2. PHƯƠNG PHÁP ỨNG DỤNG ...................................................... 11
2.1. Phương pháp tiếp cận bài toán ............................................................. 11
2.2. Các kỹ thuật giải quyết bài toán đề xuất .............................................. 12
2.2.1. Lý thuyết về mạng CNN ................................................................ 12
2.2.2. Transfer Learning ......................................................................... 15
2.2.3. Mơ hình VGG ................................................................................ 18
2.2.4. Mơ hình MobileNet ....................................................................... 19
ii
2.3. Các thư viện sử dụng trong bài toán .................................................... 22
2.3.1. Numpy ........................................................................................... 22
2.3.2. Pandas ........................................................................................... 24
2.3.3. Keras ............................................................................................. 25
2.3.4. Tensorflow ..................................................................................... 27
2.3.5. OpenCV ......................................................................................... 29
CHƯƠNG 3. TIẾN HÀNH THỰC NGHIỆM ..................................................... 31
3.1. Dataset .................................................................................................. 31
3.2. Chương trình ứng dụng ........................................................................ 31
3.2.1. Import các thư viện ....................................................................... 31
3.2.2. Xử lý data ...................................................................................... 32
3.2.3. Mơ hình bài tốn ........................................................................... 34
3.2.4. Train .............................................................................................. 37
3.2.5. Kết quả .......................................................................................... 38
CHƯƠNG 4. Xây DỰNG CHƯƠNG TRÌNH DEMO ........................................ 40
4.1. Giới thiệu về chương trình ................................................................... 40
4.2. Thiết kế giao diện và chức năng chính ................................................ 41
KẾT LUẬN ............................................................................................................. 45
TÀI LIỆU THAM KHẢO...................................................................................... 46
iii
DANH MỤC HÌNH ẢNH
Hình 2.1 Mơ hình CNN ................................................................................... 12
Hình 2.2 Phép tích chập với bộ lọc (nguồn internet) ...................................... 13
Hình 2.3 Phép MaxPooling (2x2), stride=2 .................................................... 14
Hình 2.4 Sơ đồ so sánh hiệu suất mơ hình ...................................................... 15
Hình 2.5 Các đặc trưng học được từ mạng CNN ............................................ 16
Hình 2.6 Kiến trúc của mạng VGG16 được sử dụng làm base network ........ 17
Hình 2.7 Kiến trúc base network kết hợp với fully connected layers ............. 18
Hình 2.8 Mơ hình học sâu VGG ..................................................................... 18
Hình 2.9 Mơ hình học sâu MobileNet............................................................. 19
Hình 2.10 Depthwise Separable Convolutions ............................................... 20
Hình 2.11 Giảm số lượng tính tốn ................................................................. 21
Hình 2.12 Sự khác biệt CNN vs MobileNet ................................................... 22
Hình 2.13 Thư viện Numpy ............................................................................ 23
Hình 2.14 Thư viện Pandas ............................................................................. 24
Hình 2.15 Thư viện keras ................................................................................ 26
Hình 2.16 Biểu đồ thống kê thư viện sử dụng ................................................ 26
Hình 2.17 Thư viện tensorFLow ..................................................................... 27
Hình 2.18 Mơ hình thống kê thư viện ............................................................. 29
Hình 2.19 Thư viện OpenCv ........................................................................... 29
Hình 3.1 Import các thư viện .......................................................................... 31
Hình 3.2 Download dataset ............................................................................. 32
Hình 3.3 Giải nén data..................................................................................... 32
Hình 3.4 Đọc file train.csv .............................................................................. 32
Hình 3.5 Gán ảnh và label ............................................................................... 33
Hình 3.6 Chuẩn hóa dữ liệu cho data .............................................................. 33
Hình 3.7 In ra kích thước train và validation .................................................. 33
Hình 3.8 Chuẩn hóa cho tập test ..................................................................... 34
iv
Hình 3.9 Chuyển đổi về RGB và chuẩn hóa ................................................... 34
Hình 3.10 Mơ hình bài tốn ............................................................................ 35
Hình 3.11 Khai báo mơ hình VGG16 ............................................................. 35
Hình 3.12 Đóng băng lớp ................................................................................ 35
Hình 3.13 Lớp Flatten ..................................................................................... 35
Hình 3.14 Lớp fully connected ....................................................................... 35
Hình 3.15 Lớp fully connected 2 .................................................................... 36
Hình 3.16 Lưu mơ hình ................................................................................... 36
Hình 3.17 Kích thước, tham số mơ hình ......................................................... 36
Hình 3.18 Siêu tham số ................................................................................... 37
Hình 3.19 Train mơ hình ................................................................................. 37
Hình 3.20 Trainning ........................................................................................ 38
Hình 3.21 Biểu đồ hàm mất mát ..................................................................... 39
Hình 3.22 In ra ảnh tập test ............................................................................. 40
Hình 3.23 Kết quả dự đốn ảnh tập test .......................................................... 40
Hình 4.1 Thư viện chương trình ...................................................................... 41
Hình 4.2 Code tải ảnh...................................................................................... 42
Hình 4.3 Giao diện tải ảnh .............................................................................. 42
Hình 4.4 Hiển thị ảnh tải lên ........................................................................... 42
Hình 4.5 Tiền xử lý hình ảnh .......................................................................... 43
Hình 4.6 Tải mơ hình ...................................................................................... 43
Hình 4.7 Test giống chó Chihuahua ................................................................ 43
Hình 4.8 Test giống chó doberman ................................................................. 44
Hình 4.9 Test giống chó border collie............................................................. 44
v
DANH MỤC TỪ VIẾT TẮT
VGG
Tên của mơ hình học sâu VGG
CNN
Mạng nơ ron tích chập (convolutional neural
network)
vi
LỜI CẢM ƠN
Trước tiên với tình cảm sâu sắc và chân thành nhất, cho phép em được
bày tỏ lòng biết ơn đến các thầy cô của trường Đại học Công Nghiệp Hà Nội,
đặc biệt là các thầy cô khoa Công Nghệ Thông Tin của trường đã tạo điều
kiện cho em có một mơn học giúp chúng em củng cố được kiến thức và kinh
nghiệm trước khi bước vào làm đồ án tốt nghiệp.
Và em cũng xin chân thành cảm ơn thầy giáo Ts. Nguyễn Mạnh Cường
người đã tận tâm hướng dẫn chúng em qua từng buổi nói chuyện, hướng dẫn,
thảo luận về các lĩnh vực trong đề tài. Chúng em rất biết ơn các góp ý, sự chỉ
dẫn và kiến thức chuyên môn mà thầy giáo đã chia sẻ với chúng em trong quá
trình thực hiện báo cáo. Nhờ những lời khuyên và hướng dẫn của thầy đã giúp
chúng em đã có cơ hội học hỏi và phát triển kỹ năng của mình.
Khơng chỉ giúp chúng em hồn thành đồ án mẫu một cách thành cơng, sự
đóng góp của thầy giáo cịn giúp chúng tơi hiểu rõ hơn về lĩnh vực này và củng
có kiến thức chuẩn bị cho đồ án tốt nghiệp sắp tới. Nhờ thầy giáo mà chúng em
đã có cơ hội nắm bắt những khía cạnh quan trọng và phát triển tư duy sáng tạo.
Đồ án mẫu này khơng thể hồn thành một cách xuất sắc như vậy nếu khơng có
sự giúp đỡ của thầy. Chúng em rất cảm ơn sự tâm huyết và nhiệt tình giúp đỡ
chúng em trong xuyên suốt quá trình thực hiện báo cáo này.
Trong quá trình thực hiện báo cáo, cũng như là trong quá trình thực hiện
đề tài đã chọn chúng em cũng đã rất cố gắng xây dựng đề tài này, Tuy nhiên
trong q trình thực hiện sẽ khó tránh khỏi những sai sót. Em rất mong nhận
được ý kiến đóng góp từ thầy để học thêm được nhiều kinh nghiệm và sẽ hoàn
thành tốt hơn bài báo cáo tốt nghiệp sắp tới. Em xin chúc thầy luôn mạnh khỏe,
may mắn và thành công trong cuộc sống.
Em xin chân thành cảm ơn!
Sinh viên thực hiện
Nguyễn Quang Hiếu
Phan Hồng Phong
Nguyễn Tuấn Vũ
1
LỜI MỞ ĐẦU
Trước sự phát triển của khoa học và cơng nghệ, học máy và thị giác máy
tính được xem là một ứng dụng cụ thể thuộc lĩnh vực trí tuệ nhân tạo (AI) và
mạng không gian ảo – đã góp phần xây dụng nên một kỷ nguyên phát triển của
khoa học hiện đại, giúp máy tính có khả năng quan sát thu thập dữ liệu sau đó
tiến hành xử lý như con người, từ đó cải thiện chính bản thân chúng dựa trên
dữ liệu mẫu (training data) hoặc dựa vào kinh nghiệm (những gì đã được học).
Dưới sự bùng nổ của các ngành khoa học và cơng nghệ, nó đã được ứng dụng
rộng rãi để giải quyết các vấn đề trong thực tiễn. Trong thời đại mà trí tuệ nhân
tạo phát triển mạnh mẽ, khả năng phân loại nhận dạng và nguồn gốc của sản
phẩm đóng một vai trị quan trọng trong việc đảm bảo tính xác thực và chất
lượng của sản phẩm.
Đồ án này tập trung vào việc nhận dạng chính xác giống chó qua hình ảnh
bằng cách sử dụng mạng nơ-ron tích chập (CNN) với mơ hình VGG16 để trích
xuất đặc trưng từ hình ảnh, từ đó phân loại chúng vào các nhãn tương ứng.
Nhóm chúng em đã lựa chọn đề tài này vì nó đặt ra một thách thức trong việc
kết hợp giữa học máy và thị giác máy tính để xây dựng một hệ thống nhận dạng
có khả năng phân biệt giữa các giống chó khác nhau.
Bài báo cáo sẽ thực hiện theo cấu trúc như sau:
Chương 1: Phát biểu bài tốn
Trong chương 1, nhóm chúng em sẽ nêw ra lý do và mục đích của đề tài,
từ đó đưa ra giới thiệu và phát biểu về bài toán như đầu vào, đầu ra, giới hạn,
phạm vi nghiên cứu của bài toán.
Chương 2: Phương pháp ứng dụng
Sau khi đưa ra được phát biểu và xác định được u cầu của bài tốn,
nhóm chúng em tiến hành trình bày phương pháp tiếp cận và các kỹ thuật giải
quyết bài toán.
Chương 3: Tiến hành thực nghiệm
Ở chương này nhóm chúng em trình bày về q trình thực nghiệm và các
kết quả đạt được với phương pháp và kỹ thuật giải quyết bài toán được đưa ra
ở chương 2.
2
Chương 4: Xây dựng chương trình demo
Nhóm chúng em xây dựng chương trình demo sau quá trỉnh đào tạo trên
để dự đốn tên của giống chó qua hình ảnh được đưa vào.
Kết luận:
Cuối cùng là kết luận, tổng hợp các kết quả đạt được, các hướng phát triển
và mở rộng trong tương lai.
Chúng em hy vọng rằng báo cáo này sẽ đem lại cái nhìn thú vị và chi tiết
về quá trình nghiên cứu và phát triển của chúng em trong việc giải quyết bài
tốn phân loại giống chó. Chúng em cũng mong muốn rằng đề tài này có thể
đóng góp một phần nhỏ vào sự phát triển của lĩnh vực thị giác máy tính và ứng
dụng của nó trong cuộc sống hàng ngày.
3
CHƯƠNG 1. PHÁT BIỂU BÀI TOÁN
1.1. Tổng quan về học máy và bài toán nhận dạng
1.1.1. Tổng quan về học máy
Học máy là một lĩnh vực của trí tuệ nhân tạo liên quan đến việc cung cấp
cho máy tính khả năng tự động học hỏi và cải thiện mà không cần được lập
trình rõ ràng cho từng tác vụ.
Học máy thường được chia thành hai loại chính là học máy có giám sát và
học máy khơng giám sát:
- Trong học máy có giám sát, máy tính được cung cấp dữ liệu huấn luyện
với các nhãn tương ứng. Máy tính sẽ học cách dự đoán nhãn cho các
dữ liệu mới dựa trên dữ liệu huấn luyện. Ví dụ, học máy có giám sát
được sử dụng để đào tạo các mơ hình nhận dạng chữ viết tay, phân loại
hình ảnh, và chẩn đốn y khoa.
- Trong học máy khơng giám sát, máy tính khơng được cung cấp dữ
liệu huấn luyện với các nhãn tương ứng. Máy tính sẽ học cách phân
nhóm hoặc phát hiện các mẫu trong dữ liệu. Học máy không giám sát
được sử dụng để phân nhóm khách hàng, phát hiện gian lận, và phân
tích thị trường.
Học máy có nhiều ứng dụng trong thực tế, bao gồm:
- Phân loại: Phân loại là quá trình gán nhãn cho các dữ liệu. Học máy
được sử dụng để phân loại các sản phẩm, khách hàng, email, v.v.
- Kết nối: Kết nối là quá trình phân nhóm các dữ liệu. Học máy được
sử dụng để kết nối các khách hàng, sản phẩm, v.v.
- Dự đốn: Dự đốn là q trình dự đốn giá trị của một biến trong
tương lai. Học máy được sử dụng để dự đốn giá cổ phiếu, thời tiết,
v.v.
- Tìm kiếm: Tìm kiếm là q trình tìm kiếm thơng tin trong một tập dữ
liệu lớn. Học máy được sử dụng để cải thiện hiệu quả của các hệ
thống tìm kiếm.
Có thể thấy được học máy là một lĩnh vực đang phát triển nhanh chóng.
Với sự phát triển của cơng nghệ, học máy sẽ được ứng dụng ngày càng rộng
rãi trong nhiều lĩnh vực của đời sống.
4
1.1.2. Bài toán nhận dạng trong học máy
Bài toán nhận dạng trong học máy là một lĩnh vực quan trọng và đầy tiềm
năng, nó nằm trong lĩnh vực thị giác máy tính và xử lý ngơn ngữ tự nhiên. Nó
đặt ra thách thức đối với các hệ thống máy tính để có khả năng nhận diện và
hiểu biểu hiện của dữ liệu đầu vào một cách chính xác và tự động. Bài toán này
đang ngày càng trở nên quan trọng với sự phát triển nhanh chóng của cơng nghệ
và sự gia tăng về khối lượng dữ liệu được tạo ra mỗi ngày.
Mục tiêu chính của bài tốn nhận dạng thơng thường sẽ là:
- Xác định và phân loại đối tượng hoặc thông tin từ dữ liệu đầu vào.
- Đối với ảnh, đối tượng phân loại có thể bao gồm việc nhận diện khuôn
mặt, phân loại đối tượng, hoặc đánh giá tình trạng của một hình ảnh.
- Với văn bản, bài tốn nhận dạng có thể liên quan đến việc hiểu và phân
loại các đoạn văn bản, từ việc nhận diện từ ngữ đến dự đoán ý nghĩa
của câu văn.
Các phương pháp nhận dạng trong học máy đa dạng, bao gồm cả các mơ
hình học sâu như Convolutional Neural Networks (CNN) cho xử lý ảnh và
Recurrent Neural Networks (RNN) cho xử lý ngơn ngữ tự nhiên. Ngồi ra,
Transfer Learning cũng là một chiến lược quan trọng trong bài toán này, cho
phép mơ hình được huấn luyện trước đó trên một tập dữ liệu lớn, sau đó được
chuyển giao để giải quyết các vấn đề cụ thể khác nhau.
Tuy nhiên, bài toán nhận dạng khơng phải lúc nào cũng dễ dàng. Nó đối
mặt với những thách thức hạn chế như biến đổi ánh sáng, che mờ, hay độ nhiễu
trong dữ liệu. Điều này đòi hỏi sự phức tạp và linh hoạt từ các mơ hình học
máy để có thể đảm bảo khả năng chính xác và ổn định trong mơi trường thực
tế.
Như vậy có thể thấy, bài tốn nhận dạng trong học máy không chỉ là một
lĩnh vực nghiên cứu sôi động đầy tiềm năng mà còn mang lại nhiều ứng dụng
thực tế quan trọng, từ hệ thống an ninh đến các ứng dụng y tế và tự động hóa
cơng nghiệp. Sự phát triển tiếp theo của nó có thể mở ra nhiều khả năng mới
và tiềm năng đáng kể cho sự tiến bộ của cơng nghệ trong tương lai.
1.2. Bài tốn nhận dạng giống chó qua hình ảnh
1.2.1. Lý do lựa chọn đề tài
Trong lĩnh vực chăn ni, động vật nói chung và giống chó nói riêng là
một thành phần chiếm tỉ trọng khơng nhỏ. Ngày nay, chó khơng chỉ là một loại
5
động vật mà người ni để giữ nhà mà cịn là một người bạn, một sở thích biểu
tượng của phong cách cá nhân và cái tơi. Tuy nhiên, có một vấn đề ảnh hưởng
rất lớn đối với sự tin tưởng của người ni chính là tính xác thực của giống chó
và khả năng xác định nguồn gốc. Thực tế là, việc xác định liệu một con chó có
phải là thật hay là giả đòi hỏi một sự hiểu biết sâu sắc về kiến thức và khả năng
phân biệt tinh tế, điều này thường không dễ dàng cho người nuôi. Tuy nhiên,
chúng ta khơng cịn phải dựa vào con người duy nhất để giải quyết vấn đề này.
Nhờ sự phát triển mạnh mẽ của công nghệ học máy và thị giác máy tính, chúng
ta có thể áp dụng các cơng nghệ này để giải quyết vấn đề, tối ưu hóa trải nghiệm
nhận dạng và đảm bảo chất lượng giống chó.
Hiện tại, việc nhận dạng nguồn gốc của giống chó thơng qua hình ảnh vẫn
là một thách thức. Các phương pháp truyền thống chưa đáp ứng được độ chính
xác và hiệu suất cần thiết. Đề tài này nhấn mạnh sự cần thiết của việc phát triển
một hệ thống nhận dạng đáng tin cậy và cố gắng xây dựng một hệ thống có độ
chính xác cao hơn.
1.2.2. Giới hạn và phạm vi nghiên cứu
Đồ án nghiên cứu này, dù có tiềm năng lớn, nhưng cũng có một số giới
hạn về phạm vi và các khía cạnh khơng được xử lý trong đề tài. Chúng em
muốn thể hiện sự minh bạch và xác định rõ ràng về những hạn chế này.
Về phạm vi nghiên cứu, đồ án này tập trung vào việc nhận dạng nguồn
gốc của các loại giống chó thơng qua hình ảnh. Do hạn chế về mặt dữ liệu nên
chúng em sẽ chỉ tập chung vào vào một số giống chó phổ biến. Chúng em sẽ
khơng xử lý các giống chó hiếm gặp, giống chó lai.
Về các khía cạnh khơng xử lý trong đề tài, chúng em sẽ không tập chung
xử lý các mục sau:
- Thời gian: Dự án sẽ không xem xét sự thay đổi về thời gian của
giống chó, dù những con chó sẽ có sự thay đổi lớn về kích thước,
kiểu lơng theo thời gian. Chúng em sẽ cố gắng chọn dữ liệu sao cho
không bị ảnh hưởng quá nhiều và sẽ xác định nguồn gốc tĩnh của
giống chó dựa trên hình ảnh đã cho.
- Tình trạng: Chúng em giới thiệu hệ thống nhận dạng nguồn gốc của
giống chó dựa trên hình ảnh, nhưng khơng xác định tình trạng cụ
thể của những con chó, chẳng hạn như chó lai hoặc chó ta.
- Địa điểm: Dự án tập trung vào việc nhận dạng nguồn gốc qua hình
ảnh, khơng liên quan đến địa điểm cụ thể của việc mua bán.
6
Những giới hạn và phạm vi đã nêu trên giúp tập trung vào mục tiêu chính
của dự án, đồng thời đảm bảo tính khả thi và hiệu quả của nghiên cứu.
1.2.3. Đầu vào và đầu ra bài toán
- Input: Để giải quyết bài toán này, chúng em sử dụng một tập dữ
liệu chứa các hình ảnh của các loại giống chó khác nhau. Mỗi hình
ảnh được cung cấp dưới dạng dữ liệu pixel với độ phân giải cụ thể.
Các mô hình được thiết kế để nhận diện các đặc trưng quan trọng
của chó thơng qua việc sử dụng mạng nơ-ron tích chập (CNN).
- Output: Đầu ra của bài tốn là nguồn gốc cụ thể của các giống chó,
được biểu diễn dưới dạng thơng tin văn bản. Mơ hình CNN sẽ học
các đặc trưng quan trọng từ hình ảnh để đưa ra dự đốn về nguồn
gốc giống chó. Sau khi đã có dự đốn về giống chó, chúng em sẽ
đưa hiển thị ảnh lên màn hình cùng với dự đốn có tính chính xác
cao nhất mà hệ thống dự đốn.
1.2.4. Ràng buộc của bài tốn
Bài tốn nhận dạng giống chó đặt ra rất nhiều thách thức, chúng được thể
hiện qua các ràng buộc chính của bài tốn:
- Ràng buộc dữ liệu: Một trong những ràng buộc quan trọng đối với
việc nhận diện nguồn gốc của giống chó là sự có sẵn và chất lượng
của tập dữ liệu hình ảnh. Việc sử dụng một tập dữ liệu không đủ
representative hoặc chứa nhiều hình ảnh khơng rõ ràng sẽ ảnh
hưởng đáng kể đến hiệu suất của mơ hình.
- Ràng buộc thời gian: Xử lý hình ảnh có thể địi hỏi nhiều thời gian
tính tốn, đặc biệt khi sử dụng các mơ hình phức tạp như mạng nơron tích chập (CNN). Điều này có thể tạo ra ràng buộc về thời gian,
đặc biệt khi cần xử lý số lượng lớn hình ảnh.
- Ràng buộc tài ngun: Việc triển khai một mơ hình CNN địi hỏi
tài ngun tính tốn lớn, đặc biệt khi sử dụng trên cơ sở hạ tầng có
hạn. Nếu khơng có tài ngun tính tốn đủ lớn, việc huấn luyện và
triển khai mơ hình có thể trở thành vấn đề lớn.
- Ràng buộc hiệu suất: Đơi khi, mơ hình có thể đối mặt với khó khăn
trong việc nhận diện nguồn gốc giống chó khi đối mặt với các vấn
đề như nhiễu trong dữ liệu hình ảnh hoặc sự tương đồng cao giữa
các giống chó, các loại chó lai với nhau.
7
- Ràng buộc độ chính xác: Một ràng buộc quan trọng là độ chính
xác của mơ hình. Đối với các ứng dụng như nhận diện nguồn gốc
của giống chó, độ chính xác cần phải được đảm bảo cao để tránh
việc đưa ra kết quả sai lệch.
- Ràng buộc về quyền sở hữu trí tuệ: Cần phải xem xét các quyền
sở hữu trí tuệ liên quan đến việc sử dụng hình ảnh giống chó từ các
nguồn khác nhau. Việc sử dụng hình ảnh mà khơng có sự cho phép
hoặc vi phạm quyền sở hữu trí tuệ có thể dẫn đến các vấn đề pháp
lý.
1.2.5. Ứng dụng và thách thức của bài tốn
Ứng dụng của bài tốn
- Hỗ trợ tìm kiếm chó mất tích bằng cách sử dụng hệ thống giám sát
camera hoặc ảnh chụp từ cộng đồng
- Giúp người dùng xác định giống chó đang tìm hiểu một cách nhanh
chóng
- Ngồi ra còn sử dụng để nghiên cứu về sự đa dạng của giống chó tạo
ra cơ sở dữ liệu lớn về giống chó
Thách thức của bài tốn
- Một số giống chó có thể có số lượng ảnh đào tạo ít, gây ra vấn đề
không cân đối trong dữ liệu, làm suy giảm khả năng phân loại đúng.
- Biến đổi như xoay, phóng to, thu nhỏ, ánh sáng thay đổi có thể làm
tăng khả năng phức tạp của bài toán và u cầu mơ hình có khả năng
tổng qt hóa tốt.
- Mơ hình có thể học những đặc trưng khơng phản ánh đặc điểm thực
sự của giống chó mà chỉ là các chi tiết không quan trọng trong ảnh.
- Mạng nơ-ron tích chập thường địi hỏi nhiều tài ngun tính tốn, đặc
biệt là khi xử lý một lượng lớn ảnh hoặc khi triển khai trên thiết bị có
tài nguyên hạn chế.
1.2.6. Phát biểu bài toán
Đề tài nghiên cứu này đặt ra một vấn đề thú vị và thách thức, đó chính là
sử dụng mạng nơ-ron tích chập (CNN) để phân loại các giống chó dựa trên hình
ảnh được đưa vào. Đây khơng chỉ là một bài tốn học máy, mà cịn là một nỗ
lực nhằm tạo ra một hệ thống nhận diện nguồn gốc của giống chó với độ chính
xác cao. Hệ thống này sẽ giúp ích rất nhiều trong việc phân loại và quản lý
8
giống chó một cách hiệu quả, từ đó giúp chúng ta hiểu rõ hơn về đa dạng về
mặt sinh học của lồi chó.
Việc xác định chính xác giống lồi của một con chó chỉ qua một bức ảnh
là một bài tốn khó. Có hàng trăm giống chó khác nhau trên thế giới, mỗi giống
chó đều có những đặc điểm vật lý riêng biệt. Do đó, việc xây dựng một hệ thống
có thể nhận diện chính xác giống chó từ hình ảnh là một thách thức lớn. Đối
với mỗi giống chó, mơ hình cần học các đặc trưng độc đáo và phân loại chúng
một cách chính xác. Điều này đặt ra những thách thức đặc biệt, đặc biệt là khi
có sự tương đồng giữa một số giống chó về hình dạng và màu lơng. Đối với các
giống có những đặc điểm gần nhau, mơ hình cần có khả năng nhận diện và phân
biệt các chi tiết nhỏ, có thể địi hỏi sự tinh tế và cảm nhận sắc màu.
Ngoài ra, để cải thiện độ chính xác của mơ hình, q trình tinh chỉnh
thường được thực hiện thông qua các kỹ thuật như tăng cường dữ liệu (data
augmentation), regularization và fine-tuning trên các mơ hình đã được huấn
luyện trước đó. Đề tài này khơng chỉ đơn thuần là một bài tốn học máy, mà
còn là một nỗ lực nhằm tạo ra một hệ thống nhận diện nguồn gốc của giống chó
với độ chính xác cao. Hệ thống này sẽ giúp ích rất nhiều trong việc phân loại
và quản lý giống chó một cách hiệu quả, từ đó giúp chúng ta hiểu rõ hơn về đa
dạng về mặt sinh học của lồi chó.
Đề tài này có tiềm năng phát triển rất lớn, với sự tiến bộ không ngừng của
công nghệ, chúng em hy vọng rằng trong tương lai, hệ thống này sẽ trở nên
ngày càng chính xác và hiệu quả hơn. Nó khơng chỉ giúp phân loại giống chó,
mà cịn có thể được mở rộng và phát triển để nhận diện và phân loại các loài
động vật khác. Điều này mở ra một lĩnh vực nghiên cứu mới với nhiều khả năng
ứng dụng trong thực tiễn cuộc sống. Bài toán phân loại giống chó khơng chỉ
mang lại giá trị giải trí mà cịn có ứng dụng thực tế trong việc tạo ra các ứng
dụng nhận diện giống chó tự động, hỗ trợ việc quản lý thú cưng, đặc biệt là
trong các tổ chức chăm sóc động vật. Sự phát triển của các phương pháp học
máy trong bài toán này hứa hẹn mang lại nhiều tiềm năng và ứng dụng trong
tương lai.
1.3. Các kỹ thuật giải quyết bài toán
1.3.1. Lý thuyết mạng nơ ron tích chập (CNNs)
Để thành cơng trong nghiên cứu và thực hiện hệ thống nhận diện giống
chó sử dụng mạng nơ-ron tích chập, chúng ta cần hiểu sâu về lý thuyết CNNs.
Điều này bao gồm:
9
- Cấu trúc CNNs: Hiểu cách mạng nơ-ron tích chập được thiết kế với
các lớp tích chập, lớp tổng hợp (pooling), và các lớp kết nối đầy đủ.
- Hàm Kích Hoạt: Biết về các hàm kích hoạt như ReLU, Sigmoid, và
Tanh, cũng như cách chúng ảnh hưởng đến việc học của CNNs.
- Học Sâu: Thấu hiểu về khái niệm học sâu (deep learning) và cách
mạng nơ-ron tích chập có khả năng học từ dữ liệu.
- Transfer Learning: Ta cần nắm vững và hiểu rõ các mơ hình được
đào tạo trước để có thể áp dụng và sử dụng trong bài tốn một cách
hợp lý.
1.3.2. Xử lý ảnh và trích xuất đặc trưng
Trong quá trình nhận diện để phân loại giống chó, chúng ta sẽ phải làm
việc với dữ liệu hình ảnh và trích xuất các đặc trưng quan trọng. Cần nắm vững:
- Xử Lý Ảnh Cơ Bản: Hiểu cách xử lý ảnh, chẳng hạn như biến đổi
màu sắc, cắt ảnh, và chia ảnh thành các kích thước nhất định.
- Trích Xuất Đặc Trưng: Biết cách sử dụng các phương pháp như
Histogram of Oriented Gradients (HOG) hoặc Local Binary
Patterns (LBP) để trích xuất đặc trưng.
1.3.3. Thu thập dữ liệu và chuẩn bị tập dữ liệu
Để đào tạo và đánh giá các mơ hình nhận diện phân loại giống chó, chúng
ta cần kiến thức về thu thập và tiền xử lý dữ liệu:
- Thu Thập Dữ Liệu: Biết cách thu thập tập dữ liệu về giống chó đủ
lớn và đa dạng để đảm bảo tính đại diện và hiệu suất của mơ hình.
- Tiền Xử Lý Dữ Liệu: Nắm vững các kỹ thuật tiền xử lý dữ liệu như
chuẩn hóa, cân bằng lớp, và tạo tập kiểm tra và kiểm tra độc lập.
1.3.4. Đánh giá mơ hình
Cuối cùng, chúng ta cần hiểu cách đánh giá hiệu suất của các mơ hình
nhận diện giống chó:
- Loss Function: đánh giá hiệu suất mơ hình thông qua việc in ra đồ
thị hàm mất mát, hàm mất mát trên tập valid. Mơ hình tốt thường
có một hàm mất mát thấp và giảm dần sau mỗi tiến trình.
- Độ chính xác (Accuary): sử dụng độ chính xác dể đo lường tỷ lệ
dự đoán đúng trên tổng số dự đoán của tập train và validation, đây
là thước đo quan trọng để đánh giá hiệu suất tổng quan của mơ
hình.
10
CHƯƠNG 2. PHƯƠNG PHÁP ỨNG DỤNG
2.1. Phương pháp tiếp cận bài toán
Phương pháp nghiên cứu trong dự án này được thực hiện theo các bước
cụ thể để đảm bảo tính khả thi và hiệu quả.
- Thu thập dữ liệu: Đầu tiên, chúng em tiến hành thu thập dữ liệu
hình ảnh liên quan đến các giống chó từ một nguồn. Dữ liệu này
bao gồm các giống chó từ các nơi khác nhau và được tổng hợp để
tạo thành một bộ dữ liệu đa dạng.
- Tiền xử lý dữ liệu: Sau khi có bộ dữ liệu, chúng em tiến hành các
bước tiền xử lý để chuẩn hóa và làm sạch dữ liệu. Các bước tiền
xử lý bao gồm chuyển đổi kích thước ảnh để đảm bảo đồng nhất,
xoay và cắt ảnh theo khuôn mẫu cố định để tạo ra dữ liệu đầu vào
đồng nhất cho mơ hình.
- Xây dựng và đào tạo mơ hình: Mơ hình nhận dạng được xây
dựng bằng việc sử dụng mơ hình VGG16 để trích xuất đặc trưng
từ hình ảnh để phân loại giống chó dựa trên các đặc trưng đã trích
ra. Mơ hình này sẽ được huấn luyện trên tập dữ liệu đào tạo để học
cách trích xuất đặc trưng từ hình ảnh. Sau đó, tới mạng nơ ron để
phân loại các giống chó dựa trên đặc trưng này.
- Đánh giá mơ hình đào tạo: Kết quả của mơ hình được đánh giá
bằng cách sử dụng các thước đo như độ chính xác (accuracy), độ
chính xác dựa trên tập valid (validtion accuracy), và hàm mất mát
(loss function). Chúng em cũng trực quan hóa kết quả để hiểu rõ
hơn về khả năng nhận dạng của mơ hình và đối chiếu với các mục
tiêu đề ra từ đầu.
- Tối ưu hóa và cải thiện mơ hình: Sau đó, chúng em tiến hành
các bước tối ưu hóa và cải thiện mơ hình dựa trên kết quả đánh
giá. Điều này có thể bao gồm việc điều chỉnh siêu tham số, thêm
dữ liệu, hoặc sử dụng các biến thể khác của mô hình để nâng cao
hiệu suất.
Cuối cùng, sau khi đã có những kết quả, đánh giá về mơ hình cho ra những
kết quả tốt, mơ hình phân loại giống chó được triển khai trong một ứng dụng
thực tế, cho phép người dùng cuối sử dụng nó để nhận dạng giống chó qua ảnh
đưa vào.
11
2.2. Các kỹ thuật giải quyết bài toán đề xuất
2.2.1. Lý thuyết về mạng CNN
Mạng neural tích chập (Convolutionalal Neural Network: CNN) là một
mơ hình mạng học sâu (Deep Learning) giúp cho chúng ta xây dựng được
những hệ thống thông minh với độ chính xác cao như hiện nay, sử dụng phép
tích chập để trích chọn các đặc trưng đầu vào (input layer) kết hợp với các hàm
kích hoạt phi tuyến (nonlinear activation function) như ReLU để tạo ra thông
tin trừu tượng hơn (abstract/higherlevel) cho các layer tiếp theo, quá trình này
được lặp lại qua nhiều lớp ẩn (sử dụng bộ lọc tích chập) để sau cùng có một số
đặc trưng để nhận dạng đối tượng. Mạng CNN thường được áp dụng trong các
bài tốn về nhận dạng hình ảnh, xử lý ngôn ngữ tự nhiên, …
CNN được phát triển dựa trên ba ý tưởng chính: tính kết nối cục bộ (Local
connectivity hay compositionality), tính bất biến (Location invariance) và tính
bất biến đối với q trình chuyển đổi cục bộ (Invariance to local transition).
Trong mơ hình mạng neural truyền thẳng các layer kết nối với nhau thông
qua trọng số liên kết w, các layer này cịn được gọi là có kết nối đầy đủ (fully
connected layer).
Trong mơ hình CNN thì các layer liên kết được với nhau qua cơ chế tích
chập (Convolutional), các layer tiếp theo là kết quả của tích chập từ layer trước
đó. Các layer khác nhau được sử dụng các filter khác nhau, thơng thường có
vài trăm đến vài nghìn filter như vậy. Ngồi ra một số layer khác như
pooling/subsampling layer dùng để trích xuất các thơng tin hữu ích hơn (loại
bỏ thơng tin nhiễu).
Hình 2.1 Mơ hình CNN
Trong quá trình huấn luyện, CNN sẽ tự học được các thơng số cho các bộ
lọc filter. Ví dụ trong tác vụ phân lớp ảnh, CNN sẽ cố gắng tìm ra thơng số tối
ưu cho các filter tương ứng.
12
o Lớp Convolutional: nhiệm vụ của nó là thay vì kết nối toàn bộ điểm
ảnh, lớp này sẽ sử dụng các bộ lọc (filter) có kích thước nhỏ so với ảnh
(thường là 5x5 hoặc 3x3) so khớp vào một vùng ảnh, sau đó tính tích
chập giữa bộ filter và giá trị các điểm ảnh trong vùng đó để cho ra một
giá trị duy nhất, bộ lọc tiếp tục trượt (stride) dọc và quét hết toàn bộ
ảnh. Đầu ra của phép tích chập là một tập các giá trị ảnh được gọi là
mạng đặc trưng (features map). Thực chất, ở các layer đầu tiên, phép
tích chập đơn giản là nó sẽ làm hiện lên các đặc trưng của đối tượng
trong ảnh như đường vẽ xung quanh đối tượng, các góc cạnh..., và các
layer tiếp theo sẽ lại trích xuất tiếp các đặc trưng của đặc trưng của các
đối tượng đó, việc có nhiều layer như vậy cho phép chúng ta chia nhỏ
đặc trưng của ảnh tới mức nhỏ nhất có thể.
Hình 2.2 Phép tích chập với bộ lọc (nguồn internet)
Nếu có bao nhiêu filter trong lớp này sẽ có bấy nhiêu lớp ảnh tương
ứng mà lớp này trả ra và được truyền vào lớp tiếp theo. Các trọng số
filter ban đầu sẽ được khởi tạo ngẫu nhiên và sẽ được học dần trong
quá trình huấn luyện.
13
o Lớp chuyển đổi RELU (Rectified Linear Unit): Lớp này thường
được cài đặt ngay sau lớp Convolutional và sử dụng hàm kích hoạt giá
trị cực đại và f(x) = max (0, x). Mục đích của lớp ReLu là đưa ảnh một
mức ngưỡng, ở đây là và khơng thay đổi kích thước của ảnh và khơng
có thêm bất kì tham số nào. Để loại bỏ các giá trị âm không cần thiết
mà có thể sẽ ảnh hưởng cho việc tính tốn ở các layer sau đó.
o Lớp Pooling: Lớp này cũng sử dụng một cửa sổ trượt quét hết toàn bộ
bức ảnh, tuy nhiên nó khác ở chổ là nó khơng tính tích chập mà tiến
hành lấy mẩu (subsampling), khi cửa sộ trượt đến vùng ảnh nó chỉ lấy
1 giá trị để xem làm giá trị đại diện cho vùng ảnh đó (giá trị mẩu). Giá
trị lấy phổ biến trong lớp pooling là MaxPooling (giá trị lớn nhất),
MinPooling (giá trị nhỏ nhất) và AveragePooling (giá trị trung bình).
Hình 2.3 Phép MaxPooling (2x2), stride=2
o Lớp Fully Connected Layer (FC): Tại lớp này, mỗi một neural của
layer này sẽ liên kết tới mọi neural của lớp khác. Để đưa ảnh từ các
layer trước vào mạng này, buộc phải dàn phẳng bức ảnh ra thành 1
vector thay vì là mảng nhiều chiều như trước. Tại Layer cuối cùng sẽ
sử dụng hàm softmax để phân loại đối tượng dựa vào vector đặc trưng
đã được tính tốn của các lớp trước đó.
Như vậy có thể thấy được cấu trúc cơ bản của CNN gồm các lớp tích
chập (Convolutional layer), lớp phi tuyến (Nonlinear layer) và lớp lọc
(Pooling layer) như hình 1.*. Các lớp tích chập kết hợp với các lớp phi tuyến
14
sử dụng các hàm phi tuyến như ReLU hay tanh để tạo ra thông tin trừu tượng
hơn (Abstract/higher-level) cho các lớp tiếp theo
2.2.2. Transfer Learning
- Vai trò của transfer learning
Trong quá trình bùng nổ của deep learning, các tài nguyên về AI ngày
càng dồi dào. Song song với quá trình phát triển đó, ngày càng có nhiều các
pretrained-model có chất lượng tốt và độ chính xác cao. Hầu như mọi domain
đều có thể tìm kiếm được các pretrained-model.
Lý thuyết về transfer learning được Lorien Pratt thực nghiệm lần đầu năm
1993 và sau đó viết lại nó dưới dạng một lý thuyết tốn học vào năm 1998 đã
hiện thực hóa ý tưởng về chuyển giao tri thức giữa các mơ hình như giữa con
người với nhau. Một mơ hình đã có khả năng tận dụng lại các tri thức đã huấn
luyện trước đó và cải thiện lại trên tác vụ phân loại của nó.
- Cải thiện accuracy và tiết kiệm chi phí huấn luyện
Ví dụ trong bài tốn phân loại chó và mèo. Nếu huấn luyện từ đầu, bạn sẽ
tốn nhiều epochs huấn luyện hơn để đạt được độ chính xác cao. Tuy nhiên nếu
bạn biết tận dụng lại các pretrained-model thì sẽ cần ít epochs huấn luyện hơn
để đạt được một độ chính xác mong đợi. Thậm chí độ chính xác có thể lớn hơn
so với khi khơng áp dụng transfer learning.
Hình 2.4 Sơ đồ so sánh hiệu suất mơ hình
Từ đồ thị ta có thể thấy sử dụng transfer learning sẽ mang lại 3 lợi thế
chính:
•
•
•
Có điểm khởi đầu của accuracy tốt hơn (higher start).
Accuracy có tốc độ tăng nhanh hơn (higher slope).
Đường tiệm cận của độ chính xác tối ưu cao hơn (higher asymptote).
15
- Hiệu quả với dữ liệu nhỏ:
Trong trường hợp bộ dữ liệu có kích thước q nhỏ và khó có thể tìm kiếm
và mở rộng thêm thì các mơ hình được huấn luyện từ chúng sẽ khó có thể dự
báo tốt. Tận dụng lại tri thức từ các pretrained-model với cùng tác vụ phân loại
sẽ giúp các mơ hình được huấn luyện dự báo tốt hơn với dữ liệu mới vì mơ hình
được học trên cả 2 nguồn tri thức đó là dữ liệu huấn luyện và dữ liệu mà nó đã
được học trước đó.
- Ví dụ về transfer learning
Q trình áp dụng tri thức đã được học từ một mơ hình trước sang bài tốn
hiện tại được gọi là transfer learning. Để hiểu rõ hơn, mình lấy ví dụ:
Trong bài tốn dự báo dog and cat. Chúng ta có 2 nhãn cần phân loại là
dog, cat và cả 2 nhãn này đều xuất hiện trong một bộ dữ liệu imagenet. Như
vậy chúng ta kì vọng rằng có thể tận dụng lại các weights từ pretrained-model
trên bộ dữ liệu imagenet để huấn luyện lại bài toán nhanh hơn, chuẩn xác hơn.
- Kiến trúc mơ hình sử dụng transfer learning
Như chúng ta đã biết các layers CNN về bản chất là một feature extractor
mà mỗi một layer CNN sẽ có tác dụng trích lọc đặc trưng theo những level khác
nhau.
Hình 2.5 Các đặc trưng học được từ mạng CNN
Ở những Convolutional Layers đầu tiên, các bộ lọc phát hiện được các chi
tiết chung dưới dạng các nét ngang, dọc và các cạnh của ảnh. Đây là những đặc
trưng bậc thấp (low level feature) và khá chung chung. Chúng ta chưa thể nhận
biết được vật thể dựa trên những đường nét này. Ở những Convolutional Layers
cuối cùng là những đặc trưng bậc cao (high level feature) được tổng hợp từ đặc
trưng bậc thấp. Đây là những đặc trưng tốt và có sức mạnh phân loại các classes.
16
Quá trình transfer learning sẽ tận dụng lại các đặc trưng được học từ những
pretrained-model. Để hiểu hơn về cách thức chuyển giao, chúng ta cùng tìm
hiểu về kiến trúc của mơ hình sử dụng transfer learning:
•
Phrase 1: Là một mạng Base Network có tác dụng trích lọc đặc trưng
được cấu tạo từ các Convolutional 2D Layers. Base Network sẽ được
trích xuất từ một phần của pretrained-model sau khi loại bỏ các top
fully connected layers. Để dễ hình dung mình giả định model
pretrained được sử dụng là VGG16, một kiến trúc khá tốt được google
phát triển vào năm 2014. Điểm cải tiến của VGG16 so với các kiến trúc
CNN trước đó là sử dụng nhiều Convolutional 2D Layers nối tiếp nhau.
Cụ thể các layers có cấu trúc [[Conv]_n-MaxPool]_m thay vì [ConvMaxPool]_m, với m, n là tần suất xuất hiện của các khối mạng được lặp
lại bao bọc trong ngoặc vng.
Hình 2.6 Kiến trúc của mạng VGG16 được sử dụng làm base network
•
Phrase 2: Là các Fully Connected Layers giúp giảm chiều dữ liệu và
tính tốn phân phối xác suất ở output. Bản chất Fully Connected Layers
chính là một mạng MLP (Multiple Layer Perceptron), một kiến trúc
nguyên thủy nhất của thuật tốn neural network. Số lượng các units ở
output chính bằng với số lượng classes của bài toán phân loại. Các hệ
số của fully connected layers sẽ được khởi tạo một cách ngẫu nhiên.
17
Hình 2.7 Kiến trúc base network kết hợp với fully connected layers
Q trình khởi tạo mơ hình chúng ta sẽ tận dụng lại các weight
của base_network. Dữ liệu ảnh sau khi đi qua base_network sẽ tạo ra những
đặc trưng tốt, những đặc trưng này chính là đầu vào input cho mạng MLP để
dự báo. Hệ số được khởi tạo ngẫu nhiên và các hệ số của base network được
load lại từ pretrain model.
2.2.3. Mơ hình VGG
Mơ hình VGGNet là một mạng CNN đơn giản với các tầng convolution
và pooling liên tiếp, nhưng có độ sâu lớn. Điều này làm cho nó phù hợp cho
nhiều ứng dụng thị giác máy tính.
Hình 2.8 Mơ hình học sâu VGG
Với VGG-16, quan điểm về một mạng nơ ron sâu hơn sẽ giúp ích cho cải
thiện độ chính xác của mơ hình tốt hơn. Về kiến trúc thì VGG-16 vẫn dữ các
đặc điểm của AlexNet nhưng có những cải tiến:
Kiến trúc VGG-16 sâu hơn, bao gồm 13 layers tích chập 2 chiều (thay vì
5 so với AlexNet) và 3 layers fully connected.
Lần đầu tiên trong VGG-16 chúng ta xuất hiện khái niệm về khối tích chập
(block). Đây là những kiến trúc gồm một tập hợp các layers CNN được lặp lại
giống nhau. Kiến trúc khối đã khởi nguồn cho một dạng kiến trúc hình mẫu rất
thường gặp ở các mạng CNN kể từ đó.
18
VGG-16 cũng kế thừa lại hàm activation ReLU ở AlexNet.
VGG-16 cũng là kiến trúc đầu tiên thay đổi thứ tự của các block khi xếp
nhiều layers CNN + max pooling thay vì xen kẽ chỉ một layer CNN + max
pooling. Các layers CNN sâu hơn có thể trích lọc đặc trưng tốt hơn so với chỉ
1 layers CNN.
VGG-16 chỉ sử dụng các bộ lọc kích thước nhỏ 3x3 thay vì nhiều kích
thước bộ lọc như AlexNet. Kích thước bộ lọc nhỏ sẽ giúp giảm số lượng tham
số cho mơ hình và mang lại hiệu quả tính tốn hơn. VD: Nếu sử dụng 2 bộ lọc
kích thước 3 x 3 trên một features map (là output của một layer CNN) có độ
sâu là 3 thì ta sẽ cần n_filters x kernel_size x kernel_size x n_channels = 2 x 3
x 3 x 3 = 54 tham số. Nhưng nếu sử dụng 1 bộ lọc kích thước 5 x 5 sẽ cần 5 x
5 x 3 = 75 tham số. 2 bộ lọc 3 x 3 vẫn mang lại hiệu quả hơn so với 1 bộ lọc 5
x 5.
Mạng VGG-16 sâu hơn so với AlexNet và số lượng tham số của nó lên tới
138 triệu tham số. Đây là một trong những mạng mà có số lượng tham số lớn
nhất. Kết quả của nó hiện đang xếp thứ 2 trên bộ dữ liệu ImageNet validation
ở thời điểm public. Ngồi ra cịn một phiên bản nữa của VGG-16 là VGG-19
tăng cường thêm 3 layers về độ sâu.
Bắt đầu từ VGG-16, một hình mẫu chung cho các mạng CNN trong các
tác vụ học có giám sát trong xử lý ảnh đã bắt đầu hình thành đó là các mạng trở
nên sâu hơn và sử dụng các block dạng [Conv2D*n + Max Pooling].
2.2.4. Mơ hình MobileNet
Hình 2.9 Mơ hình học sâu MobileNet
19