Xét tổng quát, mỗi liên kết được địnhnghĩa bởi một trọng số wjk cho ta biết hiệu ứng mà tín hiệu của đơn vị j có trên đơn vị k; 4 Một luật lan truyền quyết định cách tính tín hiệu ra của
Trang 1LỜI NÓI ĐẦU
Chỉ số giá tiêu dùng để đo lường lạm phát được thể hiện thông quaviệc chi tiêu hằng ngày của người tiêu dùng Sự gia tăng trong chỉ số CPI đồngnghĩa với tỉ lệ lạm phát tăng CPI được sự dụng bởi các thương nhân bán lẻ để
dự đoán giá trong tương lai, bởi các ông chủ để tính tiền lương, bởi ngân hàng
để điều chỉnh lãi suất và bởi chính phủ để xác định mức tăng cho quỹbảo trợ xã hội Với tầm quan trọng như vậy , chỉ số giá tiêu dùng cần được nhậnbiết một cách chính xác càng sớm càng tốt Dự báo chỉ số giá tiêu dùng là mộtbài toán hết sức quan trọng, bởi nhờ nó mà toàn bộ hệ thống xã hội cónhững điều chỉnh phù hợp nhằm đưa đất nước thoát khỏi tình trạng khủng hoảngkinh tế và phát triển đất nước lên một tầm cao mới
Có nhiều phương pháp để dự báo chỉ số giá tiêu dùng Tuy nhiên, vớinhững ưu điểm về khả năng học và đưa ra quy ết định từ những điều đã học đượccủa mạng nơron thì việc ứng dụng mạng nơron để dự báo là một phươngpháp mới
Trong khóa luận này em mạnh dạn áp dụng mạng nơ ron nhân tạo vàotrong dự báo ngắn hạn chỉ số giá tiêu dùng CPI tại việt nam Và áp dụng một sốgiải thuật vào tối ưu hóa trọng số mạng nơ ron nhân tạo như: Giải thuật di truyền(GA) Ngoài ra còn có so sánh với một số phương pháp tối ưu khác như: giảithuật bầy đầy (PSO), giải thuật vi khuẩn tìm kiếm thức ăn (BFO)
Trong bài báo cáo của mình em cũng đã cố gắng hết sức mình nhưngkhông thể tránh khỏi những thiếu xót và kiến thức, kinh nghiệm
Cuối cùng em xin chân thành cám ơn sâu sắc thầy: Nguyễn Văn Giáp đãgiúp đỡ em hoành thành bài khóa luận tốt nghiệp của mình Cùng toàn thể thầy
cô khác trong khoa
MỤC LỤC
Trang 2Dưới đây là các mốc đáng chú ý trong lịch sử phát triển của mạng nơron
- Cuối TK 19, đầu TK 20, sự phát triển chủ yếu chỉ là những công việc có
sự tham gia của cả ba ngành Vật lý học, Tâm lý học và Thần kinh học,bởi các nhà khoa học như Hermann von Hemholtz, Ernst Mach, IvanPavlov Các công trình nghiên cứu của họ chủ yếu đi sâu vào các lýthuyết tổng quát về HỌC (Learning), NHÌN (vision) và LẬP LUẬN(conditioning), và không hề đưa ra những mô hình toán học cụ thể mô
tả hoạt động của các nơron
- Mọi chuyện thực sự bắt đầu vào những năm 1940 với công trình củaWarren McCulloch và Walter Pitts Họ chỉ ra rằng về nguyên tắc, mạngcủa các nơron nhân tạo có thể tính toán bất kỳ một hàm số học hay logicnào
Trang 3- Tiếp theo hai người là Donald Hebb, ông đã phát biểu rằng việc thuyếtlập luận cổ điển (classical conditioning) (như Pavlov đưa ra) là hiện thựcbởi do các thuộc tính của từng nơron riêng biệt Ông cũng nêu ra mộtphương pháp học của các nơron nhân tạo
- Ứng dụng thực nghiệm đầu tiên của các nơron nhân tạo có được vào cuốinhững năm 50 cùng với phát minh của mạng nhận thức (perceptronnetwork) và luật học tương ứng bởi Frank Rosenblatt Mạng này có khảnăng nhận dạng các mẫu Điều này đã mở ra rất nhiều hy vọng cho việcnghiên cứu mạng nơron Tuy nhiên nó có hạn chế là chỉ có thể giải quyếtmột số lớp hữu hạn các bài toán
- Cùng thời gian đó, Bernard Widrow và Ted Hoff đã đưa ra một thuậttoán học mới và sử dụng nó để huấn luyện cho các mạng nơron tuyếntính thích nghi, mạng có cấu trúc và chức năng tương tự như mạng củaRosenblatt Luật học Widrow-Hoff vẫn còn được sử dụng cho đến nay
- Tuy nhiên cả Rosenblatt và Widrow-Hoff đều cùng vấp phải một vấn
đề do Marvin Minsky và Seymour Papert phát hiện ra, đó là các mạngnhận thức chỉ có khả năng giải quyết các bài toán khả phân tuyến tính
Họ cố gắng cải tiến luật học và mạng để có thể vượt qua được hạn chếnày nhưng họ đã không thành công trong việc cải tiến luật học để có thểhuấn luyện được các mạng có cấu trúc phức tạp hơn
- Do những kết quả của Minsky-Papert nên việc nghiên cứu về mạngnơron gần như bị đình lại trong suốt một thập kỷ do nguyên nhân làkhông có được các máy tính đủ mạnh để có thể thực nghiệm
- Mặc dù vậy, cũng có một vài phát kiến quan trọng vào những năm
70 Năm 1972, Teuvo Kohonen và James Anderson độc lập nhau pháttriển một loại mạng mới có thể hoạt động như một bộ nhớ StephenGrossberg cũng rất tích cực trong việc khảo sát các mạng tự tổ chức(Self organizing networks)
- Vào những năm 80, việc nghiên cứu mạng nơron phát triển rất mạnh mẽcùng với sự ra đời của PC Có hai khái niệm mới liên quan đến sự hồisinh này, đó là:
1. Việc sử dụng các phương pháp thống kê để giải thích hoạt độngcủa một lớp các mạng hồi quy (recurrent networks) có thể được
Trang 4dùng như bộ nhớ liên hợp (associative memory) trong công trìnhcủa nhà vật lý học Johh Hopfield
2. Sự ra đời của thuật toán lan truyền ngược (back-propagation) đểluyện các mạng nhiều lớp được một vài nhà nghiên cứu độclập tìm ra như:David Rumelhart, James McCelland, Đó cũng làcâu trả lời cho Minsky-Papert
1.1.2 Ứng dụng.
Trong quá trình phát triển, mạng nơron đã được ứng dụng thành côngtrong rất nhiều lĩnh vực Dưới đây liệt kê ra một số ứng dụng chính của mạngnơron:
• Aerospace: Phi công tự động, giả lập đường bay, các hệ thốngđiều khiển lái máy bay, bộ phát hiện lỗi
• Automotive: Các hệ thống dẫn đường tự động cho ô tô, các bộphân tích hoạt động của xe
• Banking: Bộ đọc séc và các tài liệu, tính tiền của thẻ tín dụng
• Defense: Định vị - phát hiện vũ khí, dò mục tiêu, phát hiện đốitượng, nhận dạng nét mặt, các bộ cảm biến thế hệ mới, xử lý ảnhradar,
• Electronics: Dự đoán mã tuần tự, sơ đồ chip IC, điều khiển tiếntrình, phân tích nguyên nhân hỏng chip, nhận dạng tiếng nói, môhình phi tuyến
• Entertainment: Hoạt hình, các hiệu ứng đặc biệt, dự báo thị trường
• Financial: Định giá bất động sản, cho vay, kiểm tra tài sản cầm
cố, đánh giá mức độ hợp tác, phân tích đường tín dụng, chươngtrình thương mại qua giấy tờ, phân tích tài chính liên doanh, dự báo
tỷ giá tiền tệ
• Insurance: Đánh giá việc áp dụng chính sách, tối ưu hóa sản phẩm
1.1.3 Căn nguyên sinh học.
Bộ não con người chứa khoảng 1011 các phần tử liên kết chặt chẽ vớinhau (khoảng 104 liên kết đối với mỗi phần tử) gọi là các nơron Dưới con mắtcủa những người làm tin học, một nơron được cấu tạo bởi các thành phần: tế
Trang 5bào hình cây (dendrite) - tế bào thân (cell body) - và sợi trục thần kinh (axon).
Tế bào hình cây có nhiệm vụ mang các tín hiệu điện tới tế bào thân, tế bào thân
sẽ thực hiện gộp (Sum) và phân ngưỡng (Thresholds) các tín hiệu đến Sợi trụcthần kinh làm nhiệm vụ đưa tín hiệu từ tế bào thân ra ngoài
Điểm tiếp xúc giữa một sợi trục thần kinh của nơron này và tế bào hìnhcây của một nơron khác được gọi là khớp thần kinh (synapse) Sự sắp xếp củacác nơron và mức độ mạnh yếu của các khớp thần kinh được quyết định bởi cácquá trình hóa học phức tạp, sẽ thiết lập chức năng của mạng nơron
Một vài nơron có sẵn từ khi sinh ra, các phần khác được phát triển thôngqua việc học, ở đó có sự thiết lập các liên kết mới và loại bỏ các liên kết cũ
Cấu trúc của mạng nơron luôn luôn phát triển và thay đổi Các thay đổisau này có khuynh hướng bao gồm chủ yếu là việc làm tăng hay giảm độ mạnhcủa các mối liên kết thông qua các khớp thần kinh
Mạng nơron nhân tạo không tiếp cận đến sự phức tạp của bộ não Mặc
dù vậy, có hai sự tương quan cơ bản giữa mạng nơron nhân tạo và sinh học.Thứ nhất, cấu trúc khối tạo thành chúng đều là các thiết bị tính toán đơn giản(mạng nơron nhân tạo đơn giản hơn nhiều) được liên kết chặt chẽ với nhau.Thứ hai, các liên kết giữa các nơron quyết định chức năng của mạng
Cần chú ý rằng mặc dù mạng nơron sinh học hoạt động rất chậm so vớicác linh kiện điện tử (10-3 giây so với 10-9 giây), nhưng bộ não có khả năng thựchiện nhiều công việc nhanh hơn nhiều so với các máy tính thông thường Đómột phần là do cấu trúc song song của mạng nơron sinh học: toàn bộ các nơronhoạt động một cách đồng thời tại một thời điểm Mạng nơron nhân tạo cũngchia sẻ đặc điểm này Mặc dù hiện nay, các mạng nơron chủ yếu được thựcnghiệm trên các máy tính số, nhưng cấu trúc song song của chúng khiến chúng
ta có thể thấy cấu trúc phù hợp nhất là thực nghiệm chúng trên các vi mạch tíchhợp lớn (VLSI: Very Large Scale Integrated-circuit), các thiết bị quang và các
bộ xử lý song song
Mạng nơron, đôi khi được xem như là các mô hình liên kết(connectionist models), là các mô hình phân bố song song (parallel-distributed
Trang 6models) có các đặc trưng phân biệt sau:
1) Tập các đơn vị xử lý;
2) Trạng thái kích hoạt hay là đầu ra của đơn vị xử lý;
3) Liên kết giữa các đơn vị Xét tổng quát, mỗi liên kết được địnhnghĩa bởi một trọng số wjk cho ta biết hiệu ứng mà tín hiệu của đơn
vị j có trên đơn vị k;
4) Một luật lan truyền quyết định cách tính tín hiệu ra của từng đơn
vị từ đầu vào của nó;
5) Một hàm kích hoạt, hay hàm chuyển (activation function, transferfunction), xác định mức độ kích hoạt khác dựa trên mức độ kíchhoạt hiện tại;
6) Một đơn vị điều chỉnh (độ lệch) (bias, offset) của mỗi đơn vị; 7) Phương pháp thu thập thông tin (luật học - learning rule);
8) Môi trường hệ thống có thể hoạt động
1.2 Đơn vị xử lý.
Một đơn vị xử lý (Hình 1), cũng được gọi là một nơron hay một nút(node), thực hiện một công việc rất đơn giản: nó nhận tín hiệu vào từ các đơn vịphía trước hay một nguồn bên ngoài và sử dụng chúng để tính tín hiệu ra sẽ đượclan truyền sang các đơn vị khác
Hình 1.1: Đơn vị xử lý (Processing unit).
Trong đó:
: các đầu vào
: các trọng số tương ứng với các đầu vào : độ lệch (bias)
: đầu vào mạng (net-input)
: đầu ra của nơron
: 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 72) Các đơn vị đầu ra (Output units), gửi dữ liệu ra bên ngoài;
3)
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 (combination function), được định nghĩabởi một luật lan truyền cụ thể Trong phần lớn các mạng nơron, chúng ta giả sửrằng 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) :
Trường hợp , nơron được coi là đang ở trong trạng thái kích thích Tương
tự, nếu như , nơron ở trạng thái kiềm chế Chúng ta gọi các đơn vị với luật lantruyề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ềnphức tạp hơn Một trong số đó là luật sigma-pi, có dạng như sau:
Rất nhiều hàm kết hợp sử dụng một "độ lệch" hay "ngưỡng" để tính netinput tới đơn vị Đối với một đơn vị đầu ra tuyến tính, thông thường, được chọn
là hằng số và trong bài toán xấp xỉ đa thức
1.3.2 Hàm kích hoạt (hàm chuyển).
Phầ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ả
j i
Trang 8củ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 haynhiề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 )
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 khimột hằng số được nhân với net-input để tạo ra một hàm đồng nhất
Hình 1.2: Hàm đồng nhất (Identity 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" (Thresholdfunction hay Heaviside function) Đầu ra của hàm này được giới hạn vào mộttrong 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
Trang 9Hình 1.3: 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 đạohàm, do đó có thể giảm đáng kểtính toán trong quá trình 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ơivào khoảng [0,1]
Hình 1.4: 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ớicác ứng dụng có đầu ra yêu cầu trong khoảng [-1,1]
Hình 1.5: Hàm sigmoid lưỡng cực.
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ộthà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ấttố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
Trang 10ngược, hàm phải khả vi (differentiable) và sẽ có ích nếu như hàm được gắn trongmộ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ọnsao 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ớicá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ủahàm kích hoạt đầu ra Nhưng nếu các giá trị đích không được biết trước khoảngxá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ộthàm kích hoạt dạng mũ (exponential output activation function)
1.4 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 (layers), số đơn vị trênmỗ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 chiathành hai loại dựa trên cách thức liên kết các đơn vị:
1.4.1 Mạng truyền thẳng.
Dòng dữ liệu từ đơn vị đầu vào đến đơn vị đầu ra chỉ được truyền thẳng.Việc xử lý dữ liệu có thể mở rộng ra nhiều lớp, nhưng không có các liên kết phảnhồi Nghĩa là, các liên kết mở rộng từ các đơn vị đầu ra tới các đơn vị đầu vàotrong cùng một lớp hay các lớp trước đó là không cho phép
Hình 1.6: Mạng nơron truyền thẳng nhiều lớp (Feed-forward neural network).
Trang 111.4.2 Mạng hồi quy.
Có chứa các liên kết ngược Khác với mạng truyền thẳng, các thuộc tínhđộng của mạng mới quan trọng Trong một số trường hợp, các giá trị kích hoạtcủa các đơn vị trải qua quá trình nới lỏng (tăng giảm số đơn vị và thay đổi cácliên kết) cho đến khi mạng đạt đến một trạng thái ổn định và các giá trị kích hoạtkhông thay đổi nữa Trong các ứng dụng khác mà cách chạy động tạo thành đầu
ra của mạng thì những sự thay đổi các giá trị kích hoạt là đáng quan tâm
Hình 1.7: Mạng nơron hồi quy (Recurrent neural network).
1.5 Mạng học.
Chức năng của một mạng nơron được quyết định bởi các nhân tố như:hình trạng mạng (số lớp, số đơn vị trên mỗi tầng, và cách mà các lớp được liênkết với nhau) và các trọng số của các liên kết bên trong mạng Hình trạng củamạng thường là cố định, và các trọng số được quyết định bởi một thuật toán huấnluyện (training algorithm) Tiến trình điều chỉnh các trọng số để mạng “nhậnbiết” được quan hệ giữa đầu vào và đích mong muốn được gọi là học (learning)hay huấn luyện (training) Rất nhiều thuật toán học đã được phát minh để tìm
ra tập trọng số tối ưu làm giải pháp cho các bài toán Các thuật toán đó có thểchia làm hai nhóm chính: Học có thầy (Supervised learning) và Học không cóthầy (Unsupervised Learning)
1.5.1 Học có thầy.
Mạng được huấn luyện bằng cách cung cấp cho nó các cặp mẫu đầu vào
và các đầu ra mong muốn (target values) Các cặp được cung cấp bởi "thầy giáo",
Trang 12hay bởi hệ thống trên đó mạng hoạt động Sự khác biệt giữa các đầu ra thực tế sovới các đầu ra mong muốn được thuật toán sử dụng để thích ứng các trọng sốtrong mạng Điều này thường được đưa ra như một bài toán xấp xỉ hàm số - cho
dữ liệu huấn luyện bao gồm các cặp mẫu đầu vào x, và một đích tương ứng t,mục đích là tìm ra hàm f(x) thoả mãn tất cả các mẫu học đầu vào
Hình 1.8: Mô hình Học có thầy (Supervised learning model).
1.5.2 Học không có thầy.
Với cách học không có thầy, không có phản hồi từ môi trường để chỉ rarằng đầu ra của mạng là đúng Mạng sẽ phải khám phá các đặc trưng, các điềuchỉnh, các mối tương quan, hay các lớp trong dữ liệu vào một cách tự động.Trong thực tế, đối với phần lớn các biến thể của học không có thầy, các đíchtrùng với đầu vào Nói một cách khác, học không có thầy luôn thực hiện mộtcông việc tương tự như một mạng tự liên hợp, cô đọng thông tin từ dữ liệu vào
Trang 13trong đó:
p: số thứ tự mẫu trong tập huấn luyện i : số thứ tự của đơn vị đầu ra
tpi và ypi : tương ứng là đầu ra mong muốn và đầu ra thực tế của mạng chođơn vị đầu ra thứ i trên mẫu thứ p
Trong các ứng dụng thực tế, nếu cần thiết có thể làm phức tạp hàm số vớimột vài yếu tố khác để có thể kiểm soát được sự phức tạp của mô hình
1.7 Mạng nơ-ron lan truyền thằng nhiều lớp.
1.7.1 Mạng perceptron một lớp.
Mạng perceptron một lớp do F.Rosenblatt đề xuất năm 1960 [15] là mạngtruyền thẳng chỉ một lớp vào và một lớp ra không có lớp ẩn Trên mỗi lớp này cóthể có một hoặc nhiều nơ-ron Mô hình mạng nơ-ron của Rosenblatt sử dụng hàmngưỡng đóng vai trò là hàm chuyển Do đó, tổng của các tín hiệu vào lớn hơn giátrị ngưỡng thì giá trị đầu ra của nơ-ron sẽ là 1, còn trái lại sẽ là 0
với là tổng thông tin đầu vào của nơ-ron i.
Ngay từ khi mạng Perceptron một lớp được đề xuất nó đã được sử dụng
để giải quyết bài toán phân lớp Một đối tượng sẽ được nơ-ron i phân vào lớp A
nếu
Tổng thông tin đầu vào :
Trong đó w ij là trọng số liên kết từ nơ-ron j tới nơ-ron i , x j là đầu vào từ
nơ-ron j, và là ngưỡng của nơ-ron i Trong trường hợp trái lại đối tượng sẽ được
phân vào lớp B
Việc huấn luyện mạng dựa trên phương pháp học có giám sát với tập mẫuhọc là {(x(k), d(k))}, k= 1,2, …, p Trong đó d(k) = [d1(k), d2(k), …, dn(k)]T là đầu raquan sát được tương ứng với đầu vào x(k) = [x1(k), x2(k), …, xm(k)]T (với m là số đầuvào, n là số đầu ra và p là cặp mẫu đầu vào - đầu ra dùng cho việc học) Như vậychúng ta mong rằng sau quá trình học, đầu ra tính toán được y(k) = [y1(k), y2(k), …,yn(k)]T sẽ bằng với đầu ra của mẫu học d(k)
Trang 14Hình 1.9 Mạng perceptron một lớp.
Để bắt đầu quá trình luyện mạng, các trọng số được gán giá trị ngẫu nhiêntrong khoảng [-3, 3] Sau đó hiệu chỉnh các trọng số cho phù hợp với mẫu học đểlàm giảm sai số giữa y(k) và d(k)
Các bước tiến hành:
• Xác định ngẫu nhiên bộ trọng số
• Với mỗi mẫu học (x(k), d(k)) , k=1,2, …, p thực hiện các
Bước:
o Tính giá trị y(k) theo công thức
o Xác định sai số δi tại nơ-ron i: δi = di - yi , trong đó d i là giá trị
đầu ra quan sát được và y i là giá trị đầu ra tính toán tại nơ-ron
thứ i.
o Tính ∆w ij là số gia của trọng số w ij (trọng số liên kết giữa đầu
vào j tới nơ-ron i) theo công thức: ∆w ij =ηδixj trong đó η là tốc
độ học (0<η<1)
o Hiệu chỉnh wij(t+1) = wij(t) + ∆wij =wij(t) +ηδi(t)xj(t) trong đó wij(t+1) làtrọng số sau khi điều chỉnh ở lần học tại thời điểm t
Rosenblatt đã chứng minh rằng quá trình học của mạng Perceptron sẽ hội
tụ tới bộ trọng số W, biểu diễn đúng các mẫu học với điều kiện là các mẫu nàybiểu thị các điểm rời rạc của một hàm khả tách tuyến tính nào đó (f: Rn → R
Trang 15được gọi là khả tách tuyến tính nếu các tập {F-1(xk)}, với xk thuộc miền trị của f,
có thể tách được với nhau bởi các siêu phẳng trong không gian Rn )
Năm 1969, Minsky và Papert đã chứng minh một cách chặt chẽ rằng lớphàm thể hiện sự phụ thuộc giữa đầu vào và đầu ra có thể học bởi mạngPerceptron một lớp là lớp hàm khả tách tuyến tính Khả tách tuyến tính là trườnghợp tồn tại một mặt siêu phẳng để phân cách tất cả các đối tượng của một lớp nàyvới một lớp khác, ví dụ một mặt phẳng sẽ phân chia không gian ba chiều thànhhai vùng riêng biệt Mở rộng ra, nếu có n đầu vào, n>2 thì công thức tạo nên mộtsiêu phẳng có n-1 chiều trong không gian n chiều, nó chia không gian đó thànhhai nửa Trong nhiều bài toán thực tế đòi hỏi chia các vùng của các điểm trongmột siêu không gian thành các lớp riêng biệt Loại bài toán này gọi là bài toánphân lớp Bài toán phân lớp có thể giải quyết bằng cách tìm các tham số thíchhợp cho một siêu phẳng để nó có thể chia không gian n chiều thành các vùngriêng biệt
Với tính chất của như đã nêu trên, mạng perceptron một lớp có thể mô tảcác hàm logic như AND, OR và NOT Tuy nhiên nó không thể hiện được hàmXOR Như vậy chứng tỏ mô hình perceptron một lớp không thể giải quyết bàitoán này Vấn đề này sẽ được giải quyết bằng mô hình mạng nơ-ron perceptronnhiều lớp (Multilayer Perceptron - MLP)
Trang 16Ta thấy có thể dùng hai đường thẳng để phân tách với trường hợp hàmXOR.
và
Hay ta giải hệ phương trình
Dễ thấy mỗi bất phương trình ở trên có thể được thực hiện bằng mộtnơron và đầu ra của hai nơ-ron này (2 bất phương trình) là đầu vào của một hàmAND Do vậy có thể sử dụng mạng MLP sau để thực hiện chức năng của hàmXOR như sau:
Hình 1.10 Thực hiện hàm XOR bằng mạng MLP.
Thuật toán học theo phương pháp lan truyền ngược sai số do Rumelhart
và các cộng sự đề xuất [20] là một trong số những kết quả nghiên cứu quan trọngnhất đối với sự phát triển của mạng nơ-ron nhân tạo Thuật toán này được ápdụng cho mạng truyền thẳng nhiều lớp trong đó các nơ-ron có thể sử dụng cáchàm chuyển là các hàm liên tục có các dạng khác nhau
Thuật toán sử dụng một tập các mẫu gồm các cặp đầu vào - đầu ra đểluyện mạng Với mỗi cặp đầu vào - đầu ra (x(k),d(k)) thuật toán lan truyền ngượcsai số thực hiện hai giai đoạn sau:
Trang 17• Giai đoạn thứ nhất, mẫu đầu vào x(k) được truyền từ lớp vào tới lớp ra, và
ta có kết quả đầu ra tính toán được là y(k)
• Giai đoạn tiếp theo, tín hiệu lỗi được tính toán từ sự khác nhau giữa đầu raquan sát được d(k) với đầu ra tính toán y(k) sẽ được lan truyền ngược lại từlớp ra đến các lớp trước để điều chỉnh các trọng số của mạng Để làm ví
dụ ta xét mạng truyền thẳng có một lớp ẩn dưới đây, đối với các mạng cókích thước lớn hơn thì thao tác cũng tương tự
Mạng nơ-ron được xét có m nơ-ron ở lớp vào, l nơ-ron trong lớp ẩn và nnơ-ron ở lớp ra Đường kẻ liền thể hiện luồng tín hiệu được truyền từ đầu vào tớiđầu ra còn các đường kẻ nét đứt thể hiện luồng tín hiệu lỗi được truyền ngược trởlại từ đầu ra
Hình 1.11 Lan truyền tín hiệu trong quá trình học theo phương pháp lan truyền
Nơ-ron q ở lớp ẩn sẽ tính toán và tạo kết quả ở đầu ra của nó là:
Do đó tín hiệu vào của nơ-ron thứ i trên lớp ra sẽ là:
Trang 18Và cuối cùng, đầu ra của nơ-ron i trên lớp ra sẽ là:
Công thức trên cho biết quá trình lan truyền tín hiệu từ đầu vào qua lớp ẩntới đầu ra Tiếp theo chúng ta xét tín hiệu lỗi được lan truyền ngược lại từ lớp ra.Trước hết, đối với mỗi cặp giá trị vào-ra chúng ta xây dựng một hàm giá như sau:
Như vậy với một tập gồm p mẫu học, chúng ta lần lượt xây dựng được p
hàm giá như vậy Việc học của mạng hay nhiệm vụ của giải thuật thực chất là tìmkiếm tập trọng số W trong không gian RM (M là số trọng số có trong mạng) đểlần lượt tối thiểu hoá các hàm giá như vậy Điều đáng chú ý là việc tối thiểu hoáđược tiến hành liên tiếp nhau và theo chu kỳ đối với các hàm giá
Để tối thiểu hoá các hàm giá như vậy, giải thuật lan truyền ngược sai số sửdụng phương pháp giảm gradient để điều chỉnh các trọng số liên kết giữa các nơ-ron Bản chất của phương pháp này là khi sai số E được vẽ như hàm của tham sốgây ra sai số sẽ phải có một cực tiểu tại bộ giá trị nào đó của tham số Khi quansát độ dốc của đường cong, chúng ta quyết định phải thay đổi tham số thế nào để
có thể tiến gần đến cực tiểu cần tìm kiếm hơn Trong hình vẽ dưới đây, giá trị củatrọng số phải giảm nếu đạo hàm dE/dW là dương
Hình 1.12 Sai số E được xét là hàm của trọng số W.
Trang 19Ở đây η là hằng số dương xác định tốc độ giảm giá trị của w, còn dấu âmchỉ chiều giảm gradient
Áp dụng phương pháp giảm gradient đối với các trọng số liên kết giữa cácnơron trong lớp ẩn tới các nơ-ron của lớp ra ta có:
Do hàm sai số E là một hàm phức tạp và là hàm gián tiếp của trọng số w iq
(công thức 1.13) Sử dụng nguyên tắc tính đạo hàm của hàm gián tiếp cho tacó:
Trong đó δoi là tín hiệu sai số và chỉ số oi có nghĩa là nút thứ i trong trênlớp ra Tín hiệu sai số được tính như sau:
Trong đó net i là tín hiệu vào của nơ-ron thứ i trên lớp ra và
g’(neti)=∂g(neti)/∂net Kết quả này tương tự luật học delta áp dụng cho mạng
perceptron một lớp với đầu vào bây giờ là đầu ra zq của lớp ẩn
Để điều chỉnh trọng số của các liên kết giữa lớp vào tới lớp ẩn ta cũng sửdụng phương pháp giảm gradient và lấy đạo hàm theo các biến trung gian như
đã áp ở trên Xét liên kết giữa nơ-ron thứ j ở lớp vào và nơ-ron thứ q trên lớp ra:
Từ công thức (1.13) mỗi thành phần lỗi [d i-yi] , i=1, 2,…, n, là hàm của zq
do vậy công thức trên có thể tiếp tục biến đổi:
Sử dụng công thức (1.13) chúng ta viết lại biểu thức (1.15) như sau:
Trong đó là tín hiệu lỗi của nơ-ron thứ q trong lớp ẩn và được định nghĩa
như sau:
Với là tín hiệu vào của nơ-ron thứ q, như vậy tín hiệu lỗi của nơ-ron trên
lớp ẩn khác với tín hiệu lỗi của nơ-ron trên lớp ra (xem công thức 1.17 và 1.21)
Trang 20Vì sự khác nhau này, thủ tục điều chỉnh trọng số được gọi là luật học delta mở
rộng Nhìn lại công thức (1.21) tín hiệu lỗi của nơ-ron thứ q trong lớp ẩn được
xác định từ các tín hiệu lỗi , của các nơ-ron trên lớp ra
Tổng quát đối với lớp bất kỳ, luật lan truyền ngược có dạng.
Trong đó “output_i ” là đầu ra của nơ-ron i và “ input_j ” là đầu vào của
nơ-ron j, δi là tín hiệu học được định nghĩa trong công thức (4.10)
Từ các phân tích trên, thuật toán lan truyền ngược sai số được xây dựng như sau:
Xét một mạng nơ-ron truyền thẳng có Q lớp, q = 1, 2, …, Q, và gọi neti và
yi là tín hiệu vào và ra của nơ-ron thứ i trong lớp q Mạng này có m đầu vào và nđầu ra Đặt q wij là trọng số của liên kết từ nơ-ron thứ j trong lớp q-1 tới nơ-ron thứ i trong lớp q
Đầu vào : Một tập các cặp mẫu học {(x(k),d(k)) | k= 1, 2, …, p } và véc tơđầu vào được bổ sung thêm x(k)m+1 = - 1
Bước 0 (khởi tạo)
Chọn một hằng số η > 0 và Emax (dung sai cho phép) Khởi tạo ngẫu nhiêncác trọng số trong khoảng giá trị nhỏ Đặt E =0 và k = 1
Bước 1(thực hiện một quá trình lặp cho việc huấn luyện mạng)
Sử dụng mẫu học thứ k :
Tại lớp vào (q =1), với mọi i ta có : qyi = 1yi = x(k)i
Bước 2 (Lan truyền tín hiệu từ lớp vào tới lớp ra)
Bước 3 (Xác định tín hiệu lỗi tại lớp ra).
Bước 4 (Lan truyền ngược sai số)
Lan truyền ngược sai số để điều chỉnh các trọng số và tính toán tín hiệu lỗicho các lớp trước:
Trang 21Bước 5 (Kiểm tra điều kiện lặp)
Kiểm tra:
if ( k < p )then Begin
ElseBegin
Trong đó p là số mẫu được dùng để luyện mạng, n là số biến của véc-tơđầu ra Sai số RMS thường được dùng để đánh giá kết quả học của mạng nơ-ron
Trang 22a. Một sốyếu tố ảnh hưởng đến quá trình học theo phương pháp lan truyền ngược sai số
Khởi tạo các trọng số
Các giá trị được khởi tạo ban đầu cho các trọng số trong mạng lan truyềnngược sai số ảnh hưởng rất lớn đến kết quả học cuối cùng của mạng Các giá trịnày thường được khởi tạo ngẫu nhiên trong phạm vi giá trị tương đối nhỏ Thôngthường hàm chuyển sử dụng cho mạng MLP là hàm sigmoid, do vậy nếu ta chọncác giá trị trọng số khởi tạo lớn thì các hàm này có thể bão hoà ngay từ đầu vàdẫn tới hệ thống có thể bị tắc ngay tại một cực tiểu địa phương hoặc tại một vùngbằng phẳng nào đó gần điểm xuất phát Theo nghiên cứu của Wessels và
Barnard, năm 1992 [18], thì việc khởi tạo các trọng số liên kết w ij nên trong
phạm vi với là số liên kết các nơ- ron j với nơ- ron i.
Hằng sốhọc η
Hằng số học η cũng là một yếu tố quan trọng ảnh hưởng đến hiệu quả và
độ hội tụ của giải thuật lan truyền ngược sai số Không có hằng số η phù hợpcho tất cả các bài toán khác nhau Hằng số học này thường được chọn bằng thựcnghiệm cho mỗi bài toán ứng dụng cụ thể bằng phương pháp thử sai Trongnhiều ứng dụng thực tế cho thấy một hằng số học có thể phù hợp ở thời điểm bắtđầu của quá trình học nhưng lại không phù hợp với giai đoạn sau của quá trìnhhọc Do đó, có một phương pháp hiệu quả hơn đó là sử dụng hằng số học thíchnghi Một cách xử lý đơn giản cho vấn đề này đó là kiểm tra xem các trọng sốmới có làm giảm hàm giá hay không, nếu không thì có thể các trọng số đã vượt
quá xa vùng cực tiểu và như vậy hằng số η cần phải giảm Trái lại, nếu sau vài vòng lặp hàm giá liên tục giảm thì ta có thể thử tăng hằng số η để đẩy nhanh hơn
tốc độ hội tụ đến giá trị cực tiểu Năm 1991, trong nghiên cứu của mình Hertz vàcác cộng sự [9] đã đề xuất luật điều chỉnh hằng số học như sau:
trong đó ∆E là thay đổi của hàm giá, a và b là các hằng số dương, việc ∆Eluôn nhỏ hơn 0 được đánh giá dựa trên k bước lặp liên tiếp
Hằng số quán tính
Trang 23Tốc độ học của giải thuật lan truyền ngược sai số có thể rất chậm nếuhằng số học nhỏ, nhưng nếu hằng số học lớn thì nó lại có thể gây ra sự dao độnglớn trong quá trình tìm giá trị cực tiểu theo phương pháp giảm gradient Để giảiquyết vấn đề này người ta thường thêm thành phần quán tính vào các phươngtrình hiệu chỉnh trọng số như sau:
w(t) = -η ∇E(t) + α w( t-1) (α là hằng số quán tính, α∈[ 0, 1] )
Nhờ thành phần này, quá trình học có thể vượt qua điểm cực tiểu địaphương để tìm đến điểm cực tiểu toàn cục, đồng thời thành phần quán tính cũngngăn cản sự thay đổi đột ngột của các trọng số theo hướng khác với hướng mà lờigiải đang di chuyển đến
Hình 1.13 Minh họa về ý nghĩa của quán tính trong thực tế.
Trang 24quả làm việc của nó bao gồm: vấn đề chuẩn hoá số liệu đầu vào, vấn đề học chưa
đủ và học quá của mạng, vấn đề lựa chọn một cấu trúc mạng phù hợp với bàitoán
Mạng MLP thường sử dụng hàm chuyển là hàm sigmoid có dạng như sau:
Hình 1.14 Hàm sigmoid
Với dạng hàm này, giá trị ở đầu ra của mỗi nơ-ron nằm trong phạm vikhoảng (0,1) và nó đạt các giá trị bão hoà ( xấp xỉ 0 hay 1 ) khi x lớn Do đó,⎢ ⎢khi đầu vào của mạng có giá trị tuyệt đối lớn thì ta cần chuẩn hoá nó về khoảng
có giá trị nhỏ, nếu không thì các nơ-ron tại các lớp ẩn ngay ban đầu đã có thể đạtgiá trị bão hoà và quá trình học của mạng không đạt kết quả mong muốn Vớidạng hàm như trên thì giá trị đầu vào của mạng thường được chuẩn hoá vềkhoảng thuộc đoạn [-3, 3] Mặt khác, do tín hiệu đầu ra của nơ-ron nằm trongkhoảng giá trị (0,1) nên các giá trị đầu ra thực tế trong các mẫu học cũng cầnchuẩn hoá về khoảng giá trị này để có thể dùng cho quá trình luyện mạng Dovậy trong quá trình tính toán, để có các giá trị thực tế ở đầu ra của mạng chúng tacần phải chuyển các giá trị trong khoảng (0,1) về miền các giá trị thực tế
Vấn đề mấu chốt khi xây dựng một mạng nơ-ron nhân tạo là làm thế nàomạng có khả năng tổng quát hoá cao để đưa ra kết quả tốt cả với những trườnghợp đầu vào của mạng không nằm trong tập mẫu đã dùng để luyện mạng Giốngnhư các mô hình hồi quy phi tuyến khác, đối với mạng nơ-ron nhân tạo ta cũngphải giải quyết hai vấn đề là ANN học chưa đủ (underfitting) và học quá(overfitting) Khi mạng có cấu trúc (số nút ẩn và liên kết) cũng như số lần học
Trang 25chưa đủ so với nhu cầu của bài toán thì sẽ dẫn tới tình trạng mạng không đủ khảnăng mô tả gần đúng mối quan hệ tương quan giữa đầu vào và đầu ra của quátrình cần dự báo và dẫn tới học chưa đủ Trái lại, nếu mạng quá phức tạp (quánhiều nút ẩn và quá nhiều tham số) và được học “quá khít” đối với các mẫu dùng
để luyện mạng thì có thể dẫn tới tình trạng mạng học cả thành phần nhiễu lẫntrong các mẫu đó, đây là tình trạng “học quá thuộc” của mạng Vấn đề nêu trên
có thể làm cho nhiều loại mạng nơ-ron, đặc biệt là mạng MLP có thể có nhữngtrường hợp cho kết quả dự đoán rất sai lệch với thực tế
Một số giải pháp cho vấn đề học quá của mạng:
một cách khá tốt để tránh hiện tượng overfitting Khi tập mẫu dùng đểluyện mạng thể hiện được nhiều trạng thái có thể xẩy ra của quá trình cầnnghiên cứu thì sau khi học mạng sẽ có khả năng tổng quát hoá tương đốitốt từ tập dữ liệu đó và sẽ không chịu ảnh hưởng nhiều của hiện tượngoverfitting Ngoài ra một số biện pháp dưới đây cũng có thể góp phầnquan trọng giúp khắc phục hiện tượng overfitting của mạng
(số lớp ẩn, số nơ-ron trên mỗi lớp ẩn) có ảnh hưởng quan trọng đến hiệntượng học chưa đủ (underfitting) và học quá (overfitting) của mạng.Nghiên cứu của Steve Lawrence và C.Lee Giles [11] về bài toán nội suyhàm y = sin(x/3) + v, 0≤ x ≤20 với v là biến ngẫu nhiên nằm trong khoảng(- 0.25 , 0.25) cho thấy nếu mạng chỉ gồm một nút ẩn thì mạng không thểhọc được hàm này Mạng có hai nút ẩn có khả năng tổng quát hoá tốt nhất(tuy không chính xác hoàn toàn với các mẫu nhưng nó tạo nên giáng điệugần với hàm cần xấp xỉ nhất và nó đã không quá khít với nhiễu của mẫuhọc) Các mạng có độ phức tạp hơn (10 nút ẩn, 50 nút ẩn) tuy nó có thểhọc khá chính xác các mẫu được sử dụng nhưng chính điều này lại làmcho nó học quá nhiều cả thành phần nhiễu nên khả năng tổng quát hoágiảm và dẫn tới hiện tượng học quá (overfitting)
Trang 26Hình 1.14 Nội suy hàm y = sin(x/3) + v, 0≤ x ≤ 20 sử dụng mạng MLP.
của mạng, hai tác giả Nelson và Illingworth [17] đã đưa ra giải pháp dừnghọc đúng lúc để tránh hiện tượng học quá của mạng như sau:
o Tập mẫu được chia làm hai phần: một phần dùng để luyện mạng vàphần còn lại để kiểm thử
o Sử dụng các giá trị khởi tạo nhỏ
o Sử dụng hằng số tốc độ học có giá trị thấp
o Tính toán sự thay đổi lỗi kiểm thử trong quá trình luyện mạng
o Dừng học khi thấy lỗi kiểm thử bắt đầu tăng
Các công trình dựa trên định lý của Kolmogorov dự kiến rằng toàn bộ cácánh xạ liên tục từ [0,1]p đến [0,1]n đều có thể được xấp xỉ bằng một mạngperceptron ba lớp có lớp vào gồm p nơ-ron, lớp ra gồm n nơ-ron và lớp ẩn gồm(2p+1) nơron Tuy nhiên không thể chỉ ra được chính xác số lượng nơ-ron tối ưutrong mạng, tính chất của các nơ-ron, tức là dạng phi tuyến cụ thể thực hiện phépxấp xỉ này
Một số công trình nghiên cứu về chủ đề này cho rằng số nơ-ron tối ưu ởlớp ẩn thường nhỏ hơn (2p+1)
Ngoài ra cũng cần phải nói cơ sở dữ liệu học phải có kích thước phù hợpvới kiến trúc mạng Theo Vapnik và Chervonenkis, cơ sở dữ liệu học phải có sốmẫu thoả mãn:
N ≈ 10.Nw, ở đó Nw là số trọng số của mạng (1.31)