đồ án tốt nghiệp sử dụng mạng nơ ron nhận dạng ký tự

70 1.1K 10
đồ án tốt nghiệp sử dụng mạng nơ ron nhận dạng ký tự

Đ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 GIAO THÔNG VẬN TẢI KHOA CÔNG NGHỆ THÔNG TIN BỘ MÔN MẠNG VÀ CÁC HỆ THỐNG THÔNG TIN o0o ĐỒ ÁN TỐT NGHIỆP Đề tài: SỬ DỤNG MẠNG NƠ-RON NHẬN DẠNG KÝ TỰ Giáo viên hƣớng dẫn : TS. Đặng Thị Thu Hiền Sinh viên thực hiện : Nguyễn Thị Quyên Lớp : Hệ thống thông tin Khóa : 49 Hà Nội 05/2012 Đồ án tốt nghiệp Sử dụng mạng nơ-ron nhận dạng ký tự Nguyễn Thị Quyên Trang 2 MỤC LỤC LỜI NÓI ĐẦU ………………………………………………………………………………….5 CHƢƠNG 1: TỔNG QUAN VỀ MẠNG NƠ-RON NHÂN TẠO 7 1.1 Sơ lƣợc về mạng Nơ-ron nhân tạo: 7 1.1.1. Lịch sử phát triển: 7 1.1.2. Nơ-ron sinh học: 8 1.1.3. Nơ-ron nhân tạo: 10 1.1.4. Mạng nơ-ron nhân tạo: 14 1.2 Đặc trƣng của mạng nơ-ron: 15 1.2.1. Tính phi tuyến: 15 1.2.2. Tính chất tương ứng đầu vào đầu ra: 15 1.2.3. Tính chất thích nghi: 15 1.2.4. Tính chất đưa ra lời giải có bằng chứng: 15 1.2.5. Tính chất chấp nhận sai xót: 15 1.2.6. Khả năng cài đặt VLSI(Very-large-scale-intergrated): 16 1.2.7. Tính chất đồng dạng trong phân tích và thiết kế: 16 1.3 Phân loại mạng nơ-ron: 16 1.3.1 Mạng nơ-ron truyền thẳng: 17 1.3.1.1 Mạng nơ-ron truyền thẳng một lớp (Perceptron): 18 1.3.1.2 Mạng nơ-ron truyền thẳng nhiều lớp (MLP): 18 1.3.2 Mạng nơ-ron quy hồi: 19 1.4 Huấn luyện mạng nơ-ron: 20 1.4.1. Các phương pháp học: 20 1.4.2. Học có giám sát trong mạng nơ-ron: 22 1.4.3. Thuật toán học: 22 1.4.3.1. Thuật toán học của mạng nơ-ron truyền thẳng một lớp: 22 1.4.3.2. Thuật toán học của mạng nơ-ron nhiều lớp: 24 Đồ án tốt nghiệp Sử dụng mạng nơ-ron nhận dạng ký tự Nguyễn Thị Quyên Trang 3 1.4.3.3. Một số yếu tố ảnh hưởng đến quá trình học theo phương pháp lan truyền ngược sai số: 30 1.4.3.4. Một số hạn chế của phương pháp lan truyền ngược: 31 1.5 Thu thập dữ liệu cho mạng nơ-ron: 32 1.6 Biểu diễn tri thức cho mạng nơ-ron: 33 CHƢƠNG 2: ỨNG DỤNG MẠNG NƠ-RON TRONG NHẬN DẠNG KÝ TỰ 36 2.1 Sơ lƣợc: 36 2.2 Bài toán nhận dạng ký tự: 36 2.3 Các bƣớc giải quyết bài toán nhận dạng ký tự: 37 2.3.1. Xác định đầu vào và đầu ra của bài toán: 37 2.3.2. Xác định cấu trúc mạng nơ-ron: 37 2.3.3. Thuật toán huấn luyện mạng: 39 2.3.4. Xử lý dữ liệu: 42 2.3.4.1. Tách dòng ký tự: 42 2.3.4.2. Tách ký tự: 43 2.3.4.3. Tìm giới hạn ký tự: 45 2.3.4.4. Ánh xạ vào ma trận: 47 2.3.5. Huấn luyện mạng nơ-ron: 49 2.3.6. Nhận dạng ảnh kí tự: 53 CHƢƠNG 3: CÀI ĐẶT CHƢƠNG TRÌNH THỰC NGHIỆM 55 3.1 Giao diện chính của chƣơng trình: 55 3.2 Tổng quan về các chức năng chính của chƣơng trình: 55 3.3 Thực nghiệm chƣơng trình: 56 3.3.1. Thực nghiệm tính một vài tham số đầu vào: 56 3.3.1.1. Số vòng lặp huấn luyện: 56 3.3.1.2. Thực nghiệm tìm tham số tốc độ học: 57 3.3.2. Thực nghiệm huấn luyên mạng nơ-ron: 57 3.3.3. Thực nghiệm nhận dạng ký tự: 62 Đồ án tốt nghiệp Sử dụng mạng nơ-ron nhận dạng ký tự Nguyễn Thị Quyên Trang 4 3.4 Nhận xét và đánh giá về chƣơng trình: 68 3.4.1. Sai số trong nhận dạng ký tự: 68 3.4.2. Những hạn chế của chương trình: 68 KẾT LUẬN 69 TÀI LIỆU THAM KHẢO 70 Đồ án tốt nghiệp Sử dụng mạng nơ-ron nhận dạng ký tự Nguyễn Thị Quyên Trang 5 LỜI NÓI ĐẦU Mạng nơ-ron trong một vài năm trở lại đây đã được nhiều người quan tâm và đã áp dụng thành công trong nhiều lĩnh vực khác nhau như: tài chính, y tế, địa chất, vật lý…. Thật vậy, bất cứ ở đâu có vấn đề về dự báo, phân loại và điều khiển, mạng nơ-ron đều có thể ứng dụng được. Ví dụ như khả năng nhận dạng mặt người trong các hệ thống quản lý thông tin liên quan đến con người (quản lý nhân sự ở các công sở, doanh nghiệp, quản lý học sinh, sinh viên trong các trường trung học, đại học và cao đẳng…); các ngành khoa học hình sự, tội phạm; khoa học tướng số, tử vi,…Với sự phát triển mạnh mẽ của công nghệ thông tin như hiện nay, ứng dụng của mạng nơ-ron nhân tạo ngày càng được quan tâm và phát triển. Một trong những ứng dụng cơ bản của mạng nơ-ron là nhận dạng ký tự. Từ lâu các nhà khoa học đã nhận thấy những ưu điểm của bộ óc con người và tìm cách bắt chước để thực hiện trên máy tính, tạo cho nó có khả năng học tập, nhận dạng và phân loại. Các mạng nơ-ron nhân tạo đã ra đời từ những nỗ lực đó. Nó thực sự được chú ý và nhanh chóng trở thành một hướng nghiên cứu đầy triển vọng trong mục đích xây dựng các máy thông minh tiến gần tới trí tuệ con người, đặc biệt là lĩnh vực nhận dạng. Xuất phát từ những thực tiễn nói trên, cùng với sự giúp đỡ nhiệt tình của T.S Đặng Thị Thu Hiền em đã thực hiện đồ án tốt nghiệp với đề tài: “Sử dụng mạng nơ-ron nhận dạng ký tự”. Mục đích, yêu cầu của đề tài: Nhận dạng các ký tự với đầu vào là định dạng file ảnh (*.bmp,*.jmp,…), sử dụng công cụ là mạng nơ-ron để có đầu ra là tập hợp các ký tự lưu trữ dưới dạng văn bản. Các mục tiêu cần đạt được:  Tìm hiểu được mạng nơ-ron nhân tạo là gì?  Khả năng ứng dụng của mạng nơ-ron nhân tạo trong việc nhận dạng ký tự như thế nào?  Sử dụng ngôn ngữ lập trình C# và môi trường lập trình Visual Studio để cài đặt chương trình Nhận dạng ký tự dựa trên thuật toán Back Propagation (Lan truyền ngược sai số) đối với mạng nơ-ron truyền thẳng nhiều lớp (MLP: Multi Layer Perceptron). Đồ án tốt nghiệp Sử dụng mạng nơ-ron nhận dạng ký tự Nguyễn Thị Quyên Trang 6 Nội dung báo cáo bao gồm các chương sau: Chương 1:Tổng quan về mạng nơ-ron nhân tạo. Chương này sẽ trình bày cái nhìn tổng quan nhất về mạng nơ-ron, bao gồm: cấu tạo, các đặc trưng, các mô hình mạng và cách thức huấn luyện mạng nơ-ron. Chương 2: Ứng dụng mạng nơ-ron nhận dạng kí tự. Chương 2 sẽ đưa ra bài toán nhận dạng ký tự bằng mạng nơ-ron và cách thức để giải quyết bài toán. Chương 3: Cài đặt chương trình thử nghiệm. Chương này sẽ trình bày giao diện và chức năng của chương trình. Đồ án tốt nghiệp Sử dụng mạng nơ-ron nhận dạng ký tự Nguyễn Thị Quyên Trang 7 CHƢƠNG 1: TỔNG QUAN VỀ MẠNG NƠ-RON NHÂN TẠO 1.1 Sơ lƣợc về mạng Nơ-ron nhân tạo: 1.1.1. Lịch sử phát triển: Sự phát triển của mạng nơ-ron trải qua cả quá trình đưa ra các khái niệm mới lẫn thực thi những khái niệm này. Dưới đây là các mốc đáng chú ý trong lịch sử phát triển của mạng nơ-ron:  Cuối thế kỷ 19, đầu thế kỷ 20, sự phát triển chủ yếu chỉ là những công việc có sự tham gia của cả ba ngành Vật lý học, Tâm lý học và Thần kinh học bởi các nhà khoa học như Hermann von Hemholtz, Ernst Mach, Ivan Pavlov. Các công trình nghiên cứu của họ chủ yếu đi sâu vào các lý thuyết tổng quát về HỌC (Learning), NHÌN (vision) và LẬP LUẬN (conditioning), không hề đưa ra những mô hình toán học cụ thể mô tả hoạt động của các nơ-ron.  Mọi chuyện thực sự bắt đầu vào những năm 1940 với công trình của Warren McCulloch và Walter Pitts. Họ chỉ ra rằng về nguyên tắc, mạng của các nơ-ron nhân tạo có thể tính toán bất kỳ một hàm số học hay logic nào.  Tiếp theo là Donald Hebb, ông đã phát biểu rằng việc thuyết lập luận cổ điển (classical conditioning) (như Pavlov đưa ra) là hiện thực bởi do các thuộc tính của từng nơ-ron riêng biệt. Ông cũng nêu ra một phương pháp học của các nơ- ron nhân tạo.  Ứng dụng thực nghiệm đầu tiên của các nơ-ron nhân tạo có được vào cuối những năm 50 cùng với phát minh của mạng nhận thức (perceptron network) và luật học tương ứng bởi Frank Rosenblatt. Mạng này có khả năng nhận dạng các mẫu. Điều này đã mở ra rất nhiều hi vọng cho việc nghiên cứu mạng nơ-ron. Tuy nhiên nó có hạn chế là chỉ có thể giải quyết một số lớp hữu hạn các bài toán.  Cùng thời gian đó, Bernard Widrow và Ted Hoff đã đưa ra một thuật toán học mới và sử dụng nó để huấn luyện cho các mạng nơ-ron tuyến tính thích nghi, mạng có cấu trúc và chức năng tương tự như mạng của Rosenblatt. Luật học Widrow-Hoff vẫn còn được sử dụng cho đến nay.  Tuy nhiên cả Rosenblatt và Widrow-Hoff đều cùng vấp phải một vấn đề do Marvin Minsky và Seymour Papert phát hiện ra, đó là các mạng nhận thức chỉ có khả năng giải quyết các bài toán khả phân tuyến tính. Họ cố gắng cải tiến luật Đồ án tốt nghiệp Sử dụng mạng nơ-ron nhận dạng ký tự Nguyễn Thị Quyên Trang 8 học và mạng để có thể vượt qua được hạn chế này nhưng họ đã không thành công trong việc cải tiến luật học để có thể huấn luyện được các mạng có cấu trúc phức tạp hơn.  Do những kết quả của Minsky-Papert nên việc nghiên cứu về mạng nơ-ron gần như bị đình lại trong suốt một thập kỷ do nguyên nhân là không có được các máy tính đủ mạnh để có thể thực nghiệm.  Mặc dù vậy, cũng có một vài phát kiến quan trọng vào những năm 70. Năm 1972, Teuvo Kohonen và James Anderson độc lập nhau phát triển một loại mạng mới có thể hoạt động như một bộ nhớ. Stephen Grossberg cũng rất tích cực trong việc khảo sát các mạng tự tổ chức (Self organizing networks).  Vào những năm 80, việc nghiên cứu mạng nơ-ron phát triển rất mạnh mẽ cùng với sự ra đời của PC. Có hai khái niệm mới liên quan đến sự hồi sinh này, đó là:  Việc sử dụng các phương pháp thống kê để giải thích hoạt động của một lớp các mạng hồi quy (recurrent networks) có thể được dùng như bộ nhớ liên hợp (associative memory) trong công trình nghiên cứu của nhà vật lý học Johh Hopfield.  Sự ra đời của thuật toán lan truyền ngược (back-propagation) để huấn luyện các mạng nhiều lớp được một vài nhà nghiên cứu độc lập tìm ra như: David Rumelhart, James McCelland, Đó cũng là câu trả lời cho Minsky-Papert. 1.1.2. Nơ-ron sinh học: Đồ án tốt nghiệp Sử dụng mạng nơ-ron nhận dạng ký tự Nguyễn Thị Quyên Trang 9 Theo nghiên cứu sinh học về bộ não, hệ thống thần kinh của con người bao gồm khoảng 100 tỷ tế bào thần kinh, thường gọi là các nơ-ron. Mỗi tế bào nơ-ron gồm ba phần:  Thân nơ-ron với nhân bên trong (gọi là soma), là nơi tiếp nhận hay phát ra các xung động thần kinh.  Một hệ thống dạng cây các dây thần kinh vào (gọi là dendrites). Các dendrites là các dây mảnh, dài, gắn liền với soma, chúng truyền dữ liệu (dưới dạng xung điện thế) đến cho soma xử lý. Bên trong soma các dữ liệu đó được tổng hợp lại, có thể xem gần đúng sự tổng hợp ấy như là một phép lấy tổng tất cả các dữ liệu mà nơ-ron nhận được. Các dendrites tạo thành một lưới dày đặc xung quanh thân nơ-ron, chiếm diện tích khoảng 0,25 mm2.  Đầu dây thần kinh ra (gọi là sợi trục axon) phân nhánh dạng hình cây, có thể dài từ một cm đến hàng mét. Khác với dendrites, axons có khả năng phát các xung điện thế, chúng là các dây dẫn tín hiệu từ nơ-ron đi các nơi khác. Chỉ khi nào điện thế trong soma vượt quá một giá trị ngưỡng nào đó thì axon mới phát một xung điện thế, còn nếu không thì nó ở trạng thái nghỉ. Axon nối với các dendrites của các nơ-ron khác thông qua những mối nối đặc biệt gọi là synapse. Khi điện thế của synapse tăng lên do các xung phát ra từ axon thì synapse sẽ nhả ra một số chất hoá học (neurotransmitters); các chất này mở "cửa" trên dendrites để cho các ions truyền qua. Chính dòng ions này làm thay đổi điện thế trên dendrites, tạo ra các xung dữ liệu lan truyền tới các nơ-ron khác. Thông thường mỗi nơ-ron có thể có từ vài chục cho tới hàng trăm ngàn khớp nối để nối với các nơ-ron khác. Có hai loại khớp nối:  Khớp nối kích thích (excitatory) sẽ cho tín hiệu qua nó để tới nơ-ron.  Khớp nối ức chế (inhibitory) có tác dụng làm cản tín hiệu tới nơ-ron. Người ta ước tính mỗi nơ-ron trong bộ não của con người có khoảng 104 khớp nối (hình 1.1) Đồ án tốt nghiệp Sử dụng mạng nơ-ron nhận dạng ký tự Nguyễn Thị Quyên Trang 10 Hình 1.1 Cấu tạo của tế bào nơ-ron sinh học Có thể tóm tắt hoạt động của một nơ-ron như sau: nơ-ron lấy tổng tất cả các điện thế vào mà nó nhận được, và phát ra một xung điện thế nếu tổng ấy lớn hơn một ngưỡng nào đó. Các nơ-ron nối với nhau ở các synapses. Synapse được gọi là mạch khi nó cho phép truyền dẫn dễ dàng tín hiệu qua các nơ-ron khác. Ngược lại, một synapse yếu sẽ truyền dẫn tín hiệu rất khó khăn. Các synapses đóng vai trò rất quan trọng trong sự học tập. Khi chúng ta học tập thì hoạt động của các synapses được tăng cường, tạo nên nhiều liên kết mạnh giữa các nơ-ron. Có thể nói rằng người nào học càng giỏi thì càng có nhiều synapses và các synapses ấy càng mạnh mẽ, hay nói cách khác, thì liên kết giữa các nơ-ron càng nhiều, càng nhạy bén. 1.1.3. Nơ-ron nhân tạo: Nơ-ron nhân tạo là một đơn vị tính toán có nhiều đầu vào và một đầu ra, mỗi đầu vào đến từ một liên kết. Đặc trưng của nơ-ron là một hàm kích hoạt phi tuyến chuyển đổi tổ hợp tuyến tính của tất cả các tín hiệu đầu vào thành tín hiệu đầu ra. Hàm kích hoạt này đảm bảo tính chất phi tuyến cho tính toán của mạng nơ-ron. [...]... minh Do đó, khả năng ứng dụng của nó là rất lớn đặc biệt trong bài toán nhận dạng ký tự Nguyễn Thị Quyên Trang 35 Đồ án tốt nghiệp Sử dụng mạng nơ- ron nhận dạng ký tự CHƢƠNG 2: ỨNG DỤNG MẠNG NƠ -RON TRONG NHẬN DẠNG KÝ TỰ 2.1 Sơ lƣợc: Nhận dạng ký tự là một ứng dụng đang được rất nhiều người quan tâm nhưng nó đầy khó khăn và thử thách Điều rất khó của khả năng nhận dạng phù hợp kí tự là các kiểu ngôn ngữ... perceptron có khả năng phân lớp tuyến tính, có khả năng giải bài toán quy hồi tuyến tính - Hạn chế: Không thể phân lớp phi tuyến Giải pháp: sử dụng mạng nơ- ron nhiều tầng MLP Nguyễn Thị Quyên Trang 23 Đồ án tốt nghiệp 1.4.3.2 Sử dụng mạng nơ- ron nhận dạng ký tự Thuật toán học của mạng nơ- ron nhiều lớp: Huấn luyện mạng nơ- ron nhiều lớp sử dụng thuật toán Lan truyền ngược (Back Propagation) Thuật toán học... (autoassociative): là mạng có các nơ- ron đầu vào cũng là các nơ- ron đầu ra Mạng Hopfield là một kiểu mạng tự kết hợp Hình 1.8 Mạng tự kết hợp Nguyễn Thị Quyên Trang 16 Đồ án tốt nghiệp Sử dụng mạng nơ- ron nhận dạng ký tự  Kết hợp khác kiểu (heteroassociative): là mạng có tập nơ- ron đầu vào và đầu ra riêng biệt Perceptron, các mạng Perceptron nhiều tầng (MLP: MultiLayer Perceptron), mạng Kohonen, …thuộc... mạng nơ- ron truyền thẳng là một kiểu mạng đơn giản trong việc sắp đặt mạng Trong mạng này thông tin chỉ truyền trên một hướng duy nhất, từ lớp đầu vào xuyên qua lớp ẩn (nếu có) và kết thúc tại lớp đầu ra Không có chu trình hoặc vòng trong mạng Nguyễn Thị Quyên Trang 17 Đồ án tốt nghiệp Sử dụng mạng nơ- ron nhận dạng ký tự 1.3.1.1 Mạng nơ- ron truyền thẳng một lớp (Perceptron): Perceptron là mạng nơ- ron. .. kế mạng mới biết lớp này (người sử dụng không biết lớp này) Các nút trong lớp xuất nhận các tín hiệu tổng trọng số từ các nút trong lớp ẩn Mỗi nút trong lớp xuất tương ứng với một biến phụ thuộc Nguyễn Thị Quyên Trang 14 Đồ án tốt nghiệp 1.2 1.2.1 Sử dụng mạng nơ- ron nhận dạng ký tự Đặc trƣng của mạng nơ- ron: Tính phi tuyến: Một nơ- ron có thể tính toán một cách tuyến tính hay phi tuyến Một mạng nơ- ron, ... quay trở lại các nơ- ron xử lý trước đó Nguyễn Thị Quyên Trang 19 Đồ án tốt nghiệp Sử dụng mạng nơ- ron nhận dạng ký tự Hình 1.10 Mạng hồi quy không có nơ- ron ẩn và không có vòng lặp tự phản hồi Hình 1.11 Mạng hồi quy có các nơ- ron ẩn 1.4 1.4.1 Huấn luyện mạng nơ- ron: Các phƣơng pháp học: Mạng nơ- ron 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... Thị Quyên Trang 13 Đồ án tốt nghiệp Sử dụng mạng nơ- ron nhận dạng ký tự được sử dụng nhất là hàm đồng nhất (identity function) Nếu giá trị mong muốn là dương nhưng không biết cận trên thì nên sử dụng một hàm kích hoạt dạng mũ (exponential output activation function) 1.1.4 Mạng nơ- ron nhân tạo: Là một hệ thống bao gồm nhiều phần tử xử lý đơn giản (hay còn gọi là nơ- ron) tựa như nơ- ron thần kinh của não... nơ- ron hay các liên kết kết nối của nó bị hỏng, việc nhận dạng lại một mẫu được lưu trữ sẽ suy giảm về chất lượng Nguyễn Thị Quyên Trang 15 Đồ án tốt nghiệp 1.2.6 Sử dụng mạng nơ- ron nhận dạng ký tự Khả năng cài đặt VLSI(Very-large-scale-intergrated): Bản chất song song đồ sộ của một mạng nơ- ron làm cho nó rất nhanh trong tính toán đối với một số công việc Đặc tính này cũng tạo ra cho một mạng nơ- ron. .. kế ban đầu của một mạng nơ- ron, và như vậy sẽ giảm bớt gánh nặng cho quá trình học Quy tắc 4 đặc biệt quan trọng vì nếu chúng ta áp dụng nó một cách thích hợp sẽ dẫn đến khả năng tạo ra các mạng nơ- ron với một kiến trúc chuyên biệt Điều này thực sự được quan tâm do một số nguyên nhân sau: Nguyễn Thị Quyên Trang 34 Đồ án tốt nghiệp Sử dụng mạng nơ- ron nhận dạng ký tự 1 Các mạng nơ- ron thị giác và thính... cách các trọng số liên kết được thay đổi trong suốt thời gian học Trong đó tiêu biểu nhất là thuật toán lan truyền ngược 1.4.3 1.4.3.1 Thuật toán học: Thuật toán học của mạng nơ- ron truyền thẳng một lớp: Xét trường hợp perceptron sử dụng hàm kích hoạt ngưỡng: Nguyễn Thị Quyên Trang 22 Đồ án tốt nghiệp   1,  output    1,   Sử dụng mạng nơ- ron nhận dạng ký tự d v w i i 1 i t (1.1) d  vi wi . thập dữ liệu cho mạng nơ- ron: 32 1.6 Biểu diễn tri thức cho mạng nơ- ron: 33 CHƢƠNG 2: ỨNG DỤNG MẠNG NƠ -RON TRONG NHẬN DẠNG KÝ TỰ 36 2.1 Sơ lƣợc: 36 2.2 Bài toán nhận dạng ký tự: 36 2.3 Các. vòng trong mạng. Đồ án tốt nghiệp Sử dụng mạng nơ- ron nhận dạng ký tự Nguyễn Thị Quyên Trang 18 1.3.1.1 Mạng nơ- ron truyền thẳng một lớp (Perceptron): Perceptron là mạng nơ- ron đơn. mạng nơ- ron, bao gồm: cấu tạo, các đặc trưng, các mô hình mạng và cách thức huấn luyện mạng nơ- ron. Chương 2: Ứng dụng mạng nơ- ron nhận dạng kí tự. Chương 2 sẽ đưa ra bài toán nhận dạng ký tự

Ngày đăng: 17/04/2015, 15:07

Từ khóa liên quan

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

Tài liệu liên quan