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 TRÍ TUỆ NHÂN TẠO Đề tài Tìm hiểu mạng CNN và ứng dụng nhận dạng ký tự số Hà Nội Năm 2023 1 Lời mở đầu Trước tiên[.]
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: TRÍ TUỆ NHÂN TẠO Đề tài Tìm hiểu mạng CNN ứng dụng nhận dạng ký tự số Hà Nội - Năm 2023 Lời mở đầu Trước tiên với tình cảm sâu sắc chân thành nhất, cho phép em bày tỏ lòng biết ơn đến tất cá nhân tổ chức tạo điều kiện hỗ trợ, giúp đỡ em suốt trình học tập nghiên cứu đề tài Trong suốt thời gian làm đề tài nghiên cứu cho tập lớn em nhận nhiều quan tâm, giúp đỡ quý thầy cô bạn bè Với lòng biết ơn sâu sắc nhất, em xin gửi đến quý thầy cô Khoa Công nghệ thông tin người trực tiếp dẫn dắt nhóm em Lê Thị Thủy truyền đạt vốn kiến thức quý báu cho chúng em suốt thời gian làm tập lớn Nhờ có lời hướng dẫn, dạy bảo thầy cô nên đề tài nghiên cứu em hồn thiện tốt đẹp Những đóng góp người kinh nghiệm quý báu giúp cho thành viên nhóm có dự tính sau việc làm đồ án tốt nghiệp sau tốt nghiệp Chúng em xin chân thành cảm ơn! Nhóm thực Nhóm Phần MẠNG NƠ-RON NHÂN TẠO Sơ lược nơ-ron sinh học Mạng nơ-ron nhân tạo Kiến trúc mạng Mạng tầng Mạng đa tầng 10 Huấn luyện mạng nơ-ron 11 6.1 Phương pháp học 11 6.2 Học có giám sát 11 6.3 Học khơng giám sát 11 6.4 Học tăng cường 11 6.5 Thuật toán huấn luyện mạng 12 Phần MẠNG NƠ-RON TÍCH CHẬP VÀ ỨNG DỤNG NHẬN DẠNG KÍ TỰ SỐ 13 Mạng nơ-ron tích chập (Convolutional Neural Networks) 13 1.1 Convolution (Tích chập) 13 1.2 Khái niệm CNNs 14 1.3 Cấu trúc mạng nơ-ron tích chập 15 1.4 Những phương pháp tích chập 16 1.5 Một số phép tích chập thường sử dụng sử lý ảnh 20 Ứng dụng nhận dạng kí tự số 2.1 Phát biểu tốn 20 20 2.1.1 Đầu vào 20 2.1.2 Đầu 21 2.2 Thuật toán áp dụng 21 2.3 Bộ sở liệu MNIST 22 2.4 Phân tích tốn 22 2.4.1 Mơ hình tổng quan 22 2.4.2 Xử lý liệu (Phân tích ảnh) 22 2.5 Mơ hình mạng kiến trúc CNN toán nhận diện ký tự số 2.6 Cài đặt 2.6.1 Import thư viện cần thiết cho trình training 2.6.2 Xem thử ảnh tập liệu 2.6.3 Đầu vào nhãn 2.6.4 Huấn luyện kiểm chứng mơ hình 23 23 Khởi tạo model thêm lớp cần thiết cho mơ hình Thêm compile cho mơ hình Huấn luyện mơ hình theo tập liệu train tập MNIST lưu mô 4.Kiểm tra độ xác mát model hình Test số mẫu ảnh nhập từ máy 2.7 Kết KẾT LUẬN 28 30 Phần MẠNG NƠ-RON NHÂN TẠO Sơ lược nơ-ron sinh học - Qua trình nghiên cứu não, người ta thấy rằng: Bộ não người bao gồm khoảng 1011 neuron tham gia vào khoảng 1015 kết nối đường truyền Mỗi đường truyền dài khoảng mét Các neuron có nhiều đặc điểm chung với tế bào khác thể, chúng cịn có khả mà tế bào khác khơng có được, khả nhận, xử lý truyền tín hiệu điện hóa đường mòn neuron, đường tạo nên hệ thống giao tiếp não - Những thành phần cấu trúc nơ-ron não người: - Hình 1.1 Mơ hình nơ-ron sinh học Trong đó: o Các Soma thân nơ-ron o Các dendrites dây mảnh, dài, gắn liền với soma, chúng truyền liệu (dưới dạng xung điện thế) đến cho soma xử lý Bên soma liệu tổng hợp lại Có thể xem gần tổng hợp phép lấy tổng tất liệu mà neural nhận o Một loại dây dẫn tín hiệu khác gắn với soma axon Khác với dendrites, axons có khả phát xung điện thế, chúng dây dẫn tín hiệu từ Neural nơi khác Chỉ điện soma vượt giá trị ngưỡng (threshold) axon phát xung điện thế, cịn khơng trạng thái nghỉ o Axon nối với dendrites neural khác thông qua mối nối đặc biệt gọi synapse Khi điện synapse tăng lên xung phát từ axon synapse nhả số chất hoá học (neurotransmitters); chất mở "cửa" dendrites ions truyền qua Chính dịng ions làm thay đổi điện dendrites, tạo xung liệu lan truyền tới Neural khác o Có thể tóm tắt hoạt động Neural sau: Neural lấy tổng tất điện vào mà nhận phát xung điện tổng lớn ngưỡng Các Neural nối với synapses Synapse gọi mạnh cho phép truyền dẫn dễ dàng tín hiệu qua Neural khác Ngược lại, synapse yếu truyền dẫn tín hiệu khó khăn o Các synapses đóng vai trị quan trọng học tập Khi học tập hoạt động synapses tăng cường, tạo nên nhiều liên kết mạnh Neural Có thể nói người học giỏi có nhiều synapses synapses mạnh mẽ, hay nói cách khác, liên kết Neural nhiều, nhạy bén Mạng nơ-ron nhân tạo - Mạng Nơron nhân tạo thiết kế để mơ hình số tính chất mạng nơron sinh học Để mô tế bào thần kinh khớp nối thần kinh não người, mạng nơron nhân tạo có thành phần có vai trị tương tự thành phần nơron thần kinh Hai thành phần cấu tạo nên mạng nơron nhân tạo nơron synapse (mô khớp nối thần kinh) - Neural nhân tạo đơn vị tính tốn có nhiều đầu vào đầu - Hình 1.2 Mơ hình nơ-ron nhân tạo mức đơn giản Hoạt động Neural: o Giả sử có N inputs, Neural có N Weights (trọng số) tương ứng với N đường truyền inputs Neural lấy tổng có trọng số tất inputs Nói có nghĩa Neural lấy input thứ nhất, nhân với weight đường input thứ nhất, lấy input thứ hai nhân với weight đường input thứ hai v.v , lấy tổng tất kết thu Đường truyền có weight lớn tín hiệu truyền qua lớn, xem weight đại lượng tương đương với synapse Neural sinh học Có thể viết kết lấy tổng Neural sau: o Kết so sánh với threshold t Neural, lớn t Neural cho output 1, cịn nhỏ output Ngồi ta trừ tổng nói cho t, so sánh kết thu với 0, kết dương Neural cho ouput 1, kết âm output Dưới dạng tốn học ta viết output Neural sau: ▪ Trong f hàm Heaviside: Hình 1.3 Hàm Heaviside ▪ f gọi threhold function hay transfer function Neural, giá trị (-t) gọi bias hay offset Neural o Nếu đưa thêm input vào, input thứ 0, có giá trị luôn weight luôn bias (-t) output Neural cịn viết dạng: Kiến trúc mạng - Là hệ thống bao gồm nhiều phần tử xử lý đơn giản (hay gọi Neural) tựa Neural thần kinh não người, hoạt động song song nối với liên kết Neural Mỗi liên kết kèm theo trọng số đó, đặc trưng cho tính kích hoạt ức chế Neural - Có thể xem trọng số phương tiện để lưu trữ thông tin dài hạn mạng Neural nhiệm vụ trình huấn luyện mạng cập nhật trọng số có thêm thơng tin mẫu học Hay nói cách khác, trọng số điều chỉnh cho dáng điệu vào mạng mơ hồn tồn phù hợp với môi trường xem xét Mạng tầng - Mạng tầng với S Neural minh họa hình 2.4 Chú ý với đầu vào số R đầu vào nối với Neural ma trận trọng số có S hàng - Một tầng bao gồm ma trận trọng số, cộng, vector ngưỡng b, hàm chuyển vector đầu a - Mỗi phần tử vector đầu vào p nối với Neural thơng qua ma trận trọng số W Mỗi Neural có ngưỡng bi , cộng, hàm chuyển f đầu với nhau, đầu tạo thành vector đầu - - - - a Thơng thường số lượng đầu vào tầng khác với số lượng Neural (R#S) Các Neural tầng có hàm chuyển khơng giống nhau, ta định nghĩa Neural tầng có hàm chuyển khác cách kết hợp song song hai mạng Neural giống Cả hai có đầu vào giống mạng sản xuất vài đầu Ma trận trọng số cho phần tử vector đầu vào W: Hình 1.4 Mơ hình mạng tầng Các số hàng phần tử ma trận W Neural đích kết hợp với trọng số đó, số cột cho biết đầu vào cho trọng số Vì vậy, số W3,2 nói trọng số đầu vào thứ nối với Neural thứ Mạng đa tầng Mô hình mạng Neural gồm lớp: lớp nhập (input), lớp ẩn(hidden) lớp xuất (output) Mỗi nút lớp nhập nhận giá trị biến độc lập chuyển vào mạng Dữ liệu từ tất nút lớp nhập tích hợp, ta gọi tổng trọng số chuyển kết cho nút lớp ẩn Gọi “ẩn” nút lớp liên lạc với nút lớp nhập lớp xuất Các nút lớp xuất nhận tín hiệu tổng trọng hóa từ nút lớp ẩn Mỗi nút lớp xuất tương ứng với biến phụ thuộc Hình 1.5 Mơ hình mạng đa tầng Huấn luyện mạng nơ-ron 6.1 Phương pháp học - Mạng Neural nhân tạo theo việc xử lý thông tin não người, đặc trưng mạng có khả học, khả tái tạo hình ảnh liệu học Trong trạng thái học thông tin lan truyền theo hai chiều nhiều lần để học trọng số - Có kiểu học chính, kiểu học tương ứng với nhiệm vụ học trừu tượng Đó học có giám sát (có mẫu), học không giám sát học tăng cường Thông thường loại kiến trúc mạng dùng cho nhiệm vụ 6.2 Học có giám sát Một thành phần thiếu phương pháp có mặt “người thầy” (ở bên ngồi hệ thống) “Người thầy” có kiến thức mơi trường thể qua tập hợp cặp đầu vào - đầu biết trước Hệ thống học (ở mạng Neural) phải tìm cách thay đổi tham số bên (các trọng số ngưỡng) để tạo nên ánh xạ có khả ánh xạ đầu vào thành đầu mong muốn Sự thay đổi tiến hành nhờ việc so sánh đầu thực đầu mong muốn 6.3 Học không giám sát Trong học khơng có giám sát, ta cho trước số liệu x hàm chi phí cần cực tiểu hóa hàm liệu x đầu mạng, f – hàm chi phí định phát biểu toán Phần lớn ứng dụng nằm vùng tốn ước lượng mơ hình hóa thống kê, nén, lọc, phân cụm 6.4 Học tăng cường Dữ liệu x thường không tạo trước mà tạo trình agent tương tác với môi trường Tại thời điểm t, agent thực hành động yt môi trường tạo quan sát xt với chi phí tức thời Ct, theo quy trình động (thường khơng biết) Mục tiêu sách lược lựa chọn hành động để cực tiểu hóa chi phí dài hạn đó, nghĩa chi phí tích lũy mong đợi Quy trình hoạt động mơi trường - chi phí dài hạn cho sách lược thường khơng biết, ước lượng Mạng Neural nhân tạo thường dùng học tăng cường phần thuật tốn tồn cục Các toán thường giải học tăng cường tốn điều khiển, trị chơi nhiệm vụ định (sequential decision making) khác 6.5 Thuật toán huấn luyện mạng ❖ Thuật Toán Lan Truyền Ngược Back Propagation Đây phương pháp thông dụng để huấn luyện cho mạng Neural truyền thẳng nhiều lớp Tiêu chuẩn huấn luyện: Làm cho sai số đầu nhỏ tốt Triết lý phương pháp: Dựa đầu để điều chỉnh trọng số lớp ra, sau dựa tính tốn lớp để điều chỉnh trọng số lớp ẩn 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 trình: Quá trình truyền tuyến tính: - Dữ liệu từ lớp nhập qua lớp ẩn đến lớp xuất để Thay đổi giá trị trọng số liên kết W Neural mạng biểu diễn liệu học - Tìm khác giá trị thật hàm mẫu mà mạng tính kết dự đốn mạng gọi lỗi (học có giám sát) Q trình truyền ngược: Giá trị lỗi truyền ngược lại cho trình huyến luyện (học) tìm trọng số Wi để lỗi nhỏ - 14 Hình 2.7 Ma trận điểm ảnh (ảnh gốc) ma trận kernel (đóng vai trị làm mặt nạ) cho q trình tích chập - Convolution phép tốn quan trọng biểu diễn cho hệ thống rời rạc tuyến tính Tín hiệu sau qua hệ thống xử lý phép convolution với ma trận đáp ứng xung (impulse response) cho kết tín hiệu đầu Xét khía cạnh thực hành, thiết kế hệ thống H xác định cách tính Convolution nguyên tắc mà hệ thống đối xử với tín hiệu (ma trận đáp ứng) Việc triển khai cách xác phép tính trợ giúp đắc lực q trình xử tín hiệu, ảnh, Hiện tại, Matlab ứng dụng phép convolution hiệu - Kernel: o Trong thao tác tích chập người ta thường sử dụng mặt nạ tích chập (convolution mask) ma trận vng chiều có kích thước thường số lẻ (thường 3x3 5x5) tác động tích chập vào tất điểm ảnh ảnh gốc o Điểm chọn làm tâm kernel xác định điểm ma trận, ví dụ kernel ma trận 3x3 tâm điểm có tọa độ 1:1, kernel ma trận 4x4 tâm điểm 1:1 (index từ theo chuẩn C++, C#) o Giá trị sau tính convolution gán cho vị trí (trên result Matrix) trùng với vị trí tâm Kernel o Trong matlab khác phương pháp tính convolution dựa vào tham số shape với trạng thái same, full, valid - Phương pháp SAME: o Kích thước ma trận kết (Result Matrix): giống kích thước Matrix ban đầu o Khởi đầu, tâm kernel đặt điểm ảnh góc bên trái (tọa độ (0,0)) ảnh (Matrix) o Tính Convolution: giá trị phần tử tính cách quét tâm kernel tồn matrix rối tính tổng tích cặp điểm tương ứng matrix kernel 15 Hình 2.8 Minh họa phương pháp SAME Phương pháp same: Đường biên ngồi (nền vàng) Matrix khơng thuộc ảnh gốc nên giá trị tính =0 thực phép toán Convolution - Phương pháp FULL: o Kích thước ma trận kết quả: matrix có chiều m1 x n1, Kernel có chiều m2 x n2 ma trận kết có chiều (m1 + m2 - 1) x (n1+ n2- 1) o Khởi đầu, điểm bên phải Kernel đặt trùng với điểm ảnh góc bên trái (tọa độ (0,0)) ảnh (Matrix) o Tính Convolution: giá trị phần tử tính cách quét toàn bộ, điểm ma trận Kernel lên điểm ma trận matrix sau tính tổng tính cặp điểm tương ứng, q trình qt có điểm Kernel nằm ngồi matrix tính 16 Hình 2.9 Minh họa phương pháp FULL Phương pháp FULL: - Khởi đầu, tâm kernel đặt điểm ảnh góc bên trái (tọa độ (0,0)) ảnh (Matrix) - Đường biên ngồi Matrix khơng thuộc ảnh gốc nên giá trị tính =0 thực phép tốn Convolution Đường biên (nền xanh) Result Matrix phần mở rộng - thêm so với kích thước ban đầu ảnh (Matrix) Phương pháp VALID: Hình 2.10 Minh họa phương pháp VALID Phương pháp VALID: -Khởi đầu, tọa độ (0,0) ảnh (Matrix) c kernel đặt trùng 17 -Các pixel nằm đường biên ngồi (n ền vàng) Matrix khơng có Result Matrix sau thực phép Convolution theo phương pháp Valid - 1.5 Một số phép tích chập thường sử dụng sử lý ảnh Một số ứng dụng phép tích chập vào việc xử lý ảnh Blur (làm mờ ảnh) Emboss (làm ảnh, chạm ảnh) Outline (phác thảo nét ảnh) Sharpen (làm ảnh trở nên sắc nét hơn) Identity Left sobel Right sobel Bottom sobel Top sobel Ứng dụng nhận dạng kí tự số 2.1 Phát biểu tốn - Cho toán nhận dạng chữ số (0-9) với đầu vào file ảnh (*.bmp, *.jpg, ) chứa ký tự số viết tay Yêu cầu toán xây dựng chương trình nhận dạng chữ số (0-9) dựa file ảnh đầu vào, dùng CNNs sở liệu chữ số (0-9) có để giải yêu cầu toán - Giả thiết giai đoạn tiền xử lý thực hiện: ảnh phân ngưỡng, xoay ảnh, lọc nhiễu, Đề tài sâu nghiên cứu trình nhận dạng chữ số viết tay kỹ thuật Deep Learning với mơ hình mạng nơ ron tích chập (CNNs) Hình 2.11 Minh họa ảnh chứa chữ số viết tay 2.1.1 Đầu vào - Ảnh đầu vào toán file ảnh (*.bmp, *.jpg, ) gồm ảnh chứa nhiều ký tự số viết tay ảnh chứa ký tự số viết tay Ảnh chứa nhiều ký số: 18 Hình 2.12 Minh họa ảnh chứa nhiều kí tự số - Ảnh chứa ký số nhất: Hình 2.13 Minh họa ảnh chứa kí tự số 2.1.2 Đầu Kết toán chữ số sau xử lí nhận dạng 2.2 Thuật toán áp dụng - Thuật toán lan truyền ngược: o B1 Nhập mẫu x: Gán giá trị x tương ứng tầng input o B2 Lan truyền tiến: Với l=2, 3, …, L, tính - o B3 Lỗi output: Tính vector o B4 Lan truyền ngược lỗi: Với l = L-1, L-2, …, 2, tính ((w) )0 o B5 Kết quả: Độ dốc hàm lỗi tính Kết hợp thuật tốn lan truyền ngược với thuật toán học: Cho m mẫu huấn luyện mạng, huấn luyện mạng theo bước sau: o Bước Nhập tập huấn luyện o Bước Với mẫu x: Gán giá trị x tương ứng tầng input thực bước: ▪ Lan truyền tiến: Với l=2, 3, …, L, tính ▪ Lỗi output : Tính vector (z) ▪ Lan truyền ngược lỗi: Với l = L-1, L-2, …, 2, tính ((w)) 19 o Bước Với l = L, L-1, …, 2, cập nhật trọng số theo quy tắc -Σ (a)T bias theo quy tắc -Σ (Trong µ hệ số học) 2.3 Bộ sở liệu MNIST - Tập sở liệu MNIST sở liệu lớn gồm chữ số viết tay, thường sử dụng để đào tạo hệ thống học máy nhằm xử lý hình ảnh khác Cơ sở liệu sử dụng rộng rãi để đào tạo thử nghiệm lĩnh vực học máy - Tập MNIST gồm 70000 liệu chia thành phần: 60000 hình ảnh sử dụng cho huấn luyện 10000 hình ảnh dùng cho mục đích kiểm tra Hình 2.14 Một số hình ảnh ví dụ trích xuất từ sở liệu MNIST 2.4 Phân tích tốn 2.4.1 Mơ hình tổng quan Hình 2.15 Mơ hình tổng quan nhận dạng 2.4.2 Xử lý liệu (Phân tích ảnh) ❖ Thuật tốn xử lý liệu: