Trongkhi việc nhập dữ liệu mới vào hệ thống có thể thực hiện một cách dễ dàng thông quabàn phím hoặc các phương tiện khác, thì một thách thức lớn đối diện chúng ta đó làcách lưu trữ và q
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC ĐẠI NAM
BÀI TẬP LỚNTÊN HỌC PHẦN: HỌC MÁY
ĐỀ TÀI: NHẬN DIỆN KÍ TỰ VIẾT TAY BẰNG MÔ HÌNH CNN
Giáo viên hướng dẫn: Tạ Đăng Chí
Sinh viên thực hiện:
1 1451020201 Nguyễn Trung Sơn CNTT 14-03
2 1451020256 Nguyễn Nhân Tuấn CNTT 14-03
3 1451020191 Lô Văn Quyết CNTT 14-03
Hà Nội, năm 2023
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC ĐẠI NAM
BÀI TẬP LỚNTÊN HỌC PHẦN: HỌC MÁY
ĐỀ TÀI: NHẬN DIỆN KÍ TỰ VIẾT TAY BẰNG MÔ HÌNH CNN
Hà Nội, năm 2023MỤC LỤC
STT Mã Sinh Viên Họ và Tên Ngày Sinh
ĐiểmBằng
Số BằngChữ
1 1451020201 Nguyễn Trung Sơn 24/05/2002
2 1451020256 Nguyễn Nhân Tuấn 22/03/2002
3 1451020191 Lô Văn Quyết 29/09/2002
Trang 3Lời cảm ơn 4
CHƯƠNG 1: GIỚI THIỆU ĐỀ TÀI 5
1.1 Lý do chọn đề tài 5
1.2 Mô tả bài toán 6
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 7
2.1 Tìm hiểu về học máy 7
2.1.1 Định nghĩa về học máy 7
2.1.2 Một số phương thức của Machine Learning 7
2.1.3 Mạng noron và giải thuật lan truyền ngược 8
2.1.4 Tại Sao Sử Dụng CNN? 12
2.2.5 Các lớp thường sử dụng trong mạng tích chập 15
2.2.6 Xử lý ảnh 18
2.2.7 Phương pháp giải quyết 19
2.2.8 Xử lí ảnh và trích chọn đặc trưng 19
2.3 Mô hình CNN 20
2.3.1 Khái niệm về mô hình CNN 20
2.4 Đánh giá mô hình 25
Tổng Kết 26
Lời cảm ơn
Trang 4Chúng em xin gửi lời cảm ơn sâu sắc đến thầy Tạ Đăng Chí đã hỗ trợ và đónggóp cho thành công của dự án bài tập lớn về đề tài "Nhận diện ký tự viết tay sử dụngConvolutional Neural Network (CNN)" trong môn học Machine learning Chúng emrất biết ơn sự hướng dẫn, sự quan tâm và sự hỗ trợ từ phía thầy trong suốt quá trìnhthực hiện dự án này Dự án đã mang lại cho chúng em cơ hội để học hỏi, thử nghiệm
và phát triển kỹ năng trong lĩnh vực Machine Learning và Deep Learning Dự án này
đã giúp chúng em hiểu rõ hơn về quá trình huấn luyện mô hình CNN, tiền xử lý dữliệu, đánh giá hiệu suất mô hình, và cách áp dụng Machine Learning vào thực tế.Cuối cùng, chúng em hy vọng rằng dự án này sẽ đánh dấu một bước ngoặt quantrọng trong việc nắm bắt kiến thức về Machine Learning và sẽ tiếp tục phát triển kỹnăng của chúng tôi trong lĩnh vực này
Trang 5CHƯƠNG 1: GIỚI THIỆU ĐỀ TÀI
1.1 Lý do chọn đề tài
Tình hiện nay, thông tin và tri thức đã trở thành một phần quan trọng của cuộcsống và công việc của chúng ta Thông tin này thường được lưu trữ trên nhiều thiết bịkhác nhau như máy tính, laptop, thiết bị di động, và các nền tảng trực tuyến Trongkhi việc nhập dữ liệu mới vào hệ thống có thể thực hiện một cách dễ dàng thông quabàn phím hoặc các phương tiện khác, thì một thách thức lớn đối diện chúng ta đó làcách lưu trữ và quản lý dữ liệu từ các nguồn cũ, đặc biệt là dữ liệu viết bằng tay.Những tài liệu cũ viết bằng tay như sách, sổ tay, bản ghi chép của công ty, hoặccác tài liệu quý bị lưu trữ trong các kho tài liệu, thư viện lịch sử, thậm chí cả các tàiliệu gia đình có giá trị lịch sử - tất cả đều đang đối diện với thách thức về việc chuyểnđổi chúng thành dữ liệu kỹ thuật số Việc nhập dữ liệu từ những tài liệu này vào máytính có thể trở nên rất tốn kém về thời gian và công sức Hơn nữa, khả năng mắc phảisai sót trong quá trình nhập liệu là điều không thể tránh khỏi
Để giải quyết vấn đề này, bài toán nhận dạng chữ viết tay đã trở nên vô cùngquan trọng Nó tập trung vào việc sử dụng các công nghệ và mô hình máy tính để tựđộng nhận diện và chuyển đổi các ký tự viết tay từ hình ảnh hoặc văn bản cũ thành dữliệu số Bài toán này đã được nghiên cứu và phát triển rất nhiều và đã đạt được kếtquả đáng kể thông qua nhiều phương pháp khác nhau
Trong các phương pháp này, mạng neuron tích chập (CNN) đã trở thành mộtcông cụ mạnh mẽ trong việc giải quyết bài toán nhận dạng chữ viết tay CNN có khảnăng học cách trích xuất đặc trưng từ hình ảnh và dữ liệu, và sau đó sử dụng nhữngđặc trưng này để nhận diện các ký tự Khả năng này đã giúp CNN trở thành một công
cụ hiệu quả trong việc tự động nhận diện các ký tự từ hình ảnh hoặc văn bản cũ viếtbằng tay
Vì vậy, nhóm chúng em đã chọn đề tài "Nhận diện ký tự viết tay áp dụng môhình CNN" để tìm hiểu, nghiên cứu và phát triển một mô hình máy tính có khả nănggiải quyết bài toán này Chúng em hy vọng rằng thông qua việc nghiên cứu và xâydựng mô hình này, chúng em sẽ đóng góp vào việc bảo tồn và lưu trữ các tài liệu cổđiển một cách hiệu quả và giúp họ trở nên dễ dàng truy cập thông qua các phương tiện
kỹ thuật số
Trang 61.2 Mô tả bài toán
* Tên đề tài: Nhận diện ký tự viết tay áp dụng mô hình CNN
* Mục đích: Nhận diện kí tự viết tay (số và chữ Latin), từ ảnh đầu chụp đầu vào đưa
ra kết quả là kí tự dưới dạng UNICODE
* Yêu cầu:
- Ảnh đầu vào là ảnh chụp kí tự cần nhận diện, rõ nét, không bị khuyết thiếu
- Ứng dụng đưa ra kết quả với độ chính xác cao, nhanh chóng, ít lỗi
* Ứng dụng:
Dự án giúp giải quyết vấn đề lưu trữ và quản lý các tài liệu cổ điển viết bằngtay, bao gồm sách, tài liệu lịch sử và tài liệu gia đình Việc chuyển đổi chúng thànhdạng số hóa với mã UNICODE giúp bảo vệ và bảo tồn tài liệu quý báu này, đồng thờitạo điều kiện thuận lợi cho việc chia sẻ và lưu trữ dữ liệu
Trang 7CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
2.1 Tìm hiểu về học máy
2.1.1 Định nghĩa về học máy
Học Máy (Machine Learning) là một lĩnh vực trong trí tuệ nhân tạo (ArtificialIntelligence) tập trung vào phát triển các thuật toán và mô hình máy tính có khả nănghọc hỏi từ dữ liệu và cải thiện hiệu suất của chúng trong việc thực hiện các nhiệm vụ
cụ thể mà không cần lập trình cụ thể Mục tiêu chính của Machine Learning là tạo racác mô hình hoặc hệ thống có khả năng tự động học và cải thiện qua thời gian dựatrên kinh nghiệm từ dữ liệu
Machine Learning tập trung vào việc phát triển các thuật toán và mô hình máytính để tự động học hỏi từ dữ liệu và cải thiện hiệu suất của chúng trong việc thựchiện các nhiệm vụ cụ thể Nó thường đòi hỏi sự phức tạp của các giải thuật và môhình máy học
Thống kê tập trung vào việc sử dụng mẫu dữ liệu để đưa ra kết luận về tổng thểhoặc tập dữ liệu cơ sở Nó dựa vào lý thuyết xác suất và các phương pháp thống kê đểphân tích dữ liệu Thống kê thường được sử dụng trong việc kiểm định giả thuyết vàsuy luận về dữ liệu mẫu
Machine Learning hiện nay được áp dụng rộng rãi trong nhiều lĩnh vực, baogồm máy truy tìm dữ liệu, máy phân tích thị trường chứng khoán, nhận dạng tiếngnói, và nhiều ứng dụng khác trong cuộc sống hàng ngày
2.1.2 Một số phương thức của Machine Learning
- Học có giám sát: Thuật toán dự đoán đầu ra của một dữ liệu mới (new input)dựa trên các cặp (input, outcome) đã biết từ trước Cặp dữ liệu này còn được gọi là(data, label), tức (dữ liệu, nhãn) Supervised learning là nhóm phổ biến nhất trong cácthuật toán Machine Learning
Học có giám sát được chia thành hai loại chính:
Classification (phân lớp): Là quá trình phân lớp một đối tượng dữ liệu vào mộthay nhiều lớp đã cho trước nhờ một mô hình phân lớp (model) Mô hình này đượcxây dựng dựa trên một tập dữ liệu được xây dựng trước đó có gán nhãn (hay còn gọi
là tập huấn luyện) Quá trình phân lớp là quá trình gán nhãn cho đối tượng dữ liệu
Có nhiều bài toán phân lớp như phân lớp nhị phân, phân lớp đa lớp, phân lớp
đa trị Trong đó phân lớp nhị phân là một loại phân lớp đặc biệt của phân lớp đa lớp.Ứng dụng của bài toán phân lớp được sử dụng rất nhiều và rộng rãi như nhận dạngkhuôn mặt, nhận dạng chữ viết, nhận dạng giọng nói, phát hiện thư rác
Trang 8Regression (hồi quy): Nếu không được chia thành các nhóm mà là một giá trịthực cụ thể Đầu ra của một điểm dữ liệu sẽ bằng chính đầu ra của điểm dữ liệu đãbiết.
Học không giám sát: là một kĩ thuật của máy học nhằm tìm ra một mô hìnhhay cấu trúc bị ẩn bơi tập dữ liệu không được gán nhãn cho trước học không giám sátkhác với học có giám sát là không thể xác định trước output từ tập dữ liệu huấn luyệnđược Tùy thuộc vào tập huấn luyện kết quả output sẽ khác nhau Trái ngược với học
có giám sát, tập dữ liệu huấn luyện của học không giám sát không do con người gánnhãn, máy tính sẽ phải tự học hoàn toàn Có thể nói, học không giám sát thì giá trị đầu
ra sẽ phụ thuộc vào thuật toán học không giám sát Ứng dụng lớn phổ biến của họckhông giám sát là bài toán phân cụm
Học bán giám sát: Các bài toán khi có một số lượng lớn dữ liệu nhưng chỉ mộtphần trong chúng được dán nhãn Những bài toán này nằm giữa phương thức họcgiám sát và học không giám sát
Học tăng cường: Các bài toán giúp cho hệ thống tự động xác định được hành
vi dựa trên hoàn cảnh để đạt được lợi ích cao nhất Hiện tại học tăng cường chủ yếuđược áp dụng vào lý thuyết trò chơi, các thuật toán cần xác định được nước đi tiếptheo để đạt được điểm số cao nhất
2.1.3 Mạng noron và giải thuật lan truyền ngược
- Ý tưởng của mạng nơ-ron
Một mạng nơ-ron đơn giản có cấu trúc như sau:
Cấu tạo của một mạng nơ ron baogồm:
- Các node: mỗi node thực hiện mộtcác phép tính toán
- Các kết nối: thực hiện việc truyền tínhiệu từ node này đến node khác.Thông tin của mỗi kết nối là mộttrọng số (weight) để chỉ ra mức độtín hiệu mạnh hay yếu
Dữ liệu đầu vào sẽ đi qua các lớp và mạng sẽ tính toán để cho ra đầu ra phù hợp
Hình 1: Kiến trúc một mạng nơ-ron đơn giản.
- Mạng nơ-ron nhiều lớp
Trong thực tế áp dụng, người ta thường dùng mạng nơ-ron bao gồm nhiều lớp
kề nhau.Các node giữa hai lớp kề nhau sẽ liên kết với nhau Đầu ra của lớp trước sẽ
Trang 9trở thành đầu vào của lớp kế tiếp Những lớp ở giữa của mạng (tức là trừ input vàoutput) được gọi chung là các hidden layers
Trang 11Hình 2: Cấu trúc mạng nơ-ron nhiều lớp.
Trang 12- Thuật toán lan truyền ngược
Mạng nơ-ron hoạt động dựa trên 2 thuật toán lan truyền: lan truyền ngược và lantruyền tiến
- Thuật toán lan truyền tiến (Propagation): thực hiện truyền input dọc theo mạng,tính toán đầu ra (theo chiều xuôi từ input đến output)
Trang 13- Thuật toán lan truyền ngược (Backpropagation): thực hiện tính toán mức độ đónggóp vào hàm mất mát của mỗi trọng số ở từng lớp để cập nhật nó Trong đó, kếtquả tính được của lớp sau được dùng làm cơ sở tính toán cho lớp trước (chiềungược với lan truyền tiến).
Thuật toán lan truyền ngược đóng vai trò tạo nên sức mạnh cho mạng nơ-ron vìkhả năng cập nhật trọng số và bias dựa vào đầu ra output (như các mô hình họcmáy khác) Dưới đây là phần mô tả toán học của thuật toán
* Một số biểu diễn dùng trong bài toán:
Trang 14l = L (l: lớp cuối cùng) Do đó, để cập nhật trọng số và bias của toàn mạng, ta phải
tính toán đạo hàm từ cuối trở về đầu, lấy đạo hàm riêng đã tính ở lớp sau làm cơ sởtính toán đạo hàm của lớp trước đó
Như vậy, hoạt động cơ bản của mạng nơ-ron là như sau:
- Thực hiện lan truyền tiến ra được output
Khả Năng Trích Xuất Đặc Trưng Cao:
Mô hình CNN được thiết kế để tự động học và trích xuất các đặc trưng phức tạp từ
dữ liệu hình ảnh Điều này là quan trọng trong việc nhận dạng kí tự viết tay, nơi cácđặc điểm và biến đổi của chữ viết thường rất phức tạp và đa dạng
Duyệt Qua Các Mức Độ Tính Phi Tuyến:
Lớp convolutional trong CNN cho phép mô hình duyệt qua các mức độ tính phituyến, giúp nó nhận diện các đặc điểm không chỉ ở mức pixel mà còn ở mức cao hơn,như cạnh, góc, hay các chiều sâu phức tạp trong việc nhận dạng hình dạng chữ viết
Tích Hợp Hàm Kích Hoạt Phi Tuyến Tính:
Hàm kích hoạt phi tuyến như ReLU được sử dụng trong các lớp của CNN, giúp môhình học được các biểu diễn phi tuyến tính của dữ liệu Điều này cực kỳ quan trọngkhi đối mặt với độ phức tạp của cấu trúc chữ viết tay
Giảm Chiều Dữ Liệu:
Trang 15Các lớp pooling trong CNN giúp giảm chiều dữ liệu, tạo ra sự trừng phạt giảm kíchthước ảnh, giảm độ phức tạp tính toán, và đồng thời giữ lại các đặc trưng quan trọng.
Khả Năng Học Đa Tầng:
Mô hình CNN có khả năng học các đặc trưng từ các tầng thấp đến các tầng cao, từđơn giản đến phức tạp Điều này giúp nó hiệu quả trong việc nhận dạng các đặc điểmnhỏ và lớn trong chữ viết
Tích Hợp Linh Hoạt với Dữ Liệu Ảnh:
Với khả năng xử lý dữ liệu ảnh một cách linh hoạt, CNN có thể thích nghi với địnhdạng và kích thước khác nhau của hình ảnh, làm cho nó trở thành lựa chọn linh hoạtcho nhiều ứng dụng nhận dạng kí tự viết tay khác nhau
Trong tổng thể, sự kết hợp của những đặc tính trên khiến cho mô hình CNN trở thànhcông cụ mạnh mẽ trong việc giải quyết thách thức phức tạp của nhận dạng kí tự viếttay, đồng thời nó đem lại độ chính xác và linh hoạt cần thiết cho ứng dụng thực tế
2.2 Mô hình CNN
Trong mô hình mạng nơ-ron ở trên, mỗi node của lớp sau sẽ được kết nối toàn
bộ với các node của lớp trước Việc kết nối toàn bộ như vậy đòi hỏi rất nhiều tham số,điều này khiến cho mô hình sau khi huấn luyện khá nặng Do vậy, trong bài toán phânloại ảnh, người ta thường sử dụng mô hình mạng CNN-Convolutional NeuralNetwork
Hình 4 Mô hình điển hình của mạng tích chập.
Mạng tích chập thường có 2 phần:
Trang 16 Các lớp đầu tiên thường là kết hợp của nhiều Convolutional Layer và
Pooling Layer Chức năng của phần này là trích chọn đặc trưng của đầu
vào
Phần sau của mạng thường là các lớp kết nối toàn phần (Fully Connected
Layer) làm nhiệm vụ chuyển các đặc trưng học được sang thông số để phân
loại
Trang 172.2.5 Các lớp thường sử dụng trong mạng tích chập
- Convolutional layer (Conv Layer)
Hình 5:.Hoạt động của Conv Layer.
Tham số cần học: các bộ lọc Mỗi bộ lọc sẽ trích ra 1 đặc trưng của ảnh nhưcạnh, đường thay đổi màu sắc,…
Việc tính toán ở Conv Layer được thực hiện như sau:
Trọng số của lớp này là tập các bộ lọc Tập này là một ma trận trọng số(kernel) có kích thước dài-rộng nhỏ hơn ảnh đầu vào và có độ sâu bằng vớiảnh Kernel sẽ dịch trên toàn bộ ảnh, tại mỗi bước dịch nó sẽ thực hiện nhântích vô hướng với phần ảnh tương ứng
Từ Hình 5 ta thấ output của y Conv Layer có kích thước dài-rộng khácvới của input (nó bị thu nhỏ lại) Do khi dịch bộ lọc, số lần bộ lọc nhân với cácphần tử ở biên ít hơn so với phần tử ở giữa ảnh Do đó, nếu như trong ảnh cónhững đặc trưng quan trọng ở biên thì nó sẽ rất dễ bị bỏ qua Vậy nên, trong
Conv Layer người ta áp dụng kỹ thuật zero-padding, tức là bọc ma trận inputbằng các phần tử 0 Kỹ thuật này giúp tất cả các phần tử trong ảnh sẽ có đónggóp như nhau vào mô hình Hơn nữa, nó cũng giúp kiểm soát kích thước củađầu ra, đảm bảo kích thước dài-rộng của output bằng với input
Conv Layer thường được sử dụng kết hợp với một hàm kích hoạt Hàm này có chức năng là làm gia tăng độ chênh lệch giữa các giá trị đầu ra của Conv Layer.
Trang 18Những giá trị bé sẽ được loại bớt từ đó những giá trị lớn của mô hình sẽ được kích
hoạt Các hàm kích hoạt thường được dùng là: Leaky ReLU, ReLU, tanh, sigmoid,…
Ưu điểm của Conv Layer so với việc kết nối toàn bộ trong Neural Network đó là:
Số lượng tham số = số phần tử của bộ lọc +1 (Nhỏ hơn so với NN)
Do bộ tham số cho mỗi node như nhau nên đặc trưng nên Conv có thể tríchđược các đặc trưng giống nhau ở vị trí khác nhau
- Pooling Layer:
Trong mô hình CNN, giữa các Conv Layer kế tiếp nhau thường là 1 lớp
Pooling Layer Hoạt động như sau:
Hình 6.Hoạt động của MaxPooling Layer
Tham số cần chỉ rõ đó là kích thước của sổ để thực hiện phép lấy max và độ dàibước dịch chuyển
Chức năng của lớp này là giúp giảm kích thước dữ liệu khi nó đi dọc mạng.Giảm kích thước dữ liệu đồng nghĩa với việc giảm số lượng tham số và công việc tínhtoán của mô hình, từ đó kiểm soát được tình trạng overfitting.Ngoài ra, Pooling cóchức năng giúp việc dự đoán của mô hình gần như không đổi khi đầu vào bị thay đổibởi các phép biến đổi nhỏ
Trong các loại pooling, Max Pooling được sử dụng phổ biến nhất do nó tríchxuất các đặc trưng là các viền/rìa của ảnh Ngoài Max Pooling, còn có các kiểupooling khác như Average Pooling hay L2-norm Pooling