Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 32 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
32
Dung lượng
2,16 MB
Nội dung
TRƯỜNG ĐẠI HỌC NHA TRANG KHOA CÔNG NGHỆ THÔNG TIN BÀI TẬP LỚN CUỐI KỲ ỨNG DỤNG MẠNG NEURAL NHÂN TẠO TRONG NHẬN DẠNG KÝ TỰ ĐƠN Giảng viên hướng dẫn: TS Đinh Đồng Lưỡng Nhóm thực hiện: Võ Trương Ngọc Ly Hồ Quang Phúc Nguyễn Thị Xuân Phương Môn học: Nhận dạng học máy Nha Trang, tháng năm 2018 MỤC LỤC MỤC LỤC i DANH MỤC CÁC CHỮ VIẾT TẮT VÀ KÝ HIỆU .ii LỜI MỞ ĐẦU iii CHƯƠNG I: GIỚI THIỆU VỀ MẠNG NEURAL NHÂN TẠO .1 1.1 Mạng neural sinh học 1.2 Mạng neural nhân tạo 1.3 Ứng dụng mạng neural 1.4 Xây dựng mạng neural .7 CHƯƠNG II: HUẤN LUYỆN MẠNG NEURAL 2.1 Các phương pháp học .9 2.2 Huấn luyện mạng neural .10 CHƯƠNG III: NHẬN DẠNG KÝ TỰ TRONG MẠNG NEURAL NHÂN TẠO 13 3.1 Các bước xây dựng nên toán 13 3.2 Xác định cấu trúc mạng 13 3.3 Thuật toán huấn luyện mạng 15 3.4 Phương pháp thuật toán nhận dạng ký tự 17 3.5 Huấn luyện mạng 23 3.6 Nhận dạng ký tự quang học 25 CHƯƠNG IV: GIAO DIỆN CHÍNH CỦA CHƯƠNG TRÌNH 26 i DANH MỤC CÁC CHỮ VIẾT TẮT VÀ KÝ HIỆU Chữ viết tắt Giải thích CSDL SIFT Cơ sở liệu Viết tắt thuật ngữ “Scale Invariant Feature Keypoint Transform” Những điểm đặc trưng dùng trình nhận BRIEF dạng ảnh Viết tắt thuật ngữ “Binary Robust Independent Gaussian Elementary Features” Hàm Gauss (Biểu đồ hàm Gauss DoG BBF đường cong đối xứng đặc trưng "hình chuông") Viết tắt thuật ngữ “Difference-of-Gaussian” Viết tắt thuật tốn “Best-Bin-First” ii LỜI MỞ ĐẦU Do có khả liên tưởng, người dễ dàng làm nhiều điều mà việc lập trình cho máy tính địi hỏi nhiều cơng sức Chẳng hạn việc nhận dạng hay trị chơi chữ Một em bé tự học hỏi để nhận dạng phân loại đồ vật chung quanh mình, biết thức ăn, đồ chơi Một người bình thường đốn vài chữ chữ Nhưng thật khó mà dạy cho máy tính làm việc Từ lâu nhà khoa học nhận thấy ưu điểm óc người tìm cách bắt chước để thực máy tính, tạo cho có khả học tập, nhận dạng phân loại Các mạng neural nhân tạo đời từ nỗ lực Nó thực ý nhanh chóng trở thành hướng nghiên cứu đầy triển vọng mục đích xây dựng máy thơng minh tiến gần tới trí tuệ người Đặc biệt lĩnh vực nhận dạng Từ lâu nhà khoa học nhận thấy ưu điểm óc người tìm cách bắt chước để thực máy tính, tạo cho có khả học tập, nhận dạng phân loại Vì nhà khoa học nghiên cứu sáng tạo mạng neural nhân tạo Nó thực ý nhanh chóng trở thành hướng nghiên cứu đầy triển vọng đặc biệt lĩnh vực nhận dạng Để giải toán nhận dạng, người ta đưa vào cách tiếp cận khác Mỗi phương pháp tiếp cận tốn cụ thể có ưu, nhược điểm riêng… phương pháp có tỉ lệ nhận biết thành công định Và toán nhận dạng ký tự toán lớp toán nhận dạng, xử lý ảnh Nội dung báo cáo vào tìm hiểu tổng quan mạng neural, xem xét nghiên cứu cấu trúc mạng neural, giới thiệu phương pháp huấn luyện mạng neural cuối tìm hiểu vấn đề nhận dạng ký tự - ứng dụng phổ biến mạng neural iii CHƯƠNG I: GIỚI THIỆU VỀ MẠNG NEURAL NHÂN TẠO 1.1 Mạng neural sinh học Bộ não hình thành từ 10 tỉ tế bào gọi neural Loại tế bào khác tế bào khác chỗ có khả nhận, xử lý truyền tín hiệu điện hóa đường kết nối tế bào, đường tạo nên hệ thống giao tiếp não Từ đó, neural liên kết với nhau, tạo thành mạng neural Hình Mạng neural não người Sau thành phần cấu trúc nơron não người: Hình Mơ hình neural sinh học Trong : Các Soma thân neural 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 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ỉ 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 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 được, 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 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 nơron 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 1.2 Mạng neural nhân tạo Mạng neural nhân tạo mơ hình xây dựng dựa việc bắt chước cấu trúc chức mạng neural sinh học Thành phần cấu tạo mạng tế bào neural nhân tạo Các neural chất, dựa mơ hình tế bào neural sinh học Một mơ hình tế bào neural nhân tạo gồm có ba quy tắc bản: nhân, tổng hợp kích hoạt lối vào (input) mơ hình, giá trị đầu vào nhân với trọng số cá nhân (weight) Các lối vào có trọng số riêng Thơng thường, trọng số khởi tạo cách ngẫu nhiên thời điểm khởi tạo mạng cập nhật liên tục q trình học mạng Lối vào có trọng số lớn đồng nghĩa với tín hiệu truyền qua lớn Bên thân tế bào tổng hợp giá trị đầu vào ngưỡng (bias) Ở lối (output) tế bào, hàm truyền (Transfer function) có tác dụng giới hạn phạm vi output tế bào, nhận vào giá trị tổng hợp, xử lý định giá trị đầu tế bào, thường 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 tốn cụ thể Có thể viết mơ hình dạng tốn học sau: - Tổng hợp input với trọng số Với w, x giá trị đầu vào trọng số đường truyền input thứ i, (trong tổng số N đường input) Neural hoạt động sau: 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 - Out put 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 Với f là hàm Heaviside: f gọi threshold function hay transfer function neural, giá trị (-t) gọi bias hay offset neural Nếu đưa thêm input vào, input thứ 0, có giá trị ln ln weight ln ln bias (-t) output neural cịn viết dạng: Lưu ý số tổng trước Với cấu trúc cách thức hoạt động trên, khả xử lý tế bào neural nhân tạo có giới hạn Tuy nhiên, sức mạnh tính tốn xử lý chúng phát huy ta kết nối tế bào lại với thành kiến trúc đồng nhất, tạo thành mạng neural Mơ hình mạng neural có khả xử lý tình vấn đề, tốn phức tạp hơn, tốn phi tuyến phân tích, dự dốn, nhận dạng tiếng nói, vân tay hay ứng dụng nhận dạng khác, … Khả dựa ba tham số: kiểu tế bào, kiến trúc kết nối thuật toán học cho mạng Về mặt toán học, mạng neural xem hàm ánh xạ F: X->Y, X không gian trạng thái đầu vào (input state space) Y không gian trạng thái đầu (output state space) mạng Các mạng đơn giản làm nhiệm vụ ánh xạ vector đầu vào x ∈ X sang vector đầu y ∈ Y thông qua “bộ lọc” (filter) trọng số Tức y = F(x) = s(W, x), W ma trận trọng số liên kết Khác với ứng dụng máy tính truyền thống, thường thực theo giải thuật - tập luật có thứ tự đề cách rõ ràng, mơ hình mạng neural có cách xử lý thơng tin giống với hoạt động não người Một mơ hình mạng neural gần giống đối tượng tư Mạng tạo nên từ số lượng lớn phần tử xử lý kết nối với làm việc song song để giải vấn đề cụ thể Mạng neural mơ gần hàm mục tiêu với số biến nhập xuất tuỳ ý Ngoài ra, mạng neural cịn có ưu điểm tuyệt vời khác, khả học Khả học mạng chủ yếu dựa kỹ thuật lan truyền ngược Mạng neural lan truyền hàm phi tuyến xấp xỉ gần đúng, hàm đích cho qua số mẫu tập mẫu có sẵn Mỗi có kiến thức ta lại đưa cho mạng neural Khả mạng neural cần thiết cho vấn đề có liệu ln thay đổi Hình Mơ hình neural nhân tạo mức đơn giản 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ó người thiết kế mạng biết lớp (người sử dụng lớp này) 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 1.3 Ứng dụng mạng neural Mạng neural nhân tạo có khả sử dụng cơng việc phân loại, tốn gần đúng, xử lý liệu, lọc, phân nhóm, nén, robot, quy định, định, … Việc chọn cấu trúc liên kết mạng neural nhân tạo phụ thuộc vào kiểu ứng dụng liệu đại diện vấn đề định Khi chọn sử dụng mạng neural nhân tạo, cần phải quen thuộc với lý thuyết mơ hình mạng thần kinh nhân tạo thuật toán học Phức tạp mơ hình lựa chọn quan trọng; sử dụng mơ hình đơn giản cho cơng việc cụ thể thường kết kết thấp hay sai, mơ hình phức tạp cho nhiệm vụ cụ thể dẫn đến vấn đề q trình học Có nhiều thuật tốn học với nhiều kết hợp cân chúng gần tất thích hợp cho loại mơ hình mạng neural nhân tạo Việc lựa chọn thuật tốn học thích hợp cho công việc cần nhiều kinh nghiệm thử nghiệm vấn đề định loại liệu Khi mơ hình mạng thần kinh nhân tạo thuật tốn học cách lựa chọn có công cụ mạnh mẽ để giải vấn đề toán Một số ứng dụng mạng neural: - Nhận dạng mẫu: Phân loại mẫu có liên quan với phân công mẫu cho quy định trước số loại dựa nhiều thuộc tính mơ tả loại Ứng dụng y học lâm sàng, vi sinh học xử lý ảnh cho Penny Frost (1996), Basheer Hajmeer (2000), Mattone et al (2000.), Và Egmont-Petersen et al (2002) - Tạo nhóm: Trong trường hợp này, mạng neural sử dụng để định mẫu tương tự với nhóm Thường mạng Kohonen sử dụng Ứng dụng tiêu biểu tìm thấy lĩnh vực phân tích hóa học (Tokutaka et al, 1999.) nhận dạng mẫu thời tiết (Ambroiseet al., 2000) - Mơ hình hóa dự báo: Mơ hình hóa bao gồm việc huấn luyện mạng neural liệu đầu vào - đầu ra, mối quan hệ liệu đầu vào liệu đầu thực đầy đủ xác Các mối quan hệ tĩnh, trường hợp thường mạng feed - forward sử dụng Cũng mối quan hệ động, trường hợp thường mạng hồi quy sử dụng Nhiều ứng dụng tìm thấy tài liệu lĩnh vực ứng dụng khác nhau, chẳng hạn mơ hình nhà máy nước thải, điều hịa liệu, vv…, xem ví dụ Miller et al (1997), Meert (1998), Triệu et al (1999), Basak et al (2000) Veltri et al (2002) - Tối ưu hóa: Trong tối ưu hóa, cần thiết để tìm giải pháp để đánh giá đối tượng hàm mục tiêu để thiết lập liên kết Mạng Hopfield chứng minh hiệu Nếu số lượng neural lớn dẫn đến việc: Nhận dạng kí tự có font chữ nhỏ trung bình bị sai khơng xác Chương trình viết phải duyệt qua nhiều vịng lặp dẫn đến chương trình bị chậm, gây tình trạng bị đứng máy chạy Nếu số lượng neural nhỏ: - Việc phân tích kí tự ảnh thông thường lớn dẫn đến sai số lớn, vậy, việc nhận dạng kí tự thiếu tính xác - Qua kiểm nghiệm, dựa nhiều tài liệu, nhận thấy giá trị 150 neural đầu vào phù hợp để nhận dạng với kiểu kí tự ảnh có font chữ trung bình, phổ biến Các kí tự ảnh có chiều cao trung bình 70 pixel chiều rộng khoảng 54 pixel - Số neural lớp ẩn: 500 neural Việc lựa chọn giá trị dựa thực nghiệm tài liệu chuyên nhận dạng kí tự quang học Số neural định từ kết tối ưu giá trị lỗi sở trình huấn luyện - Số neural đầu ra: 16 neural tương ứng với 16 bit nhị phân mã Unicode.Từ 16 neural ta tổng hợp chuyển thành 16 bit nhị phân, sau chuyển thành kí tự Unicode Điểm ảnh Điểm ảnh Điểm ảnh Điểm ảnh 16 neural Lớp đầu 150 neural Lớp đầu vào 500 neural Lớp ẩn 14 Hình Sơ đồ mạng neural thiết kế 3.3 Thuật toán huấn luyện mạng Mạng feed - forward sử dụng giải thuật lan truyền ngược sai số Back Propagation Giải thuật gồm bước : > Bước 1: - Lan truyền xuôi đầu vào qua mạng Sử dụng công thức: + Công thức chung tính đầu noron thứ i lớp thứ k: n yi = f ( wij x j -bi) j 0 Với f hàm chuyển sigmoid lưỡng cực tính theo cơng thức: f= 1 e t α: hệ số góc hàm chuyển t: biến net-input bi: hệ số ngưỡng hay độ lệch Áp dụng mơ hình mạng chương trình : - Cơng thức cho đầu neural thứ i (1250) lớp ẩn n = f ( wij x j -bi) j 1 Với wij : trọng số neural thứ i lớp ẩn kết nối với đầu vào thứ j lớp vào x j : giá trị đầu vào neural thứ j lớp vào bi : giá trị ngưỡng hay độ lệch neural thứ i đầu vào - Công thức cho đầu noron thứ k (k =116)tại lớp output n n j 1 j 1 yk = f( wkj a j bk ) = f [ wkj ( f ( n w x ij j )] j 1 > Bước : Lan truyền ngược Tính tốn sai lệch đầu thực đầu mong muốn neural thứ k đầu ei = ti- yi 15 Tổng bình phương sai số mạng ứng với mẫu học (Xs, Ts): p E = ( ti- yi) 2 k 1 P: số phần tử đầu Nếu E< ε l+1