Ý nghĩa thực tiễn của đề tài Nếu đề tài “Nghiên cứu mạng nơron nhân tạo và ứng dụng vào bài toán nhận dạng ảnh ký tự” được hoàn thành thì nó có thể được ứng dụng thực tiễn vào việc nhận
Trang 11
LỜI CẢM ƠN
Để hoàn thành đề tài này và có kiến thức như ngày hôm nay, đầu tiên
em xin gửi lời cảm ơn đến ban Giám hiệu cùng toàn thể thầy cô giáo khoa Công nghệ thông tin – Trường đại học sư phạm Hà Nội 2 đã tận tình giảng dạy, truyền đạt kiến thức cũng như những kinh nghiệm quý báu cho em trong suốt quá trình học tập và nghiên cứu tại trường
Em cũng chân thành cảm ơn cô Ths Lưu Thị Bích Hương đã tận tình hướng dẫn và quan tâm, động viên em trong quá trình thực hiện khóa luận
Em cũng bày tỏ lòng biết ơn sâu sắc đến những người thân trong gia đình, bạn bè đã động viên và tạo mọi điều kiện giúp em trong quá trình học tập cũng như trong cuộc sống
Mặc dù em đã cố gắng hoàn thành tốt khóa luận nhưng cũng không thể tránh khỏi những sai sót nhất định, rất mong được sự thông cảm và chia
sẻ cùng quý thầy cô và bạn bè
Em xin gửi lời chúc sức khỏe và thành đạt tới tất cả quý thầy cô cùng các bạn
Sinh viên thực hiện
ĐỖ THANH BA
Trang 22
LỜI CAM ĐOAN
Tên tôi là: ĐỖ THANH BA
Sinh viên lớp: K34-CNTT, Trường ĐH Sư Phạm Hà Nội 2
Tôi xin cam đoan:
1 Đề tài “Nghiên cứu mạng nơron nhân tạo và ứng dụng vào bài
toán nhận dạng ảnh ký tự” là kết quả nghiên cứu của riêng tôi, dưới sự
hướng dẫn của cô giáo Th.s LƯU THỊ BÍCH HƯƠNG và tham khảo một số
nguồn tài liệu trong nước và nước ngoài trên Internet
2 Khóa luận hoàn toàn không sao chép từ các tài liệu có sẵn nào
3 Kết quả nghiên cứu không trùng với các tác giả khác
Nếu sai, tôi xin hoàn toàn chịu trách nhiệm!
Hà Nội, ngày 21 tháng 4 năm 2012
Người cam đoan
ĐỖ THANH BA
Trang 33
Mục Lục
LỜI CẢM ƠN 1
LỜI CAM ĐOAN 2
MỞ ĐẦU 5
CHƯƠNG 1 TỔNG QUAN VỀ MẠNG NƠRON NHÂN TẠO 8
1.1 Giới thiệu mạng nơron 8
1.1.1 Lịch sử phát triển của mạng nơron 8
1.1.2 Nơron sinh học 9
1.1.3 Nơron nhân tạo 10
1.1.4 Các thành phần của một nơron nhân tạo 12
1.1.5 Mạng nơron nhân tạo 15
1.2 Đơn vị xử lý 16
1.3 Hàm xử lý 17
1.3.1 Hàm kết hợp 17
1.3.2 Hàm kích hoạt (hàm chuyển) 18
1.4 Đặc trưng của mạng nơron 21
1.4.1 Tính phi tuyến 21
1.4.2 Tính chất tương ứng đầu vào đầu ra 22
1.4.3 Tính chất thích nghi 22
1.4.4 Tính chất đưa ra lời giải có bằng chứng 22
1.4.5 Tính chất chấp nhận sai xót 23
1.4.6 Khả năng cài đặt VLSI (Very-large-scale-intergrated) 23
1.4.7 Tính chất đồng dạng trong phân tích và thiết kế 23
1.5 Một số vấn đề của mạng nơron 24
1.6 Ứng dụng của mạng nơron 25
CHƯƠNG 2 BIỂU DIỄN TRI THỨC BẰNG MẠNG NƠRON 27
2.1 Các kiến trúc mạng 27
Trang 44
2.1.1 Mạng một tầng 27
2.1.2 Mạng đa tầng 29
2.2 Các hình trạng của mạng 31
2.2.1 Mạng truyền thẳng 31
2.2.2 Mạng hồi quy 33
2.3 Xây dựng mạng nơron 34
2.4 Huấn luyện mạng nơron 35
2.4.1 Phương pháp học 35
2.4.2 Thuật toán học 36
2.5 Thu thập dữ liệu cho mạng nơron 42
2.6 Biểu diễn tri thức cho mạng nơron 44
CHƯƠNG 3 XÂY DỰNG ỨNG DỤNG 47
3.1 Phát biểu bài toán 47
3.2 Giải quyết bài toán 47
3.2.1 Xây dựng mạng nơron 47
3.2.2 Xử lý dữ liệu (phân tích ảnh) 49
3.2.3 Huấn luyện mạng nơron 54
3.2.4 Nhận dạng ảnh kí tự 58
3.3 Bảng mã ASCII 60
3.4 Thực nghiệm 61
3.4.1 Giao diện chương trình 61
3.4.2 Thực nghiệm quá trình tính giá trị một số tham số đầu vào 63
3.4.3 Thực nghiệm huấn luyện mạng 66
3.4.4 Thực nghiệm nhận dạng 68
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 72
TÀI LIỆU THAM KHẢO 73
Trang 5đã được hoạch định trước bởi các chuyên gia Bài toán càng phức tạp thì việc lập trình càng công phu Trong khi đó con người làm việc bằng cách học tập
và rèn luyện, khi làm việc con người có khả năng liên tưởng, kết nối sự việc này với sự việc khác, và quan trọng hơn hết, họ có thể sáng tạo
Do có khả năng liên tưởng, con người có thể dễ dàng làm nhiều điều mà việc lập trình cho máy tính đòi hỏi rất nhiều công sức 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 những 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 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 Chính vì vậy em đã chọn đề tài: “Nghiên cứu mạng nơron nhân tạo và ứng dụng vào bài toán nhận dạng ảnh ký tự” với mục đích chuyển đổi ảnh văn bản thành văn bản có thể sửa đổi được trong máy vi tính
1.2 Mục đích
Mục đích của đề tài nghiên cứu này là tạo ra một nguồn tài liệu cơ sở trong lĩnh vực nhận dạng ký tự, từ đó có cái nhìn tổng quan về phương thức
Trang 66
thực hiện hay các vấn đề gặp phải trong bài toán nhận dạng ký tự, kích thích
sự đam mê và khả năng nghiên cứu khoa học của sinh viên nhằm phát triển được nhiều ứng dụng thực tiễn hơn nữa liên quan tới ký tự chữ in như: Nhận dạng CMTND, hộ chiếu, biển số xe
2 Nhiệm vụ, yêu cầu
2.1 Nhiệm vụ
- Nghiên cứu về lý thuyết nhận dạng
- Nghiên cứu các khái niệm và thành phần cơ bản của mạng nơron
Tập trung nghiên cứu mạng perceptron nhiều lớp MLP (MultiLayer Perceptron) là một trong những loại mạng truyền thẳng điển hình, được sử dụng rộng rãi trong các hệ thống nhận dạng như nhận dạng ảnh ký tự, chữ viết tay, nhận dạng tiếng nói…
- Nghiên cứu ngôn ngữ c# để tiến hành cài đặt chương trình nhận dạng ảnh ký tự
2.2 Yêu cầu
- Xây dựng chương trình nhận dạng ảnh ký tự bằng mạng nơron nhân tạo
3 Phương pháp nghiên cứu
- Phương pháp nghiên cứu chủ yếu là tham khảo tài liệu, bài viết liên quan tới nhận dạng ký tự quang học
- Tìm nguồn tài liệu trên Internet, sách báo liên quan
- Phương pháp thực nghiệm
4 Đối tượng, phạm vi nghiên cứu
4.1 Đối tượng nghiên cứu
- Mạng nơron nhân tạo, trong đề tài này tập trung nghiên cứu quá trình xây dựng mạng, xử lý dữ liệu (phân tích ảnh), huấn luyện mạng nơron và nhận dạng mạng nơron
4.2 Phạm vi nghiên cứu
Trang 77
- Trong phạm vi đề tài này sẽ giới thiệu tổng quan về lý thuyết mạng nơron và ứng dụng mạng Perceptron nhiều lớp lan truyền ngược sai số để thiết kế chương trình nhận dạng ảnh ký tự
- Huấn luyện mạng nơron sử dụng phương pháp học: học có giám sát
5 Ý nghĩa thực tiễn của đề tài
Nếu đề tài “Nghiên cứu mạng nơron nhân tạo và ứng dụng vào bài toán nhận dạng ảnh ký tự” được hoàn thành thì nó có thể được ứng dụng thực tiễn vào việc nhận dạng các ký tự trong các file ảnh tài liệu được tạo ra từ các thiết bị thu nhận ảnh như máy scanner,máy ảnh
6 Cấu trúc của khóa luận
Ngoài mở đầu và kết luận, khóa luận bao gồm ba chương:
Chương 1: Tổng quan về mạng nơron nhân tạo
Chương 2: Biểu diễn tri thức bằng mạng nơron
Chương 3: Xây dựng ứng dụng
Trang 88
CHƯƠNG 1 TỔNG QUAN VỀ MẠNG NƠRON NHÂN TẠO 1.1 Giới thiệu mạng nơron
1.1.1 Lịch sử phát triển của mạng nơron
Mạng nơron nhân tạo được xây dựng từ những năm 1940 nhằm mô phỏng một số chức năng của bộ não người Dựa trên quan điểm cho rằng bộ não người là bộ điều khiển Mạng nơron nhân tạo được thiết kế tương tự như nơron sinh học sẽ có khả năng giải quyết hàng loạt các bài toán như tính toán tối ưu, điều khiển, công nghệ robot…
Quá trình nghiên cứu và phát triển nơron nhân tạo có thể chia thành 4 giai đoạn như sau:
- Giai đoạn 1: Có thể tính từ nghiên cứu của William (1890) về tâm lý học với sự liên kết các nơron thần kinh Năm 1940 Mc Culloch và Pitts đã cho biết nơron có thể mô hình hoá như thiết bị ngưỡng (Giới hạn) để thực hiện các phép tính logic và mô hình mạng nơron của Mc Culloch và Pitts cùng với giải thuật huấn luyện mạng của Hebb ra đời năm 1943
- Giai đoạn 2: Vào khoảng gần những năm 1960, một số mô hình nơron hoàn thiện hơn đã được đưa ra như: Mô hình Perceptron của Rosenblatt (1958), Adalile của Widrow (1962) Trong đó mô hình Perceptron rất được quan tâm vì nguyên lý đơn giản, nhưng nó cũng có hạn chế vì như Marvin Minsky và Seymour papert của MIT (Massachurehs Insritute of Technology) đã chứng minh nó không dùng được cho các hàm logic phức (1969) Còn Adaline là mô hình tuyến tính, tự chỉnh, được dùng rộng rãi trong điều khiển thích nghi, tách nhiễu và phát triển cho đến nay
- Giai đoạn 3: Vào khoảng đầu thập niên 80 Những đóng góp lớn cho mạng nơron trong giai đoạn này phải kể đến Grossberg, Kohonen, Rumelhart và Hopfield Trong đó đóng góp lớn của Hopfield gồm hai mạng
Trang 99
phản hồi: Mạng rời rạc năm 1982 và mạng liên tục năm 1984 Đặc biệt, ông
đã dự kiến nhiều khả năng tính toán lớn của mạng mà một nơron không có khả năng đó Cảm nhận của Hopfield đã được Rumelhart, Hinton và Williams
đề xuất thuật toán sai số truyền ngược nổi tiếng để huấn luyện mạng nơron nhiều lớp nhằm giải bài toán mà mạng khác không thực hiện được Nhiều ứng dụng mạnh mẽ của mạng nơron ra đời cùng với các mạng theo kiểu máy Boltzmann và mạng Neocognition của Fukushima
- Giai đoạn 4: Tính từ năm 1987 đến nay, hàng năm thế giới đều mở hội nghị toàn cầu chuyên ngành nơron IJCNN (International Joit Conferenceon Neural Networks) Rất nhiều công trình được nghiên cứu
để ứng dụng mạng nơron vào các lĩnh vực như: Kỹ thuật tính, điều khiển, bài toán tối ưu, y học, sinh học, thống kê, giao thông, hoá học Cho đến nay mạng nơron đã tìm và khẳng định được vị trí của mình trong rất nhiều ứng dụng khác nhau
1.1.2 Nơron sinh học
Hệ thần kinh gồm hai lớp tế bào: Nơron (tế bào thần kinh) và glia (tế bào glia) Nơron là thành phần cơ bản của hệ thần kinh, chúng có chức năng
xử lý thông tin Glia thực hiện chức năng hỗ trợ Vì vậy trước khi nghiên cứu
về nơron nhân tạo chúng ta sẽ trình bày khái quát về cấu tạo và hoạt động của nơron sinh học
Nơron sinh học có nhiều loại, chúng khác nhau về kích thước và khả năng thu phát tín hiệu Tuy nhiên chúng có cấu trúc và nguyên lý hoạt động chung như sau:
Mỗi nơron sinh học gồm có 3 thành phần: Thân nơron với nhân ở bên trong (soma), một đầu dây thần kinh ra (axon) và một hệ thống phân nhánh hình cây (Dendrite) để nhận các thông tin vào Trong thực tế có rất nhiều dây thần kinh vào và chúng bao phủ một diện tích rất lớn (0,25mm2) Đầu dây
Trang 1010
thần kinh ra đƣợc rẽ nhánh nhằm chuyển giao tín hiệu từ thân nơron tới nơron khác Các nhánh của đầu dây thần kinh đƣợc nối với các khớp thần kinh (synapse) Các khớp thần kinh này đƣợc nối với thần kinh vào của các nơron khác Các nơron có thể sửa đổi tín hiệu tại các khớp Hình ảnh đơn giản của một nơron thể hiện trong hình 1.1
Hình 1.1: Mô hình nơron sinh học
Hoạt động của nơron sinh học có thể đƣợc mô tả nhƣ sau:
Mỗi nơron nhận tín hiệu vào từ các tế bào thần kinh khác Chúng tích hợp các tín hiệu vào, khi tổng tín hiệu vƣợt quá một ngƣỡng nào đó chúng tạo tín hiệu ra và gửi tín hiệu này tới các nơron khác thông qua dây thần kinh
Các nơron liên kết với nhau thành mạng Mức độ bền vững của các liên kết này xác định một hệ số gọi là trọng số liên kết
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
Trang 1111
Hình 1.2: Mô hình một nơron nhân tạo
Một nơron được cầu tạo gồm các thành phần chính: liên kết nơron, bộ cộng, hàm kích hoạt
Liên kết nơron là một thành phần của mạng nơron nhận tạo để liên kết giữa các nơron, nó nối đầu ra của nơron lớp này với đầu vào của một nơron trong lớp khác Đặc trưng của thành phần liên kết là một trọng số mà mỗi tín hiệu đi qua đều được nhân với trọng số này Các trọng số liên kết chính là các
tham số tự do cơ bản của mạng nơron, có thể thay đổi được nhằm thích nghi
với môi trường xung quanh
Bộ cộng dùng để tính tổng các tín hiệu đầu vào của nơron, đã được
nhân với các trọng số liên kết tương ứng Phép toán được mô tả ở đây tạo nên một bộ hợp tuyến tính
Hàm kích hoạt hay còn gọi hàm kích hoạt phi tuyến, chuyển đổi một 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 mạng nơron Nó được xem như là một hàm giới hạn, nó giới hạn phạm vi biên độ cho phép của tín hiệu đầu ra trong một khoảng giá trị hữu hạn Mô hình nơron trong hình 2 còn bao
Trang 1212
gồm một hệ số điều chỉnh b tác động từ bên ngoài Hệ số điều chỉnh b có tác dụng tăng lên hoặc giảm đi đầu vào thực của hàm kích hoạt, tùy theo nó dương hay âm
1.1.4 Các thành phần của một nơron nhân tạo
Phần này mô tả một số thành phần cơ bản của một nơron nhân tạo Những thành phần này là giống nhau cho dù nơron đó dùng trong tầng vào, tầng ra hay là ở trong tầng ẩn
Thành phần 1 Các nhân tố trọng số: Một nơron thường nhận nhiều
đầu vào cùng lúc Mỗi đầu vào có trọng số liên quan của riêng nó, trọng số này giúp cho đầu vào có ảnh hưởng cần thiết lên hàm tổng của đơn vị xử lý (thành phần xử lý) Những trọng số này có chức năng giống như sức mạnh của các synapes khác nhau trong nơron sinh học Trong cả hai trường hợp (nhân tạo và sinh học), một số đầu vào quan trọng hơn những đầu vào khác do vậy chúng có ảnh hưởng lớn hơn tới thành phần xử lý để rồi chúng kết hợp lại
để tạo ra sự phản ứng của nơron (neural response)
Các trọng số là những hệ số thích nghi bên trong một mạng, chúng xác định cường độ (sức mạnh hay là sức ảnh hưởng) của tín hiệu vào lên nơron nhân tạo Những sức mạnh này có thể được điều chỉnh theo những tập đào tạo
đa dạng khác nhau và theo một kiến trúc mạng cụ thể hay là qua các luật học của nó
Thành phần 2 Hàm tổng: Bước đầu tiên trong hoạt động của một
thành phần xử lý là tính toán tổng có trọng số của tất cả các đầu vào Về mặt toán học, những đầu vào và các trọng số tương ứng là những véc tơ có thể được biểu diễn I = (i1, i2, , in) và W = (w1, w2, …, wn) Tín hiệu vào tổng là tích vô hướng của mỗi thành phần trong véc tơ I với thành phần tương ứng trong véc tơ W và cộng lại tất cả các tích Input1 = i1.w1, input2 = i2.w2 …
Trang 13Thành phần 3 Hàm chuyển đổi: Kết quả của hàm tổng, hầu như luôn
là tổng có trọng số, được chuyển đổi thành một đầu ra có ý nghĩa nhờ một quá trình xử lý có thuật toán gọi là hàm chuyển đổi Trong hàm chuyển đổi tổng
có thể được so sánh với một ngưỡng nào đó để quyết định đầu ra của mạng Nếu như tổng lớn hơn giá trị ngưỡng thì thành phần xử lý đưa ra đầu ra một tín hiệu Nếu như tổng của đầu vào và các tích có trọng số nhỏ hơn ngưỡng thì không có tín hiệu ở đầu ra Cả hai kiểu phản ứng đều quan trọng
Giá trị ngưỡng, còn gọi hàm chuyển đổi, thường là phi tuyến Các hàm tuyến tính bị giới hạn vì đầu ra chỉ đơn giản là tỷ lệ của đầu vào Hàm chuyển đổi có thể chỉ đơn giản là cho biết hàm tổng là dương hay âm Mạng có thể cho ra đầu ra 0 và 1, 1 và -1, hay con số kết hợp nào đó
Thành phần 4 Hàm ra: Mỗi thành phần xử lý cho phép một tín hiệu
đầu ra mà đầu ra này có thể đi tới hàng trăm nơron khác Điều này giống với nơron sinh học trong đó có rất nhiều đầu vào và chỉ có một hành động ra Thường thì đầu ra tương đương với kết quả của hàm chuyển đổi Tuy nhiên, một số kiến trúc mạng chỉnh sửa kết quả của hàm chuyển đổi để kết hợp với những thành phần xử lý lân cận Các nơron cho phép cạnh tranh với những nơron khác, khi này chúng hạn chế các thành phần xử lý khác trừ các thành phần xử lý có sức mạnh rất lớn Sự cạnh tranh có thể xảy ra ở một hay là cả hai mức Đầu tiên sự cạnh tranh quyết định xem nơron nhân tạo nào sẽ là tích
Trang 1414
cực, hay là cung cấp một đầu ra Tiếp theo các đầu ra cạnh tranh giúp xác định thành phần xử lý nào sẽ tham gia và quá trình học hay là quá trình thích nghi
Thành phần 5 Giá trị truyền ngược và hàm lỗi: Trong hầu hết các
mạng học sự khác biệt giữa đầu ra hiện tại và đầu ra mong muốn được tính toán, sự khác biệt có thể được gọi là lỗi thô Sau khi được tính toán, lỗi thô đó được chuyển đổi bởi hàm lỗi để làm cho phù hợp với một kiến trúc mạng cụ thể nào đó Các kiến trúc mạng cơ sở nhất sử dụng lỗi này một cách trực tiếp nhưng một số khác bình phương lỗi đó trong khi vẫn giữ lại dấu của nó, một
số tính bậc ba của lỗi, một số khác lại hiệu chỉnh lỗi thô đó để đạt được mục đích cụ thể nào đó Lỗi của nơron nhân tạo thường được truyền vào hàm học của một thành phần xử lý khác Số hạng lỗi này đôi khi còn được gọi là lỗi hiện thời
Lỗi hiện thời thường được truyền ngược về một tầng trước đó Nhưng giá trị truyền ngược này có thể là lỗi hiện thời hay là lỗi hiện thời đã được điều chỉnh theo một cách nào đó (thường sử dụng đạo hàm của hàm chuyển đổi), hay là một đầu ra mong muốn nào đó, điều này phụ thuộc vào kiểu mạng nơron được sử dụng Thường thì giá trị truyền ngược này sau khi được điều chỉnh bởi hàm học được nhân với mỗi trọng số kết nối vào để thay đổi chúng trước khi bước vào chu kỳ học mới
Thành phần 6 Hàm học: Mục đích của hàm học là để thay đổi giá trị
của biến trọng số kết nối ở các đầu vào của mỗi thành phần xử lý theo một thuật toán nào đó Quá trình thay đổi các trọng số của các kết nối đầu nào nhằm thu được một số kết quả mong muốn cũng có thể được gọi là hàm thích nghi, hay còn gọi là chế độ học Có hai kiểu học chính là học có giám sát và học không có giám sát Học có giám sát đòi hỏi có một “giáo viên” Người
“giáo viên” này có thể là một tập dữ liệu đào tạo hay là một “người quan sát”,
“người quan sát” này đánh giá kết quả hoạt động của mạng Trong khi không
Trang 1515
có “giáo viên” bên ngoài nào, hệ thống sẽ phải tự sắp xếp nhờ một tiêu chuẩn bên trong được thiết kế sẵn trong mạng
1.1.5 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 người, hoạt động song song và được nối với nhau bởi các liên kết nơron Mỗi liên kết kèm theo một trọng số nào
đó, đặc trưng cho tính kích hoạt hoặc ức chế giữa các nơron
Có thể xem các trọng số là phương tiện để lưu trữ thông tin dài hạn trong mạng nơron và nhiệm vụ của quá trình huấn luyện của mạng là cập nhật các trọng số khi có thêm thông tin về mẫu học Hay nói một cách khác, các trọng
số đều được điều chỉnh sao cho dáng điệu vào ra của mạng sẽ mô phỏng hoàn toàn phù hợp với môi trường đang xem xét
Mô hình mạng nơron được mô tả trong hình 1.3
Hình 1.3: Sơ đồ đơn giản về một mạng nơron nhân tạo
Mô hình mạng nơron ở trên gồm 3 lớp: lớp nhập (input), lớp ẩn (hidden)
và lớp xuất (output) Mỗi nút trong lớp nhập nhận giá trị của một biến độc lập
và chuyển vào mạng
Trang 1616
Dữ liệu từ tất cả các nút trong lớp nhập được tích hợp – ta gọi là tổng trọng số – và chuyển kết quả cho các nút trong lớp ẩn Gọi là “ẩn” vì các nút trong lớp này chỉ liên lạc với các nút trong lớp nhập và lớp xuất, và chỉ có người thiết 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 hóa 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
aj : đầu vào mạng (net-input)
zj : đầu ra của nơron
g(x): hàm chuyển (hàm kích hoạt)
Trong một mạng nơron có ba kiểu đơn vị:
1) Các đơn vị đầu vào (Input units), nhận tín hiệu từ bên ngoài;
Trang 1717
2) Các đơn vị đầu ra (Output units), gửi dữ liệu ra bên ngoài;
3) Các đơn vị ẩn (Hidden units), tín hiệu vào (input) và ra (output) của nó nằm trong mạng
Mỗi đơn vị j có thể có một hoặc nhiều đầu vào: x0, x1, x2, … xn, nhưng chỉ có một đầu ra zj
Một đầu vào tới một đơn vị có thể là dữ liệu từ bên ngoài mạng, hoặc đầu ra của một đơn vị khác, hoặc là đầu ra của chính nó
1.3 Hàm xử lý
1.3.1 Hàm kết hợp
Mỗi một đơn vị trong một mạng kết hợp các giá trị đưa vào nó thông
qua các liên kết với các đơn vị khác, sinh ra một giá trị gọi là net input Hàm
thực hiện nhiệm vụ này gọi là hàm kết hợp, được định nghĩa bởi một luật lan truyền cụ thể Trong phần lớn các mạng nơron, giả sử mỗi một đơn vị cung cấp một bộ cộng như là đầu vào cho đơn vị mà nó có liên kết Tổng đầu vào
đơn vị j đơn giản chỉ là tổng trọng số của các đầu ra riêng lẻ từ các đơn vị
kết nối cộng thêm ngưỡng hay độ lệch (bias) j
Trường hợp wji > 0, nơron được coi là đang ở trong trạng thái kích thích Tương tự, nếu như wji < 0, nơron ở trạng thái kiềm chế Chúng ta gọi các đơn vị với luật lan truyền như trên là các sigma units Trong một vài trường hợp người ta cũng có thể sử dụng các luật lan truyền phức tạp hơn Một trong số đó là luật sigma-pi, có dạng như sau:
Trang 18Phần lớn các đơn vị trong mạng nơron chuyển net input bằng cách
sử dụng một hàm vô hướng (scalar-to-scalar function) gọi là hàm kích hoạt, kết quả của hàm này là một giá trị gọi là mức độ kích hoạt của đơn vị (unit's activation) Loại trừ khả năng đơn vị đó thuộc lớp ra, giá trị kích hoạt được đưa vào một hay nhiều đơn vị khác Các hàm kích hoạt thường bị ép vào một khoảng giá trị xác định, do đó thường được gọi là các hàm bẹp (squashing) Các hàm kích hoạt hay được sử dụng là:
1) Hàm đồng nhất (Linear function, Identity function )
g(x) = x Nếu coi các đầu vào là một đơn vị thì chúng sẽ sử dụng hàm này Đôi khi một hằng số được nhân với net-input để tạo ra một hàm đồng nhất
Trang 1919
Hàm này cũng đƣợc biết đến với tên "Hàm ngƣỡng" (Threshold function hay Heaviside function) Đầu ra của hàm này đƣợc giới hạn vào một trong hai giá trị:
Dạng hàm này đƣợc sử dụng trong các mạng chỉ có một lớp Trong hình
vẽ sau, θ đƣợc chọn bằng 1
Hình 1.6: Hàm bước nhị phân (Binary step function)
3) Hàm sigmoid (Sigmoid function (logsig))
Hàm này đặc biệt thuận lợi khi sử dụng cho các mạng đƣợc huấn
luyện (trained) bởi thuật toán Lan truyền ngược (back-propagation), bởi vì
nó dễ lấy đạo hàm, do đó có thể giảm đáng kể tính toán trong quá trình
1 g(x)
x
Trang 2020
huấn luyện Hàm này được ứng dụng cho các chương trình ứng dụng mà các đầu ra mong muốn rơi vào khoảng [0,1]
Hình 1.7: Hàm Sigmoid
4) Hàm sigmoid lưỡng cực (Bipolar sigmoid function (tansig))
Hàm này có các thuộc tính tương tự hàm sigmoid Nó làm việc tốt đối với các ứng dụng có đầu ra yêu cầu trong khoảng [-1,1]
Hình 1.8: Hàm sigmoid lưỡng cực
g(x)
x -6
x
Trang 2121
Các hàm chuyển của các đơn vị ẩn (hidden units) là cần thiết để biểu diễn sự phi tuyến vào trong mạng Lý do là hợp thành của các hàm đồng nhất là một hàm đồng nhất Mặc dù vậy nhưng nó mang tính chất phi tuyến (nghĩa là, khả năng biểu diễn các hàm phi tuyến) làm cho các mạng nhiều tầng có khả năng rất tốt trong biểu diễn các ánh xạ phi tuyến Tuy nhiên, đối với luật học lan truyền ngược, hàm phải khả vi (differentiable) và sẽ có ích nếu như hàm được gắn trong một khoảng nào đó Do vậy, hàm sigmoid
là lựa chọn thông dụng nhất
Đối với các đơn vị đầu ra (output units), các hàm chuyển cần được chọn sao cho phù hợp với sự phân phối của các giá trị đích mong muốn Chúng ta đã thấy rằng đối với các giá trị ra trong khoảng [0,1], hàm sigmoid
là có ích; đối với các giá trị đích mong muốn là liên tục trong khoảng đó thì hàm này cũng vẫn có ích, nó có thể cho ta các giá trị ra hay giá trị đích được căn trong một khoảng của hàm kích hoạt đầu ra Nhưng nếu các giá trị đích không được biết trước khoảng xác định thì hàm hay được sử dụng nhất là hàm đồng nhất 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ũ
1.4 Đặc trưng của mạng nơron
1.4.1 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, cấu thành bởi sự kết nối các nơron phi tuyến thì tự nó sẽ có tính phi tuyến Hơn nữa, điều đặc biệt là tính phi tuyến này được phân tán trên toàn mạng Tính phi tuyến là một thuộc tính rất quan trọng, nhất là khi các cơ chế vật lý sinh ra các tín hiệu đầu vào (ví dụ tín hiệu tiếng nói) vốn là phi tuyến
Trang 2222
1.4.2 Tính chất tương ứng đầu vào đầu ra
Mặc dù khái niệm “học” hay “huấn luyện” chưa được bàn đến nhưng để hiểu được mối quan hệ đầu vào-đầu ra của mạng nơron, chúng ta sẽ đề cập sơ qua về khái niệm này Một mô hình học phổ biến được gọi là học với một người dạy hay học có giám sát liên quan đến việc thay đổi các trọng số liên kết của mạng nơron bằng việc áp dụng một tập hợp các mẫu tích luỹ hay các
ví dụ tích luỹ Mỗi một ví dụ bao gồm một tín hiệu đầu vào và một đầu ra mong muốn tương ứng Mạng nơron nhận một ví dụ lấy một cách ngẫu nhiên
từ tập hợp nói trên tại đầu vào của nó, và các trọng số liên kết của mạng được biến đổi sao cho có thể cực tiểu hoá sự sai khác giữa đầu ra mong muốn và đầu ra thực sự của mạng theo một tiêu chuẩn thống kê thích hợp Sự tích luỹ của mạng được lặp lại với nhiều ví dụ trong tập hợp cho tới khi mạng đạt tới một trạng thái ổn định mà ở đó không có một sự thay đổi đáng kể nào của các trọng số liên kết Các ví dụ tích luỹ được áp dụng trước có thể được áp dụng lại trong thời gian của phiên tích luỹ nhưng theo một thứ tự khác Như vậy mạng nơron học từ các ví dụ bằng cách xây dựng nên một tương ứng đầu vào-đầu ra cho vấn đề cần giải quyết
1.4.3 Tính chất thích nghi
Các mạng nơron có một khả năng mặc định là biến đổi các trọng số liên kết tuỳ theo sự thay đổi của môi trường xung quanh Đặc biệt, một mạng nơron đã được tích luỹ để hoạt động trong một môi trường xác định có thể được tích luỹ lại một cách dễ dàng khi có những thay đổi nhỏ của các điều kiện môi trường hoạt động
1.4.4 Tính chất đưa ra lời giải có bằng chứng
Trong ngữ cảnh phân loại mẫu, một mạng nơron có thể được thiết kế để đưa ra thông tin không chỉ về mẫu được phân loại, mà còn về sự tin cậy của
Trang 23sẽ suy giảm về chất lượng
1.4.6 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 khả năng phù hợp cho việc cài đặt sử dụng kỹ thuật Very-large-scale-intergrated (VLSI) Kỹ thuật này cho phép xây dựng những mạch cứng tính toán song song quy mô lớn Chính vì vậy mà ưu điểm nổi bật của VLSI
là mang lại những phương tiện hữu hiệu để có thể xử lý được những hành vi
có độ phức tạp cao
1.4.7 Tính chất đồng dạng trong phân tích và thiết kế
Về cơ bản, các mạng nơron có tính chất chung như là các bộ xử lý thông tin Chúng ta nêu ra điều này với cùng ý nghĩa cho tất cả các lĩnh vực có liên quan tới việc ứng dụng mạng nơron Đặc tính này thể hiện ở một số điểm như sau:
Các nơron, dưới dạng này hoặc dạng khác, biểu diễn một thành phần chung cho tất cả các mạng nơron
Tính thống nhất này đem lại khả năng chia sẻ các lý thuyết và các thuật toán học trong nhiều ứng dụng khác nhau của mạng nơron
Trang 24Lựa chọn giải thuật học: ở đây có nhiều sự cân bằng giữa các giải thuật học Gần như bất kỳ giải thuật nào sẽ làm tốt với độ chính xác của các siêu tham số cho việc huấn luyện trên tập dữ liệu cố định cho trước Tuy nhiên sự lựa chọn và điều hướng của giải thuật cho việc huấn luyện trên các tập dữ liệu này cần thực hiện nhiều thí nghiệm, đó là điều rất quan trọng Trên một mô hình nếu lựa chọn giải thuật và hàm đánh giá phù hợp thì mạng nơron có thể cho kết quả rất tốt
Trọng số của các cung nối và ngưỡng thay đổi thường xuyên Đã có nhiều nghiên cứu về vấn đề này và cũng đã có một số kết quả:
Nếu mạng gây ra lỗi, thì có thể xác định nơron nào gây ra lỗi thì phải điều chỉnh nơron đó
Với cách tiếp cận này, mạng phải biết rằng nó gây ra lỗi.Trong thực tế, lỗi chỉ được biết sau một thời gian dài
Chức năng của một nơron không quá đơn giản như mô hình Bởi vì mạng nơron hoạt động như một hộp đen
Một số hướng dẫn khi sử dụng mạng nơron
Xây dựng mạng khởi tạo (dùng một lớp ẩn có số nơron = ½ tổng số nơron của lớp nhập và lớp xuất)
Trang 2525
Huấn luyện mạng dùng các giải thuật huấn luyện 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ộ
Nếu máy “Không thuộc bài” thì thêm một vài nơron cho tầng ẩn
Ngược lại nếu máy “Học vẹt” thì bớt một vài nơron ra khỏi tầng ẩn Khi đã tìm được một kiến trúc mạng tương đối tốt lấy mẫu lại tập dữ liệu và huấn luyện lại để tìm các mạng mới
1.6 Ứng dụng của mạng nơron
Kể từ khi ra đời và phát triển mạng nơron đã được ứng dụng trong rất nhiều lĩnh vực Do vậy, liệt kê được tất cả các ứng dụng của mạng nơron là không thực tế Tuy nhiên, ta có thể đưa ra một số ứng dụng điển hình của mạng nơron như sau:
Xử lý ảnh, nhìn máy: Gồm trùng khớp ảnh, tiền xử lý ảnh, phân đoạn và phân tích ảnh, nén ảnh,
Xử lý tín hiệu: Phân tích tín hiệu địa chấn và hình thái học
Nhận dạng mẫu: Gồm việc tách các nét đặc biệt của mẫu, phân loại và phân tích tín hiệu của rada, nhận dạng và hiểu tiếng nói, nhận dạng vân tay, ký tự, chữ viết,
Y học: Phân tích và hiểu tín hiệu điện tâm đồ, chuẩn đoán bệnh, xử
Trí tuệ nhân tạo: Gồm các hệ chuyên gia,
Dự đoán: Dự đoán các trạng thái của hệ thống,
Quy hoạch, kiểm tra và tìm kiếm: Gồm cài đặt song song các bài toán thoả mãn ràng buộc, tìm nghiệm bài toán người du lịch, điều khiển và
Trang 2626
robot
Mạng nơron dựa trên việc mô phỏng cấp thấp hệ thống nơron sinh học Trong tương lai với sự phát triển mô phỏng nơron sinh học, chúng ta có thể có loại máy tính thông minh thật sự
Trang 2727
CHƯƠNG 2 BIỂU DIỄN TRI THỨC BẰNG MẠNG NƠRON 2.1 Các kiến trúc mạng
chuyển và vector đầu ra a
Mỗi phần tử của vector đầu vào p được nối với từng nơron thông qua
ma trận trọng số W Mỗi nơron có một ngưỡng bi, một bộ cộng, một hàm
chuyển f và một đầu ra ai Cùng với nhau, các đầu ra tạo thành một vector
đầu ra a Thông thường thì số lượng đầu vào của tầng khác với số lượng
nơron (R#S)
Tất cả các nơron trong cùng một tầng không có hàm chuyển giống nhau Có thể định nghĩa các nơron trong một tầng có hàm chuyển khác nhau
Trang 28R R
w w
w
w w
w
w w
w
, 2
, 1 ,
, 2 2
, 2 1 , 2
, 1 2
, 1 1 , 1
Các chỉ số hàng của các phần tử trong ma trận W chỉ ra nơron đích đã
kết hợp với trọng số đó, trong khi chỉ số cột cho biết đầu vào cho trọng số đó
Vì vậy, các chỉ số trong w32 nói rằng đây là trọng số của đầu vào thứ 2 nối với nơron thứ 3
Hình 2.2: Mạng một tầng vẽ rút gọn
Trong hình trên, những kí hiệu ở dưới các biến cho biết các thông số về
tầng này, p là một vector có độ dài R, W là ma trận SR, a và b là những
vector có độ dài S Như đã định nghĩa trước rồi, một tầng bao gồm ma trận
trọng số, bộ cộng và các phép toán nhân, vector ngưỡng b, hàm chuyển và
vector đầu ra
Trang 2929
2.1.2 Mạng đa tầng
Mỗi tầng có ma trận trọng số W của riêng nó, vector b, vector đầu vào
n, và một vector đầu ra Khi đó cần phải khai báo thêm vài kí hiệu để phân
biệt giữa các tầng này Ta sẽ sử dụng cách viết lên trên đầu để nhận biết kí hiệu đó thuộc tầng nào Chính xác là chúng ta gắn thêm chỉ số của tầng trên đầu mỗi biến Nhƣ vậy, ma trận trọng số của tầng thứ 2 đƣợc viết nhƣ này
w2 Cách kí hiệu này đƣợc dùng trong mạng nơron 3 tầng nhƣ hình 2.3
Hình 2.3: Cấu trúc mạng nơron 3 lớp
Nhƣ đã thấy, có R đầu vào, S1 nơron ở tầng thứ nhất, S2nơron ở tầng thứ hai, S3 nơron ở tầng thứ ba, v.v Nhƣ đã chú ý, những tầng khác nhau có thể có số lƣợng nơron khác nhau
Đầu ra của các tầng 1 và 2 là đầu vào của tầng 2 và tầng 3 Vì vậy tầng
2 có thể đƣợc xem nhƣ mạng nơron một tầng với đầu vào R= S1, nơron S=
S2, và ma trận trọng số W = S1 S2 Đầu vào của tầng 2 là a1, và đầu ra là
a2
Đầu ra của một tầng chính là đầu ra của mạng thì ta gọi đó là tầng ra Các tầng còn lại gọi là tầng ẩn Mạng nơron nhƣ ở trên có một tầng ra (tầng
3) và hai tầng ẩn (tầng 1 và tầng 2)
Trang 30Nếu có bốn yếu tố bên ngoài được dùng như các kích thích đầu vào, thì mạng của ta sẽ có bốn đầu vào Tương tự như vậy nếu mạng có bảy đầu ra thì phải có bảy nơron ở tầng ra Cuối cùng, các đặc điểm mong muốn có được ở tín hiệu đầu ra cũng giúp ta chọn lựa hàm chuyển hợp lý hơn cho tầng ra Giả
sử một đầu ra là một trong hai giá trị -1 hoặc 1, thì khi đó hàm chuyển giới hạn ngặt đối xứng sẽ được lựa chọn Như vậy, kiến trúc mạng một tầng hầu như được xác định hoàn toàn bởi các yếu tố kỹ thuật, bao gồm số đầu vào, đầu ra, và các thuộc tính của tín hiệu ra
Khi mạng có nhiều hơn hai tầng Các yếu tố bên ngoài không cho biết
số lượng các nơron yêu cầu bao nhiêu ở các tầng ẩn Thực tế, có một vài vấn
đề cho việc dự đoán số lượng nơron tối ưu ở tầng ẩn Vấn đề này là một lĩnh vực nghiên cứu
Trang 3131
Về số lượng tầng trong mạng thì hầu hết những mạng nơron thực tế chỉ
có hai hay ba tầng Bốn tầng hoặc nhiều hơn rất ít khi được sử dụng
Một mạng có thể chọn lựa việc các nơron có hay không có các giá trị ngưỡng Giá trị ngưỡng là một biến phụ cho mạng Lưu ý, có một nơron không có giá trị ngưỡng khi đó đầu vào của hàm chuyển (net input) sẽ luôn
luôn là 0 khi đầu vào của mạng p là 0
Đây là điều không mong muốn và chúng ta có thể loại bỏ vấn đề này bằng việc sử dụng giá trị ngưỡng Ảnh hưởng của giá trị ngưỡng đến kết quả như thế nào chúng ta sẽ phải nghiên cứu sâu hơn Giá trị ngưỡng có thể bỏ đi, trong một số trường hợp điều này được làm đơn giản là để giảm số lượng tham số của mạng Chỉ với hai biến, chúng ta có thể vẽ được đồ thị cho hệ mặt phẳng hai chiều Ba hay nhiều biến hơn sẽ khó hiển thị
2.2 Các hình trạng của mạng
Hình trạng của mạng được định nghĩa bởi: số lớp, số đơn vị trên mỗi lớp, và sự liên kết giữa các lớp như thế nào Các mạng về tổng thể được chia thành hai loại dựa trên cách thức liên kết các đơn vị: Mạng nơron nhân tạo có một số mô hình thông dụng sau:
2.2.1 Mạng truyền thẳng
- Mạng truyền thẳng một lớp: Là mô hình liên kết cơ bản và đơn giản nhất Các nơron tổ chức lại với nhau tạo thành một lớp, tín hiệu được truyền theo một hướng nhất định nào đó Các đầu vào được nối với các nơron theo trọng số khác nhau, sau quá trình xử lý cho ra một chuỗi các tín hiệu ra Nếu mạng là mô hình LTU thì nó được gọi là mạng Perception, còn mạng nơron theo mô hình LGU thì được gọi là Adalin
Trang 32ra gọi là lớp đầu ra (output layer), các lớp ở giữa lớp vào và lớp ra gọi là lớp ẩn (hidden layers) Cấu trúc của mạng nơron truyền thẳng nhiều lớp đƣợc mô tả trong hình 2.3
Hình 2.6: Mạng nơron truyền thẳng nhiều lớp
Trang 3333
2.2.2 Mạng hồi quy
Bên cạnh mạng truyền thẳng còn có những dạng mạng khác như các mạng hồi quy Các mạng hồi quy thường có các liên kết ngược từ các lớp phía sau đến các lớp phía trước hay giữa các nơron trong bản thân một lớp
Mạng hồi quy một lớp có nối ngược
Hình 2.7: Mạng hồi quy một lớp có nối ngược
Mạng hồi quy nhiều lớp có nối ngược
Trang 3434
2.3 Xây dựng mạng nơron
Về cơ bản ta có thể hiểu mạng nơron là một đồ thị có hướng như hình 2.1 Trong đó các đỉnh của đồ thị là các nơron và các cạnh của đồ thị là các liên kết giữa các nơron
Hình 2.9: Sơ đồ một đồ thị có hướng đơn giản
Vì vậy để xây dựng một mạng nơron ta xây dựng một đồ thị có hướng:
số đỉnh của đồ thị bằng số nơron trong mạng, giá trị của các cạnh chính là trọng số liên kết nơron
Ví dụ xây dựng một mạng nơron đơn giản:
Đầu vào:
Mạng nơron có số lớp (với số lớp>1)
Mỗi lớp có số nơron trong một lớp (số nơron >=1)
Trọng số w liên kiết nơron ngẫu nhiên trong khoảng (-a,a)
Đầu ra: Mạng nơron nhân tạo
Kiểu dữ liệu: chọn lưu dữ kiểu mảng :
Trang 3535
Thuật toán
Bước 1: Chọn lớp i=2 là lớp bắt đầu
Bước 2: Chọn lớp i là lớp hiện thời
Bước 3: Tại lớp đang xét i, xét nơron thứ j
Bước 4: Thực hiện khởi tạo ngẫu nhiên trọng số kết nối với nơron k của lớp i-1 trong khoảng (-a,a), w(i,j,k)=random(-a,a)
Bước 5: Nếu k <= số nơron [i-1] quay lại “Bước 4”, ngược lại thực hiện
“Bước 6”
Bước 6: Nếu j<= số nơron [i] quay lại “Bước 3”, ngược lại thực hiện
“Bước 7”
Bước 7: Nếu i<=số lớp quay lại “Bước 3” ngược lại kết thúc
2.4 Huấn luyện mạng nơron
2.4.1 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 học, khả năng tái tạo các hình ảnh và dữ liệu khi đã học Trong trạng thái học thông tin được lan truyền theo hai chiều nhiều lần để học các trọng số Có 3 kiểu học chính, mỗi kiểu học tương ứng với một nhiệm vụ học trừu tượng Đó là học có giám sát (có mẫu), học không 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ụ
2.4.1.1 Học có giám sát
Một thành phần không thể thiếu của phương pháp này là sự có mặt của một người thầy (ở bên ngoài hệ thống) Người thầy này có kiến thức về môi trường thể hiện qua một tập hợp các cặp đầu vào - đầu ra đã được biết trước
Hệ thống học (ở đây là mạng nơron) sẽ phải tìm cách thay đổi các tham số bên trong của mình (các trọng số và các ngưỡng) để tạo nên một ánh xạ có
Trang 36hóa thống kê, nén, lọc, phân cụm
2.4.1.3 Học tăng cường
Dữ liệu x thường không được tạo trước mà được tạo ra trong quá trình một agent tương tác với môi trường Tại mỗi thời điểm t, agent thực hiện hành động yt và môi trường tạo một quan sát xt với 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à 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 hoạt độ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ơron nhân tạo thường được dùng trong học tăng cường như 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
d
i
i i
t w
v
t w
v output
1
1,
1
,1
(1.1)