Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 41 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
41
Dung lượng
2,62 MB
Nội dung
i TRƯỜNG ĐẠI HỌC ĐIỆN LỰC KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO CHUYÊN ĐỀ HỌC PHẦN NHẬP MÔN NHẬP MÔN HỌC MÁY ĐỀ TI: NHẬN DIỆN CHỮ VIẾT TAY BẰNG NEUTRAL NETWORK Sinh viên thực : LÊ MINH PHÚC LÊ HỒNG PHONG NGUYỄN ĐỨC THỊNH Giảng viên hướng dẫn : ĐO NAM ANH Ngành : CÔNG NGHỆ THÔNG TIN Chuyên ngành : QUẢN TRỊ AN NINH MẠNG Lớp : D13QTANM Khóa : D13 Hà Nội, tháng 10 năm 2020 ii PHIẾU CHẤM ĐIỂM ST Họ tên Nội dung thực T sinh viên Lê Minh Phúc (Nhóm trưởng) Điể m -Chỉnh sửa chung,phân cơng cơng việc -Làm phần:Giới thiệu tốn nhận dạng, Mơ hình học sâu , Mạng nhiều tầng MLP -Tìm hiểu code toán lớn Lê Hồng Phong -Làm phần: Các bước xử lý cho tốn nhận dạng hồn chỉnh,Mơ hình huấn luyện tốn nhận dạng -Tìm hiểu code toán lớn Nguyễn Đức Thịnh -Làm phần: Các bước xử lý cho toán nhận dạng hồn chỉnh, Giới thiệu tổng quan neuron -Tìm hiểu code toán lớn Họ tên giảng viên Giảng viên chấm 1: Giảng viên chấm 2: Chữ ký Ghi Chữ ký MỤC LỤC LỜI CẢM ƠN LỜI MỞ ĐẦU CHƯƠNG 1: GIỚI THIỆU ĐỀ TÀI 1.1.Giới thiệu toán nhận dạng 1.1.1.Các giai đoạn phát triển 1.2.Các bước xử lý cho toán nhận dạng hoàn chỉnh 1.3.Kết luận chương CHƯƠNG 2: MƠ HÌNH MẠNG NEURON VÀ MƠ HÌNH HỌC SÂU .11 2.1.Tổng quan mơ hình mạng neuron 11 2.1.1.Giới thiệu mạng Neuron .11 2.1.1.1.Định nghĩa: .11 2.1.1.2.Lịch sử phát triển mạng neuron .11 2.1.1.3.So sánh mạng neuron với máy tính truyền thống 14 2.1.1.4.Hoạt động mạng neuron 15 2.1.2.Mơ hình huấn luyện toán nhận dạng 26 2.1.2.1.Mạng neuron toán phân loại mẫu .26 2.1.2.2.Khả học tổng quát hóa .27 2.1.2.3.Các phương pháp huấn luyện mạng 27 2.2.Mơ hình học sâu 29 2.2.1.Mạng nhiều tầng truyền thẳng (MLP) .29 2.3.Kết luận chương 34 CHƯƠNG 3: CÀI ĐẶT CHƯƠNG TRÌNH THỬ NGHIỆM .35 3.1.Dữ liệu thực nghiệm 35 3.2.Huấn luyện mơ hình kết thực nghiệm với mơ hình MLP 35 3.2.1.Mơ hình huấn luyện 35 3.2.2.Các bước thực nghiệm .36 KẾT LUẬN CHUNG 40 TÀI LIỆU THAM KHẢO 41 LỜI CẢM ƠN LỜI CẢM ƠN Lời đầu tiên, em xin chân thành gửi lời cảm ơn tới thầy cô giáo Trường Đại học Điện Lực nói chung thầy giáo Khoa Cơng nghệ thơng tin nói riêng tận tình giảng dạy, truyền đạt cho chúng em kiến thức kinh nghiệm quý báu suốt trình học Đặc biệt, chúng em xin gửi lời cảm ơn đến Thầy Đào Nam Anh - giảng viên Khoa Công nghệ thông tin - Trường Đại học Điện Lực Thầy tận tình theo sát giúp đỡ, trực tiếp bảo, hướng dẫn suốt trình nghiên cứu học tập chúng em Trong thời gian học tập với thầy, nhóm chúng em khơng tiếp thu thêm nhiều kiến thức bổ ích mà học tập tinh thần làm việc, thái độ nghiên cứu khoa học nghiêm túc, hiệu Đây điều cần thiết cho chúng em trình học tập cơng tác sau Do thời gian thực có hạn kiến thức cịn nhiều hạn chế nên làm chúng em chắn không tránh khỏi thiếu sót định Em mong nhận ý kiến đóng góp thầy giáo bạn để em có thêm kinh nghiệm tiếp tục hồn thiện đồ án Chúng em xin chân thành cảm ơn! LỜI MỞ ĐẦU Nhận dạng chữ viết tay tốn khó lớp tốn nhận dạng chữ, ln thu hút nhiều quan tâm nghiên cứu nhà khoa học Đặc biệt vài thập niên gần đây, thúc đẩy trình tin học hóa lĩnh vực, ứng dụng nhận dạng chữ có nhiều ý nghĩa sử dụng cho toán thực tế Cũng nhiều tốn nhận dạng tiếng nói, hình ảnh… khác, độ xác hệ thống tiếp tục cần phải cải thiện nhằm vươn tới khả nhận dạng giống người Tuy nhiên, với toán nhận dạng chữ viết tay vấn đề trở nên phức tạp nhiều so với toán nhận dạng chữ in thông thường vấn đề sau đây: Với chữ viết tay khơng thể có khái niệm font chữ, kích cỡ chữ Các kí tự văn chữ viết tay thường có kích thước khác Thậm chí, kí tự văn người viết nhiều có độ rộng, hẹp, cao, thấp khác nhau, Với người viết khác chữ viết có độ nghiêng khác (chữ nghiêng nhiều/ít, chữ nghiêng trái/phải ) Các kí tự từ văn chữ viết tay hầu hết người viết thường bị dính khó xác định phân cách chúng Các văn chữ viết tay cịn có trường hợp dính dịng (dịng bị dính chồng lên dịng trên) Trong năm gần đây, mơ hình mạng Neuron theo hướng học sâu cho thấy kết tốt nhiều toán khác nhau, có nhận dạng chữ Xuất phát từ yêu cầu thực tế, cần có nghiên cứu vấn đề Chính học viên chọn đề tài “Nghiên cứu mơ hình học sâu (deep-learning) ứng dụng nhận dạng chữ viết tay” làm luận văn tốt nghiệp với mong muốn phần áp dụng vào toán thực tế Bài toán đặt phải giải yêu cầu sau: Nhận dạng ký tự từ ảnh đầu vào Tiến hành nhận dạng kí tự đơn lẻ sử dụng mạng Neuron nhân tạo theo phương pháp học sâu Restricted Boltzmann machine (RBM) Đánh giá kết so sánh với mơ hình mạng neuron Với u cầu đặt trên, cấu trúc luận văn bao gồm nội dung sau đây: Chương 1: Tổng quan đề tài Giới thiệu tốn nhận dạng chữ viết tay, tình hình nghiên cứu ngồi nước, quy trình chung để giải tốn phương pháp điển hình việc huấn luyện nhận dạng, phạm vi đề tài Chương 2: Mơ hình mạng neuron mơ hình học sâu Trình bày sở lý thuyết mơ hình neuron huấn luyện tốn nhận dạng chữ viết tay Cơ sở lý thuyết mô hình học sâu: Hopfield network, Boltzmann Machines, Restricted Boltzmann Machines thuật toán lan truyền ngược Chương 3: Kết thực nghiệm đánh giá Trình bày kết thực nghiệm hai mơ hình mạng neuron mơ hình học sâu, đưa kết đánh giá nhận dạng chữ viết tay mơ hình mạng neuron mơ hình học sâu CHƯƠNG 1: GIỚI THIỆU ĐỀ TI 1.1.Giới thiệu toán nhận dạng Nhận dạng chữ viết tay vấn đề thách thức lớn nhà nghiên cứu Bài toàn chưa thể giải trọn vẹn hoàn toàn phụ thuộc vào người viết biến đổi đa dạng cách viết trạng thái sức khỏe, tinh thần người viết Trong viết này, hướng dẫn bạn xây dựng mơ hình nhận diện chữ viết tập liệu MNIST google colab MNIST giới thiệu năm 1998 Yann Lecun cộng nhằm đánh giá mơ hình phân lớp MNIST tập liệu chữ viết từ đến Trong đó, hình ảnh đen trắng chứa số viết tay có kích thước 28x28 Bộ dataset vơ đồ sộ với khoảng 60k data training 10k data test sử dụng phổ biến thuật toán nhận dạng ảnh 1.1.1 Các giai đoạn phát triển Giai đoạn (1900 - 1980) Nhận dạng chữ biết đến từ năm 1900, nhà khoa học người Nga Alan Turing (1912-1954) phát triển phương tiện trợ giúp cho người mù Các sản phẩm nhận dạng chữ thương mại có từ năm1950, máy tính lần giới thiệu tính nhập lưu trữ liệu hai chiều bút viết bảng cảm ứng Công nghệ cho phép nhà nghiên cứu làm việc toán nhận dạng chữ viết tay online Mơ hình nhận dạng chữ viết đề xuất từ năm 1951 phát minh M Sheppard gọi GISMO, robot đọc-viết Năm 1954, máy nhận dạng chữ phát triển J Rainbow dùng để đọc chữ in hoa chậm Năm 1967, Cơng ty IBM thương mại hóa hệ thống nhận dạng chữ Giai đoạn (1980 - 1990) Với phát triển thiết bị phần cứng máy tính thiết bị thu nhận liệu, phương pháp luận nhận dạng phát triển giai đoạn trước có mơi trường lý tưởng để triển khai ứng dụng nhận dạng chữ Các hướng tiếp cận theo cấu trúc đối sánh áp dụng nhiều hệ thống nhận dạng chữ Trong giai đoạn này, hướng nghiên cứu tập trung vào kỹ thuật nhận dạng hình dáng chưa áp dụng cho thông tin ngữ nghĩa Điều dẫn đến hạn chế hiệu suất nhận dạng, không hiệu nhiều ứng dụng thực tế Giai đoạn (1990 - nay) Các hệ thống nhận dạng thời gian thực trọng giai đoạn Các kỹ thuật nhận dạng kết hợp với phương pháp luận lĩnh vực học máy (Machine Learning) áp dụng hiệu Một số công cụ học máy hiệu mạng Neuron, mơ hình Markov ẩn, SVM (Support Vector Machines) xử lý ngôn ngữ tự nhiên 1.2.Các bước xử lý cho tốn nhận dạng hồn chỉnh Nhận dạng chữ viết tay thường bao gồm năm giai đoạn: tiền xử lý (preprocessing), tách chữ (segmentation), trích chọn đặc trưng (representation), huấn luyện nhận dạng (training and recognition), hậu xử lý (postprocessing) Hình 1- 1: Các bước nhận dạng chữ viết tay nhiệm vụ tính tốn, thay đổi tham số cho đầu thực tế mạng gần với đầu mong muốn Với phương pháp này, thuật toán huấn luyện mạng thực với tập mẫu học có D{x ,t } i i xi (vector p chiều R) dạng vector đầu vào mạng ti(vector q chiều R) vector đầu mong muốn tương với ứng xi Nhiệm vụ thuật toán phải thiết lập cách tính tốn để cập nhật tham số mạng cho với đầu vào cho trước sai số đầu thực tế mạng đầu mong muốn nhỏ Một thuật tốn điển hình phương pháp học có giám sát là: thuật toán LMS (Least Mean Square error), thuật toán lan truyền ngược sai số (Back Propagation),… Với toán nhận dạng, chất phương pháp học có giám sát học để phân lớp đầu vào tập mẫu huấn luyện, số lớp cần phân loại biết trước Nhiệm vụ việc học xác định (thay đổi cập nhật) tham số mạng để đầu vào phân vào lớp chứa Học khơng có giám sát: phương pháp học để thực cơng việc mà không cần giám sát Với cách tiếp cận này, thuật toán huấn luyện mạng thực với tạo mẫu học có D dạng {xi}với xi (vector p chiều R) vector đầu vào mạng Nhiệm vụ thuật toán phải phân chia tập liệu D thành nhóm con, nhóm chứa tập vector đầu vào có đặc trưng giống Việc phân nhóm cho phép tạo lớp phân loại cách tự động số lớp trước Trong thực tế, phương pháp học có giám sát ứng dụng nhiều phương pháp học khơng có giám sát Kiểu huấn luyện khơng có giám sát thường khơng thích hợp với tốn phân loại mẫu khó đảm bảo chắn có tương ứng lớp tạo mộ cách tự động với lớp liệu thực Phương pháp tỏ thích hợp với tốn mơ hình hóa liệu 2.2 Mơ hình học sâu 2.2.1 Mạng nhiều tầng truyền thẳng (MLP) Mơ hình mạng neuron sử dụng rộng rãi mơ hình mạng nhiều tầng truyền thẳng (MLP: Multi Layer Perceptron) Một mạng MLP tổng quát mạng có n (n≥2) tầng (thơng thường tầng đầu vào khơng tính đến): gồm tầng đầu (tầng thứ n) (n-1) tầng ẩn Hinh 2- 9: Mạng MLP tổng quát Kiến trúc mạng MLP tổng qt mơ tả sau: Đầu vào vector x2 , xp không gian p chiều, x1 , đầu , vector y2 , yq trong không gian q chiều Đối với y1 , toán , 31 phân loại, p kích thước mẫu đầu vào, q số lớp cần phân loại Xét ví dụ tốn nhận dạng chữ số: với mẫu ta lưu tọa độ (x,y) điểm chữ số đó, nhiệm vụ mạng phân loại mẫu vào 10 lớp tương ứng với 10 chữ số 0, 1, …, Khi p kích thước mẫu x = 16; q số lớp 10 Mỗi neuron thuộc tầng sau liên kết với tất neuron thuộc tầng liền trước Đầu neuron tầng trước đầu vào neuron thuộc tầng liền sau Hoạt động mạng MLP sau: tầng đầu vào neuron nhận tín hiệu vào xử lý (tính tổng trọng số, gửi tới hàm truyền) cho kết (là kết hàm truyền); kết truyền tới neuron thuộc tầng ẩn thứ nhất; neuron tiếp nhận tín hiệu đầu vào, xử lý gửi kết đến tầng ẩn thứ 2;…; trình tiếp tục neuron thuộc tầng cho kết Một số kết chứng minh: Bất kì hàm Boolean biểu diễn mạng MLP tầng neuron sử dụng hàm truyền sigmoid Tất hàm liên tục xấp xỉ mạng MLP tầng sử dụng hàm truyền sigmoid cho neuron tầng ẩn hàm truyền tuyến tính cho neuron tầng với sai số nhỏ tùy ý Mọi hàm xấp xỉ mạng MLP tầng sử dụng hàm truyền sigmoid cho neuron tầng ẩn hàm truyền tuyến tính cho neuron tầng a Xác định số neuron tầng ẩn Câu hỏi chọn số lượng noron tầng ẩn mạng MLP khó, phụ thuộc vào tốn cụ thể vào kinh nghiệm nhà 32 thiết kế mạng Nếu tập liệu huấn luyện chia thành nhóm với đặc tính tương tự số lượng nhóm sử dụng để chọn số lượng neuron ẩn Trong trường hợp liệu huấn luyện nằm rải rác không chứa đặc tính chung, số lượng kết nối gần với số lượng mẫu huấn luyện để mạng hội tụ Có nhiều đề nghị cho việc chọn số lượng neuron tầng ẩn h mạng MLP Chẳng hạn h phải thỏa mãn h>(p-1)/(n+2), p số lượng mẫu huấn luyện n số lượng đầu vào mạng Càng nhiều nút ẩn mạng, nhiều đặc tính liệu huấn luyện mạng nắm bắt, thời gian học tăng Một kinh nghiệm khác cho việc chọn số lượng nút ẩn số lượng nút ẩn với số tối ưu cụm mờ (fuzzy clusters) Phát biểu chứng minh thực nghiệm Việc chọn số tầng ẩn nhiệm vụ khó Rất nhiều tốn địi hỏi nhiều tầng ẩn để giải tốt Để tìm mơ hình mạng neuron tốt nhất, Ishikawa and Moriyama (1995) sử dụng học cấu trúc có quên (structural leanrning with forgetting), tức thời gian học cắt bỏ liên kết có trọng số nhỏ Sau huấn luyện, noron có đóng góp vào giải toán giữ lại, chúng tạo nên xương cho mơ hình mạng neuron b Khởi tạo trọng Trọng thường khởi tạo phương pháp thử sai, mang tính chất kinh nghiệm phụ thuộc vào toán Việc định nghĩ trọng tốt không đơn giản Một số quy tắc khởi tạo trọng: 33 Khởi tạo trọng số cho mạng neuron thu cân (với đầu vào ngẫu nhiên sai số lan truyền ngược cho ma trận trọng số xấp xỉ nhau): W1 / W2 / W3 / W3 W1 W2 34 Nếu mạng neuron không cân trình thay đổi trọng số số ma trận nhanh số ma trận khác lại chậm, chí khơng đáng kể Do để ma trận đạt tới giá trị tối ưu nhiều thời gian Tạo trọng cho giá trị kết xuất nút có giá trị trung gian (0.5 hàm truyền hàm Sigmoid) Rõ ràng ta giá trị kết xuất giá trị hợp lý Điều giúp ta tránh giá trị thái 2.3 Kết luận chương Trong chương trình bày chủ yếu mơ hình Mạng nhiều tầng truyền thẳng (MLP) mơ hình học sâu (mơ hình mạng neuron nhân tạo theo phương pháp học sâu) Ngồi ra, chương cịn trình bày số lý thuyết mạng neuron nhân tạo số đặc trung Bên cạnh đó, chương trình bày thêm thuật tốn lan truyền ngược ứng dụng trình huấn luyện mạng mơ hình học sâu 35 CHƯƠNG 3: CI ĐẶT CHƯƠNG TRÌNH THỬ NGHIỆM 3.1 Dữ liệu thực nghiệm Ở đây, chúng em tiến hành nhận dạng ký tự với liệu thư viện MNIST: Cơ sở liệu MNIST chứa 60.000 hình ảnh đào tạo 10.000 hình ảnh thử nghiệm Một nửa tập huấn luyện nửa tập kiểm tra lấy từ tập liệu huấn luyện NIST, nửa lại tập huấn luyện nửa lại tập kiểm tra lấy từ tập liệu thử nghiệm NIST Những người tạo ban đầu sở liệu lưu giữ danh sách số phương pháp thử nghiệm Trong báo gốc, họ sử dụng máy vector hỗ trợ để có tỷ lệ lỗi 0,8% Một tập liệu mở rộng tương tự MNIST có tên EMNIST xuất vào năm 2017, bao gồm 240.000 hình ảnh đào tạo 40.000 hình ảnh thử nghiệm ký tự chữ số viết tay 3.2 Huấn luyện mơ hình kết thực nghiệm với mơ hình MLP 3.2.1 Mơ hình huấn luyện 36 Hình 3- 1: Mơ hình huấn luyện mạng (MLP) Trong mơ hình MLP học viên sử dụng hai lớp ẩn để huấn luyện với thông số sau: Lớp đầu vào (Visible Units): Với 784 nút đầu vào, nút đầu vào đại diện cho điểm ảnh, với giá trị mức xám điểm ảnh (0 255) Các lớp ẩn (Hidden Units): Tại lớp học viên sử dụng lớp ẩn với lớp tương ứng với 800, 800 nút Lớp đầu (Visible Units): Gồm có 10 nút, nút tương ứng với giá trị chữ (A, B, C, D, H, K, L, M, N, P) 3.2.2 Các bước thực nghiệm 37 38 3.2.3 Kết thực nghiệm 39 40 KẾT LUẬN CHUNG Trong trình thực tập lớn môn nhập môn học máy, chúng em biết thêm chương trình ứng dụng, nắm rõ phần học máy Từ chúng em cố gắng áp dụng kiến thức học vào làm tập để hoàn thiện sản phẩm Trong tập lớn chúng em sử dụng thuật toán NEUTRAL NETWORK đê nhận dạng chữ viết tay Vì thời gian ngắn nên tập lớn chúng em cịn nhiều thiếu sót Chúng em hy vọng có góp ý thầy cơ, để tập lớn chúng em hoàn thiện Chúng em xin chân thành cảm ơn.! TI LIỆU THAM KHẢO Tiếng Việt [1] Mai Văn Thủy (2015) Nghiên cứu mơ hình thống kê học sâu ứng dụng nhận dạng chữ viết tay hạn chế Luận văn thạc sỹ, Đại học Công nghệ thông tin Truyền thơng [2] Lê Minh Hồng, phương pháp nhận dạng văn tiếng Việt Luận văn thạc sỹ, Đại học Quốc gia Hà Nội [3] Đỗ Thanh Nghị, Phạm Nguyên Khang (2013) Nhận dạng kí tự số viết tay giải thuật máy học Tạp chí khoa học Trường Đại học Cần Thơ [4] Phạm Thị Hoàng Nhung, Hà Quang Thụy (2007) Nghiên cứu, sử dụng mạng neuron nhân tạo dự báo lưu lượng nước đến hồ Hồ Bình trước 10 ngày Hội thảo Quốc gia Một số vấn đề chọn lọc Công nghệ thông tin Truyền thông, lần thứ X, Đại Lải, Vĩnh Phúc, 9/2007 Tiếng Anh [5] Baret O and Simon J.C (1992) Cursiver Words Recognition From Pixels to Fuatures III Frontiers in Handwriting Recognition, tr.1-2 [6] Behnk S., Pfister M and Rojas R., (2000) Recognition of Handwitten ZIP Codes in a Real-World Non-Standard-Letter Sorting System Kluwer Academic Publishers, tr.95-115 [7] Fujasaki T., Beigi H.S.M, Tappert C.C, Ukelson M and Wolf C.G (1992) Online recognition of unconstrained handprinting: a strokebased system and it evaluation From Pixels to Fuatures III Frontiers in Handwriting Recognition, tr.1-3 [8] Hoai Vu Pham (2013), Hopfield networks and Boltzmann Machines Byhttp://phvu.net/ [9] Hoai Vu Pham (2013), Model definition and training of RBMs By http://phvu.net/ [10] Hoai Vu Pham (2013), Contrastive Divergence By http://phvu.net/ [11] LISA lab Deep Learning 0.1 documentation By http://www.deeplearning.net/tutorial/contents.html [12] Keith Kelleher (2013).Multilayer Perceptron in MATLAB / Octave By http://3options.net/brainannex/multilayer-perceptron-in-matlab-octave/ [13] Michael Nielsen (2014).Using neural nets to recognize handwritten digits By http://neuralnetworksanddeeplearning.com/chap1.html [14] Hesham Eraqi (Updated 01 Mar 2016) MLP Neural Network with Backpropagation By http://www.mathworks.com/matlabcentral/fileexchange/54076mlp- neural-network-with-backpropagation ... toán nhận dạng chữ viết tay vấn đề trở nên phức tạp nhiều so với toán nhận dạng chữ in thông thường vấn đề sau đây: Với chữ viết tay khơng thể có khái niệm font chữ, kích cỡ chữ Các kí tự văn chữ. .. ứng dụng nhận dạng chữ viết tay? ?? thực với mục đích giải lớp tốn nhận dạng chữ viết tay mà cụ thể nhận dạng kí tự đơn lẻ chữ từ thư viện MNIST Từ tạo sở để xây dựng tiếp mơ hình nhận dạng chữ tiếng... hệ nhận dạng cần thuộc lớp phân loại Ví dụ, nhận dạng chữ viết tay, tất kiểu viết khác chữ “a” quy lớp, lớp chữ “a” hệ nhận dạng cần huấn luyện cho gặp mẫu chữ “a” phải đầu vào thuộc lớp chữ? ??a”