Phần 2 MÔ HÌNH MẠNG NEURAL TÍCH CHẬP Phần 3 NHẬN DẠNG CHỮ SỐ VIẾT TAY VỚI MẠNG NƠ RON TÍCH CHẬP Phần 4... Phần 3 - Mạng Neural tích chập CNN Cấu trúc mạng Neural tích chập Mạng neural
Trang 1Báo cáo
NHẬN DIỆN SỐ
VIẾT TAY
KHMT0121 Giảng viên hướng dẫn ThS Nguyễn Nhựt Quỳnh
Trang 3LÝ DO CHỌN ĐỀ TÀI
Báo cáo
Nhận diện số viết tay đóng vai trò quan trọng trong quá trình học và công việc của lập trình viên Việc này bắt nguồn từ sự kết nối sâu sắc giữa việc viết tay và lập trình Lập trình viên thường phải viết code, ghi chú và vẽ sơ
đồ trước khi thực hiện công việc trên máy tính Tính cơ bản và cần thiết
của việc này là không thể phủ nhận, bởi nhận diện số viết tay giúp tự động hóa và tối ưu hóa quá trình chuyển đổi từ ý tưởng trên giấy thành mã
nguồn hoạt động trên máy tính Ngoài ra, công nghệ này còn có khả năng ứng dụng rộng rãi trong nhiều lĩnh vực lập trình, từ việc phát triển ứng
dụng di động đến xử lý ngôn ngữ tự nhiên và học máy Việc nghiên cứu và phát triển trong lĩnh vực này cũng khơi dậy sự sáng tạo và đổi mới, mở ra
cơ hội cho việc tạo ra các sản phẩm và dịch vụ công nghệ mới, mang lại lợi ích to lớn cho cả lập trình viên và cộng đồng người dùng
Trang 4Phần 2
MÔ HÌNH MẠNG NEURAL TÍCH CHẬP
Phần 3
NHẬN DẠNG CHỮ
SỐ VIẾT TAY VỚI MẠNG NƠ RON TÍCH CHẬP
Phần 4
Trang 5Phần 1
Báo cáo
MÔ HÌNH TỔNG QUÁT CỦA
MỘT HỆ NHẬN DẠNG SỐ VIẾT TAY
Trang 6Tiền xử lý:
Giai đoạn này góp phần làm tăng độ chính xác phân lớp của hệ thống nhận dạng, tuy nhiên nó cũng làm cho tốc độ nhận dạng của hệ thống chậm lại.
Khối tiền xử lý bao gồm một số chức năng: Nhị phân hóa ảnh, lọc nhiễu, chuẩn hóa kích thước ảnh, làm trơn biên chữ, làm đầy chữ, làm mảnh chữ
và xoay văn bản.
Phần 1
Trang 7Nhị phân hóa ảnh:
Nhị phân hóa ảnh là một kỹ thuật
chuyển ảnh đa cấp xám sang ảnh nhị
phân Trong bất kỳ bài toán phân tích
hoặc nâng cao chất lượng ảnh nào, nó
Trang 8Lọc nhiễu:
Nhiễu là một tập các điểm sáng thừa
trên ảnh Khử nhiễu là một vấn đề
thường gặp trong nhận dạng, nhiễu có
nhiều loại (nhiễu đốm, nhiễu vệt, nhiễu
phương pháp lọc tỏ ra kém hiệu quả,
trong trường hợp này sử dụng phương
pháp khử các vùng liên thông nhỏ tỏ ra
có hiệu quả hơn.
Phần 1
Nhiễu đốm và nhiễu vệt.
Trang 9Chuẩn hóa kích thước ảnh:
Việc chuẩn hóa kích thước ảnh dựa
trên việc xác định trọng tâm ảnh, sau
đó xác định khoảng cách lớn nhất từ
tâm ảnh đến các cạnh trên, dưới, trái,
phải.
Thông qua khoảng cách lớn nhất đó,
có thể xác định được một tỷ lệ co, giãn
của ảnh gốc so với kích thước đã xác
định.
Thuật toán chuẩn hóa kích thước ảnh
luôn luôn đảm bảo được tính cân bằng
khi co giãn ảnh.
Phần 1
Chuẩn hóa kích thước ảnh các ký tự “A” và “P”
Trang 10Làm trơn biên số:
Đôi khi do chất lượng quét ảnh quá
xấu, các đường biên của chữ không còn
giữ được dáng điệu trơn tru ban đầu
mà hình thành các đường răng cưa giả
tạo
Trong các trường hợp này, phải dùng
các thuật toán làm trơn biên để khắc
phục.
Phần 1
(a) Ảnh gốc (b) Ảnh sau khi được làm trơn
biên
Trang 11liên thông của ký tự
thành hai ký tự riêng biệt,
tạo nên sai lầm trong quá
Trang 12Điều chỉnh độ nghiên của văn
bản:
Do trang tài liệu quét vào không cẩn
thận hoặc do sự cố in ấn, các hàng
chữ bị lệch so với lề chuẩn một góc α,
điều này gây khó khăn cho công
đoạn tách chữ, đôi khi không thể tách
được Trong những trường hợp như
vậy, phải tính lại tọa độ điểm ảnh của
các chữ bị sai lệch.
Phần 1
Hiệu chỉnh độ nghiêng của văn
bản
Có nhiều kỹ thuật để điều chỉnh độ nghiêng, kỹ thuật phổ
biến nhất dựa trên cơ sở biểu đồ chiếu (projection profile)
của ảnh tài liệu; một số kỹ thuật dựa trên cơ sở các phép
biến đổi Hough và Fourier.
Trang 14Phần 2
Báo cáo
TỔNG QUAN VỀ TRÍCH CHỌN ĐẶC
TRƯNG VÀ MỘT SỐ PHƯƠNG PHÁP TRÍCH CHỌN
ĐẶC TRƯNG TRONG NHẬN DẠNG SỐ VIẾT
Trang 15Trích chọn đặc trưng:
Sau đây là một số phương pháp
biến đổi và khai triển chuỗi thường được áp dụng trong lĩnh vực nhận dạng số:
• Biến đổi Fourier
• Biến đổi Wavelet
• Phương pháp mô men
• Khai triển Karhunent-Loeve
Phần 2
Một tín hiệu liên tục thường chứa nhiều thông tin và chúng
có thể sử dụng làm các đặc trưng cho mục đích phân lớp
Một số biến dạng khác như các phép dịch chuyển và phép quay là bất biến dưới các phép biến đổi toàn cục và khai triển chuỗi
01 01
Trang 16Đặc trưng thông kê
Phần 2
Đặc trưng hình học và hình thái Đặc trưng bất biến
Trang 17Trích chọn đặc trưng từ ảnh đa cấp xám
Phần 2
Trích chọn đặc trưng từ ảnh nhị phân
Trích chọn đặc trưng từ biên ảnhTrích chọn đặc trưng từ biểu diễn vecter
01 09
01 07
01 08
01 06
Trang 18Phần 3
Báo cáo
MÔ HÌNH MẠNG NEURAL TÍCH CHẬP
Trang 19Phần 3
01
02
Mạng Neural nhân tạo
Mạng Neural tích chập (Convolutional Neural Networks - CNN)
Trang 21Mô hình phân lớp với CNN
Mô hình mạng neural truyền
thống
Trang 22Phần 3 - Mạng Neural tích chập (CNN)
Cấu trúc mạng Neural tích chập
Mạng neural tích chập là một dạng của mạng neural đa tầng, mỗi tầng
thuộc một trong 3 dạng: tầng tích chập
(C - convolution), lấy mẫu con (S -
subsampling), kết nối đầy đủ (F - full
connection) như hình sau
Trang 23Phần 3 - Mạng Neural tích chập (CNN)
Convolution tích chập
Tích chập được sử dụng đầu tiên trong xử lý tín hiệu số (Signal processing) Nhờ vào nguyên lý biến
đổi thông tin, các nhà khoa học đã áp dụng kĩ thuật
này vào xử lý ảnh và video số Để dễ hình dung, ta
có thể xem tích chập như một cửa sổ trượt (sliding
window) áp đặt lên một ma trận Ta có thể theo dõi
cơ chế của tích chập qua hình minh họa bên
Minh họa tích chập
Trang 24Ảnh được phát hiện biên sau khi
chập
Ảnh mờ sau khi tích chập
Trang 26Phần 3 - Mạng Neural tích chập (CNN)
Phương pháp VALID
Trang 27Phần 3 - Mạng Neural tích chập (CNN)
Phương pháp SAME
Trang 28Phần 3 - Mạng Neural tích chập (CNN)
Phương pháp FULL
Trang 30Phần 3 - Mạng Neural tích chập (CNN)
Blur
Minh họa kết quả tích chập trong kỹ thuật blur
Trang 31Phần 3 - Mạng Neural tích chập (CNN)
Sharpen
Minh họa kết quả tích chập trong kỹ thuật Sharpen
Trang 32Phần 3 - Mạng Neural tích chập (CNN)
Outline
Minh họa kết quả tích chập trong kỹ thuật Outline
Trang 33Phần 3
01
02
03
Mạng Neural nhân tạo
Huấn luyện mạng Neural Mạng Neural tích chập (Convolutional Neural Networks - CNN)
Trang 34Phần 3 - Mạng Neural nhân tạo
Sơ lược về Neural sinh học
- Qua quá trình nghiên cứu về bộ não: Bộ não con người bao gồm khoảng 1011 neuron tham gia vào khoảng 1015 kết nối trên các đường truyền
- Những thành phần chính trong cấu trúc
của một neural trong bộ não con người:
Soma , Dendrite , Axon , Synapse.
Mô hình neural sinh học
Trang 35Phần 3 - Mạng Neural nhân tạo
Mạng Neural nhân tạo
Mạng Nơron nhân tạo được thiết kế giống một số tính chất của mạng nơron sinh học Để
mô phỏng các tế bào thần kinh và các khớp nối thần kinh của bộ não con người, trong mạng nơron nhân tạo cũng có các thành phần có vai trò tương tự các thành phần trong nơron thần kinh
Hai thành phần chính cấu tạo nên mạng nơron nhân tạo là các nơron và các synapse
Weight Wi
Output
Mô hình Neural nhân tạo ở mức đơn giản
Trang 36Phần 3 - Mạng Neural nhân tạo
Kiến trúc mạng
Là một hệ thống bao gồm nhiều phần tử xử lý đơn giản tựa như Neural thần kinh của não người, hoạt động song song và được nối với nhau bởi các liên kết Neural Mỗi liên kết kèm theo một trọng số nào đó, đặc trưng cho tính kích hoạt hoặc ức chế giữa các Neural
Trang 37Phần 3 - Mạng Neural nhân tạo
Mạng một tầng
Các Neural trong cùng một tầng có hàm chuyển là không giống nhau, ta có thể định nghĩa các Neural trong một tầng có hàm chuyển khác nhau bằng cách kết hợp song song hai mạng Neural giống ở trên Cả hai sẽ có đầu vào giống nhau và mỗi mạng sản xuất ra vài đầu ra
Trang 38Phần 3 - Mạng Neural nhân tạo
Mạng một tầng
Ma trận trọng số cho các phần
tử trong vector đầu vào W:
Mô hình mạng một tầng
Trang 40Mô hình mạng đa tầng
Trang 41Phần 3
01
02
03 Huấn luyện mạng Neural
Mạng Neural nhân tạo
Mạng Neural tích chập (Convolutional Neural Networks - CNN) Mạng Neural nhân tạo
Trang 42Phần 3 - Huấn luyện mạng Neural
Phương pháp học
Mạng Neural nhân tạo phỏng theo việc xử lý thông tin của bộ não người,
do vậy đặc trưng cơ bản của mạng là có khả năng học, khả năng tái tạo các hình ảnh và dữ liệu khi đã học Trong trạng thái học thông tin được lan truyền theo hai chiều nhiều lần để học các trọng số Có 3 kiểu học chính, mỗi kiểu học tương ứng với một nhiệm vụ học trừu tượng Đó là học có giám sát (có mẫu), học không giám sát và học tăng cường
Trang 43Phần 3 - Huấn luyện mạng Neural
02 Huấn luyện mạng Neural
Học có giám sát
Học không giám sát
Học tăng cường
Trang 44Phần 3 - Huấn luyện mạng Neural
02 Huấn luyện mạng Neural
Học có giám sát
Học không giám sát
Học tăng cường
Trang 46Phần 3 - Huấn luyện mạng Neural
Thuật toán huấn luyện mạng
Thuật toán lan truyền ngược Back Propagation:
Huấn luyện mạng Neural nhiều lớp sử dụng thuật toán Lan truyền ngược gồm hai quá trình:
+ Quá trình truyền tuyến tính+ Quá trình truyền ngược
Trang 47Phần 3 - Huấn luyện mạng Neural
Thuật toán huấn luyện mạng
Những hạn chế của phương pháp lan truyền ngược:
Mạng liệt: Xảy ra khi những trọng số được điều chỉnh tới những giá trị rất lớn
Giá trị hiệu chỉnh trọng số gần 0, và quá trình huấn luyện có thể đi đến một trạng thái dừng ảo
Cực tiểu địa phương: Bởi vì sự hạ độ dốc, mạng có thể bị “mắc bẫy” tại một
cực tiểu địa phương khi có nhiều cực tiểu thấp hơn gần bên cạnh
Trang 48Phần 4
Báo cáo
NHẬN DẠNG CHỮ SỐ VIẾT TAY VỚI MẠNG NEURAL TÍCH CHẬP
Trang 49Phần 4
Xây dựng Phần trình thử nghiệm
Thông qua ngôn ngữ Python, ta sử dụng thư viện Tensorflow để xây dựng một mô hình mạng nơ-ron tích chập và áp dụng mô hình này để giải bài toán nhận dạng chữ số với tập dữ liệu MNIST
Tập dữ liệu MNIST, tập hợp các bức ảnh nhị phân về các chữ số viết tay
đã được chuẩn hoá và chuyển về kích cỡ 32x32 Dữ liệu được chia thành
60000 mẫu được đưa vào CNN để huấn luyện và 10000 mẫu để kiểm nghiệm độ chính xác của CNN MNIST là một trong những bộ dữ liệu phổ biến dùng để thử nghiệm các thuật toán về Machine Learning
Tập dữ liệu MNIST:
Trang 50Hình chiếu minh hoạ của tập dữ liệu trong
Trang 51Phần 4
Convolutional Neural Network
Mô hình dự đoán sử dụng thuật toán Adam để huấn luyện là viết tắt của
"adaptive moment estimation" để huấn luyện Thuật toán Adam kết hợp cả hai ý tưởng từ thuật toán tối ưu hóa gradient khác là RMSprop và momentum
Trong quá trình huấn luyện, Adam tính toán các gradient của hàm mất mát theo các trọng số của mạng, sau đó cập nhật các trọng số dựa trên các giá trị gradient đó và một số siêu tham số như tốc độ học (learning rate), beta1, beta2 và epsilon
Điều này làm cho quá trình huấn luyện nhanh chóng và hiệu quả hơn đối với nhiều loại mô hình và tập dữ liệu
Trang 52Phần 4
Convolutional Neural Network
Trong mô hình này, lớp Dense được sử dụng với hàm kích hoạt softmax
để xác định xác suất của các lớp đầu ra
Thuật toán softmax là một phương pháp chuẩn hóa giá trị đầu ra thành một phân phối xác suất, đảm bảo rằng tổng các giá trị xác suất là 1 Cụ thể, softmax được sử dụng để chuyển đổi các giá trị đầu ra từ lớp kết nối đầy đủ thành xác suất tương ứng với mỗi lớp đầu ra
Công thức tính toán của softmax cho một vector đầu vào là
Trang 53Phần 4
Thuật toán Gradient Descent
Gradient Descent là một thuật toán hữu ích và phổ biến trong việc tìm cực trị phương của một hàm số Ý tưởng chính của thuật toán là thực hiện vòng lặp để xấp xỉ cực trị của bài toán, các điểm đang xét của Gradient Descent sẽ dần tiến đến các điểm cực trị địa phương của hàm số, thay vì phải tìm cách giải phương trình đạo hàm riêng
Trang 54Phần 4
Convolutional Neural Network
categorical_crossentropy được sử dụng để đo lường sự khác biệt giữa các phân phối xác suất dự đoán của mô hình và phân phối xác suất thực tế của các lớp Nó tính toán mất mát bằng cách tính tổng của các logarit của xác suất dự đoán đúng
Trong trường hợp của bạn, dữ liệu đích đã được mã hóa one-hot, vì vậy bạn sử dụng categorical_crossentropy để đo lường sự tương đồng giữa các phân phối xác suất được dự đoán và thực tế
Trang 55Phần 4
Mô hình đầy đủ
Trang 56Phần 4
Xử lý dữ liệu (phân tích ảnh)
Bước 1: Lấy ảnh từ kho dữ liệu
Bước 2: Tiền xử lý ảnh 2.1: chuyển ảnh về ảnh xám
2.2: Do chữ viết tay thường là chữ đen nền trắng nên cần chuyển về chữ trắng nền đen
2.3: làm mờ ảnh
2.4: làm mượt ảnh
Bước 3: Thu gọn ảnh về kích thước 28X28
Bước 4: So sánh với mẫu đã học để cho kết quả
Trang 57Phần 4
Nhận xét
Mô hình có hiệu suất là 99,84 % với tập huấn luyện và 99,08% với tập kiểm tra vì vậy ta thấy được mô hình có khả năng học tốt với tập dữ liệu mnist
Trang 58LỜI KẾT:
Đầu tiên nhóm em xin cảm ơn cô Nguyễn Nhựt Quỳnh đã hướng dẫn nhóm em trong suốt quá trình học môn này.
Nhóm em hy vọng rằng kiến thức này sẽ là nền tảng tốt để nhóm em có thể áp dụng vào những dự án tương lai Mặc dù chỉ là một đề tài nhỏ, nhưng
nó giúp nhóm em thấy được sự quan trọng của việc học và thử nghiệm trong lĩnh vực học máy Cảm ơn thầy/cô và các bạn đã hỗ trợ và giúp đỡ, và nhóm
em hi vọng sẽ còn nhiều cơ hội học hỏi và thử thách mới trong tương lai.
Trang 59Thank’s For Watching