Tiểu luận môn Máy học và ứng dụng TÌM HIỂU MẠNG NEURAL VÀ ỨNG DỤNG NHẬN DẠNG CHỮ SỐ VIẾT TAY BẰNG GIẢI THUẬT LAN TRUYỀN NGƯỢC

29 788 3
Tiểu luận môn Máy học và ứng dụng TÌM HIỂU MẠNG NEURAL VÀ ỨNG DỤNG NHẬN DẠNG CHỮ SỐ VIẾT TAY BẰNG GIẢI THUẬT LAN TRUYỀN NGƯỢC

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN  BÀI THU HOẠCH MÁY HỌC Đề Tài: TÌM HIỂU MẠNG NEURAL VÀ ỨNG DỤNG NHẬN DẠNG CHỮ SỐ VIẾT TAY BẰNG GIẢI THUẬT LAN TRUYỀN NGƢỢC Giảng viên : PGS.TS Vũ Thanh Nguyên Học viên: Trịnh Đồng Thạch Trúc MSHV: CH1301068 Lớp: Cao Học Khóa TP.HCM, Tháng năm 2014 i BÀI THU HOẠCH MÔN MÁY HỌC MỤC LỤC GIỚI THIỆU CHƢƠNG 1: TỔNG QUAN VỀ MƠ HÌNH MẠNG NEURAL Giới thiệu mạng neural nhân tạo 1.1 Mạng neural nhân tạo gì? 1.2 Lịch sử phát triển mạng neural 2 Neural sinh học neural nhân tạo 2.1 Neural sinh học 2.2 Neural nhân tạo 2.3 Mơ hình mạng neural 2.3.1 Các kiểu mơ hình mạng neural 2.3.2 Perceptron 11 2.3.3 Mạng nhiều tầng truyền thẳng (MLP) 12 CHƢƠNG 2: HUẤN LUYỆN VÀ XÂY DỰNG MẠNG NEURAL 13 2.1 Huấn luyện mạng Neural 13 2.1.1 Các phƣơng pháp học 13 2.1.2 Học có giám sát mạng neural 14 2.1.3 Thuật toán lan truyền ngƣợc 15 2.2 Các vấn đề xây dựng mạng MLP 16 2.2.1 Chuẩn bị liệu 17 2.2.2 Xác định tham số cho mạng 18 2.2.3 Vấn đề lãng quên (catastrophic forgetting) 20 2.2.4 Vấn đề khớp 21 CHƢƠNG 3: CHƢƠNG TRÌNH NHẬN DẠNG SỐ VIẾT TAY 23 3.1 Giới thiệu toán 23 3.2 Giao diện chƣơng trình 23 i CH1301068 – TRỊNH ĐỒNG THẠCH TRÚC BÀI THU HOẠCH MÔN MÁY HỌC 3.3 Kết thử nghiệm 23 CHƢƠNG 4: KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN 25 TÀI LIỆU THAM KHẢO 26 ii CH1301068 – TRỊNH ĐỒNG THẠCH TRÚC BÀI THU HOẠCH MÔN MÁY HỌC GIỚI THIỆU Bên cạnh việc nỗ lực đƣa ứng dụng vào thực tế sống, chuyên gia hàng đầu công nghệ thơng tin khơng qn giấc mơ, tạo máy tính tƣơng đƣơng với não ngƣời Một tiếp cận mà làm quen mạng neural nhân tạo Mạng neural nhân tạo mô xử lý thông tin, đƣợc nghiên cứu từ hệ thống thần kinh sinh vật, giống nhƣ não để xử lý thơng tin Nó bao gồm số lƣợng lớn mối gắn kết cấp cao để xử lý yếu tố làm việc mối liên hệ giải vấn đề rõ ràng ANNs giống nhƣ ngƣời, đƣợc học kinh nghiệm, lƣu kinh nghiệm hiểu biết sử dụng tình phù hợp Đầu tiên ANN đƣợc giới thiệu năm 1943 nhà thần kinh học Warren McCulloch nhà logic học Walter Pits Nhƣng với kỹ thuật thời gian chƣa cho phép họ nghiên cứu đƣợc nhiều Những năm gần mô ANN xuất phát triển Các nghiên cứu ứng dụng đƣợc thực ngành: điện, điện tử, kỹ thuật chế tạo, y học, quân sự, kinh tế… Đề tài giới thiệu tóm tắt lý thuyết mạng neural nhân tạo cách Bên cạnh đó, đề tài giới thiệu chƣơng trình ứng dụng giúp nhận dạng số viết tay Chỉ tiếp cận nhỏ bé phạm vi hẹp, nhƣng đề tài mong muốn mang lại hiểu biết đơn giản mạng neural hoạt động Mong đề tài đƣợc quan tâm phát triển ngày hiệu CH1301068 – TRỊNH ĐỒNG THẠCH TRÚC BÀI THU HOẠCH MÔN MÁY HỌC CHƢƠNG 1: TỔNG QUAN VỀ MƠ HÌNH MẠNG NEURAL Giới thiệu mạng neural nhân tạo 1.1 Mạng neural nhân tạo gì? Định nghĩa: Mạng neural nhân tạo, Artificial Neural Network (ANN) gọi tắt mạng neural, neural network, mơ hình xử lý thông tin theo cách thức xử lý thơng tin hệ neural sinh học Nó đƣợc tạo lên từ số lƣợng lớn phần tử (gọi phần tử xử lý hay neural) kết nối với thông qua liên kết (gọi trọng số liên kết) làm việc nhƣ thể thống để giải vấn đề cụ thể Một mạng neural nhân tạo đƣợc cấu hình cho ứng dụng cụ thể (nhận dạng mẫu, phân loại liệu, ) thơng qua q trình học từ tập mẫu huấn luyện Về chất học trình hiệu chỉnh trọng số liên kết neural 1.2 Lịch sử phát triển mạng neural Các nghiên cứu não ngƣời đƣợc tiến hành từ hàng nghìn năm Cùng với phát triển khoa học kĩ thuật đặc biệt tiến ngành điện tử đại, việc ngƣời bắt đầu nghiên cứu neural nhân tạo hoàn toàn tự nhiên Sự kiện đánh dấu đời mạng neural nhân tạo diễn vào năm 1943 nhà thần kinh học Warren McCulloch nhà tốn học Walter Pitts viết báo mơ tả cách thức neural hoạt động Họ tiến hành xây dựng mạng neural đơn giản mạch điện Các neural họ đƣợc xem nhƣ thiết bị nhị phân với ngƣỡng cố định Kết mơ hình hàm logic đơn giản chẳng hạn nhƣ “ a OR b” hay “a AND b” Tiếp bƣớc nghiên cứu này, năm 1949 Donald Hebb cho xuất sách Organization of Behavior Cuốn sách neural nhân tạo trở lên hiệu sau lần chúng đƣợc sử dụng Những tiến máy tính đầu năm 1950 giúp cho việc mơ hình hóa nguyên lý lý thuyết liên quan tới cách thức ngƣời suy nghĩ trở thành thực Nathanial Rochester sau nhiều năm làm việc phịng thí nghiệm CH1301068 – TRỊNH ĐỒNG THẠCH TRÚC BÀI THU HOẠCH MÔN MÁY HỌC nghiên cứu IBM có nỗ lực để mơ mạng neural Trong thời kì tính tốn truyền thống đạt đƣợc thành công rực rỡ nghiên cứu neural cịn giai đoạn sơ khai Mặc dù ngƣời ủng hộ triết lý “thinking machines” (các máy biết suy nghĩ) tiếp tục bảo vệ cho lập trƣờng Năm 1956 dự án Dartmouth nghiên cứu trí tuệ nhân tạo (Artificial Intelligence) mở thời kỳ phát triển lĩnh vực trí tuệ nhân tạo lẫn mạng neural Tác động tích cực thúc đẩy quan tâm nhà khoa học trí tuệ nhân tạo q trình xử lý mức đơn giản mạng neural não ngƣời Những năm dự án Dartmouth, John von Neumann đề xuất việc mô neural đơn giản cách sử dụng rơle điện áp đèn chân không Nhà sinh học chuyên nghiên cứu neural Frank Rosenblatt bắt đầu nghiên cứu Perceptron Sau thời gian nghiên cứu Perceptron đƣợc cài đặt phần cứng máy tính đƣợc xem nhƣ mạng neural lâu đời đƣợc sử dụng đến ngày Perceptron tầng hữu ích việc phân loại tập đầu vào có giá trị liên tục vào hai lớp Perceptron tính tổng có trọng số đầu vào, trừ tổng cho ngƣỡng cho hai giá trị mong muốn Tuy nhiên Perceptron nhiều hạn chế, hạn chế đƣợc sách Perceptron Marvin Minsky Seymour Papert viết năm 1969 Năm 1959, Bernard Widrow Marcian Hoff thuộc trƣờng đại học Stanford xây dựng mơ hình ADALINE (ADAptive LINear Elements) MADALINE (Multiple ADAptive LINear Elements) Các mơ hình sử dụng quy tắc học LeastMean-Squares (LMS: Tối thiểu bình phƣơng trung bình) MADALINE mạng neural đƣợc áp dụng để giải tốn thực tế Nó lọc thích ứng có khả loại bỏ tín hiệu dội lại đƣờng dây điện thoại Ngày mạng neural đƣợc sử dụng ứng dụng thƣơng mại Năm 1974 Paul Werbos phát triển ứng dụng phƣơng pháp học lan truyền ngƣợc ( back-propagation) Tuy nhiên phải vài năm phƣơng pháp CH1301068 – TRỊNH ĐỒNG THẠCH TRÚC BÀI THU HOẠCH MÔN MÁY HỌC trở lên phổ biến Các mạng lan truyền ngƣợc đƣợc biết đến nhiều đƣợc áp dụng rộng dãi nhất ngày Thật không may, thành công ban đầu khiến cho ngƣời nghĩ lên khả mạng neural Chính cƣờng điệu q mức có tác động khơng tốt đến phát triển khoa học kỹ thuật thời ngƣời ta lo sợ đến lúc máy móc làm việc ngƣời Những lo lắng khiến ngƣời ta bắt đầu phản đối nghiên cứu mạng neuron Thời kì tạm lắng kéo dài đến năm 1981 Năm 1982 báo gửi tới viện khoa học quốc gia, John Hopfield phân tích tốn học rõ ràng, mạch lạc, ông cách thức mạng neural làm việc cơng việc chúng thực đƣợc Cống hiến Hopfield không giá trị nghiên cứu khoa học mà thúc đẩy trở lại nghiên cứu mạng neuron Cũng thời gian này, hội nghị với tham gia Hoa Kỳ Nhật Bản bàn việc hợp tác/cạnh tranh lĩnh vực mạng neural đƣợc tổ chức Kyoto, Nhật Bản Sau hội nghị, Nhật Bản công bố nỗ lực họ việc tạo máy tính hệ thứ Tiếp nhận điều đó, tạp chí định kỳ Hoa Kỳ bày tỏ lo lắng nƣớc nhà bị tụt hậu lĩnh vực Vì thế, sau đó, Hoa Kỳ nhanh chóng huy động quĩ tài trợ cho nghiên cứu ứng dụng mạng neuron Năm 1985, viện vật lý Hoa Kỳ bắt đầu tổ chức họp hàng năm mạng neuron ứng dụng tin học (Neural Networks for Computing) Năm 1987, hội thảo quốc tế mạng neuron Viện kỹ sƣ điện điện tử IEEE (Institute of Electrical and Electronic Engineer) thu hút 1800 ngƣời tham gia Ngày nay, không dừng lại mức nghiên cứu lý thuyết, nghiên cứu ứng dụng mạng neural để giải toán thực tế đƣợc diễn khắp nơi Các ứng dụng mạng neural đời ngày nhiều ngày hồn thiện Điển hình ứng dụng: xử lý ngôn ngữ (Language Processing), nhận dạng kí tự (Character CH1301068 – TRỊNH ĐỒNG THẠCH TRÚC BÀI THU HOẠCH MÔN MÁY HỌC Recognition), nhận dạng tiếng nói (Voice Recognition), nhận dạng mẫu (Pattern Recognition), xử lý tín hiệu (Signal Processing), Lọc liệu (Data Filtering),… Neural sinh học neural nhân tạo 2.1 Neural sinh học Qua trình nghiên cứu não, ngƣời ta thấy rằng: não ngƣời bao gồm khoảng 1011 neural 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 neural 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 neural, đƣờng tạo nên hệ thống giao tiếp não Hình 1: Cấu trúc neural sinh học điển hình Mỗi neural sinh học có thành phần bản: • Các nhánh vào hình ( dendrites) • Thân tế bào (cell body) • Sợi trục (axon) Các nhánh hình truyền tín hiệu vào đến thân tế bào Thân tế bào tổng hợp xử lý cho tín hiệu Sợi trục truyền tín hiệu từ thân tế bào sang neural CH1301068 – TRỊNH ĐỒNG THẠCH TRÚC BÀI THU HOẠCH MÔN MÁY HỌC khác Điểm liên kết sợi trục neural với nhánh hình neural khác gọi synapse Liên kết neural độ nhạy synapse đƣợc xác định q trình hóa học phức tạp Một số cấu trúc neural đƣợc xác định trƣớc lúc sinh Một số cấu trúc đƣợc phát triển thông qua trình học Trong đời cá thể, số liên kết đƣợc hình thành, số khác bị hủy bỏ Nhƣ neural sinh học hoạt động theo cách thức sau: nhận tín hiệu đầu vào, xử lý tín hiệu cho tín hiệu output Tín hiệu output sau đƣợc truyền làm tín hiệu đầu vào cho neural khác Dựa hiểu biết neural sinh học, ngƣời xây dựng neural nhân tạo với hy vọng tạo nên mơ hình có sức mạnh nhƣ não 2.2 Neural nhân tạo Một neural đơn vị xử lý thông tin thành phần mạng neural Cấu trúc neural đƣợc mơ tả hình dƣới Hình 2: Neural nhân tạo Các thành phần neural nhân tạo bao gồm: ♦ Tập đầu vào: Là tín hiệu vào (input signals) neural, tín hiệu thƣờng đƣợc đƣa vào dƣới dạng vector N chiều ♦ Tập liên kết: Mỗi liên kết đƣợc thể trọng số (gọi trọng số liên kết – Synaptic weight) Trọng số liên kết tín hiệu vào thứ j với neural k CH1301068 – TRỊNH ĐỒNG THẠCH TRÚC BÀI THU HOẠCH MÔN MÁY HỌC thƣờng đƣợc kí hiệu w Thơng thƣờng, trọng số đƣợc khởi tạo cách kj ngẫu nhiên thời điểm khởi tạo mạng đƣợc cập nhật liên tục trình học mạng ♦ Bộ tổng (Summing function): Thƣờng dùng để tính tổng tích đầu vào với trọng số liên kết ♦ Ngƣỡng (còn gọi độ lệch - bias): Ngƣỡng thƣờng đƣợc đƣa vào nhƣ thành phần hàm truyền ♦ Hàm truyền (Transfer function) : Hàm đƣợc dùng để giới hạn phạm vi đầu neural Nó nhận đầu vào kết hàm tổng ngƣỡng cho Thông thƣờng, phạm vi đầu neural đƣợc giới hạn đoạn [0,1] [-1, 1] Các hàm truyền đa dạng, hàm tuyến tính phi tuyến Việc lựa chọn hàm truyền tuỳ thuộc vào toán kinh nghiệm ngƣời thiết kế mạng Một số hàm truyền thƣờng sử dụng mơ hình mạng neural đƣợc đƣa bảng ♦ Đầu ra: Là tín hiệu đầu neural, với neural có tối đa đầu Xét mặt toán học, cấu trúc neural k, đƣợc mô tả cặp biểu thức sau: [cong thuc] đó: x , x , , x : tín hiệu vào; (w , w p k1 k2, , w kp) trọng số liên kết neural thứ k; u hàm tổng; b ngƣỡng; f hàm truyền y k k k tín hiệu đầu neural Nhƣ tƣơng tự nhƣ neural sinh học, neural nhân tạo nhận tín hiệu đầu vào, xử lý ( nhân tín hiệu với trọng số liên kết, tính tổng tích thu đƣợc gửi kết tới hàm truyền), cho tín hiệu đầu ( kết hàm truyền) Bảng 1: Một số hàm truyền thông dụng Hàm truyền Đồ thị Định nghĩa CH1301068 – TRỊNH ĐỒNG THẠCH TRÚC BÀI THU HOẠCH MÔN MÁY HỌC Perceptron cho phép phân loại xác trƣờng hợp liệu phân chia tuyến tính (các mẫu nằm hai mặt đối diện siêu phẳng) Nó phân loại đầu hàm AND, OR hàm có dạng n m đầu vào (n ≤ m) Nó khơng thể phân loại đƣợc đầu hàm XOR 2.3.3 Mạng nhiều tầng truyền thẳng (MLP) Mơ hình mạng neural đƣợc 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 qt mạng có n (n≥2) tầng (thơng thƣờng tầng đầu vào khơng đƣợc tính đến): gồm tầng đầu (tầng thứ n) (n-1) tầng ẩn Hình 8: Mạng MLP tổng quát Kiến trúc mạng MLP tổng qt mơ tả nhƣ sau: ♦ Đầu vào vector (x1, x2, , xp) không gian p chiều, đầu vector (y1, y2, , yq) không gian q chiều Đối với tốn 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ụ toá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 12 CH1301068 – TRỊNH ĐỒNG THẠCH TRÚC BÀI THU HOẠCH MÔN MÁY HỌC CHƢƠNG 2: HUẤN LUYỆN VÀ XÂY DỰNG MẠNG NEURAL 2.1 Huấn luyện mạng Neural 2.1.1 Các phƣơng pháp học Khái niệm: Học trình thay đổi hành vi vật theo cách làm cho chúng thực tốt tƣơng lai Một mạng neural đƣợc huyấn luyện cho với tập vector đầu vào X, mạng có khả tạo tập vector đầu mong muốn Y Tập X đƣợc sử dụng cho huấn luyện mạng đƣợc gọi tập huấn luyện (training set) Các phần tử x thuộc X đƣợc gọi mẫu huấn luyện (training example) Quá trình huấn luyện chất thay đổi trọng số liên kết mạng Trong trình này, trọng số mạng hội tụ dần tới giá trị cho với vector đầu vào x từ tập huấn luyện, mạng cho vector đầu y nhƣ mong muốn Có ba phƣơng pháp học phổ biến học có giám sát (supervised learning), học không giám sát (unsupervised learning) học tăng cƣờng (Reinforcement learning): ♦ Học có giám sát: Là q trình học có tham gia giám sát “thầy giáo” Cũng giống nhƣ việc ta dạy em nhỏ chữ Ta đƣa chữ “a” bảo với em chữ “a” Việc đƣợc thực tất mẫu chữ Sau kiểm tra ta đƣa chữ (có thể viết khác đi) hỏi em chữ gì? Với học có giám sát, tập mẫu huấn luyện đƣợc cho dƣới dạng D = {(x,t) | (x,t) ∈ N K [IR x R ]}, đó: x = (x , x , , x ) vector đặc trƣng N chiều mẫu huấn N luyện t = (t , t , , t ) vector mục tiêu K chiều tƣơng ứng, nhiệm vụ thuật K toán phải thiết lập đƣợc cách tính tốn mạng nhƣ để cho với vector đặc trƣng đầu vào sai số giá trị đầu thực mạng giá trị mục tiêu tƣơng ứng nhỏ Chẳng hạn mạng học để xấp xỉ hàm t = f(x) biểu diễn mối quan hệ tập mẫu huấn luyện (x, t) 13 CH1301068 – TRỊNH ĐỒNG THẠCH TRÚC BÀI THU HOẠCH MƠN MÁY HỌC Nhƣ với học có giám sát, số lớp cần phân loại đƣợc biết trƣớc Nhiệm vụ thuật toán phải xác định đƣợc cách thức phân lớp cho với vector đầu vào đƣợc phân loại xác vào lớp ♦ Học khơng giám sát: Là việc học khơng cần có giám sát Trong tốn học khơng giám sát, tập liệu huấn luyện đƣợc cho dƣới dạng: D = {(x , x , , x )}, với (x , x , , x ) vector đặc trƣng mẫu huấn luyện N N 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 vector đầu vào có đặc trƣng giống Nhƣ với học không giám sát, số lớp phân loại chƣa đƣợc biết trƣớc, tùy theo tiêu chuẩn đánh giá độ tương tự mẫu mà ta có lớp phân loại khác ♦ Học tăng cƣờng: đơi cịn đƣợc gọi học thƣởng-phạt (reward-penalty learning), tổ hợp hai mơ hình Phƣơng pháp cụ thể nhƣ sau: với vector đầu vào, quan sát vector đầu mạng tính đƣợc Nếu kết đƣợc xem “tốt” mạng đƣợc thƣởng theo nghĩa tăng trọng số kết nối lên; ngƣợc lại mạng bị phạt, trọng số kết nối khơng thích hợp đƣợc giảm xuống Do học tăng cƣờng học theo nhà phê bình (critic), ngƣợc với học có giám sát học theo thầy giáo (teacher) 2.1.2 Học có giám sát mạng neural Học có giám sát đƣợc xem nhƣ việc xấp xỉ ánh xạ: X→ Y, X tập vấn đề Y tập lời giải tƣơng ứng cho vấn đề Các mẫu (x, y) với x = (x1, x2, , xn) ∈ X, y = (yl, y2, , ym) ∈ Y đƣợc cho trƣớc Học có giám sát mạng neural thƣờng đƣợc thực theo bƣớc sau: ♦ B1: Xây dựng cấu trúc thích hợp cho mạng neural, chẳng hạn có (n + 1) neural vào (n neural cho biến vào neural cho ngƣỡng x0), m neural đầu ra, khởi tạo trọng số liên kết mạng ♦ B2: Đƣa vector x tập mẫu huấn luyện X vào mạng ♦ B3: Tính vector đầu o mạng 14 CH1301068 – TRỊNH ĐỒNG THẠCH TRÚC BÀI THU HOẠCH MÔN MÁY HỌC ♦ B4: So sánh vector đầu mong muốn y (là kết đƣợc cho tập huấn luyện) với vector đầu o mạng tạo ra; đánh giá lỗi ♦ B5: Hiệu chỉnh trọng số liên kết theo cách cho lần đƣa vector x vào mạng, vector đầu o giống với y ♦ B6: Nếu cần, lặp lại bƣớc từ đến mạng đạt tới trạng thái hội tụ Việc đánh giá lỗi thực theo nhiều cách, cách dùng nhiều sử dụng lỗi tức thời: Err = (o - y), Err = |o - y|; lỗi trung bình bình phƣơng (MSE: mean-square error): Err = (o- y)2/2; Có hai loại lỗi đánh giá mạng neural Thứ nhất, gọi lỗi rõ ràng (apparent error), đánh giá khả xấp xỉ mẫu huấn luyện mạng đƣợc huấn luyện Thứ hai, gọi lỗi kiểm tra (test error), đánh giá khả tổng hóa mạng đƣợc huấn luyện, tức khả phản ứng với vector đầu vào Để đánh giá lỗi kiểm tra phải biết đầu mong muốn cho mẫu kiểm tra Thuật tốn tổng qt cho học có giám sát mạng neural có nhiều cài đặt khác nhau, khác chủ yếu cách trọng số liên kết đƣợc thay đổi suốt thời gian học Trong tiêu biểu thuật tốn lan truyền ngƣợc 2.1.3 Thuật toán lan truyền ngƣợc Ta sử dụng số kí hiệu sau:  j: neural thứ j (hay nút thứ j)  Xj: vector đầu vào nút thứ j  Wj: vector trọng số nút thứ j  xji: đầu vào nút thứ j từ nút thứ i  wji: trọng số xji  bj: ngƣỡng nút thứ j  oj: đầu nút thứ j  tj: đầu mong muốn nút thứ j 15 CH1301068 – TRỊNH ĐỒNG THẠCH TRÚC BÀI THU HOẠCH MÔN MÁY HỌC  Downstream(j): Tập tất nút nhận đầu nút thứ j làm giá trị đầu vào  η: tốc độ học  f: hàm truyền với f(x) = / (1 + e-x) Thuật toán lan truyền ngƣợc đƣợc mô tả nhƣ sau: Input: - Mạng feed-forward với ni đầu vào, nh nút ẩn no đầu - Hệ số học η - Tập liệu huấn luyện D = {là vector đầu vào, vector đầu mong muốn} Output: Các vector trọng số Thuật toán: Bƣớc 1: Khởi tạo trọng số giá trị ngẫu nhiên nhỏ Bƣớc 2: Lặp lại thỏa mãn điều kiện kết thúc Với mẫu, thực bƣớc sau: 2.1 Tính đầu oj cho nút j: oj = f(d – bj) với d = Σxjiwji 2.2 Với nút k thuộc tầng ra, tính δk theo cơng thức: δk = (tk – ok)(1 – ok)ok 2.3 Với nút h thuộc tầng ẩn, tính δh theo cơng thức: δh = oh(1 – oh) Σδkwkh với k ∈ Downstream(j) 2.4 Cập nhật: wji = wji + Δwji Trong Δwji = ηδkxji 2.2 Các vấn đề xây dựng mạng MLP 16 CH1301068 – TRỊNH ĐỒNG THẠCH TRÚC BÀI THU HOẠCH MÔN MÁY HỌC 2.2.1 Chuẩn bị liệu a Kích thƣớc mẫu Khơng có ngun tắc hƣớng dẫn kích thƣớc mẫu phải toán cho trƣớc Hai yếu tố quan trọng ảnh hƣởng đến kích thƣớc mẫu: ♦ Dạng hàm đích: hàm đích phức tạp kích thƣớc mẫu cần tăng ♦ Nhiễu: liệu bị nhiễu (thông tin sai thiếu thông tin) kích thƣớc mẫu cần tăng Đối với mạng truyền thẳng (feedforward), cho hàm đích có độ phức tạp định, kèm lƣợng nhiễu định độ xác mơ hình ln có giới hạn định Có thể cần tập mẫu vơ hạn để đạt đến giới hạn xác Nói cách khác độ xác mơ hình hàm theo kích thƣớc tập mẫu Khi kích thƣớc mẫu tăng, độ xác đƣợc cải thiện - lúc đầu nhanh, nhƣng chậm dần tiến đến giới hạn Dạng tổng quát mối liên hệ sai số kích thƣớc mẫu nhƣ sau: Hình 9: Mối liên hệ sai số kích thƣớc mẫu Trong thực hành thƣờng gặp phải vấn đề sau : ♦ Đối với hầu hết toán thực tế, mẫu bị ràng buộc chặt chẽ với liệu có sẵn Ta thƣờng khơng có đƣợc số lƣợng mẫu mong muốn 17 CH1301068 – TRỊNH ĐỒNG THẠCH TRÚC BÀI THU HOẠCH MƠN MÁY HỌC ♦ Kích thƣớc mẫu bị giới hạn nhớ khả lƣu trữ máy tính Nếu tất liệu đồng thời đƣợc giữ nhớ suốt thời gian luyện, kích thƣớc nhớ máy tính bị chiếm dụng nghiêm trọng Nếu lƣu trữ đĩa cho phép dùng mẫu lớn nhƣng thao tác đọc đĩa từ hệ sang hệ khác khiến cho tiến trình chậm nhiều Luật là: Sử dụng mẫu lớn cho đủ khả lƣu trữ nhớ (nếu lƣu trữ đồng thời) đĩa từ (nếu đủ thời gian đọc từ đĩa) b Mẫu Trong xây dựng mơ hình cần chia tập mẫu thành tập con: để xây dựng mơ hình gọi tập huấn luyện (training set), để kiểm nghiệm mơ hình gọi tập kiểm tra (test set) Thông thƣờng dùng 2/3 mẫu cho huấn luyện 1/3 cho kiểm tra Điều để tránh tình trạng khớp (overfitting) c Sự phân tầng mẫu Nếu ta tổ chức mẫu cho mẫu quần thể có hội nhƣ tập mẫu đƣợc gọi tập mẫu đại diện Tuy nhiên ta xây dựng mạng để xác định xem mẫu thuộc lớp hay thuộc loại điều ta mong muốn lớp có ảnh hƣởng lên mạng, để đạt đƣợc điều ta sử dụng mẫu phân tầng d Chọn biến Khi tạo mẫu cần chọn biến sử dụng mô hình Có vấn đề cần quan tâm: ♦ Cần tìm hiểu cách biến đổi thơng tin cho có lợi cho mạng hơn: thông tin trƣớc đƣa vào mạng cần đƣợc biến đổi dạng thích hợp nhất, để mạng đạt đƣợc hiệu xuất cao ♦ Chọn số biến đƣợc biến đổi biến đƣợc đƣa vào mơ hình: khơng phải thơng tin mẫu có lợi cho mạng 2.2.2 Xác định tham số cho mạng 18 CH1301068 – TRỊNH ĐỒNG THẠCH TRÚC BÀI THU HOẠCH MÔN MÁY HỌC a Chọn hàm truyền Không phải hàm truyền cho kết nhƣ mong muốn Để trả lời cho câu hỏi «hàm truyền coi tốt ? » điều không đơn giản Có số quy tắc chọn hàm truyền nhƣ sau: ♦ Khơng dùng hàm truyền tuyến tính tầng ẩn Vì dùng hàm truyền tuyến tính tầng ẩn làm vai trị tầng ẩn đó: Xét tầng ẩn thứ i: Tổng trọng số ni = wiai-1 + bi = f(ni) = wf ni +bf (hàm truyền tuyến tính) Khi đó: tổng trọng số tầng thứ (i + 1) ni+1 = wi+1ai + bi+1 = wi+1[wf ni +bf] + bi+1 = wi+1 [wf(wiai-1 + bi) + bf] + bi+1 = Wai-1 + b Nhƣ ni+1 = Wai-1 + b, tầng i khơng cịn giá trị ♦ Chọn hàm truyền cho kiến trúc mạng neural đối xứng (tức với đầu vào ngẫu nhiên đầu có phân bố đối xứng) Nếu mạng neural khơng đối xứng giá trị đầu lệch sang bên, khơng phân tán lên tồn miền giá trị output Điều làm cho mạng rơi vào trạng thái bão hịa, khơng đƣợc b Xác định số neural 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 toán cụ thể vào kinh nghiệm nhà thiết kế mạng Nếu tập liệu huấn luyện đƣợc chia thành nhóm với đặc tính tƣơng tự số lƣợng nhóm đƣợc sử dụng để chọn số lƣợng neural ẩ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 neural tầng ẩn h mạng MLP Chẳng hạn h phải 19 CH1301068 – TRỊNH ĐỒNG THẠCH TRÚC BÀI THU HOẠCH MÔN MÁY HỌC 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 đƣợc mạng nắm bắt, nhƣng 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)[8] Phát biểu đƣợc 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 c Khởi tạo trọng Trọng thƣờng đƣợc 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: ♦ Khởi tạo trọng cho mạng neural thu đƣợc 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/W1| = |ΔW2/W2| = |ΔW3/W3| Nếu mạng neural 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 khơng biết giá trị kết xuất giá trị hợp lý Điều giúp ta tránh đƣợc giá trị thái Thủ tục khởi tạo trọng thƣờng đƣợc áp dụng: – B1: Khởi tạo trọng số nút ẩn (và trọng số cung liên kết trực tiếp nút nhập nút xuất, có) giá trị ngẫu nhiên, nhỏ, phân bố quanh – B2: Khởi tạo nửa số trọng số nút xuất giá trị 1, nửa giá trị -1 2.2.3 Vấn đề lãng quên (catastrophic forgetting) Catastrophic forgetting vấn đề mạng quên học đƣợc mẫu trƣớc học mẫu Nguyên nhân thay đổi 20 CH1301068 – TRỊNH ĐỒNG THẠCH TRÚC BÀI THU HOẠCH MÔN MÁY HỌC trọng số theo mẫu mới, nhƣ mẫu cũ thời gian không đƣợc đƣa vào huấn luyện Để tránh điều này, ta thƣờng thực việc huấn luyện luân phiên mẫu cũ mẫu Hình 10: Huấn luyện luân phiên hai tập mẫu Xét ví dụ mạng đƣợc huấn luyện luân phiên với hai tập mẫu A B (hình 210) Tại chu kỳ mạng học tập mẫu A sau học tập mẫu B Khi bƣớc vào chu kỳ thứ hai, lỗi lúc bắt đầu học tập mẫu A cao chu kỳ thứ vừa học xong tập A Điều hai lần học tập mẫu A mạng học tập mẫu B Tuy nhiên xét chu kỳ lỗi huấn luyện giảm xuống Tức lỗi lúc bƣớc vào chu kỳ thứ ba nhỏ lúc bƣớc vào chu kỳ thứ hai 2.2.4 Vấn đề khớp a Khái niệm khớp Vấn đề khớp xảy mạng đƣợc luyện khớp (quá sát) với liệu huấn luyện (kể nhiễu), nên trả lời xác đƣợc học, cịn khơng đƣợc học khơng quan tâm Nhƣ mạng khơng có đƣợc khả tổng qt hóa Về mặt tốn học, giả thuyết (mơ hình) h đƣợc gọi khớp tồn giả thuyết h' cho: Error train (h) < Error train (h') Error test (h) > Error test (h') 21 CH1301068 – TRỊNH ĐỒNG THẠCH TRÚC BÀI THU HOẠCH MÔN MÁY HỌC b Giải khớp Vấn đề khớp xảy mạng có lực q lớn Có cách để hạn chế bớt lực mạng: – Hạn chế số nút ẩn – Ngăn không cho mạng sử dụng trọng số lớn – Giới hạn số bƣớc luyện Khi mạng đƣợc luyện, chuyển từ hàm ánh xạ tƣơng đối đơn giản đến hàm ánh xạ tƣơng đối phức tạp Nó đạt đƣợc cấu hình tổng qt hóa tốt điểm Sau điểm mạng học để mơ hình hóa nhiễu, mạng học đƣợc trở thành khớp Nếu ta phát thời điểm mạng đạt đến trạng thái tốt này, ta ngừng tiến trình luyện trƣớc tƣợng khớp xảy Ta biết rằng, để đánh giá mức độ tổng quát hóa mạng cách kiểm tra mạng mẫu khơng đƣợc học Ta thực nhƣ sau: chia mẫu thành tập mẫu huấn luyện tập mẫu kiểm tra Luyện mạng với tập mẫu huấn luyện nhƣng định kỳ dừng lại đánh giá sai số tập mẫu kiểm tra Khi sai số tập mẫu kiểm tra tăng lên khớp bắt đầu ta dừng tiến trình luyện 22 CH1301068 – TRỊNH ĐỒNG THẠCH TRÚC BÀI THU HOẠCH MƠN MÁY HỌC CHƢƠNG 3: CHƢƠNG TRÌNH NHẬN DẠNG SỐ VIẾT TAY 3.1 Giới thiệu toán Nhận dạng chữ số viết tay cần thiết đƣợc ứng dụng rộng rãi nhiều lĩnh vực nhƣ nhận dạng chữ số chi phiếu ngân hàng, mã số bì thƣ dịch vụ bƣu chính, hay chữ số biểu mẫu nói chung Hệ thống nhận dạng thƣờng bao gồm hai bƣớc: rút trích đặc trƣng từ ảnh học tự động từ đặc trƣng để nhận dạng ký tự Hiệu hệ thống nhận dạng phụ thuộc vào phƣơng pháp sử dụng hai giai đoạn Đặc trƣng đƣợc đọc từ liệu lọc bỏ viền không cần thiết giống tất mẫu nhƣ hình dƣới Sau đƣợc chia dòng làm phần chuyển vào mạng neural Mạng neural mạng lan truyền ngƣợc bao gồm tầng nhập, tầng ẩn, tầng xuất số nút tƣơng ứng cho tầng 40, 320, 10 3.2 Giao diện chƣơng trình 3.3 Kết thử nghiệm Lỗi thử nhiệm 10 000 mẫu thử qua hệ: 23 CH1301068 – TRỊNH ĐỒNG THẠCH TRÚC BÀI THU HOẠCH MÔN MÁY HỌC Error 2000 1500 1000 Error 500 12 23 34 45 56 67 78 89 100 111 122 133 144 155 166 177 188 199 210 221 232 243 254 Tỷ lệ đạt đƣợc hệ 261 614 mẫu sai số 10 000 mẫu kiểm tra kết quả, tỷ lệ sai 6,14% 24 CH1301068 – TRỊNH ĐỒNG THẠCH TRÚC BÀI THU HOẠCH MÔN MÁY HỌC CHƢƠNG 4: KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN Vấn đề nhận dạng chữ viết tay nói chung nhận dạng chữ số viết tay nói riêng thách thức lớn nhà nghiên cứu Bài tốn lớn ln đặt phía trƣớc phức tạp việc nhận dạng chữ viết phụ thuộc nhiều vào phong cách viết cách thể ngôn ngữ ngƣời viết Chúng ta luôn viết ký tự xác theo cách Do vậy, xây dựng hệ thống nhận dạng chữ viết nhận dạng ký tự cách đáng tin cậy tất ứng dụng điều không dễ dàng Báo cáo trình bày vấn đề mạng neural Trong sâu vào việc xây dựng mạng neural truyền thẳng MLP, thuật tuán huấn luyện Lan truyền ngƣợc Thực nghiệm xây dựng chƣơng trình đơn giản để nhận dạng chữ số viết tay Các vấn đề cịn chƣa có báo cáo, cần nghiên cứu triển khai là: - Tìm hiểu thuật toán huấn luyện mạng neural khác, để đƣa so sánh, nhƣ chọn mơ hình thích hợp cho tốn cụ thể - Phát triển chƣơng trình thực nghiệm thành chƣơng trình có ý nghĩa thực tế hơn, nhƣ nhận dạng chữ viết tay, nhận dạng ảnh, dựa tảng mạng xây dụng 25 CH1301068 – TRỊNH ĐỒNG THẠCH TRÚC BÀI THU HOẠCH MÔN MÁY HỌC TÀI LIỆU THAM KHẢO [1] [2] PGS.TS Vũ Thanh Nguyên Bài giảng môn máy học Genevieve Orr, Nici Schraudolph and Fred Cummins Neural Networks http://www.willamette.edu/~gorr/classes/cs449/intro.html [3] Christos Stergiou and Dimitrios Siganos http://www.doc.ic.ac.uk/~nd/surprise_96/journal/vol4/cs11/report.html [4] Nikola K Kasabov Foundations of Neural Networks, Fuzzy Systems, and Knowledge Engineering Massachusetts Institute of Technology [5] Y Freund and R Schapire A decision-theoretic generalization of on-line learning and an application to boosting Computational Learning Theory, 1995, pp 23–37 26 CH1301068 – TRỊNH ĐỒNG THẠCH TRÚC ... toán Nhận dạng chữ số viết tay cần thiết đƣợc ứng dụng rộng rãi nhiều lĩnh vực nhƣ nhận dạng chữ số chi phiếu ngân hàng, mã số bì thƣ dịch vụ bƣu chính, hay chữ số biểu mẫu nói chung Hệ thống nhận. .. CH1301068 – TRỊNH ĐỒNG THẠCH TRÚC BÀI THU HOẠCH MÔN MÁY HỌC CHƢƠNG 4: KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN Vấn đề nhận dạng chữ viết tay nói chung nhận dạng chữ số viết tay nói riêng thách thức lớn nhà nghiên... nghiên cứu ứng dụng mạng neural để giải toán thực tế đƣợc diễn khắp nơi Các ứng dụng mạng neural đời ngày nhiều ngày hoàn thiện Điển hình ứng dụng: xử lý ngơn ngữ (Language Processing), nhận dạng kí

Ngày đăng: 21/05/2015, 12:50

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan