Mạng Nơron nhân tạo được ứng dụng rộng rãi trong nhiều lĩnh vực và đã thu được nhiều kết quả khả quan như: nhận dạng mẫu, phân loại mẫu, nhận dạng tiếng nói, … Với khả năng xấp xỉ với độ
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG
- -
CAO THỊ KIM NGÂN
LỰA CHỌN TỐC ĐỘ HUẤN LUYỆN HỢP LÝ
KHI SỬ DỤNG THUẬT TOÁN LAN TRUYỀN NGƯỢC
GIẢI BÀI TOÁN DỰ BÁO
LUẬN VĂN THẠC SỸ KHOA HỌC MÁY TÍNH
Thái Nguyên – 2015
Trang 2LỜI CAM ĐOAN
Em xin cam đoan: Luận văn thạc sĩ Khoa học máy tính “Lựa chọn tốc độ huấn luyện hợp lý khi sử dụng thuật toán lan truyền ngược giải bài toán dự báo” này là công trình nghiên cứu thực sự của cá nhân em, được thực hiện trên cơ sở nghiên cứu lý thuyết và dưới sự hướng dẫn khoa học của Phó giáo sư, Tiến sỹ Nguyễn Tân Ân
Em xin chịu trách nhiệm về lời cam đoan này
Ngày 02 tháng 10 năm 2015
Tác giả
Cao Thị Kim Ngân
Trang 3Đặc biệt, em xin bày tỏ lòng biết ơn sâu sắc đến PGS TS Nguyễn Tân
Ân, người đã dành nhiều thời gian, tâm huyết hướng dẫn em trong suốt quá trình nghiên cứu và hoàn thành luận văn
Em cũng xin cảm ơn các cán bộ, giảng viên đồng nghiệp ở Trường Đại học Hùng Vương đã tạo điều kiện về thời gian để em có thể học tập và hoàn thành luận văn
Mặc dù đã cố gắng hết sức hoàn thiện luận văn, nhưng chắc chắn vẫn còn nhiều thiếu sót, rất mong sự có góp ý của các thầy cô giáo và các bạn để luận văn này được hoàn thiện hơn
Xin trân trọng cảm ơn
Ngày 02 tháng 10 năm 2015
Tác giả
Cao Thị Kim Ngân
Trang 4MỤC LỤC
LỜI CAM ĐOAN i
LỜI CẢM ƠN ii
MỤC LỤC iii
DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT v
DANH MỤC HÌNH VẼ vi
DANH MỤC BẢNG BIỂU viii
MỞ ĐẦU 1
CHƯƠNG I: MẠNG NƠRON NHÂN TẠO 4
1.1 Giới thiệu về mạng nơron nhân tạo 4
1.1.1 Khái niệm cơ bản 4
1.1.2 Quá trình phát triển mạng nơron 4
1.1.3 Mô hình mạng nơron 7
1.2 Các phương pháp học 14
1.2.1 Học có giám sát 14
1.2.2 Học không có giám sát 16
1.2.3 Học tăng cường 17
1.3 Kết luận chương 1 17
CHƯƠNG II: MẠNG NƠRON TRUYỀN THẲNG VÀ THUẬT TOÁN LAN TRUYỀN NGƯỢC 18
2.1 Cấu trúc mạng nơron truyền thẳng 18
2.1.1 Mạng nơron truyền thẳng một lớp 18
2.1.2 Mạng nơron truyền thẳng nhiều lớp 22
2.2 Khả năng thể hiện của mạng 23
2.3 Thuật toán lan truyền ngược (Back – Propagation) 24
2.3.1 Mô tả thuật toán 28
2.3.2 Một số biến thể của thuật toán lan truyền ngược 31
2.3.3 Nhận xét 33
2.4 Kết luận chương 2 35
Trang 5CHƯƠNG III: CHƯƠNG TRÌNH THỬ NGHIỆM THUẬT TOÁN LAN TRUYỀN NGƯỢC TRONG BÀI TOÁN DỰ BÁO THỜI TIẾT
36
3.1 Giới thiệu về bài toán dự báo 36
3.1.1 Giới thiệu 36
3.1.2 Các phương pháp giải bài toán dự báo thời tiết phổ biến 38
3.1.3 Quy trình thực hiện dự báo 39
3.2 Phân tích và đánh giá các trọng số của bài toán 42
3.2.1 Phân tích bài toán 42
3.2.2 Đánh giá các trong số của bài toán 46
3.3 Chương trình thử nghiệm 50
3.3.1 Mô hình mạng nơron của bài toán 50
3.3.2 Xây dựng chương trình dự báo thời tiết 51
3.4 Kết quả thử nghiệm 59
3.4.1 Thử nghiệm 1 59
3.4.2 Thử nghiệm 2 60
3.4.3 Thử nghiệm 3 62
3.4.4 Thử nghiệm 4 63
3.5 Kết luận chương 3 64
KẾT LUẬN VÀ HƯỚNG NGHIÊN CỨU TIẾP THEO 65
TÀI LIỆU THAM KHẢO 67
PHỤ LỤC 1
Trang 6DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT
ANN Artificial Neural Network
Trang 7DANH MỤC HÌNH VẼ
Hình 1.1 Cấu trúc của một nơron sinh học điển hình 8
Hình 1.2 Nơron nhân tạo 9
Hình 1.3 Hàm đồng nhất (Indentity function) 11
Hình 1.4 Hàm bước nhị phân (Binary step function) 12
Hình 1.5 Hàm Sigmoid 12
Hình 1.6 Hàm sigmoid lưỡng cực 13
Hình 1.7 Một cách phân loại mạng nơron 14
Hình 1.8 Sơ đồ học tham số có giám sát1 16
Hình 1.9 Sơ đồ học không giám sát 16
Hình 1.10 Sơ đồ học tăng cường 17
Hình 2.1 Mạng truyền thẳng 18
Hình 2.2 Perceptron 19
Hình 2.3 Lớp vào và lớp ra của mạng noron 19
Hình 2.4 Mạng MLP tổng quát 22
Hình 2.5 Sơ đồ thuật toán lan truyền ngược 30
Hình 3.1 Quy trình dự báo 40
Hình 3.2 Kiến trúc hệ dự báo thời tiết 42
Hình 3.3 Đồ thị biểu diễn mức độ mưa 43
Hình 3.4 Đồ thị biểu diễn mức độ mây 44
Hình 3.5 Minh họa vấn đề cực tiểu địa phương 47
Trang 8Hình 3.6 Mô hình mạng nơron dùng trong bài toán dự báo thời tiết 50
Hình 3.7 Giao diện chương trình dự báo thời tiết 52
Hình 3.8 Giao diện thiết lập mạng noron 52
Hình 3.9 Giao diện huấn luyện mạng nơron 54
Hình 3.10 Giao diện dự báo thời tiết 55
Hình 3.11 Các biểu đồ so sánh dữ liệu dự báo và dữ liệu thực tế 58
Trang 9DANH MỤC BẢNG BIỂU
Trang 10MỞ ĐẦU
Trong quá trình phát triển con người luôn ước muốn biết trước về tương lai Họ đã thực hiện ước muốn này theo nhiều cách khác nhau bằng rất nhiều cách có cả tính khoa học và không khoa học như: bói toán, tiên tri, các công cụ
dự báo… Dù là cách này hay cách khác cũng đều thể hiện ham muốn của con người là biết được những điều chưa xảy ra, hay những việc có thể xảy ra trong tương lai Chính vì thế, từ xa xưa dự báo đã đóng một vai trò cần thiết trong cuộc sống của con người
Mạng nơron nhân tạo là một mô hình tính toán dựa trên mô phỏng quá trình tư duy, hay “học” của con người để giải quyết các vấn đề Mạng Nơron nhân tạo được ứng dụng rộng rãi trong nhiều lĩnh vực và đã thu được nhiều kết quả khả quan như: nhận dạng mẫu, phân loại mẫu, nhận dạng tiếng nói, … Với khả năng xấp xỉ với độ chính xác tùy ý các hàm phi tuyến, và với khả năng thích hợp cho các hệ thống mờ nên mạng nơron rất thích hợp cho bài toán dự báo, đặc biệt là trong môi trường khí quyển Trên thế giới, người đầu tiên thử
đến nay rất nhiều các công trình dự báo số đã được phát triển với kết quả có độ chính xác rất cao, trong đó có cả những mô hính sử dụng hệ mờ nơron
Mạng nơron đã và đang được áp dụng trong nhiều lĩnh vực trong đó có khí tượng thủy văn từ nhiều năm trước và đã có nhiều kết quả cụ thể Tháng 4 năm 2006, Ricardo A Guarnieri [12] cùng đồng nghiệp đã ứng dụng mạng nơron nhân tạo hiệu chỉnh dự báo tổng xạ của mô hình khí hậu khu vực Eta; trước đó năm 2002, luận văn thạc sỹ của Bin Li [11] (Đại học Georgia, Hy Lạp)
đã ứng dụng mạng nơron nhân tạo là công cụ nội suy trường khí tượng về trạm thay cho các phương pháp nội suy truyền thống,…và nhiều công trình nghiên cứu chuyên biệt về lĩnh vực nơron nhân tạo đáng chú ý khác như công trình của
Ajith Abraham [8], Chin-Teng Lin [9], Jacek M Zurada [10],…
Trang 11Ở Việt Nam nhiều mô hình dự báo thời tiết số ứng dụng mạng noron cũng đang được triển khai ứng dụng như các hệ cho dự báo giá chứng khoán, phụ tải,… tuy nhiên trong các ứng dụng vấn đề chọn tốc độ huấn luyện vẫn là một vấn đề được các nhà khoa học quan tâm Nếu chọn tốc độ huấn luyện quá nhỏ, quá trình huấn luyện sẽ rất lâu và có khi chỉ đạt đến cực trị địa phương Nếu chọn tốc độ huấn luyện lớn, quá trình huấn luyện nhanh nhưng có khi không hội tụ Để nâng cao hiệu quả của các chương trình dự báo ứng dụng mạng nơron, tôi chọn đề tài: “LỰA CHỌN TỐC ĐỘ HUẤN LUYỆN HỢP LÝ KHI SỬ
nghiên cứu cách tìm tốc độ huấn luyện mạng theo từng bước huấn luyện nhằm tiêt kiệm thời gian huấn luyện và nâng cao chất lượng của các hệ thống dự báo ứng dụng mạng nơron nhân tạo
Bố cục của luận văn bao gồm các chương sau:
Luận văn được trình bày thành 3 phần bao gồm: phần mở đầu, phần nội dung và phần kết luận
Phần mở đầu: Giới thiệu khái quát về đề tài, mục tiêu, ý nghĩa khoa học
và xã hội mang lại thông qua việc giải quyết các vấn đề được nêu trong đề tài
Phần nội dung:
Chương 1: Mạng nơron nhân tạo: Giới thiệu về mạng nơron nhân tạo và
mô hình mạng nơron Các phương pháp học trong mạng nơron nhân tạo
Chương 2 Mạng nơron truyền thẳng và thuật toán lan truyền ngược:
Tìm hiểu cấu trúc mạng nơron truyền thẳng và thuật toán lan truyền ngược
Chương 3 Chương trình thử nghiệm thuật toán lan truyền ngược
trong bài toán dự báo thời tiết Xây dựng chương trình dự báo thời tiết và thử
nghiệm huấn luyện mạng lan truyền ngược trong bài toán dự báo thời tiết với các tốc độ huấn luyện khác nhau
Trang 12Phần kết luận: Trình bày kết quả mà luận văn đạt được và hướng phát triển
cho mô hình mà luận văn đã đề xuất
Trang 13CHƯƠNG I: MẠNG NƠRON NHÂN TẠO 1.1 Giới thiệu về mạng nơron nhân tạo
1.1.1 Khái niệm cơ bản
Định nghĩa: Mạng nơron nhân tạo, Artificial Neural Network (ANN) gọi
tắt là mạng nơron, neural network, là một mô hình xử lý thông tin phỏng theo
cách thức xử lý thông tin của các hệ nơron sinh học Nó được tạo lên từ một số
lượng lớn các phần tử (gọi là phần tử xử lý hay nơron) kết nối với nhau thông qua các liên kết (gọi là trọng số liên kết) làm việc như một thể thống nhất để
giải quyết một vấn đề cụ thể nào đó [1]
Một mạng nơron nhân tạo được cấu hình cho một ứng dụng cụ thể (nhận
dạng mẫu, phân loại dữ liệu, .) thông qua một quá trình học từ tập các mẫu
huấn luyện Về bản chất học chính là quá trình hiệu chỉnh trọng số liên kết giữa các nơron
1.1.2 Quá trình phát triển mạng nơron
Các nghiên cứu về bộ não con người đã được tiến hành từ hàng nghìn năm nay Cùng với sự phát triển của khoa học kĩ thuật đặc biệt là những tiến bộ trong ngành điện tử hiện đại, việc con người bắt đầu nghiên cứu các nơron nhân tạo là hoàn toàn tự nhiên Sự kiện đầu tiên đánh dấu sự ra đời của mạng nơron 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ơron hoạt động Họ cũng đã tiến hành xây dựng một mạng nơron đơn giản bằng các mạch điện Các nơron 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”
Trang 14Tiế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ơron 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ơron 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ơron 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ơron 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ơron 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ơron đơ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ơron 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ơron 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
Trang 15Nă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ơron đầ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ơron 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 ( back-propagation) 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
Thật không may, những thành công ban đầu này khiến cho con người nghĩ quá lên về khả năng của các mạng nơron Chính sự cường điệu quá mức đã
có những tác động không tốt đến sự phát triển của khoa học và kỹ thuật thời bấy giờ khi người ta lo sợ rằng đã đến lúc máy móc có thể làm mọi việc của con người Những lo lắng này khiến người ta bắt đầu phản đối các nghiên cứu về mạng neuron Thời kì tạm lắng này kéo dài đến năm 1981
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ơron 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 neuron
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ơron đã đượ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
Trang 16kỳ của Hoa Kỳ bày tỏ sự lo lắng rằ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 neuron
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 neuron ứ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 neuron 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ơron để 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ơron ra đời ngày càng nhiều và ngày càng hoàn thiện hơn Điển hình là các ứng dụng: xử lý ngôn ngữ (Language Processing), nhận dạng kí tự (Character Recognition), nhận dạng tiếng nói (Voice Recognition), nhận dạng mẫu (Pattern Recognition), xử lý tín hiệu (Signal Processing), Lọc dữ liệu (Data Filtering),…
1.1.3 Mô hình mạng nơron
1.1.3.1 Nơron sinh học
Qua quá trình nghiên cứu về bộ não, người ta thấy rằng: bộ não con
đường truyền Mỗi đường truyền này dài khoảng hơn một mét Các nơron có nhiều đặc điểm chung với các tế bào khác trong cơ thể, ngoài ra chúng còn có những khả năng mà các tế bào khác không có được, đó là 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 mòn nơron, các con đường này tạo nên hệ thống giao tiếp của bộ não [3]
Trang 17Hình 1.1 Cấu trúc của một nơron sinh học điển hình
Mỗi nơron sinh học có 3 thành phần cơ bản:
• Các nhánh vào hình cây ( dendrites)
• Thân tế bào (cell body)
• Sợi trục ra (axon)
Các nhánh hình cây truyền tín hiệu vào đến thân tế bào Thân tế bào tổng hợp và xử lý cho tín hiệu đi ra Sợi trục truyền tín hiệu ra từ thân tế bào này sang nơron khác Điểm liên kết giữa sợi trục của nơron này với nhánh hình cây
của nơron khác gọi là synapse Liên kết giữa các nơron và độ nhạy của mỗi
synapse được xác định bởi quá trình hóa học phức tạp Một số cấu trúc của nơron được xác định trước lúc sinh ra Một số cấu trúc được phát triển thông qua quá trình học Trong cuộc đời cá thể, một số liên kết mới được hình thành, một số khác bị hủy bỏ
Như vậy nơron sinh học hoạt động theo cách thức sau: nhận tín hiệu đầu
vào, xử lý các tín hiệu này và cho ra một tín hiệu output Tín hiệu output này
sau đó được truyền đi làm tín hiệu đầu vào cho các nơron khác
Trang 18Dựa trên những hiểu biết về nơron sinh học, con người xây dựng nơron nhân tạo với hy vọng tạo nên một mô hình có sức mạnh như bộ não
1.1.3.2 Nơron nhân tạo
Một nơron là một đơn vị xử lý thông tin và là thành phần cơ bản của một mạng nơron Cấu trúc của một nơron được mô tả hình 1.2:
Hình 1.2 Nơron nhân tạo
Đơn vị xử lý
Các thành phần cơ bản của một nơron nhân tạo bao gồm:
♦ Tập các đầu vào: Là các tín hiệu vào (input signals) của nơron, các tín
hiệu này thường được đưa vào dưới dạng một vector N chiều
♦ Tập các liên kết: Mỗi liên kết được thể hiện bởi một trọng số (gọi là
trọng số liên kết – Synaptic weight) Trọng số liên kết giữa tín hiệu vào thứ j
với nơron k thường được kí hiệu là w
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
Trang 19♦ Bộ tổng (Summing function): Thường dùng để tính tổng của tích các
đầu vào với trọng số liên kết của nó
Bộ tổng hợp các liên kết đầu vào của một phần tử nơron có thể mô tả như sau:
) t ( x w v(t)
-m
1
= k
k k
x k (t): các đầu vào ngoài; k = 1, 2,… m; m là số lượng đầu vào mô tả tín
hiệu vào từ các đầu nhạy thần kinh hoặc từ các nơron khác đưa vào
đầu vào ngoài tới nơron hiện tại; k = 1, m; m là số đầu vào
y(t): đầu ra nơron mô tả tín hiệu đưa ra
θ: hằng số, còn gọi là ngưỡng, xác định ngưỡng kích thích hay ức chế
♦ Ngưỡng (còn gọi là một độ lệch - bias): Ngưỡng này thường được đưa
vào như một thành phần của hàm truyền
♦ Hàm truyền (Transfer function) : Hàm này được dùng để giới hạn
phạm vi đầu ra của mỗi nơron Nó nhận đầu vào là kết quả của hàm tổng và ngưỡng đã cho Thông thường, phạm vi đầu ra của mỗi nơron được giới hạn trong đoạn [0,1] hoặc [-1, 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 và kinh nghiệm của người thiết kế mạng
Trang 20♦ Đầu ra: Là tín hiệu đầu ra của một nơron, với mỗi nơron sẽ có tối đa là
một đầu ra
Như vậy tương tự như nơron sinh học, nơron nhân tạo cũng nhận các tín hiệu đầu vào, xử lý ( nhân các tín hiệu này với trọng số liên kết, tính tổng các tích thu được rồi gửi kết quả tới hàm truyền), và cho một tín hiệu đầu ra ( là kết quả của hàm truyền)
Một số hàm truyền thông dụng:
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
Hình 1.3 Hàm đồng nhất (Indentity function)
2) Hàm bước nhị phân (Binary step function, Hard limit function)
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ị:
Trang 21Dạ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.4 Hàm bước nhị phân (Binary step function)
3) Hàm sigmoid (Sigmoid function (logsig))
1 ( )
Hình 1.5 Hàm Sigmoid
4) Hàm sigmoid lưỡng cực (Bipolar sigmoid function (tansig)
x x
e
e x
g
1
1 ) (
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]
Trang 22Hình 1.6 Hàm sigmoid lưỡng cực
Các hàm truyề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 (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
Trang 23* Một kiểu phân loại điển hình mạng nơron nhân tạo:
Hình 1.7 Một cách phân loại mạng nơron
1.2 Các phương pháp học
Khái niệm: Học là quá trình thay đổi hành vi của các vật theo một cách
nào đó làm cho chúng có thể thực hiện tốt hơn trong tương lai
Brain State -
in Box
Máy Boltz-mann
field
Hop-Ánh
xạ đặc trưng
Mc Culloc
h Pitts
cep-tron
Per-line
Trang 24Ada-Các mẫu (x, y) với x = (x1, x2, , xn) ∈ X, y = (yl, y2, , ym) ∈ Y được cho trước
Học có giám sát trong các mạng nơron thường được thực hiện theo các bước sau:
♦ B1: Xây dựng cấu trúc thích hợp cho mạng nơron, chẳng hạn có (n + 1)
và khởi tạo các trọng số liên kết của mạng
♦ B2: Đưa một vector x trong tập mẫu huấn luyện X vào mạng
♦ B3: Tính vector đầu ra o của mạng
♦ B4: So sánh vector đầu ra mong muốn y (là kết quả được cho trong tập
huấn luyện) với vector đầu ra o do mạng tạo ra; nếu có thể thì đánh giá lỗi
♦ B5: Hiệu chỉnh các trọng số liên kết theo một cách nào đó sao cho ở lần
tiếp theo khi đưa vector x vào mạng, vector đầu ra o sẽ giống với y hơn
♦ B6: Nếu cần, lặp lại các bước từ 2 đến 5 cho tới khi mạng đạt tới trạng
thái hội tụ Việc đánh giá lỗi có thể thực hiện theo nhiều cách, cách dùng nhiều
nhất là sử dụng lỗi tức thời: Err = (o - y), hoặc Err = |o - y|; lỗi trung bình bình
Có hai loại lỗi trong đánh giá một mạng nơron Thứ nhất, gọi là lỗi rõ
ràng (apparent error), đánh giá khả năng xấp xỉ các mẫu huấn luyện của một mạng đã được huấn luyện Thứ hai, gọi là lỗi kiểm tra (test error), đánh giá khả
năng tổng quá hóa của một mạng đã được huấn luyện, tức khả năng phản ứng với các vector đầu vào mới Để đánh giá lỗi kiểm tra chúng ta phải biết đầu ra mong muốn cho các mẫu kiểm tra
Thuật toán tổng quát ở trên cho học có giám sát trong các mạng nơron có nhiều cài đặt khác nhau, sự khác nhau chủ yếu là cách các trọng số liên kết
Trang 25đượ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, x
2, , x
thuật toán là phải phân chia tập dữ liệu D thành các nhóm con, mỗi nhóm chứa các vector đầu vào có đặc trưng giống nhau
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
Hình 1.9 Sơ đồ học không có giám sát
Trang 261.2.3 Học tăng cường
Ta thấy trong kỹ thuật học có giám sát, các vecter đầu ra được biết một cách chính xác, nhưng trong một số trường hợp có ít thông tin, chẳng hạn chỉ có thể nói là mạng sinh Output quá lớn hoặc chỉ đúng khoảng 40% Khi đó chỉ có một tín hiệu đánh giá là “True” hoặc “False”quay lại mạng, các thủ tục học đó gọi là thủ tục học tăng cường
Hình 1.10 Sơ đồ học tăng cường
1.3 Kết luận chương 1
Não người là tổ chức vật chất cao cấp, có cấu tạo vô cùng phức tạp, dày đặc các mối liên kết giữa các nơron nhưng xử lý thông tin rất linh hoạt trong môi trường bất định
Các nhà khoa học đã dựa trên sự hoạt động của não người để xây dựng nên mô hình tính toán mới, đó là mô hình mạng nơron nhân tạo
Với khả năng nhận dạng mềm dẻo, linh hoạt, có thể tự huấn luyện và tổng quát hóa tốt, mạng nơ ron được ứng dụng trong nhiều lĩnh vực như: y tế,
dự báo, điều khiển…
Trang 27CHƯƠNG II: MẠNG NƠRON TRUYỀN THẲNG VÀ THUẬT TOÁN
LAN TRUYỀN NGƯỢC 2.1 Cấu trúc mạng nơron truyền thẳng
Kiến trúc truyền thẳng (feedforward architechture): là kiểu kiến trúc
mạng không có các kết nối ngược trở lại từ các nơron đầu ra về các nơron đầu vào; mạng không lưu lại các giá trị output trước và các trạng thái kích hoạt của nơron Các mạng nơron truyền thẳng cho phép tín hiệu di chuyển theo một đường duy nhất; từ đầu vào tới đầu ra, đầu ra của một tầng bất kì sẽ không ảnh hưởng tới tầng đó [5]
Hình 2.1 Mạng truyền thẳng
2.1.1 Mạng nơron truyền thẳng một lớp
Perceptron là mạng nơron đơn giản nhất, nó chỉ gồm một nơron, nhận đầu vào là vector có các thành phần là các số thực và đầu ra là một trong hai giá trị +1 hoặc -1
Trang 28Hình 2.2 Perceptron
Đầu ra của mạng được xác định như sau: mạng lấy tổng có trọng số các thành phần của vector đầu vào, kết quả này cùng ngưỡng b được đưa vào hàm truyền (Perceptron dùng hàm Hard-limit làm 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
* Quy tắc delta:
Xét mạng noron một lớp truyền thẳng với mối liên hệ giữa lớp vào và lớp
ra như hình vẽ Hàm kích hoạt là hàm tuyến tính Không giảm tính tổng quát, ta giả thiết hàm này là hàm đồng nhất [7]
Hình 2.3 Lớp vào và lớp ra của mạng noron
k 1 y
k i x
k n x
w11
k i y
k n y
w1i
Trang 29Mẫu vào thứ k là:
X k = (x 1 k , x 2 k , …, x n k ), k = 1,2, …, L
O k = (o 1 k , o 2 k , … , o m k ), k = 1,2, …, L
Trong đó, n là số chiều của không gian vào, m là số chiều của không gian
huấn luyện, mạng làm việc chính xác nên kết quả ra không phải là kết quả mong muốn Độ lệch giữa kết quả ra mong muốn và kết quả ra thực tế, sau này
ta gọi là lỗi, là căn cứ để thay đổi trọng số trong quá trình huấn luyện mạng
Trọng số phải thay đổi sao cho lỗi ngày càng giảm, hay nói cách khác trọng số phải biến đổi ngược hướng với vecto gradien lỗi Tư tưởng này cho phép ta viết:
w(t+1) = w ij (t) -
) t ( w
E ij
k j
E j
k j
j, khi mô tả mô hình toán học của một noron, người ta thường coi T j là trọng số
liên hệ giữa một noron giả tưởng truyền tín hiệu băng -1 vào noron j; t là tham
cho tốc độ huấn luyện, dưới đây ta gọi tắt là tốc độ huấn luyện
Để tính các đạo hàm trong công thức (2.1) và (2.2) ta nhớ rằng:
Trang 30j n
1 i
k i ij k
k j k j
k j ij
k j
x ) o y ( ) t ( w
y y
E ) t ( w
y y
E ) t ( T
j k j j
k j k j
k j j
k j
1 Cho trước vận tốc huấn luyện (0<<1) và bình phương lỗi nhỏ nhất của
2 Khởi tạo các trọng số và độ lệch T của mạng một cách ngẫu nhiên
3 Đưa các mẫu vào vào mạng và tính giá trị ra của mạng
4 Tính trọng số và T mới của mạng theo các công thức (2.7) và (2.8)
Trang 315.Thuật toán tiếp tục cho đến khi ít nhất mỗi mẫu đã được đưa vào một lần và
j
E <E m
Trong thuật toán trên xuất hiện một vấn đề là phải chọn tốc độ huấn luyện Nếu quá nhỏ thì quá trình huấn luyện sẽ kéo dài; nếu quá lớn thì quá trình huấn luyện có thể phân kỳ có nghĩa là không đạt được nghiệm của quá trình huấn luyện Bởi thế, tính hội tụ của thuật toán liên quan chặt chẽ đến việc chọn tốc độ huấn luyện trong một số công trình [7], các tác giả thường chọn
là một hằng số, một số công trình khác chọn giảm dần theo công thức sau:
(t) =
t
1
,
trong đó t là số lần lặp tính đến thời điểm chọn
2.1.2 Mạng nơron truyền thẳng nhiều lớp
Mô hình mạng nơron được sử dụng rộng rãi nhất là mô hình mạng nhiều tầng truyền thẳng (MLP: Multi Layer Perceptron) 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
Hình 2.4 . Mạng MLP tổng quát
Trang 32Kiế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 Xét ví dụ trong bài toán nhận dạng chữ số: với mỗi mẫu ta lưu tọa độ (x,y) của 8 điểm trên chữ số đó, và nhiệm vụ của mạng là phân loại các mẫu này vào một trong 10 lớp tương ứng với 10 chữ số 0, 1, …, 9 Khi đó p là kích thước mẫu và bằng 8 x 2 = 16; q là số lớp và bằng 10
♦ Mỗi nơron thuộc tầng sau liên kết với tất cả các nơron thuộc tầng liền trước nó
♦ Đầu ra của nơron tầng trước là đầu vào của nơron 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ơron 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ơron thuộc tầng ẩn thứ nhất; các nơron 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ơron thuộc tầng ra cho kết quả
2.2 Khả năng thể hiện của mạng
Các mạng truyền thẳng cho ta một kiến trúc tổng quát thể hiện khả năng ánh xạ hàm phi tuyến tính giữa một tập các biến đầu vào và tập các đầu ra Khả năng thể hiện của một mạng có thể được định nghĩa là khoảng mà nó có thể thực hiện ánh xạ khi các trọng số biến thiên
Các mạng một lớp chỉ có khả năng thể hiện các hàm khả phân tuyến tính hay các miền phân cha được (ví dụ như hàm logic AND có miền giá trị có thể
Trang 33phân chia bằng một đường thẳng trong khi miền giá trị của hàm XOR thì không)
Các mạng có hai lớp ẩn có khẳ năng thể hiện một đường biên phân chia tùy ý với một độ chính xác bất kỳ với các hàm chuyển phân ngưỡng và có thể xấp xỉ bất kỳ ánh xạ mịn nào với độ chính xác bất kỳ với các hàm chuyển có dạng sigmoid
Một mạng có một lớp ẩn có thể xấp xỉ tốt bất kỳ một ánh xạ liên tục nào
từ một không gian hữu hạn sang một không gian hữu hạn khác, chỉ cần cung cấp số nơron đủ lớn cho lớp ẩn Chính xác hơn, các mạng truyền thẳng với một lớp ẩn được luyện bởi các phương pháp bình phương tối thiểu (least – spuares)
là các bộ xấp xỉ chính xác cho các hàm hồi quy nếu như các giả thiết về mẫu,
độ nhiễu, số đơn vị trong lớp ẩn và các nhân tố khác thỏa mãn Các mạng nơron truyền thẳng với một lớp ẩn sử dụng các hàm chuyển hay hàm phân ngưỡng là các bộ xấp xỉ đa năng cho bài toán phân lớp nhị phân với giả thiết tương tự
2.3 Thuật toán lan truyền ngược (Back – Propagation)
Mạng BackPropagation cần một tập mẫu tham chiếu để huấn luyện Giả
sử tập dữ liệu huấn luyện gồm p mẫu (cặp đầu vào, đầu ra mong muốn) là
x(k), y(k) ,k 1 , 2 , , p Quá trình luyện mạng được bắt đầu với các trọng số tùy ý được khởi tạo ngẫu nhiên xung quanh giá trị 0 và tiến hành lặp đi lặp lại trên tập mẫu huấn luyện tới khi đạt được lỗi mong muốn 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 Tiến trình điều chỉnh nhiều lần giúp cho trọng số dần dần đạt được các trọng số tối ưu Thường mạng cần thực hiện nhiều thế hệ trước khi việc luyện mạng hoàn tất [4]
Trang 34Việc cập nhật trọng số có thể được thực hiện ngay khi xử lý từng mẫu hoặc khi đã xử lý tất cả các mẫu trong tập Trong luận văn này sử dụng phương thức cập nhật trọng số ngay sau khi xử lý từng mẫu
Trước tiên, mạng thực hiện quá trình lan truyền tiến, nghĩa là mạng ánh
xạ các biến vào của mẫu hiện hành thành các giá trị ra với việc sử dụng các giá trị của các trọng số hiện hành Kế tiếp, sai số được tính dựa trên giá trị kết xuất
và giá trị đích Trên cơ sở sai số tính được, mạng sẽ cập nhật lại các trọng số theo nguyên tắc lan truyền ngược sai số - gọi là giai đoạn lan truyền ngược
Như vậy, để học mỗi mẫu, mạng thi hành hai bước: lan truyền tiến – thực hiện ánh xạ, và lan truyền ngược sai số - cập nhật các trọng số Vì thế phương pháp này được gọi tắt là lan truyền ngược
Xét một cặp mẫu huấn luyện đầu vào – đầu ra mong muốn (x, d) với mẫu đầu vào x, nơron thứ q của lớp ẩn nhận tổng đầu vào là:
m j j qj
net
1 (3.1)
và tạo đầu ra:
z
1 )
Trong đó q=1,…l, l là số nút của lớp ẩn, m là số nút của lớp vào với hàm
q
net q
q
e net
1
1 )
Đầu ra của các nơron lớp ẩn lại được đưa tới lớp ra Tổng đầu vào của
nơron thứ i lớp ra là:
Trang 35l q
m j j qj q iq q
Trong đó i = 1,…, n: n là số nơron của lớp ra;
hàm kích hoạt của lớp ra, đầu ra của nơron thứ i của lớp ra là:
m j j qj q iq i l
q q iq i i i
Hàm kích hoạt của các nơron lớp ra cũng được chọn là hàm Sigmoid
Đó là toàn bộ quá trình lan truyền tiến của các nơron trong quá trình huấn luyện Tiếp theo, trong quá trính lan truyền ngược, khi đã có giá trị đầu ra thực
sự, các tín hiệu lỗi được tính toán để lan truyền ngược trở lại cập nhật các trọng liên kết Các tính toán đó được thực hiện dựa trên hàm chi phí toàn cục Hàm chi phí được sử dụng cho bài toán dự báo thời tiết được xây dựng như sau:
l q q iq i i n
i
i i i n
i
i
d w
E
1
2
1 1
2 1
2
) (
2
1 ) ( 2
1 2
1
(3.6) Theo phương pháp hạ Gradient – tức là tiến trình cập nhật trọng số theo hướng giảm gradient, trọng liên kết giữa lớp ẩn và lớp đầu ra được cập nhật bởi:
i i iq
iq
w
net net
y y
E w
Trang 36với oi là tín hiệu lỗi tại nơron thứ i trong lớp ra:
i i
j q iq
i i
i qj
q q
q q qj
v
net net
z z
E v
E v
1
' '
) (
(3.12)
Từ biểu thức (3.9) ta có:
n i
j q iq
q iq
Trang 37hiệu lỗi đã được lan truyền ngược từ lớp đầu ra trở lại lớp đầu vào để cập nhật các trọng liên kết của các lớp đó
Quá trình huấn luyện mạng được lặp đi lặp lại hai pha trên tập mẫu huấn luyện tới khi đạt được mức lỗi mong muốn
2.3.1 Mô tả thuật toán
lần lượt là tổng đầu vào và đầu ra của nơron thứ i trong lớp q Mạng có m nút
y
1 tới q i
Đầu vào: Một tập các cặp huấn luyện {(x(k) , d (k) | k=1,2, p)}, véc tơ đầu
Bước 0 ( Khởi tạo)
ngầu nhiên các trọng số trong khoảng giá trị nhỏ Đặt E = 0, k = 1
Bước 1 (Thực hiện một quá trình lặp cho việc huấn luyện)
Sử dụng mẫu đầu vào thứ k:
q
x y
Bước 2 (Lan truyền tín hiệu từ lớp vào tới lớp ra )
Lan truyền tiến tín hiệu qua mạng sử dụng :
q i
Bước 3 (Tính toán lỗi): Tính giá trị lỗi và tín hiệu lỗi q
Trang 38d y E E
n i
i Q k
1
2 ) 2
1
(3.17)
Q i Q k i i Q
net f y
Bước 4 ( Lan truyền ngược lỗi): Lan truyền ngược trở lại để cập nhật các
w w
(3.19)
j ji q i q i
q 1 f' ( 1net ) w (3.20)
Bước 5 (Lặp 1 chu kỳ): Kiểm tra xem toàn bộ tập dữ liệu luyện đã được
duyệt qua 1 lần chưa Nếu k < p thì k = k+1 và quay lại bước 1, nếu không thì
thực hiện bước 6
Bước 6 (Kiểm tra lỗi toàn thể): Kiểm tra lỗi toàn thể, nếu E < E max thì kết thúc quá trình huấn luyện; hoặc kiểm tra xem đã đạt đến số chu kỳ (vòng lặp)
giới hạn hay chưa, nếu không E = 0, k = 1 và bắt đầu một chu kỳ mới bằng việc
quay lại bước 1
Sơ đồ thuật toán lan truyền ngược:
Trang 39q i q
y w f net f
i=1
q=1 i<m
1
2 )
net f y
w w
j q j ji q i q i
q 1 f' ( 1net ) w
Đ
S q>2
S k<p
Trang 40Hình 2.5 Sơ đồ thuật toán lan truyền ngược
2.3.2 Một số biến thể của thuật toán lan truyền ngược
Ta xét một số đặc điểm của thuật toán lan truyền ngược sử dụng kỹ thuật giảm theo hướng Mạng sử dụng thuật toán này tồn tại nhược điểm: rơi vào điểm cực tiểu địa phương đối với mạng nơron truyền thẳng nhiều lớp sử dụng các hàm truyền phi tuyến Hơn nữa, khi thực hiện luyện mạng bằng cách đưa từng mẫu vào, sau đó thực hiện cập nhật tham số, sẽ làm ảnh hưởng đến quá trình học của các mẫu khác Do đó, một phương pháp để tăng tốc độ hội tụ là sử dụng phương pháp học cả gói (batch reaining), nghĩa là tất cả các mẫu được đưa vào mạng, sau đó mới thực hiện cập nhật các tham số Bây giờ ta sẽ xem xét một số biến thể của thuật toán lan truyền ngược sử dụng phương pháp học
cả gói nhằm vượt qua các nhược điểm trên [6]
2.3.2.1 Sử dụng tham số bước đà
Đây là phương pháp heurític dựa trên quan sát kết quả huấn luyện mạng nhằm làm tăng tốc độ hội tụ của thuật toán lan truyền ngược dựa trên kỹ thuật giảm nhanh nhất
Khi sử dụng tham số bước đà thì hệ số học có thể lớn hơn rất nhiều so với thuật toán lan truyền ngược chuẩn không sử dụng tham số bước đà, trong khi vẫn giữ được độ tin cậy của thuật toán Một điểm khác nữa là khi sử dụng tham số bước đà thì sự hội tụ của thuật toán sẽ được tăng tốc nếu như thuật toán đang đi theo một hướng bền vững (chỉ đi xuống trong một khoảng dài)
2.3.2.2 Sử dụng hệ số học biến đổi
Trong thực tế, các hàm hiệu năg có dạng biểu diễn hình học là không đồng đều, có lúc có dạng phẳng (hàm không thay đổi giá trị hoặc thay đổi rất ít) hoặc có dạng phễu (giá trị của hàm thay đổi rất nhanh khi thay đổi tham số đầu vào) Nếu ta chỉ sử dụng hệ số học cố định thì có thể sẽ tồn tại các vũng phẳng