













Preview text:
BỘ GIÁO DỤC VÀ ĐÀO TẠO 
TRƯỜNG ĐẠI HỌC PHENIKAA 
TÊN BÀI TẬP/ DỰ ÁN:  Image Classification on MNIST 
Giảng viên: GS/PGS/TS/ThS. : Nguyễn Văn Tới  Nhóm sinh viên: 6  Thành viên  1 . Hoàng Thị Hà  MSV: 20010893  2 . Trần Công Danh  MSV: 20010760  3 . Dương Văn Quang  MSV: 20010793  4 . Nguyễn Thị Ngọc  Lớp: N03 
Học phần: Thị giác máy tính  HÀ NỘI, 11/2022       
Tóm tắt: Chúng tôi báo cáo rằng có thể đạt được độ chính xác rất cao 
trên bộ thử nghiệm MNIST bằng cách sử dụng các mô hình mạng thần kinh 
chuyển đổi đơn giản (CNN). Chúng tôi sử dụng ba mô hình khác nhau với kích 
thước hạt nhân 3×3, 5×5 và 7×7 trong các lớp tích chập. Mỗi mô hình bao 
gồm một tập hợp các lớp tích chập, theo sau là một lớp được kết nối đầy đủ 
duy nhất. Mỗi lớp tích chập sử dụng chuẩn hóa hàng loạt và kích hoạt ReLU , 
trong khi không sử dụng tổng hợp. Xoay và dịch được sử dụng để tăng cường 
dữ liệu đào tạo, đây là một kỹ thuật thường được sử dụng trong hầu hết các 
nhiệm vụ phân loại hình ảnh. Biểu quyết theo đa số bằng cách sử dụng ba mô 
hình được đào tạo độc lập trên tập huấn luyện có thể đạt được độ chính xác 
lên tới 99,87% trên tập kiểm tra, đây là một trong những kết quả hiện đại nhất. 
Một tập hợp hai lớp, một tập hợp không đồng nhất của ba mạng tập hợp đồng 
nhất, có thể đạt được độ chính xác kiểm tra lên tới 99,91%.        1.Tổng quan 
Bộ dữ liệu nhận dạng chữ số viết tay MNIST (Hình 1, [1]) là một trong những 
bộ dữ liệu cơ bản nhất được sử dụng để kiểm tra hiệu suất của các mô hình mạng thần 
kinh và kỹ thuật học tập. Sử dụng 60.000 hình ảnh làm tập huấn luyện, có thể dễ dàng 
đạt được độ chính xác 97% -98% trên tập kiểm tra gồm 10.000 hình ảnh, với các 
phương pháp học tập như k-láng giềng gần nhất (KNN), rừng ngẫu nhiên, máy vectơ 
hỗ trợ (SVM) và các mô hình mạng nơ-ron đơn giản. Mạng thần kinh tích chập (CNN) 
cải thiện độ chính xác này lên hơn 99% với ít hơn 100 hình ảnh bị phân loại sai trong  bộ thử nghiệm.   
100 hình ảnh cuối cùng khó phân loại chính xác hơn. Để cải thiện độ 
chính xác sau 99%, chúng tôi cần các mô hình phức tạp hơn, điều chỉnh cẩn 
thận các siêu tham số như tốc độ học và kích thước lô, các kỹ thuật chuẩn hóa 
như chuẩn hóa và loại bỏ hàng loạt cũng như tăng cường dữ liệu huấn luyện. 
Độ chính xác cao nhất đạt được trên bộ thử nghiệm MNIST là khoảng 99,7%  đến 99,84%. 
Trong bài báo này, chúng tôi báo cáo một mô hình có thể đạt được độ 
chính xác rất cao trên bộ kiểm tra MNIST mà không cần các khía cạnh cấu trúc 
phức tạp hoặc kỹ thuật học tập. Mô hình sử dụng một tập hợp các lớp tích chập, 
theo sau là lớp được kết nối đầy đủ ở cuối, đây là một trong những kiến trúc 
mô hình thường được sử dụng. Chúng tôi sử dụng các sơ đồ tăng cường dữ liệu 
cơ bản, dịch và xoay. Chúng tôi đào tạo ba mô hình có kiến trúc tương tự và sử 
dụng biểu quyết đa số giữa các mô hình để có được dự đoán cuối cùng. Ba mô 
hình có kiến trúc tương tự nhau, nhưng có kích thước hạt nhân khác nhau trong  các lớp tích chập. 
 Các thí nghiệm cho thấy rằng việc kết hợp các mô hình có kích thước nhân 
khác nhau sẽ đạt được độ chính xác tốt hơn so với việc kết hợp các mô 
hình có cùng kích thước nhân.     
2.Thiết kế và đào tạo mạng 
Các mô hình mạng của chúng tôi bao gồm nhiều lớp tích chập và một lớp 
được kết nối đầy đủ ở cuối. Trong mỗi lớp tích chập, một tích chập 2D được 
thực hiện, tiếp theo là chuẩn hóa hàng loạt 2D và kích hoạt ReLU. Tổng hợp 
tối đa hoặc tổng hợp trung bình không được sử dụng sau khi tích chập. Thay 
vào đó, kích thước của bản đồ tính năng bị giảm sau mỗi lần tích chập vì phần 
đệm không được sử dụng. Ví dụ: nếu chúng ta sử dụng nhân 3×3 , chiều rộng 
và chiều cao của hình ảnh sẽ giảm đi hai sau mỗi lớp tích chập. Cách tiếp cận 
tương tự được thực hiện trong các mạng khác [6, 2]. Số lượng kênh được tăng 
lên sau mỗi lớp để giảm kích thước bản đồ tính năng. Khi kích thước bản đồ 
tính năng trở nên đủ nhỏ, một lớp được kết nối đầy đủ sẽ kết nối bản đồ tính 
năng với đầu ra cuối cùng. Chuẩn hóa hàng loạt 1D được sử dụng ở lớp được 
kết nối đầy đủ, trong khi lớp bỏ học không được sử dụng. 
Chúng tôi sử dụng ba mạng khác nhau và kết hợp kết quả từ các mạng 
này. Các mạng chỉ khác nhau về kích thước hạt nhân của các lớp tích chập: 3×3, 
5×5 và 7×7. Vì kích thước hạt nhân khác nhau dẫn đến giảm kích thước khác 
nhau trong bản đồ đặc trưng, nên số lượng lớp là khác nhau đối với mỗi mạng. 
Mạng đầu tiên, M3, sử dụng 10 lớp tích chập với 16(i + 1) kênh trong 
lớp tích chập thứ i. Bản đồ tính năng trở thành 8×8 với 176 kênh sau lớp thứ  10. 
Mạng thứ hai, M5, sử dụng 5 lớp tích chập với 32i kênh trong lớp tích 
chập thứ i. Bản đồ tính năng trở thành 8×8 với 160 kênh sau lớp thứ 5. 
Mạng thứ ba, M7, sử dụng 4 lớp tích chập với 48i kênh trong lớp tích 
chập thứ i . Bản đồ tính năng trở thành 4×4 với 192 kênh sau lớp thứ 4. Cấu 
trúc của ba mạng được thể hiện trong Hình 2.       
Khi đào tạo, chúng tôi áp dụng chuyển đổi trên dữ liệu bao gồm dịch ngẫu 
nhiên và xoay ngẫu nhiên. Đối với dịch ngẫu nhiên, hình ảnh được dịch chuyển ngẫu 
nhiên theo chiều ngang và chiều dọc, tối đa 20% kích thước hình ảnh theo mỗi hướng. 
Để xoay ngẫu nhiên, hình ảnh được xoay tối đa 20 độ theo chiều kim đồng hồ hoặc 
ngược chiều kim đồng hồ. Số lượng biến đổi khác nhau đối với từng hình ảnh và từng 
kỷ nguyên, vì vậy mạng có thể xem các phiên bản khác nhau của hình ảnh trong tập 
huấn luyện (Hình 3). Để đào tạo và đánh giá, các vectơ đầu vào thường là số nguyên 
trong [0, 255] được chuyển đổi thành giá trị dấu phẩy động trong [-1.0, 1.0].   
Các tham số mạng được khởi tạo bằng các phương thức khởi tạo mặc định 
trong PyTorch [7]. Để tối ưu hóa tham số, chúng tôi sử dụng trình tối ưu hóa Adam 
với chức năng mất entropy chéo. Tốc độ học bắt đầu từ 0,001 và giảm dần theo cấp 
số nhânvới hệ số phân rã γ=0,98. Kích thước lô là 120 và do đó, 500 cập nhật tham 
số xảy ra trong một kỷ nguyên. Chúng tôi sử dụng hàm mũ trung bình động của các     
trọng số để đánh giá, điều này có thể dẫn đến khả năng khái quát hóa tốt hơn [8]. Sự 
phân rã theo cấp số nhân được sử dụng cho kỷ nguyên đầu, nhưng mô hình của tất 
cả các mạng trở nên giống nhau sau 50 kỷ nguyên. Bảng 1 cho thấy mức tối thiểu, 
trung bình, trung bình 99,79 99,5930 ± 0,0136 99,6949 ± 0,0058 99,7667 ± 0,0084 
tối đa tính toán trung bình động là 0,999.  3 thí nghiệm 
3.1 Kết quả cho các Mạng và Nhóm riêng lẻ 
Với mỗi loại mạng ta huấn luyện được 30 mạng với các thông số ban đầu 
khác nhau. Mỗi mạng được huấn luyện để 150 kỷ nguyên, vì độ chính xác của bài 
kiểm tra hầu như không được cải thiện sau thời điểm đó. Hình 4 cho thấy sự thay 
đổi về độ chính xác đào tạo và độ chính xác kiểm tra trong khi đào tạo. Về độ chính 
xác của thử nghiệm, các mạng có nhân lớn hơn cho thấy một số bất ổn ở độ chính 
xác tối đa của 30 mạng trong khoảng từ 50 đến 150 kỷ nguyên, trong phạm vi tin 
cậy 95%. Độ chính xác của M3 là cao hơn một chút, tiếp đến là M5 và M7 nhưng 
mức chênh lệch không quá lớn (dưới 0,02%). Từ 50 đến 150 ở giai đoạn của 30 
mạng, độ chính xác thử nghiệm cao nhất quan sát được từ M3, M5, M7 lần lượt là  99,82, 99,80 và 99,79.   
Được biết, việc sử dụng tập hợp các mạng có thể cải thiện khả năng khái quát 
hóa và đạt được độ chính xác kiểm tra cao hơn [9, 10, 11, 12]. Để kiểm tra hiệu suất     
của các mạng đồng bộ trên tập dữ liệu MNIST, chúng tôi đã đào tạo 30 mạng cho mỗi 
mạng M3, M5 và M7 và thử nghiệm bốn chiến lược tập hợp khác nhau. Trong ba 
chiến lược đầu tiên, chúng tôi chọn ngẫu nhiên ba mạng từ cùng loại mạng (M3, M5 
hoặc M7). Trong chiến lược thứ tư, chúng tôi chọn một mạng từ mỗi loại. Kết quả 
cuối cùng thu được bằng cách sử dụng biểu quyết đa số. Nghĩa là, nếu hai mạng đồng 
ý rằng một hình ảnh thuộc về một lớp cụ thể, thì lớp đó sẽ được chọn. Nếu ba mạng 
bỏ phiếu cho các lớp khác nhau, thì một lớp sẽ được chọn ngẫu nhiên trong số ba 
mạng. Đối với mỗi chiến lược, chúng tôi đã thử nghiệm 1000 mạng kết hợp và vẽ 
biểu đồ để biết độ chính xác của thử nghiệm. Hình 5 cho thấy lợi ích của việc sử dụng 
tập hợp các mạng đồng nhất. Đối với M3, M5 và M7, có thể đạt được độ chính xác 
kiểm tra cao hơn bằng cách kết hợp kết quả từ ba mạng. (Đường thẳng di chuyển sang 
bên phải.) Hình 6 cho thấy độ chính xác của phép thử của bốn phương pháp kết hợp 
được thảo luận ở trên và Bảng 2 cho thấy phạm vi tin cậy 95% của độ chính xác của 
phép thử đối với bốn phương pháp. Có thể nhận thấy rằng mặc dù độ chính xác kiểm 
tra trung bình của các phương pháp tập hợp đồng nhất là tương tự nhau, nhưng 
phương pháp tập hợp trong đó một mạng được chọn từ mỗi loại mạng đạt được độ  chính xác cao hơn.       
Từ Hình 5, chúng ta có thể thấy rằng việc sử dụng một nhóm gồm ba mạng 
đồng nhất có thể cải thiện độ chính xác của phép thử. 
 Ngoài ra, trong Hình 6 cho thấy rằng việc kết hợp các kết quả từ các mạng 
không đồng nhất cũng có thể giúp tăng độ chính xác . Chúng tôi đã thử nghiệm một 
phương pháp tập hợp hai cấp độ, trong đó trước tiên chúng tôi kết hợp các kết quả từ 
ba mạng đồng nhất, sau đó kết hợp các kết quả từ ba mạng tập hợp đồng nhất. Đối 
với nghiên cứu này, chúng tôi đã đào tạo 3 nhóm gồm 10 mạng cho mỗi loại mạng là 
M3, M5 và M7. Đối với mỗi mạng, chúng tôi đã đào tạo trong 150 kỷ nguyên và lưu 
mô hình tốt nhất về độ chính xác của thử nghiệm. Sau đó, chúng tôi chọn ngẫu nhiên 
3 mạng từ M3 và kết hợp kết quả của chúng bằng biểu quyết đa số. Tương tự, chúng 
tôi kết hợp kết quả của ba mạng cho M5 và M7. Sau đó, chúng tôi đã sử dụng biểu 
quyết đa số cho ba mạng kết hợp. Hình 7 thể hiện sự phân bổ độ chính xác của phép 
thử đối với 1000 nhóm mạng riêng lẻ (M3+M5+M7) và 1000 nhóm mạng kết hợp 
((M3+M3+M3)+(M5+M5+M5)+(M7+M7+M7 )).     
Biểu đồ cho thấy rằng việc sử dụng tập hợp các mạng tập hợp sẽ cải thiện độ 
chính xác của thử nghiệm ở mức trung bình. Bảng 3 cho thấy phạm vi tin cậy 95% 
và độ chính xác tốt nhất được quan sát đối với tập hợp các mạng riêng lẻ và tập hợp  các mạng tập hợp.   
Ngoài lựa chọn ngẫu nhiên, chúng tôi cũng đưa ra trường hợp tốt nhất để xem 
độ chính xác tốt nhất mà chúng tôi có thể đạt được là bao nhiêu. Vì trường hợp tốt 
nhất, chúng tôi đã chọn 10 mạng tập hợp đồng nhất từ M3, M5 và M7 cho thấy độ 
chính xác kiểm tra tốt nhất. Sau đó, chúng tôi chọn một mạng từ mỗi loại và kết hợp 
kết quả của chúng. Độ chính xác tốt nhất đạt được là 99,91%.     
3.2 Tác động của kiến trúc mạng 
Khi xây dựng một CNN, một thực tế phổ biến là sử dụng tổng hợp, chẳng hạn 
như tổng hợp tối đa hoặc tổng hợp trung bình [13]. tổng hợp là được sử dụng để có 
được sự bất biến dịch thuật và cũng làm giảm kích thước của các bản đồ đặc trưng.     
Một mô hình CNN thường được sử dụng bao gồm một tập hợp các lớp tích chập trong 
đó mỗi lớp tích chập được theo sau bởi một lớp tổng hợp và một hoặc nhiều các lớp 
được kết nối đầy đủ ở cuối. Một số mạng có hai lớp tích chập trước lớp tổng hợp. 
Hình 8 cho thấy một số cấu trúc CNN thường được sử dụng và chúng tôi đặt tên cho  ba mạng là C1, C2 và C3. 
Hình 9 cho thấy sự thay đổi trong đào tạo và kiểm tra độ chính xác trong quá 
trình đào tạo. Có thể thấy rằng đối với các mạng sử dụng tối đa gộp lại, độ chính xác 
của bài kiểm tra trải qua các dao động trong giai đoạn đầu đào tạo. Mặt khác, độ chính 
xác của phép thử của M5 tăng một cách ổn định hơn. Bảng 4 cho thấy độ chính xác 
kiểm tra của 30 mạng trong khoảng thời gian từ 50 đến 150   
thời đại đào tạo. Độ chính xác kiểm tra trung bình của C3 và M5 tốt hơn so 
với C1 và C2, có nghĩa là sử dụng nhiều hơn các lớp tích chập có thể dẫn đến việc 
học tính năng tốt hơn. Có nhiều lớp được kết nối đầy đủ hơn ở cuối không giúp được 
gì, vì có thể được nhìn thấy từ độ chính xác của C1 và C2. Giữa C3 và M5, nhìn 
chung M5 đạt được độ chính xác cao hơn và cũng có thể đạt độ chính xác cao hơn 
trong trường hợp tốt nhất.         
Hình 10 cho thấy biểu đồ phân phối của 30 mạng cho C1, C2, C3 và M5. Đối 
với biểu đồ này, mỗi mạng được đào tạo trong 150 giai đoạn và mạng có độ chính xác 
kiểm tra cao nhất sẽ được lưu. Có thể thấy M5 đạt bài kiểm tra tốt hơn chính xác hơn 
so với các mạng khác nói chung. Bảng 5 cho thấy phạm vi tin cậy 95% của độ chính 
xác kiểm tra cho từng mạng mẫu     
3.3 Tác động của việc tăng cường dữ liệu 
Tăng cường dữ liệu là một kỹ thuật để tăng tính đa dạng của dữ liệu đào tạo 
mà không thực sự thu thập dữ liệu và ghi nhãn họ. Đây là một kỹ thuật cần thiết cho     
việc học có giám sát, trong đó cần có một tập dữ liệu lớn để mô hình mạng có thể đạt 
hiệu quả cao [14, 15, 16, 17, 18]. Khi đào tạo mạng được đề xuất, chúng tôi đã sử 
dụng hai sơ đồ cho dữ liệu thế hệ: xoay ngẫu nhiên và dịch ngẫu nhiên. Có nhiều lược 
đồ khác như cắt xén, lật và thay đổi kích thước và các sơ đồ tăng cường tốt nhất phụ 
thuộc vào dữ liệu. Trong phần này, chúng tôi nghiên cứu xem liệu tăng cường dữ liệu 
thực sự giúp cải thiện hiệu suất mạng. Chúng tôi đã so sánh hiệu suất của bốn mạng 
M5 với các kết hợp các chương trình tăng cường được áp dụng. Hình 11 cho thấy 
biểu đồ phân phối của 30 mạng cho bốn loại khác nhau các chiến lược gia tăng. Có 
thể thấy rằng việc tăng cường dữ liệu nói chung là hữu ích. Đối với tập dữ liệu MNIST, 
áp dụng xoay ngẫu nhiên có đóng góp cao hơn một chút so với dịch ngẫu nhiên, 
nhưng cả hai sơ đồ đều cần thiết để đạt độ chính xác tốt nhất. Bảng 6 cho thấy phạm 
vi tin cậy 95% của độ chính xác kiểm tra đối với bốn chiến lược tăng cường.     
3.4 Tác động của chuẩn hóa hàng loạt 
Batch normalization là một kỹ thuật nổi tiếng để cải thiện hiệu suất của mạng 
cũng như sự ổn định và tốc độ đào tạo [19]. Đã có báo cáo rằng hầu hết các mô hình 
mạng thần kinh đều được hưởng lợi từ việc sử dụng chuẩn hóa hàng loạt [20, 21]. 
Trong phần này, chúng tôi nghiên cứu tác động của chuẩn hóa hàng loạt đối với hiệu 
suất của mô hình mạng M5. Chúng tôi đã so sánh ba cấu hình: mô hình đầu tiên hoàn 
toàn không sử dụng chuẩn hóa hàng loạt, mô hình thứ hai chỉ sử dụng chuẩn hóa hàng     
loạt ở lớp được kết nối đầy đủ và mô hình thứ ba sử dụng chuẩn hóa hàng loạt ở tất 
cả các lớp. Hình 12 cho thấy biểu đồ phân phối của 30 mạng cho mỗi cấu hình và 
Bảng 7 cho thấy phạm vi tin cậy 95% của độ chính xác kiểm tra cho từng cấu hình. 
Rõ ràng là việc sử dụng chuẩn hóa hàng loạt giúp cải thiện hiệu suất của các mô hình  mạng thần kinh. 
Hiệu suất tốt nhất đạt được khi chuẩn hóa hàng loạt được sử dụng ở mỗi lớp 
tích chập và được kết nối đầy đủ.    4. Kết luận 
Bộ dữ liệu chữ số viết tay MNIST thường được sử dụng làm bộ dữ liệu cấp 
đầu vào để đào tạo và kiểm tra mạng thần kinh. Mặc dù đạt được độ chính xác 99% 
trên bộ thử nghiệm khá dễ dàng, nhưng việc phân loại chính xác 1% hình ảnh cuối 
cùng lại là một thách thức. Mọi người đã thử nhiều mô hình và kỹ thuật mạng khác 
nhau để tăng độ chính xác của thử nghiệm và độ chính xác tốt nhất được báo cáo đạt 
khoảng 99,8%. Trong bài báo này, chúng tôi đã chỉ ra rằng một mô hình CNN đơn 
giản với chuẩn hóa hàng loạt và tăng cường dữ liệu có thể đạt được độ chính xác cao 
nhất. Sử dụng một tập hợp các mô hình mạng đồng nhất và không đồng nhất có thể 
tăng hiệu suất, độ chính xác kiểm tra lên tới 99,91%, đây là một trong những hiệu 
suất tiên tiến nhất. Các nghiên cứu với nhiều cấu hình khác nhau cho thấy rằng hiệu 
suất cao không đạt được bằng một kỹ thuật hoặc kiến trúc mô hình đơn lẻ mà được     
đóng góp bởi nhiều kỹ thuật như chuẩn hóa hàng loạt, tăng cường dữ liệu và các  phương pháp tập hợp.