Tài liệu Tìm hiểu mạng nơ tron ứng dụng trong nhận dạng chữ viết

  • Số trang: 40 |
  • Loại file: PDF |
  • Lượt xem: 19 |
  • Lượt tải: 0
duytran92108

Tham gia: 14/07/2016

Mô tả:

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN TP HỒ CHÍ MINH KHOA KHOA HỌC MÁY TÍNH BỘ MÔN MÁY HỌC NÂNG CAO BÁO CÁO TÌM HIỂU ĐỀ TÀI : Nhóm sinh viên thực hiện : Nguyễn Thế Luân 08520216 Nguyễn Anh Hùng 08520549 Nguyễn Huỳnh Trường Khang 08520172 HỌC KÌ I NĂM HỌC 2011-2012 ____________________________ 1 Việc viết chữ trên giấy là một hành động bình thường đối với mỗi người chúng ta, và mỗi một người đều sở hữu một nét chữ khác nhau, không ai giống ai. Những chữ viết tay của một người thường khiến người khác khó khăn khi đọc chúng, vì chúng không theo một khuôn dạng rõ ràng và khác nhau giữa người này với người khác. Cũng có trường hợp đôi khi chính người viết cũng không đọc được chữ của mình. Vì vậy, nếu ngay cả con người chúng ta không đọc được những chữ viết đó thì liệu máy tính có đọc được không?Từ đây, một câu hỏi được đặt ra là : có cách nào để máy tính của chúng ta có thể “giải mã” những chữ viết tay của một người nào đó và giúp cho mọi người hiểu được ý nghĩa mà chúng hiển thị. Việc phân tích những chữ viết tay của máy tính nhằm tìm ra lời giải cho vấn đề thú vị này là một trong những tiền đề của kỹ thuật nhận dạng chữ viết tay hiện nay. Nhận dạng chữ viết tay là một lĩnh vực nghiên cứu sôi nổi và là một phần quan trọng và thú vị trong các ứng dụng khoa học máy tính hiện nay. Nhận dạng chữ viết ngày càng trở nên quan trọng vì rất nhiều lý do, trong đó có việc bất tiện hoặc không thể sử dụng bàn phím máy tính để nhập liệu. Một tình huống đưa ra: chúng ta sở hữu một số lượng lớn đầu sách, tài liệu cổ lâu năm được viết bằng tay. Những quyển sách này đã bị hư hại do thời gian, do môi trường ảnh hưởng,… và là chữ viết tay của một người nào đó nên không thể hoặc cực kỳ khó đọc. Làm thể nào để máy tính đọc và ta có thể số hóa những trang này? Đây chỉ là một tình huống cụ thể mà ta có thể gặp trong thời đại thế giới số hiện nay. Ngoài ra, chúng ta có rất nhiều tình huống nan giải khác. Ngày nay, máy tính ngày càng được sử dụng một cách rộng rãi. Dựa trên kỹ thuật xử lý hình ảnh trên máy tính, công nghệ nhận dạng chữ viết tay có thể giúp ta giải quyết vấn đề này. Với chương trình nhận dạng chữ viết tay, ta có thể chuyển hàng ngàn đầu sách được viết bằng tay trên thành những văn bản điện tử trong thời gian ngắn.Ngoài ra,việc nhận dạng chữ viết của con người có ứng dụng trong khoa học hình sự, bảo mật thông tin và các lĩnh vực khác … Để giải quyết các bài toán nhận dạng, người ta đã đưa vào các cách tiếp cận khác nhau. Mỗi phương pháp tiếp cận trong những bài toán cụ thể đều có những ưu, nhược điểm riêng… và những phương pháp này có một tỉ lệ nhận biết thành công nhất định. Một trong những phương pháp cơ bản trong nhận dạng chữ viết được sử dụng rộng rãi hiện nay là sử dụng mô hình mạng nơ tron nhân tạo. Nội dung của báo cáo này sẽ đi vào tìm hiểu tổng quan về mạng nơ tron, xem xét và nghiên cứu cấu trúc các mạng nơ tron, giới thiệu về phương pháp huấn luyện mạng nơ tron và cuối cùng là tìm hiểu về vấn đề nhận dạng ký tự viết tay- một trong những ứng dụng phổ biến của mạng nơ tron. 2 I. GIỚI THIỆU VỀ MẠNG NƠ TRON NHÂN TẠO 1. Mạng nơ tron sinh học: Những nghiên cứu y học đã phát hiện ra rằng: Bộ não chúng ta được hình thành từ hơn 10 tỉ tế bào được gọi là nơ tron. Loại tế bào này khác các tế bào khác ở chỗ nó có khả năng nhận, xử lý và truyền các tín hiệu điện hóa trên các đường kết nối giữa các tế bào, các con đường này tạo nên hệ thống giao tiếp của bộ não. Từ đó, các nơ tron liên kết với nhau, tạo thành mạng nơ tron. Mạng nơ tron sinh học là một mạng (plexus) các nơ tron có kết nối hoặc có liên quan về mặt chức năng trực thuộc hệ thần kinh ngoại biên (peripheral nervous system) hay hệ thần kinh trung ương (central nervous system). Thông thường, một mạng nơ tron bao gồm một hoặc nhiều nhóm các nơ tron được kết nối vật lý với nhau hoặc có liên quan với nhau về chức năng. Một nơ tron đơn có thể được nối với nhiều nơ tron khác và tổng số nơ tron và kết nối trong một mạng có thể là một giá trị cực kỳ lớn. Các kết nối, gọi là các khớp thần kinh (synapses), thường nối từ các axon tới các tế bào tua gai thần kinh (dendrite), tuy có thể có các vi mạch dendrodentritic và các kết nối khác. Ngoài tín hiệu điện, còn có các dạng tín hiệu khác phát sinh từ việc khuyếch tán các chất dẫn truyền xung động thần kinh (neurotransmitter). Chúng có ảnh hưởng đối với tín hiệu điện. Do vậy, cũng như các mạng sinh học khác, mạng nơ tron vô cùng phức tạp. Trong khi hiện nay, dù chưa đạt được một mô tả chi tiết nào về hệ thần kinh , người ta vẫn ngày càng hiểu rõ hơn về các cơ chế cơ bản. Mạng nơ tron trong bộ não con người 3 Với mục đích xây dựng một mô hình có khả năng xử lý dữ liệu mạnh mẽ như não bộ của con người, dựa trên mô hình mạng nơ tron sinh học, ngày nay con người đã xây dựng và đề ra mô hình mạng nơ tron nhân tạo. 2. Mạng nơ tron nhân tạo : Mạng nơ tron nhân tạo là mô hình được xây dựng dựa trên việc bắt chước cấu trúc và chức năng của mạng nơ tron sinh học. Thành phần cấu tạo cơ bản của mạng là tế bào nơ tron nhân tạo. Các nơ tron này, về bản chất, cũng dựa trên mô hình tế bào nơ tron sinh học. Một mô hình tế bào nơ tron nhân tạo gồm có ba quy tắc cơ bản : nhân, tổng hợp và kích hoạt. tại lối vào (input) của mô hình, các giá trị đầu vào sẽ được nhân với trọng số cá nhân (weight). Các lối vào đều có trọng số riêng của mình. Thông thường, các trọng số này được khởi tạo một cách ngẫu nhiên ở thời điểm khởi tạo mạng và được cập nhật liên tục trong quá trình học mạng. Lối vào nào có trọng số càng lớn thì đồng nghĩa với tín hiệu truyền qua đó càng lớn. Bên trong thân của tế bào sẽ tổng hợp các giá trị đầu vào này và ngưỡng (bias). Ở lối ra (output) của tế bào, hàm truyền (Transfer function) có tác dụng giới hạn phạm vi output của tế bào, sẽ nhận vào giá trị tổng hợp, xử lý và quyết định giá trị đầu ra của tế bào, thường là 0 hoặc 1. Các hàm truyền rất đa dạng, có thể là các hàm tuyến tính hoặc phi tuyến. Việc lựa chọn hàm truyền nào là tuỳ thuộc vào từng bài toán cụ thể. Có thể viết mô hình trên dưới dạng toán học như sau :  Tổng hợp các input với trọng số N u= w x i i với x,w là giá trị đầu vào và trọng số tại đường truyền input thứ I i 0  (trong tổng số N đường input) Output  N  y = f(u-t) = f   wi xi  t  với f là hàm truyền, y là giá trị đầu ra (output) và t là  i0  ngưỡng. Mô hình của tế bào nơ tron Với cấu trúc và cách thức hoạt động trên, khả năng xử lý của một tế bào nơ tron nhân tạo chỉ có giới hạn. Tuy nhiên, sức mạnh tính toán và xử lý của chúng sẽ được phát huy khi ta kết nối các tế bào này lại với nhau thành một kiến trúc đồng nhất, tạo thành một mạng nơ tron. Mô hình mạng nơ tron có khả năng xử lý những tình huống vấn đề, bài toán phức tạp hơn, nhất là trong các bài toán 4 phi tuyến như phân tích, dự doán, nhận dạng tiếng nói, vân tay hay các ứng dụng nhận dạng khác, … Khả năng này được dựa trên ba tham số: kiểu của tế bào, kiến trúc kết nối và thuật toán học cho mạng. Về mặt toán học, một mạng nơ tron được xem như là một hàm ánh xạ F: X->Y, trong đó X là không gian trạng thái đầu vào (input state space) và Y là không gian trạng thái đầu ra (output state space) của mạng. Các mạng chỉ đơn giản là làm nhiệm vụ ánh xạ các vector đầu vào x ∈ X sang các vector đầu ra y ∈ Y thông qua “bộ lọc” (filter) các trọng số. Tức là y = F(x) = s(W, x), trong đó W là ma trận trọng số liên kết. Khác với các ứng dụng trên máy tính truyền thống, thường chỉ thực hiện theo một giải thuậtmột tập luật có thứ tự được đề ra một cách rõ ràng, mô hình mạng nơ tron có cách xử lý thông tin giống với hoạt động của bộ não con người hơn. Một mô hình mạng nơ tron gần giống như một đối tượng có thể tư duy .Mạng được tạo nên từ một số lượng lớn các phần tử xử lý được kết nối với nhau làm việc song song để giải quyết một vấn đề cụ thể. Mạng nơ tron có thể mô phỏng gần như bất cứ hàm mục tiêu nào với số biến nhập và xuất tuỳ ý. Ngoài ra, mạng nơ tron còn có một ưu điểm tuyệt vời khác, đó là khả năng học. Khả năng học của mạng chủ yếu dựa trên kỹ thuật lan truyền ngược. mạng nơ tron lan truyền là một hàm phi tuyến có thể xấp xỉ gần đúng, nhưng một hàm đích được cho qua một số mẫu trong tập mẫu có sẵn.. Mỗi khi có kiến thức mới ta lại đưa cho mạng nơ tron. Khả năng này của mạng nơ tron là rất cần thiết cho các vấn đề có dữ liệu luôn thay đổi. 3. Lịch sử phát triển của mạng nơ tron nhân tạo Sự kiện đầu tiên đánh dấu sự ra đời của mạng nơ tron nhân tạo diễn ra vào năm 1943 khi nhà thần kinh học Warren McCulloch và nhà toán học Walter Pitts viết bài báo mô tả cách thức các nơ tron hoạt động. Họ cũng đã tiến hành xây dựng một mạng nơ tron đơn giản bằng các mạch điện. Các nơ tron của họ được xem như là các thiết bị nhị phân với ngưỡng cố định. Kết quả của các mô hình này là các hàm logic đơn giản chẳng hạn như “ a OR b” hay “a AND b”. Tiếp bước các nghiên cứu này, năm 1949 Donald Hebb cho xuất bản cuốn sách Organization of Behavior. Cuốn sách đã chỉ ra rằng các nơ tron nhân tạo sẽ trở lên hiệu quả hơn sau mỗi lần chúng được sử dụng. Những tiến bộ của máy tính đầu những năm 1950 giúp cho việc mô hình hóa các nguyên lý của những lý thuyết liên quan tới cách thức con người suy nghĩ đã trở thành hiện thực. Nathanial Rochester sau nhiều năm làm việc tại các phòng thí nghiệm nghiên cứu của IBM đã có những nỗ lực đầu tiên để mô phỏng một mạng nơ tron. Trong thời kì này tính toán truyền thống đã đạt được những thành công rực rỡ trong khi đó những nghiên cứu về nơ tron còn ở giai đoạn sơ khai. Mặc dù vậy những người ủng hộ triết lý “thinking machines” (các máy biết suy nghĩ) vẫn tiếp tục bảo vệ cho lập trường của mình. Năm 1956 dự án Dartmouth nghiên cứu về trí tuệ nhân tạo ( Artificial Intelligence) đã mở ra thời kỳ phát triển mới cả trong lĩnh vực trí tuệ nhân tạo lẫn mạng nơ tron. Tác động tích cực của nó là thúc đẩy hơn nữa sự quan tâm của các nhà khoa học về trí tuệ nhân tạo và quá trình xử lý ở mức đơn giản của mạng nơ tron trong bộ não con người. Những năm tiếp theo của dự án Dartmouth, John von Neumann đã đề xuất việc mô phỏng các nơ tron đơn giản bằng cách sử dụng rơle điện áp hoặc đèn chân không. Nhà sinh học chuyên nghiên cứu về nơ tron Frank Rosenblatt cũng bắt đầu nghiên cứu về Perceptron. Sau thời gian nghiên cứu này Perceptron đã được cài đặt trong phần cứng máy tính và được xem như là mạng nơ 5 tron lâu đời nhất còn được sử dụng đến ngày nay. Perceptron một tầng rất hữu ích trong việc phân loại một tập các đầu vào có giá trị liên tục vào một trong hai lớp. Perceptron tính tổng có trọng số các đầu vào, rồi trừ tổng này cho một ngưỡng và cho ra một trong hai giá trị mong muốn có thể. Tuy nhiên Perceptron còn rất nhiều hạn chế, những hạn chế này đã được chỉ ra trong cuốn sách về Perceptron của Marvin Minsky và Seymour Papert viết năm 1969. Năm 1959, Bernard Widrow và Marcian Hoff thuộc trường đại học Stanford đã xây dựng mô hình ADALINE ( ADAptive LINear Elements) và MADALINE. ( Multiple ADAptive LINear Elements). Các mô hình này sử dụng quy tắc học Least-Mean-Squares ( LMS : Tối thiểu bình phương trung bình). MADALINE là mạng nơ tron đầu tiên được áp dụng để giải quyết một bài toán thực tế. Nó là một bộ lọc thích ứng có khả năng loại bỏ tín hiệu dội lại trên đường dây điện thoại. Ngày nay mạng nơ tron này vẫn được sử dụng trong các ứng dụng thương mại. Năm 1974 Paul Werbos đã phát triển và ứng dụng phương pháp học lan truyền ngược ( backpropagation). Tuy nhiên phải mất một vài năm thì phương pháp này mới trở lên phổ biến. Các mạng lan truyền ngược được biết đến nhiều nhất và được áp dụng rộng dãi nhất nhất cho đến ngày nay. Năm 1982 trong bài báo gửi tới viện khoa học quốc gia, John Hopfield bằng sự phân tích toán học rõ ràng, mạch lạc, ông đã chỉ ra cách thức các mạng nơ tron làm việc và những công việc chúng có thể thực hiện được. Cống hiến của Hopfield không chỉ ở giá trị của những nghiên cứu khoa học mà còn ở sự thúc đẩy trở lại các nghiên cứu về mạng nơ tron. Cũng trong thời gian này, một hội nghị với sự tham gia của Hoa Kỳ và Nhật Bản bàn về việc hợp tác/cạnh tranh trong lĩnh vực mạng nơ tron đã được tổ chức tại Kyoto, Nhật Bản. Sau hội nghị, Nhật Bản đã công bố những nỗ lực của họ trong việc tạo ra máy tính thế hệ thứ 5. Tiếp nhận điều đó, các tạp chí định kỳ của Hoa Kỳ bày tỏ sự lo lắngrằng nước nhà có thể bị tụt hậu trong lĩnh vực này. Vì thế, ngay sau đó, Hoa Kỳ nhanh chóng huy động quĩ tài trợ cho các nghiên cứu và ứng dụng mạng nơ tron. Năm 1985, viện vật lý Hoa Kỳ bắt đầu tổ chức các cuộc họp hàng năm về mạng nơ tron ứng dụng trong tin học (Neural Networks for Computing). Năm 1987, hội thảo quốc tế đầu tiên về mạng nơ tron của Viện các kỹ sư điện và điện tử IEEE (Institute of Electrical and Electronic Engineer) đã thu hút hơn 1800 người tham gia. Ngày nay, không chỉ dừng lại ở mức nghiên cứu lý thuyết, các nghiên cứu ứng dụng mạng nơ tron để giải quyết các bài toán thực tế được diễn ra ở khắp mọi nơi. Các ứng dụng mạng nơ tron ra đời ngày càng nhiều và ngày càng hoàn thiện hơn. 4. Hàm truyền (Transfer Function) Một trong các yếu tố xây dựng mạng nơ tron là hàm truyền. Hàm truyền định nghĩa các thuộc tính của mạng nơ tron và nó có thể là một hàm toán học. Có nhiều loại hàm truyền. Việc lựa chọn các hàm này dựa trên cơ sở vấn đề của bài toán cần giải quyết và thường nằm trong ba loại hàm căn bản sau:  Step Function : là hàm nhị phân chỉ có 2 giá trị output (0,1). Nếu giá trị đầu vào đáp ứng giá trị của ngưỡng cụ thể (lớn hơn) thì output sẽ là 1 vào ngược lại sẽ là 0. 6  Linear function : là hàm tuyến tính, có tác dụng làm biến đổi đơn giản trọng số đầu vào và ngưỡng.  Non-linear (Sigmoid) function : là hàm không tuyến tính. Hàm này thường được sử dụng thông dụng nhất. Với cách tính đạo hàm, hàm này được dùng khi ta cần cập nhật lại trọng số trong các mạng nơ tron. 7 5. Các mô hình mạng nơ tron Khi kết hợp hai hoặc nhiều tế bào nơ tron nhân tạo lại, chúng ta sẽ nhận được một mạng nơ tron nhân tạo. Nếu tế bào thần kinh nhân tạo duy nhất hầu như không có tính hữu dụng trong việc giải quyết các vấn đề thực tế thì ngược lại, mạng thần kinh nhân tạo có thể làm được nhiều điều. Trong thực tế, các mạng nơ tron nhân tạo có khả năng giải quyết những phức tạp thực tế của vấn đề xử lý thông tin trong khối dữ liệu phức tạp một cách phi tuyến tính, phân phối, song song hoặc cục bộ. Cách thức mà các tế bào nơ tron kết nối với nhau được gọi là cấu trúc liên kết, là kiến trúc của mạng nơ tron nhân tạo.Cấu trúc này đóng vai trò quyết định khả năng thực hiện của mạng. Trong thực tế là có nhiều cách kết nối, và các cách này có thể được thực hiện trong cùng một mạng và mang lại kết quả khác nhau. Nhìn chung, cấu trúc liên kết có thể được chia thành hai loại cơ bản: Truyền thẳng (Feed forward) : là cấu trúc mà các luồng thông tin từ đầu vào đến đầu ra theo hướng duy nhất. Mạng nơ tron nhân tạo như vậy chỉ có một điều kiện duy nhất : thông tin phải chảy từ đầu vào đến đầu ra chỉ có một hướng không có vòng trở lại. Không có giới hạn về số lượng các lớp, loại chức năng chuyển giao sử dụng trong tế bào thần kinh nhân tạo cá nhân, số lượng kết nối giữa các tế bào thần kinh nhân tạo cá nhân. Các nguồn cung cấp dữ liệu chuyển tiếp mạng nơ tron nhân tạo đơn giản nhất là một perceptron duy nhất chỉ có khả năng học tập các vấn đề tuyến tính tách riêng. Mạng nơ tron truyền thẳng (mạng MLP) Hồi quy (recurrent) : là cấu trúc liên kết hồi quy đường truyền (vòng bán đồ thị), nơi một số dòng chảy thông tin không chỉ theo một hướng từ đầu vào đến đầu ra mà còn ở chiều ngược lại. Nó tương tự như mạng truyền thẳng là không có giới hạn về phía sau vòng lặp. Những trường hợp thông tin không còn chỉ truyền theo một hướng, nhưng nó cũng là truyền ngược trở lại. Điều này tạo ra một trạng thái nội bộ của mạng cho phép nó năng động, hành vi thể hiện tạm thời. Các mạng nơ tron nhân tạo này có thể sử dụng bộ nhớ trong của chúng để xử lý bất kỳ chuỗi dữ liệu, yếu tố đầu vào. Mạng lưu lại các trạng thái trước đó, và trạng thái tiếp theo không chỉ phụ thuộc vào các tín hiệu đầu vào mà còn phụ thuộc vào các trạng thái trước đó của mạng. Các mạng thần kinh nhân tạo thường xuyên như Hopfield, Elman, Jordan và các mạng khác chỉ là trường hợp đặc biệt của mạng thần kinh nơ tron nhân tạo lặp lại. 8 Mạng nơ tron hồi quy (Mạng Hopfield) a) Khả năng thể hiện của mạng (được thể hiện ở cấu trúc của mạng)  Các mạng không có các lớp ẩn chỉ có khả năng giải quyết các bài toán khả phân tuyến tính.  Các mạng nơ tron với một lớp ẩn có thể xấp xỉ khá tốt bất kỳ một ánh xạ hàm nào từ không gian hữu hạn một chiều sang một không gian khác.  Các mạng nơ tron với 2 lớp ẩn có khả năng thể hiện một đường phân chia hay xấp xỉ một ánh xạ mịn bất kỳ tới một độ chính xác bất kỳ. Mạng nơ tron gồm 3 lớp :đầu vào (input), ẩn(hidden) và đầu ra (output) 9 b) Mạng Perceptron Perceptron là mạng nơ tron truyền thẳng đơn giản nhất, nó chỉ gồm một tế bào nơ tron, nhận đầu vào là dữ liệu đầu vào và đầu ra là một trong hai giá trị +1 hoặc -1. Đầu ra của mạng được xác định như sau: mạng lấy tổng có trọng số các giá trị đầu vào, kết quả này cùng ngưỡng được đưa vào hàm truyền và kết quả của hàm truyền sẽ là đầu ra của mạng. Perceptron cho phép phân loại chính xác trong trường hợp dữ liệu có thể phân chia tuyến tính (các mẫu nằm trên hai mặt đối diện của một siêu phẳng). Nó cũng phân loại đúng đầu ra các hàm AND, OR và các hàm có dạng đúng khi n trong m đầu vào của nó đúng (n ≤ m). Nó không thể phân loại được đầu ra của hàm XOR. c) Mạng Perceptron nhiều tầng (MLP: Multi Layer Perceptron) Đây là mô hình mạng nơ tron được sử dụng rộng rãi nhất. Một mạng MLP tổng quát là mạng có n (n≥2) tầng (thông thường tầng đầu vào không được tính đến): trong đó gồm một tầng đầu ra (tầng thứ n) và (n-1) tầng ẩn. Kiến trúc của một mạng MLP tổng quát có thể mô tả như sau:  Đầu vào là các vector (x1, x2, ..., xp) trong không gian p chiều, đầu ra là các vector (y1,y2, ..., yq) trong không gian q chiều. Đối với các bài toán phân loại, p chính là kích thước của mẫu đầu vào, q chính là số lớp cần phân loại.  Mỗi nơ tron thuộc tầng sau liên kết với tất cả các nơ tron thuộc tầng liền trước nó.  Đầu ra của nơ tron tầng trước là đầu vào của nơ tron thuộc tầng liền sau nó. Hoạt động của mạng MLP như sau: tại tầng đầu vào các nơ tron 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) rồi cho ra kết quả (là kết quả của hàm truyền); kết quả này sẽ được truyền tới các nơ tron thuộc tầng ẩn thứ nhất; các nơ tron tại đây tiếp nhận như là tín hiệu đầu vào, xử lý và gửi kết quả đến tầng ẩn thứ 2;…; quá trình tiếp tục cho đến khi các nơ tron thuộc tầng ra cho kết quả. Một số kết quả đã được chứng minh:  Bất kì một hàm Boolean nào cũng có thể biểu diễn được bởi một mạng MLP 2 tầng trong đó các nơ tron sử dụng hàm truyền sigmoid.  Tất cả các hàm liên tục đều có thể xấp xỉ bởi một mạng MLP 2 tầng sử dụng hàm truyền sigmoid cho các nơ tron tầng ẩn và hàm truyền tuyến tính cho các nơ tron tầng ra với sai số nhỏ tùy ý.  Mọi hàm bất kỳ đều có thể xấp xỉ bởi một mạng MLP 3 tầng sử dụng hàm truyền sigmoid cho các nơ tron tầng ẩn và hàm truyền tuyến tính cho các nơ tron tầng ra. d) Mạng Hopfield Một Hopfield mạng nơ tron nhân tạo là một loại mạng thần kinh nhân tạo hồi quy, được sử dụng để lưu trữ một hoặc nhiều target vector. Các vetor này được cung cấp để lưu trữ các vector dữ liệu đầu vào mà mạng được nhận được. Mạng sử dụng hai giá trị nhị phân (0,1) xác định trạng thái của nó khi tổng hợp giá trị đầu vào có vượt quá ngưỡng cho phép không. Các yêu cầu các trọng số cần phải được đối xứng khi sử dụng, vì nó sẽ phải đảm bảo rằng các hàm cần giảm đơn điệu khi theo các quy tắc kích hoạt. Nếu trọng số không đối xứng khi được sử dụng thì các mạng có thể thể hiện một số hành vi tuần hoàn hoặc hỗn loạn. Việc huấn luyện một mạng Hopfield có liên quan đến việc giảm thiểu các trạng thái mà các mạng nơ tron nhân tạo nên nhớ. 10 e) Mạng Elman và Jordan Mạng Elman còn được gọi mạng hồi quy đơn giản, là trường hợp đặc biệt hồi quy của các mạng nơ tron nhân tạo. Nó khác với các mạng thông thường có hai lớp trong đó lớp đầu tiên có một kết nối hồi quy. Đây là loại mạng nơ tron nhân tạo có bộ nhớ mà cho phép nó có thể phát hiện và phát sinh các pattern thời gian khác nhau. Các mạng Elman thường sử dụng các tế bào nơ tron nhân tạo có hàm xích ma ẩn của nó, và tế bào thần kinh nhân tạo đầu ra tuyến tính trong lớp của mình. Sự kết hợp của các chức năng tế bào thần kinh nhân tạo có thể chuyển đổi bất kỳ chức năng nào với độ chính xác tùy ý nếu chỉ có đủ tế bào thần kinh nhân tạo trong lớp ẩn. Có thể lưu trữ thông tin của mạng Elman với khả năng tạo ra các pattern thời gian cũng như các mô hình không gian đáp ứng trên chúng. Mạng Jordan tương tự như mạng Elman. Sự khác biệt duy nhất là các đơn vị nội dung được đưa từ lớp output thay vì từ lớp ẩn. 6. Ứng dụng của mạng nơ tron Mạng nơ tron nhân tạo có khả năng được sử dụng trong các công việc phân loại, bài toán gần đúng, xử lý dữ liệu, lọc, phân nhóm, nén, robot, các quy định, ra quyết định, … Việc chọn cấu trúc liên kết mạng nơ tron nhân tạo phụ thuộc vào kiểu của ứng dụng và dữ liệu đại diện của một vấn đề nhất định. Khi chọn và sử dụng các mạng nơ tron nhân tạo, chúng ta cần phải quen thuộc với lý thuyết của mô hình mạng thần kinh nhân tạo và các thuật toán học. Phức tạp của các mô hình được lựa chọn là rất quan trọng; sử dụng mô hình đơn giản cho công việc cụ thể thường là kết quả trong các kết quả thấp hay sai, nhưng một mô hình phức tạp cho một nhiệm vụ cụ thể có thể dẫn đến các vấn đề trong quá trình học. Có nhiều thuật toán học với rất nhiều sự kết hợp cân bằng giữa chúng và gần như tất cả đều thích hợp cho bất kỳ loại mô hình mạng nơ tron nhân tạo nào. Việc lựa chọn thuật toán học thích hợp cho một công việc cần nhiều kinh nghiệm và thử nghiệm về vấn đề nhất định và các loại dữ liệu. Khi mô hình mạng thần kinh nhân tạo và thuật toán học đã đúng cách lựa chọn thì chúng ta có được công cụ mạnh mẽ để giải quyết vấn đề bài toán. Một số ứng dụng của mạng nơ tron :  Nhận dạng mẫu: Phân loại mẫu có liên quan với sự phân công của một mẫu mới cho một trong những quy định trước một số loại dựa trên một hoặc nhiều thuộc tính mô tả một loại. Ứng dụng trong y học lâm sàng, vi sinh học và xử lý ảnh được cho bởi Penny và Frost (1996), Basheer và 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 nơ tron được sử dụng để chỉ định các mẫu tương tự với cùng một nhóm. Thường thì các mạng Kohonen được sử dụng. Ứng dụng tiêu biểu có thể được tìm thấy trong lĩnh vực phân tích hóa học (Tokutaka et al, 1999.) và nhận dạng mẫu thời tiết (Ambroiseet al., 2000).  Mô hình hóa và dự báo. Mô hình hóa bao gồm việc huấn luyện mạng nơ tron trên dữ liệu đầu vào-đầu ra, như vậy một mối quan hệ hiện tại giữa dữ liệu đầu vào và dữ liệu đầu ra được thực hiện đầy đủ chính xác. Các mối quan hệ có thể là tĩnh, trong trường hợp này thường một mạng feed-forward được sử dụng. Cũng có thể các mối quan hệ là động, trong trường hợp này thường là mạng hồi quy được sử dụng. Nhiều ứng dụng có thể được tìm thấy trong tài liệu về các lĩnh vực ứng dụng khác nhau, chẳng hạn như mô hình nhà máy nước thải, điều hòa dữ liệu, vv…, xem ví dụ Miller et al. (1997), Meert (1998), Triệu et al. (1999), Basak et al. (2000) và Veltri et al(2002.) 11  Tối ưu hóa. Trong tối ưu hóa, nó là cần thiết để tìm một giải pháp để đánh giá một đối tượng hàm mục tiêu để thiết lập liên kết. Mạng Hopfield được chứng minh rất hiệu quả trong việc giải quyết vấn đề tối ưu hóa phi tuyến. Một số ví dụ là những ứng dụng trong các vấn đề đường đi ngắn nhất (Bousono-Carzon et al., 1997) và trong vấn đề tối ưu hóa tổ hợp (Colorni, et al., 1996).  Điều khiển quá trình và nhận dạng. Trong quá trình kiểm soát, một mạng nơ tron có thể được dùng để tính toán đầu vào quá trình để những kết quả đầu ra quá trình đạt mục đích mong muốn. Yonghong và van Cauwenberghe (1996) thảo luận về việc thiết kế một bộ điều khiển dự đoán nơ tron, Cohen et al. (1997) áp dụng một hệ thống thần kinh để điều khiển trình tự của một lò phản ứng đợt Menhaj và Salmasi (2000) sử dụng một mạng nơ tron cho các tham số dự toán và Hafner et al. (2000) sử dụng các mạng thần kinh cho thiết kế điều khiển động cơ diesel. II. HUẤN LUYỆN MẠNG NƠ TRON Khi chúng ta đã lựa chọn và xây dựng được cấu trúc liên kết mạng nơ tron nhân tạo, chúng ta chỉ mới hoàn thành một nửa nhiệm vụ trước khi chúng ta có thể sử dụng mạng này để giải quyết vấn đề bài toán. Cũng như bộ não con người cần phải tìm hiểu , học hỏi để phản ứng thích hợp khi cho các giá trị nhận được từ môi trường, mạng thần kinh nhân tạo cần phải làm như vậy. Vì vậy, bước tiếp theo để giúp mạng có thể phản ứng thích hợp và điều này có thể đạt được thông qua học tập (giám sát, giám sát hoặc bỏ học củng cố). Các nhiệm vụ học tập là thiết lập các giá trị của trọng số và ngưỡng trên cơ sở học tập dữ liệu để giảm thiểu chi phí lựa chọn. 1. Các phương pháp học Có ba kiểu học chính, mỗi kiểu mẫu tương ứng với một nhiệm vụ học trừu tượng. Đó là học có giám sát, học không có giám sát và học tăng cường. Thông thường, loại kiến trúc mạng nào cũng có thể dùng được cho các nhiệm vụ trên. a) Học có giám sát Học có giám sát là kỹ thuật máy học mà bộ thông số của một mạng nơ tron nhân tạo được tạo từ dữ liệu huấn luyện. Nhiệm vụ của mạng nơ tron nhân tạo tự học tập là để thiết lập giá trị của tham số của nó đối với bất kỳ giá trị đầu vào hợp lệ sau khi đã nhìn thấy giá trị đầu ra. Các dữ liệu huấn luyện bao gồm các cặp đầu vào và giá trị đầu ra mong muốn được đại diện trong các vector dữ liệu truyền thống. Việc học giám sát cũng có thể được gọi là phân loại, nơi chúng ta có một loạt các phân loại, mỗi điểm mạnh và điểm yếu của nó. Để giải quyết một vấn đề bài toán nhất định thì học có giám sát các bước khác nhau phải được xem xét: Trong bước đầu tiên chúng ta phải xác định các loại ví dụ huấn luyện. Trong bước thứ hai chúng ta cần phải thu thập dữ liệu đào tạo thiết rằng thỏa đáng mô tả một vấn đề nhất định. Trong bước thứ ba chúng ta cần phải mô tả dữ liệu đào tạo tập trung thiết lập dưới hình thức dễ hiểu đối với một mạng nơ tron nhân tạo được chọn. Trong bước thứ tư, chúng ta làm việc học tập và sau khi học chúng ta có thể kiểm tra hiệu năng của mạng nơ tron nhân tạo đã học được với các thử nghiệm (xác nhận) dữ liệu. Kiểm tra dữ liệu bao gồm các dữ liệu đã không được giới thiệu đến mạng nơ tron nhân tạo trong khi học. 12 Như vậy 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ụ của thuật toán là phải xác định được một cách thức phân lớp sao cho với mỗi vector đầu vào sẽ được phân loại chính xác vào lớp của nó. b) Học không giám sát Học không có giám sát là một kỹ thuật máy học mà bộ thông số của một mạng nơ tron nhân tạo dựa trên dữ liệu nhất định và một hàm chi phí được giảm thiểu. Hàm chi phí có thể là bất cứ hàm nào và nó được xác định bởi vấn đề. Học không có giám sát là chủ yếu được sử dụng trong các ứng dụng thuộc lĩnh vực của các vấn đề ước lượng như mô hình thống kê, nén, lọc, tách nguồn mù và gom nhóm (clustering). Nó khác với học có giám sát và học củng cố, trong đó các mạng nơ tron nhân tạo được đưa ra ví dụ duy nhất không có nhãn. Điều này cho thấy, ta sẽ không biết đầu ra đạt giá trị gì. Với loại này, thì các nơ tron sẽ phải tự xoay xở với các dữ liệu mẫu mà nó có được. Mạng phải tự khám phá mẫu, đặc tính, sự tương quan hay loại đầu vào. Trong khi khám phá những đặc tính này, tham số của mạng sẽ bị thay đổi. Quá trình này được gọi là tự tổ chức. Một ví dụ điển hình là quá trình phân loại đối tượng không có giám sát, những lớp thích hợp được hình thành bằng cách khám phá sự tương tự và không tương tự trong số các đối tượng. Như vậy với học không giám sát, số lớp phân loại chưa được biết trước, và tùy theo tiêu chuẩn đánh giá độ tương tự giữa các mẫu mà ta có thể có các lớp phân loại khác nhau. Một hình thức phổ biến của việc học không có giám sát là gom nhóm (clustering), nơi chúng ta cố gắng để phân loại dữ liệu trong các cụm khác nhau. c) Học tăng cường Học tăng cường là một kỹ thuật máy học mà bộ thông số của một mạng nơ tron nhân tạo, dữ liệu thường không được đưa ra, nhưng được tạo ra bởi sự tương tác với môi trường. Học tăng cường có liên quan với các mạng thần kinh nhân tạo nên những hành động trong một môi trường để tối đa hóa một số khái niệm về “phần thưởng dài hạn”. Trong học tăng cường, dữ liệu input x thường không được cho trước mà được tạo ra trong quá trình một tác tử tương tác với môi trường. Tại mỗi thời điểm t, tác tử thực hiện hành động output yt và môi trường tạo một quan sát input xt và một chi phí tức thời ct, theo một quy trình động nào đó (thường là không được biết). Mục tiêu là tìm một sách lược lựa chọn hành động để cực tiểu hóa một chi phí dài hạn nào đó, nghĩa là chi phí tích lũy mong đợi. Quy trình động của môi trường và chi phí dài hạn cho mỗi sách lược thường không được biết, nhưng có thể ước lượng được. Mạng nơ tron nhân tạo thường được dùng trong học tăng cường như là một phần của thuật toán toàn cục. Các bài toán thường được giải quyết bằng học tăng cường là các bài toán điều khiển, trò chơi, và các nhiệm vụ quyết định tuần tự (sequential decision making) khác. Nhìn chung, học tăng cường giống là học theo “nhà phê bình” (học theo sự đánh giá) , ngược lại với học có giám sát là học theo “thầy giáo” (học theo sự hướng dẫn). 2. Huấn luyện mạng nơ tron a) Lý thuyết về huấn luyện mạng nơ tron Để đào tạo một mạng nơ tron, đầu tiên là một bộ đào tạo và một bộ thử nghiệm của các dữ liệu mẫu từ quy trình này phải được tạo ra. đào tạo là xây dựng các cặp dữ liệu đầu vào và đầu ra, 13 được gọi là mẫu. Những mô hình không nhất thiết phải duy nhất, đầu ra được phép có nhiều hơn một đầu vào khác, tuy nhiên, một đầu vào chỉ có thể có một đầu ra riêng biệt. Dữ liệu trong các bộ này phải là một mô hình hóa tốt cho dữ liệu quá trình trung bình và do đó phải được soạn cẩn thận. Điều này có nghĩa rằng cả hai bộ có thể tước bỏ bất kỳ dữ liệu xấu như các lỗi do trục trặc trong quá trình hay máy móc. Tuy nhiên, điều này không có nghĩa là mạng nơ tron này không thể đào tạo để nhận ra các tính năng này. Nó cũng có thể được huấn luyện để nhận ra các lỗi này và xác định nguyên nhân có thể xảy ra của chúng. Sau khi các bộ dữ liệu được kiểm tra, chúng sẽ được đưa vào mạng. Trong thời gian đào tạo, các trọng số được cập nhật theo cách như vậy mà tổng bình phương của sự khác biệt giữa giá trị thực tế ngõ ra và ngõ ra của mạng, đã được giảm thiểu. Trong quá trình đào tạo của tất cả các cặp đầu vào / đầu ra của tập huấn luyện sẽ được trình bày nhiều lần vào mạng. Số lần tập huấn luyện được trình bày tới mạng được gọi là số lượng chu trình được sử dụng để huấn luyện mạng.Có bốn phương pháp tiếp cận khác nhau về cơ bản cho việc huấn luyện mạng neuron.  Phương pháp tiếp cận đầu tiên là hiệu chỉnh lỗi quy tắc huấn luyện, nơi mà lỗi giữa đầu ra của mạng và đầu ra đo được được sử dụng để hiệu chỉnh trọng số mạng tương thích.  Một phương pháp tiếp cận thứ hai là huấn luyện Boltzman, nó tương tự như hiệu chỉnh lỗi huấn luyện, tuy nhiên, đầu ra của một neuron được dựa trên một phân bố thống kê Boltzman.  Phương pháp thứ ba là huấn luyện Hebbian, nơi huấn luyện được thực hiện cục bộ bằng cách điều chỉnh trọng số dựa trên các hoạt động của neuron.  Phương pháp thứ tư là huấn luyện cạnh tranh, nơi mà các neuron cạnh tranh theo cách mà chỉ có một neuron sẽ được kích hoạt trong một lặp nhất định. b) Ví dụ về huấn luyện mạng nơ tron Perceptron : Giả sử chúng ta muốn dạy nơ tron phân biệt chữ A và B. Khi đưa input là A chúng ta muốn nơ tron cho output là 1, còn khi input là B thì nơ tron phải cho output bằng 0. Hãy bắt đầu bằng cách cho các trọng số những giá trị ngẫu nhiên, lúc này nơ tron chưa biết gì hết. Bây giờ hãy input chữ A. Nơ tron sẽ lấy tổng có trọng số của các inputs và so sánh kết quả với 0. Nếu kết quả dương thì output là 1, âm thì output là 0. Khả năng nơ tron đoán đúng là 50%, vì các trọng số đang có giá trị hoàn toàn ngẫu nhiên. Nếu nơ tron đoán đúng thì chúng ta không cần làm gì cả, nhưng khi nơ tron đoán sai (output bằng 0), thì chúng ta phải tăng các trọng số của các inputs đang hoạt động (các inputs khác không) lên, sao cho lần tới tổng có trọng số sẽ vượt quá ngưỡng và tạo nên output là 1. 14 Ngược lại, khi đưa chữ B vào và nơ tron đoán sai (output bằng 1), thì ta phải giảm các trọng số của các inputs đang hoạt động xuống, sao cho lần tới tổng có trọng số sẽ nhỏ hơn ngưỡng và buộc nơ tron phải cho output bằng 0. Như vậy, khi dạy chữ B thành công rồi thì nơ tron có quên đi chữ đã học trước đó là A không ? Không, vì khi input là các chữ khác nhau thì nhóm các đường inputs đang hoạt động cũng khác nhau hoặc là không hoàn toàn trùng nhau. Nhớ là chúng ta chỉ biến đổi trọng số của các inputs đang hoạt động thôi. Chúng ta chỉ việc lập đi lập lại quá trình dạy như trên cho tới khi nơ tron học thuộc bài mới thôi. 3. Thuật toán trong huấn luyện mạng nơ tron a) Giới thiệu Có nhiều thuật toán có thể dùng cho việc huấn luyện các mô hình mạng nơ-ron; hầu hết có thể được xem là áp dụng trực tiếp của lý thuyết tối ưu hóa và ước lượng thống kê Phần lớn các thuật toán huấn luyện mạng nơ-ron sử dụng một kiểu xuống dốc (gradient descent– tiến dần tới cực tiểu địa phương) nào đó. Điều này được thực hiện bằng cách lấy đạo hàm của hàm chi phí theo các tham số của mạng và thay đổi các tham số đó theo một hướng được tính toán theo độ dốc (gradient-related direction) để tiến dần tới cực tiểu địa phương của hàm chi phí. Một số thuật toán thường được áp dụng như : Back propagation, Conjugate gradient descent & Levenber-Marquardt (Bishop 1995, Shepherd 1997), Quick propagation (Fahlman, 1988), DeltaBar-Delta(Jacob 1988),… b) Thuật toán Lan Truyền Ngược (Back propagation) Đây là thuật toán được sử dụng thông dụng nhất. Thuật toán này có thể áp dụng cho các mạng truyền thẳng với các hàm chuyển và các hàm lỗi khả vi. Với tiêu chuẩn huấn luyện: làm cho sai số đầu ra càng nhỏ càng tốt, phương pháp của thuật toán là: dựa trên đầu ra để điều chỉnh trọng số của lớp ra, sau đó dựa trên tính toán của lớp ra để điều chỉnh trọng số của lớp ẩn. Huấn luyện mạng nơ tron nhiều lớp sử dụng thuật toán Lan truyền ngược gồm hai quá trình: Quá trình truyền tuyến tính và quá trình truyền ngược:  Quá trình truyền tuyến tính: Dữ liệu từ lớp nhập qua lớp ẩn và đến lớp xuất để: 15  Thay đổi giá trị của trọng số liên kết W của các nơ tron trong mạng biểu diễn được dữ liệu học.  Tìm ra sự khác nhau giữa giá trị thật hàm mẫu mà mạng tính được và kết quả dự đoán của mạng gọi là lỗi (học có giám sát).  Quá trình truyền ngược: Giá trị lỗi sẽ được truyền ngược lại sao cho quá trình huyến luyện (học) sẽ tìm ra trọng số Wi để lỗi nhỏ nhất. Các bước thực hiện thuật toán : Khởi tạo trọng số : Các trọng số trong mạng được khởi tạo ngẫu nhiên trong khoảng từ -1 đến 1. Mỗi tế bào nơ tron được kết hợp với một ngưỡng, ngưỡng này được khởi tạo giống như các trọng số. Với mỗi một mẫu Xi trong tập dữ liệu mẫu N: Lan truyền tiến các đầu vào : trong bước này, các đầu vào và đầu ra của mỗi nơ tron trong tầng ẩn và tầng xuất được tính toán. Đầu tiên mẫu học được đưa vào tầng nhập của mạng. Đầu vào cho các tế bào nơ tron trong các tầng ẩn và tầng xuất được tính toán như là ánh xạ của biến đầu vào. Đầu vào của một tế bào nơ tron sẽ là đầu ra của những nơ tron ở tầng trước nó. Để tính toán đầu vào của mỗi tế bào nơ tron thì mỗi đầu vào của nó được cộng dồn bởi trọng số tương ứng. Cho một nơ tron j ở tầng ẩn và tầng xuất thì đầu vào Ij của j được tính: Ij =  wij Oi  z j i Với wij là trọng số liên kết từ nơ tron i ở tầng trước đến nơ tron j. Oi là đầu ra của nơ tron i từ tầng trước và zj là ngưỡng của nơ tron. Ngưỡng này có tác dụng làm thay đổi cách hoạt động của nơ tron. Mỗi nơ tron ở trong tầng ẩn hay tầng xuất có một mạng đầu vào của nó và áp dụng một hàm kích hoạt đến nó, hàm này là hàm logistic hoặc hàm simoid. Cho đầu vào Ij của nơ tron j thì đầu ra Oj của nơ tron j được tính như sau: Oj = 1 I 1 e j Hàm này được xem như là một hàm nén (squashing), vì nó ánh xạ một miền đầu vào rộng lớn lên một vùng nhỏ hơn trong khoảng từ 0 đến 1. Hàm logistic là một hàm không tuyến tính (phi tuyến) và có khả năng phân loại, cho phép thuật giải lan truyền ngược mô hình theo bài toán phân lớp là tuyến tính liên tục. Sai số lan truyền ngược: sai số được lan truyền ngược bởi quá trình cập nhật trọng số và định hướng làm sai số trong việc dự đoán của mạng. Cho nơ tron j trong tầng xuất, sai số Errj được tính bởi: Errj = Oj(1 – Oj)(Tj – Oj) Với Oj là giá trị thực sự của đầu ra của nơ tron j,và Tj là đầu ra đúng dựa trên lớp đã biết của mẫu học được cho, Oj(1 – Oj) là đạo hàm của hàm logistic. Để tính độ sai số của tầng ẩn với nơ tron j, tổng các sai số của trọng số của các nơ tron trong tầng kế tiếp liên kết đến nơ tron j được tính trước. Sai số của tầng ẩn với nơ tron j là: Errj = O j (1 − O j ) Err k w jk k Trong đó wik là trọng số của liên kết từ nơ tron j đến nơ tron k trong tầng kế tiếp, và Errk là sai số của nơ tron k 16 Trọng số và định hướng được cập nhật đã làm sai số lan truyền. Trọng số được cập nhật bởi công thức sau, với ∆wij là phần thay đổi trong trọng số wij. ∆wij = (l)Errij Oj Wij = wij +∆wij Học lan truyền ngược sử dụng phương pháp giảm gradient để kiếm tra một tập trọng số mà có thể mô hình hóa bài toán phân lớp cho trước sao cho cực tiểu sai số bình phương-trung bình giữa lớp được mạng dự đoán và lớp thực sự của mẫu học đã cho. Mức độ học ngăn không cho sa lầy vào cực tiểu cục bộ trong không gian quyết định nghĩa là các trọng số xuất hiện để hội tụ, nhưng nó không phải là giải pháp tốt nhất và đi tới khám phá cực tiểu toàn cục. Nếu mức độ học quá nhỏ thì việc học tiến triển rất chậm. Nếu mức độ học quá lớn thì các giải pháp không thỏa đáng. Một kinh nghiệm là cho mức độ học l=t với t là số lần lặp đi hồi quy trên tập dữ liệu học cho tới lúc này. Điều kiện kết thúc: Quá trình học mạng được bắt đầu với các giá trị trọng số tùy ý và tiến hành lặp đi lặp lại. Mỗi lần lặp được gọi là một thế hệ. Trong mỗi thế hệ mạng điều chỉnh các trọng số sao cho sai số giảm dần và quá trình học kết thúc khi: + Tất cả ∆wij ở thế hệ trước nhỏ hơn một ngưỡng xác định nào đó + Tỷ lệ các mẫu bị phân lớp sai ở thế hệ trước nhỏ hơn một ngưỡng nào đó + Lặp đủ số lượng thế hệ xác định trước. Trong thực tế, có khi phải trải qua hàng trăm ngàn thế hệ thì các trọng số mới có thể hội tụ. Ngoài những thành công của giải thuật học lan truyền ngược, vẫn còn có một số khía cạnh làm cho giải thuật trở nên chưa được bảo đảm là mọi lúc đều tốt. Khó khăn chủ yếu là ở quá trình huấn luyện lâu. Có thể do nhịp độ học và động lực không tối ưu. Sự sai sót trong việc huấn luyện nói chung xuất hiện từ hai nguồn: mạng liệt và những cực tiểu địa phương. Mạng liệt : xảy ra khi những trọng số được điều chỉnh tới những giá trị rất lớn. Tổng đầu vào của một đơn vị ẩn hoặc đơn vị đầu ra có thể bởi vậy mà đạt giá trị rất cao (hoặc dương hoặc âm), và qua hàm kích hoạt sigmoid, đơn vị sẽ có một giá trị kích hoạt rất gần 0 hoặc rất gần 1. Giá trị hiệu chỉnh trọng số gần 0, và quá trình huấn luyện có thể đi đến một trạng thái dừng ảo. Cực tiểu địa phương : bề mặt sai số của mạng rất phức tạp đầy những ngọn đồi và những thung lũng. Bởi vì sự hạ độ dốc, mạng có thể bị mắc bẫy tại một cực tiểu địa phương khi có nhiều cực tiểu thấp hơn gần bên cạnh. Những phương pháp thống kê có thể giúp để tránh cái bẫy này, nhưng chúng làm chậm. Một phương án khác là tăng thêm số lượng đơn vị ẩn. Như vậy sẽ làm việc trong không gian sai số nhiều chiều, nên cơ hội gặp bẫy nhỏ hơn. Tuy nhiên việc tăng cũng có giới hạn trên, khi vượt qua giới hạn này, cơ hội mắc bẫy lại tăng lên. III. MỘT SỐ VẤN ĐỀ KHÁC 1. Khuyết điểm của mạng nơ tron Về khuyết điểm, các mạng nơ tron học theo mô hình, chúng không thể được lập trình để thực hiện một nhiệm vụ cụ thể. Các mẫu phải được chọn lựa cẩn thận nếu không sẽ rất mất thời gian, thậm chí mạng sẽ hoạt động không đúng. Điều hạn chế này là bởi vì mạng tự tìm ra cách giải quyết vấn đề, thao tác của nó không thể dự đoán được. 17 2. Kích thước của dữ liệu Mô hình mạng nơ tron phụ thuộc vào kích thước cơ sở dữ liệu. Dữ liệu được sử dụng cho việc đào tạo nên bao gồm phạm vi hoạt động toàn bộ các mô hình đó có thể được sử dụng. Mô hình mạng Nơ tron ngoại suy nghèo, nghĩa là chúng thường dự báo kém bên ngoài phạm vi điều hành. Các thiết lập dữ liệu thường được chia thành ba bộ dữ liệu: tập huấn, các dữ liệu thiết lập và xác nhận thiết lập. Tập huấn nên bao gồm dữ liệu từ các phạm vi hoạt động toàn bộ và được sử dụng để cập nhật các trọng số của mạng. Các thiết lập thử nghiệm khác với thiết lập đào tạo và được sử dụng để kiểm tra phản ứng của mạng cho dữ liệu chưa thao. Nếu trả lời là nghèo, các cấu hình mạng phải được thay đổi hoặc các chu trình đào tạo hơn nên được áp dụng. Mặc dù có rất nhiều nguyên tắc để chọn các kích thước của các bộ dữ liệu khác nhau, một sự lựa chọn hợp lý để có được 65% của toàn bộ dữ liệu đặt cho đào tạo, 25% để thử nghiệm và 10% cho xác nhận. 3. Kích cỡ của lớp ẩn Một ẩn lớp thường là đủ để bất kỳ hàm liên tục gần đúng. Việc lựa chọn số nút ẩn không phải là một nhiệm vụ đơn giản. Một mạng với quá ít các nút ẩn sẽ cung cấp một ước lượng tuyến tính của xu hướng thực tế, trong khi quá nhiều các nút ẩn sẽ gây ra mạng bị nhiễu do tham số hóa. 4. Một số hướng dẫn khi sử dụng mạng nơ tron  Xây dựng mạng khởi tạo (dùng 1 tầng ẩn có số nơ-ron = ½ tổng số nơ-ron của tầng input và output).  Khi huấn luyện mạng dùng các giải thuật huấn luyện, ta nên thực hiện trên nhiều mạng khác nhau để tránh trường hợp cực tiểu cục bộ.  Trường hợp nếu máy “ không thuộc bài “ (under-learning) thì ta nên thêm 1 vài nơ tron cho tầng ẩn.Ngược lại, nếu máy “học vẹt” (over-learning) thì ta bớt đi 1 vài nơ tron ra khỏi tầng ẩn  Khi đã tìm được một kiến trúc mạng tương đối “ tốt”, ta lấy mẫu lại tập dữ liệu và huấn luyện lại để tìm ra các mạng mới 18 I. GIỚI THIỆU BÀI TOÁN NHẬN DẠNG CHỮ VIẾT TAY 1. Tìm hiểu về ký tự và chữ viết Chữ viết là một hệ thống các ký hiệu để ghi lại một loại ngôn ngữ theo dạng văn bản. Đây là sự miêu tả ngôn ngữ thông qua việc sử dụng các ký hiệu hay các biểu tượng. Đối với lịch sử phát triển của xã hội loài người, chữ viết có một vai trò rất to lớn. Chữ viết là phương tiện ghi lại thông tin, không có chữ viết thì không thể có sách, các phát minh, các thành tựu không thể truyền lại. Các ngôn ngữ trên thế giới hiện nay phổ biến và những ký tự trong một hệ thống chữ viết thì khác nhau và rất đặc trưng, không ký tự nào trùng nhau. Các ký tự này hoặc là một kiểu phát âm cụ thể, nhấn giọng hoặc toàn bộ từ trong một số trường hợp miêu tả. Về mặt cấu trúc, ký tự thể hiện mức độ khác nhau về việc sắp xếp tổ chức từ và ngữ của câu. Đối với các cấu trúc này luôn có một vấn đề về sự thỏa hiệp giữa việc dễ xây dựng, hình thành nên các từ và việc dễ ghi nhớ, lưu truyền trong một phạm vi không gian. Các cấu trúc giống như bảng chữ cái Latin cho phép ta thiết lập việc xây dựng các từ và ngữ (trong khi buộc người sử dụng chỉ việc bổ sung các dấu nhấn và cách phát âm) một cách dễ dàng. Một số bảng chữ cái, cụ thể là các bảng chữ cái phương Đông, các từ thể hiện một đối tượng bằng việc kết hợp các ký tự lại với nhau thường rất ít. Một số từ được biểu diễn hẳn bằng các ký tự riêng biệt, không có sự kết hợp các ký tự lại với nhau. Các ngôn ngữ như vậy thường bao gồm hàng nghìn ký tự và cần có một thời gian học rất dài để sử dụng, có thể kéo dài cả đời. 2. Bài toán nhận dạng chữ viết tay Vấn đề nhận dạng chữ viết tay thuộc nhóm các bài toán phân loại mẫu. Nhiệm vụ của bài toán này là thiết lập cách phân loại cho các mẫu đầu vào (thường được cho dưới dạng một vector các đặc trưng) vào một trong các lớp cho trước. Trong bài báo cáo này, ta sẽ giải quyết vấn đề này bằng mạng Nơ tron. Phương pháp này cho ta kết quả tương đối chấp nhận được. Ngoài ra, với mạng Nơ tron, chỉ cần cung cấp một tập mẫu vào ra của dữ liệu mới cho pha huấn luyện là có thể bổ sung vào “bộ nhớ mạng” những kiểu dữ liệu mới mà không ảnh hưởng đến cấu trúc chương trình ban đầu. Mạng Nơ tron sẽ dựa trên việc huấn luyện mạng ban đầu để phân biệt các dữ liệu đầu bằng với những nét đặc trưng riêng. Vì vậy, vấn đề quan trọng trong việc giải quyết bài toán này là việc xây dựng và huấn luyện mạng Nơ tron. Nếu ta đề ra mô hình mạng và phương thức huấn luyện hoặc bộ mẫu không thích hợp thì việc huấn luyện bị thất bại, mạng Nơ tron của chúng ta không thể nhận ra hoặc làm việc với hiệu suât kém, không chấp nhận được. Tùy theo bài toán cụ thể mà ta xây dựng mô hình và phương pháp học phù hợp. Với nội dung ban đầu của bài toán : “ Làm thế nào máy tính có thể nhận dạng chữ viết tay của một người”, dựa trên nguồn dữ liệu đầu vào, chúng ta chia bài toán thành hai dạng cơ bản : nhận dạng trực tiếp (Online) và nhận dạng gián tiếp (Offline), nghĩa là giữa chữ viết trực tiếp và chữ viết dưới dạng hình ảnh. 19 Thông thường, nhận dạng Online có ưu điểm hơn nhận dạng Offline. Ví dụ khi viết một chữ viết mà nét sau đè lên nét trước, các nét viết được biết đến và ta không cần phân tích hình ảnh của chúng thì nhận dạng chữ viết kiểu online hoàn toàn có lợi thế hơn. Song ngược lại, nhận dạng chữ viết offline có cái hay của nó là dù chúng ta viết nét nào trước nét nào sau thì kết quả ra là vẫn giống nhau, độ chính xác cao hơn, nhưng với nhận dạng chữ viết online thì có thể kết quả sẽ cho ra khác nhau. Ngày nay với sự phát triển của các thiết bị cảm ứng cầm tay, bài toán nhận dạng Online đã trở nên phổ biến hơn nhận dạng Offline. 3. Trích chọn đặc trưng Trong bài toán nhận dạng, những ký tự sẽ được đưa vào cho mạng Nơ tron học tập dưới dạng những vector đa chiều. Vậy cơ sở để phân tích những ký tự thành những vector là gì? Đó là những đặc trưng riêng của ký tự. Đặc trưng của một ký tự là tập hợp các thuộc tính, các đặc điểm nổi bật có trong đó. Như đã tìm hiểu ở trên thì mỗi ký tự đều có một cách thể hiện riêng biệt khác nhau. Đó là cơ sở để chúng ta phân biệt giữa các ký tự với nhau. Việc trích chọn đặc trưng là việc tìm và chọn ra các đặc trưng đặc thù cho mỗi mẫu ký tự. Các đặc trưng được dùng để miêu tả ký tự đầu vào sau quá trình trích chọn đặc trưng được gọi là vector đặc trưng cho các mẫu ký tự đó. Trong các hệ thống nhận dạng nói chung, vector đặc trưng là đầu ra của bộ trích chọn đặc trưng và là đầu vào trực tiếp của mô hình nhận dạng. Các mô hình nhận dạng đón nhận mẫu dữ liệu đầu vào chỉ dựa trên thông tin từ vector đặc trưng. Nhiệm vụ của trích chọn đặc trưng là tìm ra vector đặc trưng làm đầu vào cho mô hình nhận dạng. Đầu vào càng dễ phân biệt thì mô hình nhận dạng càng thuận lợi và chính xác. Không phải bất cứ đặc trưng nào của mẫu đầu vào cũng có ích cho việc phân biệt các mẫu đầu vào với nhau. Nếu như tất cả các đặc trưng có trong mẫu đầu vào đề được đưa vào mô hình nhận dạng thì dẫn tới xuất hiện nhiều thông tin không liên quan, không cần thiết, làm cho mô hình khó phân biệt các mẫu đầu vào và tăng độ phức tạp tính toán. Như thế mục tiêu quan trọng hàng đầu của trích chọn đặc trưng là tìm ra được những đặc trưng tốt, đó là những đặc trưng mà giá trị của nó là giống nhau đối với các mẫu thuộc cùng một lớp và khác so với các mẫu thuộc lớp khác. Với một hệ thống nhận dạng áp dụng một thuật toán nhận dạng cố định thì độ chính xác cũng như thời gian nhận dạng sẽ phụ thuộc chủ yếu vào cách thức trích chọn đặc trưng. Như vậy bên cạnh việc chọn lựa thuật toán nhận dạng phù hợp thì việc tìm ra phương pháp trích chọn đặc trưng thích hợp sẽ nâng cao độ chính xác và giảm thời gian nhận dạng của toàn bộ hệ thống. Trong nhận dạng kí tự offline, các đặc trưng có thể bao gồm thông tin theo chiều ngang và chiều dọc, số lượng các lỗ rỗng bên trong, xác định số nét (stroke detection) và nhiều yếu tố khác. Các thông tin này dựa trên việc xử lý hình ảnh đầu vào. Không giống như trong nhận dạng chữ viết offline, trong nhận dạng chữ viết tay online mẫu đầu vào là đối tượng nét được lưu lại sau khi người dùng kết thúc viết. Vì vậy, các đặc trưng trong trường hợp này là số nét chữ - bắt đầu từ lúc viết đến lúc kết thúc - và dãy các điểm trên từng nét đó - mỗi nét được lưu lại dưới dạng một dãy các điểm theo thứ tự của người viết và mỗi điểm được lưu lại dưới dạng cặp tọa độ (x,y). Trong bài báo cáo này, chúng ta sẽ tìm hiểu về cách xây dựng mạng và kỹ thuật huấn luyện cũng như trích chọn đặc trưng cho từng dạng bài toán nhận dạng. 20
- Xem thêm -