tìm hiểu về MẠNG NƠRON NHÂN TẠO
Trang 1MỤC LỤC
MỤC LỤC 1
CHƯƠNG 1: TỔNG QUAN MẠNG NƠRON NHÂN TẠO 2
1 Giới thiệu chung 2
2 Ý tưởng sinh học 2
3 Mô hình nơron nhân tạo cơ bản 4
4 Sử dụng mạng nơron nhân tạo 6
5 Thu thập dữ liệu cho mạng nơron nhân tạo 7
6 Perceptron nhiều lớp 8
6.1 Huấn luyện Perceptron nhiều lớp 9
6.2 Thuật toán backpropagation 9
6.3 Học quá mức và tổng quát hóa 10
6.4 Chọn lựa dữ liệu 12
CHƯƠNG 2: MÔ HÌNH MẠNG NƠRON NHÂN TẠO 13
1 Mô hình nơron và cấu trúc mạng 13
1.1 Mô hình nơron 13
1.2 Cấu trúc mạng 15
2 Cấu trúc dữ liệu 16
3 Kiểu huấn luyện 17
4 Kết luận 17
CHƯƠNG 3: BACKPROPAGATION 18
1 Tổng quát 18
1.1 Cấu trúc 18
1.2 Huấn luyện mạng 21
2 Huấn luyện nhanh 23
2.1 Giải thuật tốc độ học thay đổi (TRAINDA,TRAINDX) 24
2.2 Giải thuật phục hồi mạng backpropagation (TRAINRP) 24
2.3 Giải thuật conjugate_ gradient 25
2.4 Các thuật toán quasi – newton 27
2.5 Giải thuật Levenberg_Marquardt giảm bộ nhớ (TRAINLM) 28
3 So sánh bộ nhớ và tốc độ 28
4 Cải thiện tính tổng quát hoá 29
4.1 Regularization 30
4.2 Early Stopping 31
5 Kết luận 32
CHƯƠNG 4: GIỚI THIỆU VỀ JOONE 34
1 Giới thiệu chung 34
2 Cấu trúc bên trong của JOONE 35
2.1 Khái niệm cơ bản 35
2.2 Quy tắc truyền tín hiệu 35
2.3 Các loại lớp nơron của JOONE 37
2.4 Các loại dây thần kinh 38
2.5 Monitor : điểm điều khiển trung tâm của mạng nơron 40
3 Tiến trình xử lý trong mạng nơron 40
4 Biểu đồ lớp của JOONE 42
PHỤ LỤC TÀI LIỆU THAM KHẢO 44
Trang 2CHƯƠNG 1: TỔNG QUAN MẠNG NƠRON NHÂN TẠO
1 Giới thiệu chung
Mạng nơron nhân tạo (Artificial Nơron Networks) trong một vài năm trở lại đây đã được
nhiều người quan tâm và đã áp dụng thành công trong nhiều lĩnh vực khác nhau, như tài chính, y
tế, địa chất và vật lý Thật vậy, bất cứ ở đâu có vấn đề về dự báo, phân loại và điều khiển, mạng
nơron nhân tạo đều có thể ứng dụng được Sự thành công nhanh chóng của mạng mạng nơron nhân tạo có thể là do một số nhân tố chính sau:
• Năng lực: mạng nơron nhân tạo là những kỹ thuật mô phỏng rất tinh vi, có khả
năng mô phỏng các hàm cực kỳ phức tạp Đặc biệt, mạng nơron nhân tạo hoạt động phi tuyến Trong nhiều năm, mô hình tuyến tính là kỹ thuật được sử dụng rộng rãi trong hầu hết các lĩnh vực, vì thế mô hình tuyến tính có tính chiến lược tối ưu hóa được biết nhiều nhất
• Dễ sử dụng: mạng nơron nhân tạo có tính học theo các ví dụ Người sử dụng mạng
nơron nhân tạo thu thập các dữ liệu đặc trưng, và sau đó gọi các thuật toán huấn luyện để có thể tự học cấu trúc của dữ liệu Mặc dù người sử dụng làm tất cả những điều cần thiết để có thể chọn và chuẩn bị dữ liệu, sử dụng loại mạng phù hợp và có thể hiểu được các kết quả, nhưng mức độ người sử dụng biết cách áp dụng thành công mạng nơron nhân tạo vẫn thấp hơn nhiều những người sử dụng các phương pháp thống kê truyền thống…
Mạng nơron nhân tạo 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ự
2 Ý tưởng sinh học
Mạng nơron nhân tạo phát triển từ nghiên cứu về trí tuệ nhân tạo; đặc biệt cố gắng bắt
chước bộ não có cấu trúc cấp thấp về khả năng học và chấp nhận sai của hệ thống nơron sinh học
Suốt những năm 1960 – 1980 các nhà nghiên cứu về trí tuệ nhân tạo đã tìm ra Expert Systems dựa trên mô hình cấp cao về xử lý lý luận của bộ não Mặc dù mô hình đã rất thành công trong một vài lĩnh vực, nhưng vẫn chưa bắt chước được trí tuệ con người Điều này là do cấu trúc
Trang 3mô hình chưa bằng bộ não Do đó, để tái tạo trí thông minh, chúng ta cần phải xây dựng những hệ thống có cấu trúc giống bộ não con người.
Bộ não con người gồm một số rất lớn nơron (khoảng 10.000.000.000 nơron) kết nối với nhau (trung bình mỗi nơron kết nối với hàng chục ngàn nơron khác) Mỗi nơron là một tế bào đặc biệt, có thể truyền các tín hiệu điện Nơron có cấu trúc rễ ngõ vào, thân tế bào và cấu trúc rễ ngõ ra (sợi thần kinh) Các sợi thần kinh của một tế bào kết nối với các tế bào khác thông qua synapse Khi một nơron kích hoạt, nó tạo ra xung điện hóa học dọc theo sợi thần kinh Tín hiệu này đi qua các synapse đến các nơron khác, và tiếp tục bị kích hoạt Nơron hoạt động chỉ khi tất cả các tín hiệu nhận được ở thân tế bào thông qua rễ ngõ vào vượt quá một mức nào đó (ngưỡng hoạt động)
Cường độ tín hiệu thu được của nơron phụ thuộc vào độ nhạy của synapse Chỉ có việc học làm thay đổi cường độ kết nối synapse Ví dụ như theo thí nghiệm có điều kiện Pavlovian cổ điển,
gõ chuông trước khi cho chó ăn tối, con chó nhanh chóng học được rằng rung chuông gắn liền với
ăn Kết nối synapse giữa phần vỏ não thính giác và tuyến nước bọt đã nhạy hơn, vì thế khi rung chuông vỏ não thính giác bị kích thích, con chó bắt đầu tiết nước bọt
Trang 4Do đó, từ một số rất lớn các đơn vị xử lý rất đơn giản này (mỗi đơn vị thực hiện tổng trọng
số các ngõ vào sau đó kích hoạt một tín hiệu nhị phân nếu tổng ngõ vào vượt quá ngưỡng), bộ não điều khiển để hoạt động những công việc cực kì phức tạp Dĩ nhiên, sự phức tạp trong hoạt động của bộ não không thể trình bày hết, nhưng dù sao mạng trí tuệ nhân tạo có thể đạt được một vài kết quả đáng chú ý với mô hình không phức tạp hơn bộ não
3 Mô hình nơron nhân tạo cơ bản
Nơron nhân tạo được định nghĩa như sau:
• Nơron nhân tạo nhận một số các ngõ vào (từ dữ liệu gốc, hay từ ngõ ra các nơron khác trong mạng) Mỗi kết nối đến ngõ vào có một cường độ (hay trọng số), những trọng số này tương ứng với tác dụng synapse trong nơron sinh học Mỗi nơron cũng
Trên đây mô tả các nơron đơn lẻ Trong thực tế các nơron được kết nối với nhau Khi mạng
Trang 5báo hoặc điều khiển) Ngõ vào và ngõ ra tương ứng với các nơron giác quan và vận động, như tín hiệu đưa vào mắt và điều khiển cánh tay Tuy nhiên chúng còn có các nơron ẩn đóng vai trò ẩn trong mạng Ngõ vào, nơron ẩn và ngõ ra cần được kết nối với nhau.
Vấn đề chính ở đây là hồi tiếp Một mạng đơn giản có cấu trúc tiến: tín hiệu đi vào ở ngõ vào, qua các nơron ẩn và cuối cùng đến các nơron ngõ ra Cấu trúc như thế chạy ổn định Tuy nhiên, nếu mạng có hồi tiếp (chứa các kết nối ngược trở về các nơron trước đó) mạng có thể chạy không ổn định và dao động rất phức tạp Mạng hồi tiếp rất được các nhà nghiên cứu quan tâm, nhưng cấu trúc tiến đã chứng minh rất hiệu quả trong việc giải quyết các vấn đề thực tế
Mạng nơron nhân tạo tiến cho như hình dưới Các nơron được sắp xếp theo cấu trúc liên
kết lớp riêng biệt Lớp ngõ vào không phải là nơron thực: các nơron này hoạt động đơn giản là giới thiệu các giá trị của các biến vào Các nơron lớp ẩn và lớp ngõ ra được kết nối với tất cả các nơron lớp trước đó Cũng như vậy chúng ta có thể định nghĩa mạng có các kết nối một phần với một vài nơron trong lớp trước đó; tuy nhiên, trong hầu hết các ứng dụng mạng có kết nối đầy đủ vẫn tốt hơn
Cấu trúc mạng nơron nhân tạo
Trang 6Khi mạng hoạt động, các giá trị biến ngõ vào được đặt vào các nơron ngõ vào, và sau đó các nơron lớp ẩn và lớp ngõ ra lần lượt được kích hoạt Mỗi nơron tính giá trị kích hoạt của chúng bằng cách lấy tổng các trọng số ngõ ra của các nơron lớp trước đó, và trừ cho ngưỡng Giá trị kích hoạt truyền qua hàm kích hoạt tạo ra giá trị ngõ ra của nơron Khi toàn bộ mạng đã hoạt động, các ngõ ra của lớp ngõ ra hoạt động như ngõ ra của toàn mạng.
4 Sử dụng mạng nơron nhân tạo
Một loạt vấn đề dẫn tới việc giải quyết bằng mạng nơron được định nghĩa bằng cách nó
làm việc hoặc nó được huấn luyện Mạng nơron nhân tạo làm việc từ những ngõ vào khác nhau,
đưa ra những ngõ ra khác nhau Do đó có thể sử dụng khi biết một vài thông tin và sẽ dự đoán những thông tin chưa biết
Ví dụ:
• Dự đoán thị trường chứng khoán: nếu biết giá cả chứng khoán của tuần trước và chỉ
số FTSE, ta sẽ dự đoán được giá cả chứng khoán ngày mai
• Điều khiển: ta muốn biết có hay không một robot biết quẹo phải, trái hay chuyển động về một phía để đạt được mục tiêu, ta sẽ biết được những gì robot đang quan sát
Điều kiện quan trọng trong việc sử dụng mạng nơron nhân tạo là phải biết mối liên hệ giữa
ngõ vào và ngõ ra biết trước Mối quan hệ này có thể kéo theo nhiều thứ nhưng nó nhất định phải tồn tại
Tổng quát, nếu ta sử dụng một mạng mạng nơron nhân tạo ta sẽ không biết chính xác trạng
thái tự nhiên của mối liên hệ giữa ngõ vào và ngõ ra, nếu ta biết mối liên hệ ta sẽ làm mô hình đó
trực tiếp Một tính năng khác của mạng nơron nhân tạo là nó có thể học mối liên hệ giữa ngõ vào
và ngõ ra thông qua việc huấn luyện Có hai loại huấn luyện sử dụng trong mạng nơron nhân tạo là
huấn luyện có giám sát và không giám sát Với những loại mạng khác nhau thì sử dụng các loại huấn luyện khác nhau Huấn luyện có giám sát sử dụng thông dụng nhất
Trong việc học có giám sát, người sử dụng mạng phải có một tập hợp dữ liệu cần huấn luyện Tập hợp này chứa những ngõ vào mẫu với ngõ ra tương ứng và mạng sẽ huấn luyện để đưa
ra mối liên hệ giữa ngõ ra và ngõ vào Tập hợp dữ liệu thường được lấy từ những bản ghi chép trước đó
Trang 7Mạng nơron nhân tạo sau đó được huấn luyện bằng một trong các thuật toán học có giám
sát (ví dụ backpropagation), sử dụng các dữ liệu để điều chỉnh trọng số và ngưỡng của mạng sao cho cực tiểu hóa sai số trong việc dự báo của mạng trên tập huấn luyện Nếu mạng được huấn luyện chính xác, nghĩa là nó đã học mô phỏng một hàm chưa biết với mối liên hệ giữa ngõ ra và ngõ vào, do đó với các tín hiệu vào đến sau, mạng sẽ dự báo tín hiệu ra tương ứng
5 Thu thập dữ liệu cho mạng nơron nhân tạo
Một khi ta quyết định giải quyết một vấn đề sử dụng mạng nơron nhân tạo ta cần phải thu
thập dữ liệu cho mục tiêu huấn luyện Tập hợp dữ liệu huấn luyện bao gồm một số các trường hợp, mỗi trường hợp chứa những giá trị của tầm ngõ vào và ngõ ra khác nhau Những việc đầu tiên cần làm là: những biến nào sử dụng, bao nhiêu trường hợp cần thu thập
Sự lựa chọn các biến do trực giác quyết định Công việc chuyên môn của ta trong lĩnh vực
cần giải quyết sẽ cho ta những ý tưởng về các biến ngõ vào phù hợp Trong mạng nơron nhân tạo,
ta có thể chọn và loại bỏ nhiền biến và mạng nơron nhân tạo cũng có thể xác định bằng thực
nghiệm những biến hữu ích Trong bước một ta nên tính đến bất kì biến nào mà ta nghĩ có ảnh hưởng đến quá trình thiết kế
Mạng nơron nhân tạo xử lý dữ liệu số trong một tầm giới hạn rõ ràng Điều này đưa ra một
vấn đề nếu dữ liệu nằm trong một vùng đặc biệt như dữ liệu chưa biết hay không phải dữ liệu số
May mắn thay có nhiều phương pháp lý tưởng cho vấn đề này, được xây dựng trên mạng nơron
nhân tạo Dữ liệu số được chia nhỏ thành những khoảng thích hợp cho mạng và những giá trị thiếu
có thể được thay thế bằng giá trị trung bình hay giá trị thống kê của biến đó thông qua những biến khác đã được huấn luyện
Xử lý dữ liệu không phải là số thì khó hơn Loại dữ liệu không phải là số thông thường nhất là những biến có giá trị danh định như giới tính (nam, nữ) Biến có giá trị danh định có thể
biểu diễn bằng số học và mạng nơron nhân tạo có chức năng hỗ trợ điều này Tuy nhiên mạng
nơron nhân tạo làm việc tốt với những trường hợp biến danh định là một tập nhiều giá trị.
Số trường hợp mẫu dùng để huấn luyện mạng rất khó xác định Đã có một vài hướng dẫn
về mối liên hệ giữa số trường hợp mẫu với kích thước mạng (cách đơn giản nhất là số trường hợp mẫu gấp 10 lần số kết nối trong mạng) Thực ra số trường hợp mẫu cũng liên quan đến độ phức tạp của hàm mà mạng phải học Khi số biến tăng lên, số trường hợp mẫu cần để huấn luyện cũng tăng
Trang 8phi tuyến, vì thế với một số nhỏ các biến (50 hoặc nhỏ hơn) thì lại cần một số lớn các trường hợp mẫu.
Trong hầu hết các vấn đề trong thực tế, số trường hợp mẫu là khoảng hàng trăm hay hàng ngàn mẫu Đối với những vấn đề rất phức tạp thì cần nhiều hơn, nhưng trường hợp này rất ít Nếu
dữ liệu huấn luyện ít hơn, rõ ràng không đủ thông tin để huấn luyện mạng, và cách tốt nhất là dùng mạng tuyến tính
Nhiều vấn đề trong thực tế có dữ liệu không đáng tin cậy, một vài dữ liệu bị phá hỏng do
nhiễu, hoặc các giá trị không phối hợp được với nhau Mạng nơron nhân tạo có khả năng đặc biệt
xử lý dữ liệu bị mất (sử dụng giá trị trung bình hay những giá trị thống kê khác) Vì thế nếu dữ liệu đưa vào ít, ta nên đưa vào những trường hợp giá trị bị mất (rõ ràng nếu không có thì không lý
tưởng) mạng nơron nhân tạo cũng chịu được nhiễu, nhưng cũng phải có giới hạn Nếu thỉnh
thoảng có giá trị nằm xa ra khỏi vùng giá trị bình thường thì mạng huấn luyện phải có ngưỡng Cách tốt nhất đối với trường hợp này là nhận ra và loại bỏ những giá trị nằm xa đó (có thể hủy trường hợp này hoặc xem giá trị nằm xa này là giá trị bị mất) Nếu giá trị xa này khó nhận ra,
mạng nơron nhân tạo có chức năng huấn luyện chịu được giá trị nằm khỏi vùng này nhưng cách
huấn luyện này thường kém hiệu quả hơn là huấn luyện chuẩn
Tóm lại, cách thu thập dữ liệu có thể nói gọn lại như sau:
• Chọn những giá trị huấn luyện có tác dụng
• Dữ liệu số và danh định có thể xử lý trực tiếp bằng mạng nơron nhân tạo Chuyển những loại biến khác sang một trong các dạng này
• Cần hàng trăm hoặc hàng ngàn trường hợp mẫu huấn luyện; càng nhiều biến thì càng nhiều mẫu huấn luyện mạng nơron nhân tạo có khả năng nhận ra những biến hữu dụng để huấn luyện
6 Perceptron nhiều lớp
Ngày nay, Perceptron là cấu trúc mạng được dùng phổ biến nhất Mỗi nơron lấy tổng trọng
số và ngưỡng của ngõ vào, qua hàm truyền đến ngõ ra, các nơron được sắp xếp theo các lớp tới Vì thế mạng có thể mô phỏng các hàm phức tạp tùy theo số lớp và số nơron mỗi lớp
Tùy theo vấn đề mà các nơron có số ngõ vào và ngõ ra khác nhau Chúng ta không thể biết chính xác sẽ sử dụng bao nhiêu ngõ vào Tuy nhiên, chúng ta giả sử rằng số ngõ vào có thể chọn
Trang 9lựa dễ dàng Và để dễ dàng, thường ta chọn có một lớp ẩn và số nơron trong đó bằng một nửa tổng
số ngõ vào và ngõ ra
6.1 Huấn luyện Perceptron nhiều lớp
Khi số các lớp, số nơron mỗi lớp đã được chọn, trọng số và ngưỡng của mạng phải được cài đặt sao cho có được cực tiểu sai số trong việc dự đoán của mạng Đây chính là công việc của các thuật toán huấn luyện Các trường hợp mẫu chúng ta thu thập đưa qua mạng để mạng tự điều chỉnh trọng số và ngưỡng sao cho cực tiểu hóa lỗi Lỗi trong một cấu hình cụ thể của mạng được xác định bằng cách cho chạy tất cả các trường hợp huấn luyện qua mạng, so sánh giá trị ngõ ra của mạng với giá trị mong muốn Lỗi này được tính theo hàm sai số của mạng Thông thường hàm sai
số là tổng bình phương lỗi (SSE – Sum Squared Error)
Khái niệm cần biết thêm là mặt phẳng sai số Mỗi trọng số và ngưỡng trong tổng số N trọng
số và ngưỡng được xem là một chiều trong không gian Chiều thứ (N + 1) là sai số mạng Đối với bất kỳ cấu hình trọng số nào, lỗi cũng có thể vẽ ở chiều thứ (N+1), tạo thành mặt phẳng lỗi Đối tượng của việc huấn luyện mạng là tìm điểm thấp nhất trong mặt phẳng nhiều chiều này
Trong mạng tuyến tính có hàm sai số SSE, mặt phẳng sai số là parapol, nghĩa là có một giá trị nhỏ nhất Do đó chúng dễ dàng xác định giá trị cực tiểu Chúng ta không thể xác định được vị trí
giá trị nhỏ nhất của mặt phẳng sai số, và vì thế huấn luyện mạng mạng nơron nhân tạo cần phải
phân tích tỉ mĩ mặt phẳng sai số Từ cấu hình ngẫu nhiên các trọng số và ngưỡng ban đầu (nghĩa là điểm ngẫu nhiên trên mặt phẳng sai số) các thuật toán huấn luyện tìm kiếm đến giá trị nhỏ nhất Thông thường, việc tìm kiếm dựa trên gradient (độ dốc) trên mặt phẳng sai số tại điểm hiện tại, và sau đó sẽ di chuyển xuống giá trị nhỏ hơn Do đó có nhiều khả năng thuật toán dừng ở điểm thấp là điểm giá trị cực tiểu cục bộ (nhưng dù sao cũng hy vọng là giá trị nhỏ nhất)
6.2 Thuật toán backpropagation.
Các ví dụ phổ biến nhất về thuật toán huấn luyện mạng nơron nhân tạo là backpropagation
Các thuật toán bậc hai hiện đại như conjugate gradient descent và Levenberg – Marquardt cơ bản nhanh hơn trong nhiều vấn đề, nhưng backpropagation vẫn có một số ưu điểm trong một vài trường hợp khác, và là thuật toán dễ hiểu nhất
Trong backpropagation, vector gradient của mặt phẳng sai số được tính toán Vector này chỉ ra đường giảm dốc nhất và vị trí hiện tại, vì thế chúng ta biết rằng nếu chúng ta di chuyển dọc
Trang 10theo nó một “khoảng ngắn”, cuối cùng chúng ta sẽ đạt được giá trị nhỏ nhất Khó khăn ở đây là quyết định độ lớn của từng bước di chuyển.
Bước lớn có thể hội tụ nhanh hơn, nhưng có thể vượt quá điểm cần đến hay đi ra khỏi vùng
có cực tiểu (nếu mặt phẳng sai số bị lệch tâm) Ngược lại, bước quá nhỏ có thể đi đến đúng hướng nhưng chúng ta cần phải thực hiện phép lặp nhiều lần Trong thực tiễn, kích thước bước tỷ lệ với
độ dốc và hằng số đặc biệt: tốc độ học Giá trị chính xác tốc độ học phụ thuộc vào từng ứng dụng
cụ thể, và thường được chọn qua thực tiễn
Thuật toán thường có thêm khái niệm momentum Momentum sẽ thúc đẩy di chuyển đi theo theo một hướng xác định nếu sau khi qua nhiều bước đi cùng một hướng, thuật toán sẽ di chuyển nhanh hơn, đưa đến khả năng thoát khỏi vùng giá trị cực tiểu cục bộ và cũng có thể di chuyển nhanh chóng qua vùng bằng phẳng
Thuật toán do đó xử lý lặp đi lặp lại, sau một số epoch Ở mỗi epoch, các trường hợp huấn luyện sẽ được đưa ra xem xét trong mạng, các ngõ ra thực và mong muốn được so sánh và tính toán lỗi Lỗi này kết hợp với gradent mặt phẳng sai số, sử dụng để điều chỉnh trọng số và sau đó quá trình xử lý lặp lại Cấu hình mạng ban đầu là ngẫu nhiên, và huấn luyện chỉ dừng lại khi số vòng lặp epoch tối đa cho phép xảy ra hay khi sai số đạt được ở một mức cho phép, hoặc khi sai số không tăng nữa
6.3 Học quá mức và tổng quát hóa
Một vấn đề mà các kỹ thuật trên không thực sự cực tiểu sai số là khi chúng ta đưa một trường hợp mới vào mạng Nói cách khác, thuộc tính mong muốn nhất của mạng là khả năng tổng quát hóa các trường hợp mới Thực ra, mạng được huấn luyện cực tiểu hóa sai số dựa trên tập huấn luyện, tập này không hoàn hảo và hữu hạn, rõ ràng sẽ không đúng khi cực tiểu sai số trên mặt phẳng sai số thực – mặt phẳng sai số của mô hình cơ sở và chưa biết
Sự phân biệt ở đây chính là học quá mức hay khít quá mức Cách dễ nhất để minh họa khái
niệm này là việc dò theo đồ thị đường cong đa thức hơn là minh họa bằng mạng nơron nhân tạo
nhưng ý nghĩa thì giống nhau
Đa thức là phương trình có các hệ số và lũy thừa hằng số
y= 3x2 + 4x + 1
Trang 11Các đa thức khác nhau có đồ thị khác nhau, với bậc lớn hơn (và do đó có nhiều số hạng hơn) sẽ có đồ thị phức tạp hơn Với một tập dữ liệu cho trước, chúng ta muốn tìm ra đa thức biểu diễn dữ liệu này Dữ liệu có thể có nhiễu, vì thế chúng ta không cần thiết tìm ra phương trình đúng nhất cho tất cả các điểm Đa thức bậc thấp hơn sẽ không thể đủ chính xác với tất cả các điểm, trong khi đó đa thức bậc cao hơn chính xác tất cả các dữ liệu sẽ rất phức tạp, đa thức này sẽ có đồ thị không đúng với hàm cơ sở.
Mạng nơron nhân tạo cũng có vấn đề như vậy Mạng có càng nhiều trọng số thì hàm càng
phức tạp và do đó sẽ rơi vào tình trạng khít quá mức Mạng có ít trọng số hơn sẽ không đủ khả năng để mô phỏng hàm cơ sở Ví dụ như mạng không có các lớp ẩn chỉ mô phỏng hàm truyền tuyến tính đơn giản
Vậy chúng ta sẽ chọn lựa độ phức tạp của mạng đúng như thế nào? Mạng lớn hơn sẽ hầu như luôn luôn có được sai số nhỏ hơn, nhưng điều này có thể là khít quá mức hơn là một mô hình tốt
Câu trả lời là sử dụng xác nhận mức giao Vài mẫu huấn luyện được lưu lại và không thực
sự dùng cho huấn luyện trong thuật toán backpropagation Để thay thế, những mẫu này được sử dụng để kiểm tra độc lập trong quá trình của thuật toán Như vậy hiệu suất ban đầu của mạng luôn luôn bằng nhau ở những tập huấn luyện và xác minh lại Trong quá trình huấn luyện, sai số huấn luyện tự nhiên giảm xuống, và cho phép huấn luyện cực tiểu hóa hàm sai số thực, sai số xác minh cũng giảm xuống Tuy nhiên, nếu sai số xác minh không giảm, hay bắt đầu tăng lên, điều này có
nghĩa là mạng bắt đầu khít quá mức dữ liệu, và huấn luyện nên dừng lại (có thể cài đặt mạng
nơron nhân tạo tự động dừng lại khi bắt đầu học quá mức) Trường hợp khít quá mức xảy ra trong
quá trình xử lý huấn luyện gọi là học quá mức Trong trường hợp này, chúng ta nên giảm số nơron
ẩn hay/và lớp ẩn vì mạng quá mạnh đối với vấn đề này Ngược lại, nếu mạng không đủ mạnh để
mô phỏng hàm cơ sở, học quá mức không có khả năng xảy ra, cũng như sai số huấn luyện hay xác minh lại không rơi vào mức bão hòa
Những vấn đề liên quan đến cực tiểu cục bộ, và những quyết định sử dụng quá kích thước của mạng, nghĩa là chúng ta phải chạy thử trên nhiều mạng khác nhau, có thể huấn luyện mỗi mạng vài lần (để tránh rơi vào trường hợp cực tiểu cục bộ sai số) và quan sát hiệu suất từng mạng Điều quan trọng là quan sát sai số xác minh Tuy nhiên, nên nhớ rằng nên mô phỏng mạng đơn giản hơn
là mạng phức tạp, chúng ta cũng thể chọn mạng nhỏ hơn là mạng lớn có khả năng cải thiện sai số xác minh không đáng kể
Trang 12Vấn đề đối với kỹ thuật này về việc thí nghiệm lặp đi lặp lại là tập xác minh không thực sự đóng vai trò chọn lựa mạng, nghĩa là nó chỉ là một phần trong quá trình huấn luyện Độ tin cậy của
nó chỉ ở mức độ vừa phải – khi số lần thí nghiệm đủ, chúng ta có khả năng rơi vào trường hợp mạng thực hiện tốt trên tập xác minh Để thêm độ tin cậy hiệu suất của mô hình cuối cùng thì trong thực tế thường sử dụng thêm một tập thứ ba – là tập kiểm tra Mô hình cuối cùng được kiểm tra với tập dữ liệu kiểm tra để đảm bảo rằng kết quả của tập xác minh và huấn luyện là thật
Tóm lại, việc thiết kế mạng (khi các biến ngõ vào đã được chọn) gồm các bước sau:
• Chọn cấu hình ban đầu (thường một lớp ẩn có số nơron ẩn bằng nửa tổng số nơron ngõ vào và ngõ ra)
• Thực hiện lặp đi lặp lại số thí nghiệm của mỗi cấu hình, giữ lại mạng tốt nhất (thường dựa trên sai số xác minh) Thí nghiệm nhiều lần trên mỗi cấu hình mạng để tránh rơi vào sai số cục bộ
• Trong mỗi lần thí nghiệm, nếu xảy ra việc học chưa đủ (mạng không đạt được mức hiệu suất chấp nhận) thì thử tăng số nơron trong lớp ẩn Nếu không hiệu quả, thì thêm một lớp ẩn
• Nếu xảy ra học quá mức (sai số xác minh bắt đầu tăng lên) thử bỏ bớt một vài nơron ẩn (và có thể bỏ lớp ẩn)
6.4 Chọn lựa dữ liệu
Các bước mô tả trên đều dựa trên một giả định, đó là dữ liệu huấn luyện, xác minh và kiểm tra phải đại diện cho mô hình cơ sở (hơn nữa, ba tập này phải độc lập) Nếu dữ liệu huấn luyện không đặc trưng thì giá trị mô hình chỉ là một sự dàn xếp, xấu nhất có thể không sử dụng được
những gì đã xảy ra Nếu môi trường thay đổi, mối quan hệ nơron trong mạng không còn phù hợp nữa
• Tất cả các trường hợp phải được khái quát Mạng nơron nhân tạo chỉ có thể học từ những mẫu được đưa vào Do đó mạng nơron nhân tạo không thể có một quyết định đúng khi nơron chưa được huấn luyện
• Mạng chỉ có thể học theo cách dễ nhất mà nó có thể
mỗi epoch tốt hơn) Backpropagation có tính chất tốt như nhau nếu dữ liệu rất ít
Trang 13CHƯƠNG 2: MÔ HÌNH MẠNG NƠRON NHÂN TẠO
Mô hình mạng Nơron tổng quát có dạng như sau:
Ngày nay mạng Nơron có thể giải quyết nhiều vấn đề phức tạp đối với con người, áp dụng trong nhiều lĩnh vực như nhận dạng, định dạng, phân loại, xử lý tín hiệu, hình ảnh v.v…
1 Mô hình nơron và cấu trúc mạng
1.1 Mô hình nơron
Cấu trúc một Nơron
Ngõ vào một nơron có thể là đại lượng vô hướng hoặc có hướng, đại lượng này được nhân với trọng số tương ứng để đưa vào nơron, hoặc có thể cộng thêm ngưỡng (bias), thường bằng 1 Dưới đây là mô hình một nơron với ngõ vào vô hướng p không có ngưỡng b (hình bên trái) và có ngưỡng b (hình bên phải) Ngõ vào vô hướng p được nhân với trọng số vô hướng w tạo thành wp,
đối số wp (hình bên trái) qua hàm truyền f cho kết quả đầu ra là vô hướng a = f(wp) Hình bên phải là nơron có ngưỡng b, giá trị b được cộng với wp rồi qua hàm truyền f cho kết quả đầu ra là
vô hướng a = f(wp+b) Có thể điều chỉnh những thông số của nơron như trọng số và ngưỡng (w và
b) để đạt được yêu cầu mong muốn nghĩa là “huấn luyện” mạng
Trang 14Hàm truyền
Có rất nhiều hàm truyền áp dụng trong mạng nơron nhân tạo, trong đó ba hàm thường sử
dụng nhất là Hard Limit, Linear, Log-Sigmoid
Tổng quát với một hàm truyền có đầu vào là một hoặc một nhóm vector thì đầu ra là
Nơron với Vector nhập
Một nơron được cho trên hình vẽ sau với vector nhập p = [p1 , p2 , ……pR ], trọng số W = w1,1, w1,2,……w1,R, ngưỡng b và hàm truyền f Tổng đối số và ngưỡng tạo ở ngõ ra n là
n = w1,1p1 + w1,2,p2 + ……w1,R pR + b
hay n = W*p + b
Trang 15Nếu có nhiều nơron thì cách biểu diễn trên không hiệu quả, do đó có thể định nghĩa một lớp gồm nhiều nơron như sau.
S
R R
w w
w
w w
w
w w
w W
, 2
, 1 ,
, 2 2
, 1 1 , 2
, 1 2
, 1 1 , 1
Trang 16
Một lớp mạng được vẽ gọn như sau:
Cấu trúc định dạng của dữ liệu vào ảnh hưởng đến việc mô phỏng của mạng Có hai loại
mạng static network và dynamic network Hai kiểu vector đầu vào cơ bản là kiểu xảy ra đồng thời
(concurrently) và kiểu xảy ra liên tục theo thời gian (sequentially)
Kiểu đầu vào xảy ra đồng thời được mô phỏng trong mạng tĩnh (không có hồi tiếp hoặc trễ), thứ tự của các vector đầu vào không quan trọng và chúng không ảnh hưởng lẫn nhau
Trang 17Kiểu đầu vào xảy ra liên tục được mô phỏng trong mạng dynamic Thứ tự các giá trị đầu vào rất quan trọng Trong trường hợp này, giá trị đầu ra thu được là do giá trị vào hiện tại và giá trị vào trước đó Nếu thay đổi thứ tự của dữ liệu vào thì sẽ làm thay đổi dữ liệu ra.
3 Kiểu huấn luyện
Trong phần này mô tả hai kiểu huấn luyện khác nhau
liệu vào mạng Kiểu này ứng dụng trong cả hai mạng tĩnh và động, tuy nhiên thường dùng trong mạng động nhiều hơn, như là những bộ lọc thích ứng
• Batch training: trọng số và ngưỡng của mạng chỉ được cập nhập sau khi tất cả dữ
liệu đã vào mạng, dùng trong cả hai mạng tĩnh và động
Cấu trúc một mạng có thể mô tả bằng số lớp, số nơron trong một lớp, hàm truyền của mỗi lớp và kết nối giữa các lớp Tùy thuộc vấn đề mạng cần giải quyết mà có cấu trúc khác nhau
Nếu một ánh xạ tuyến tính cần mô tả nên sử dụng nơron tuyến tính Tuy nhiên, mạng tuyến tính không thể thực hiện bất cứ tính toán phi tuyến nào Sử dụng hàm truyền phi tuyến để tạo cho mạng có khả năng thực hiện mối quan hệ phi tuyến giữa đầu vào và đầu ra Mạng có ngưỡng b có thể mô tả mối quan hệ giữa đầu vào và đầu ra dễ dàng hơn mạng không có ngưỡng b
Ví dụ một nơron không có ngưỡng sẽ luôn tạo ra ngõ vào zero cho hàm truyền (khi tất cả ngõ vào nơron là zero) Tuy nhiên một nơron với ngưỡng có thể học để tạo ra một ngõ nhập cho bất kỳ hàm truyền
Trang 18CH ƯƠ NG 3: BACKPROPAGATION
Backpropagation thực hiện dựa trên quy luật học Widrow–Hoff tổng quát hóa cho mạng
đa lớp và các hàm truyền phi tuyến khác nhau Mạng có ngưỡng, một lớp sigmoid và một lớp tuyến tính ngõ ra có thể mô phỏng bất kì hàm nào với số mẫu rời rạc hữu hạn
Thuật toán Backpropagation chuẩn là gradient descent, chính là quy luật học Widrow–Hoff Khái niệm Backpropagation mô tả cách tính gradient trong mạng đa lớp phi tuyến Thuật toán cơ bản có một số thay đổi dựa trên các kỹ thuật tối ưu hóa chuẩn như là các phương pháp
“conjugate gradient” và “Newton”
Mạng Backpropagation được huấn luyện chính xác sẽ cho đáp ứng hợp lý khi đưa ngõ vào chưa từng được huấn luyện Thông thường tín hiệu mới vào có ngõ ra tương tự với ngõ ra chính xác của tín hiệu vào đã được huấn luyện giống với ngõ vào mới này Do tính chất tổng quát hóa này, ta có thể huấn luyện mạng dựa trên các cặp vào/ra đại diện mà vẫn cho kết quả tốt đối với các tín hiệu chưa được huấn luyện
1 Tổng quát
1.1 Cấu trúc
Phần này sẽ trình bày cách thiết kế mạng thường sử dụng với thuật toán Backpropagation _ mạng feedforward đa lớp
1.1.1 Mô hình nơron ( tansig, logsig, purelin )
Nơron cơ bản có R ngõ vào, mỗi ngõ vào có trọng số tương ứng là W Tổng của các ngõ vào có trọng số và ngưỡng tạo nên tín hiệu vào của hàm truyền f Nơron có thể sử dụng nhiều loại hàm truyền khác nhau để tạo ra tín hiệu ngõ ra
Trang 19Mạng đa lớp thường sử dụng hàm truyền log_sigmoid.
Hàm truyền logsig tạo giá trị ngõ ra giữa 0 và 1 khi ngõ vào biến thiên từ -: đến +: Hơn nữa, mạng đa lớp cũng có thể sử dụng hàm truyền tansig
Nếu lớp cuối cùng của mạng đa lớp có các nơron sigmoid thì ngõ ra của mạng giới hạn trong một vùng nhỏ Nếu sử dụng nơron tuyến tính thì ngõ ra của mạng có thể lấy bất kỳ giá trị nào
1.1.2 Mạng feedforward
Mạng một lớp gồm các nơron logsig có hai ngõ vào như sau:
Trang 20Mạng này thường có một hay nhiều lớp ẩn gồm các nơron sigmoid, lớp ngõ ra thường gồm các nơron tuyến tính Các nơron trong các lớp ẩn có hàm truyền phi tuyến cho phép mạng học các mối quan hệ tuyến tính và phi tuyến giữa vector ngõ vào và ngõ ra Lớp ngõ ra tuyến tính cho phép mạng tạo giá trị ra khoảng (-1,1).
Mặt khác nếu muốn ép buộc ngõ ra của mạng (ví dụ giữa 0 và 1) thì lớp ngõ ra nên sử dụng hàm truyền sigmoid (ví dụ logsig)
a Hàm tạo mạng (newff)
Bước đầu tiên huấn luyện mạng feedfoward là tạo đối tượng mạng Hàm newff tạo mạng
feedforward
Ví dụ:
Net= newff ( [-1 2; 0 5],[3 1],{‘tarsig’,’purelin’},’traingd’) ;
Hàm trên tạo mạng hai ngõ vào, hai lớp có hàm truyền là tansig và purelin, dùng thuật
toán gradient descent
Trang 21Trước khi huấn luyện mạng feedforward, trọng số và ngưỡng phải được khởi tạo Dùng
lệnh init để tạo giá trị đầu cho trọng số và ngưỡng.
Ví du ï: net = init (net)
Kỹ thuật cụ thể sử dụng khởi tạo giá trị mạng phụ thuộc vào các thông số mạng như
net.initFcn và net.Layer{I}.initFcn Thông số net.initFcn sử dụng xác định hàm khởi động trên
toàn mạng Hàm mặc định cho mạng feedforward là initlay, cho phép mỗi lớp sử dụng hàm khởi động riêng của nó Với cách cài đặt này, thông số net.layers{i}.initFcn xác định phương pháp
khởi động cho mỗi lớp
Đối với mạng feedforward có 2 phương pháp khởi động lớp khác nhau, thường được sử
dụng là initwb và initnw Hàm initwb tạo giá trị khởi động trở về giá trị cũ đã khởi động của
từng trọng số và ngưỡng Đối với mạng feedforward giá trị khởi động của trọng số thường dùng
hàm rand cho giá trị ngẫu nhiên giữa (-1,1) Cách này thường sử dụng khi hàm truyền lớp là tuyến tính Hàm initnw thường sử dụng với mạng feedforward có hàm truyền sigmoid Phương
pháp này dựa trên kỹ thuật Nguyễn và Widrow, tạo giá trị trọng số và ngưỡng ban đầu cho một lớp trong vùng họat động của nơron lớp đó với mọi không gian ngõ vào Phương pháp này có nhiều ưu điểm như: ít nơron bị thừa và công việc huấn luyện nhanh
Hàm khởi động init thường được hàm newff gọi, do đó mạng tự động khởi tạo các giá trị
mặc định Tuy nhiên người sử dụng nếu muốn có thể khởi tạo lại trọng số và ngưỡng
và ngõ ra Hàm hiệu suất mặc định của mạng feedforward là trung bình bình phương sai số
Thuật toán Backpropagation
Trang 22Có nhiều thuật toán Backpropagation khác nhau Cách thực hiện đơn giản nhất là cập nhật trọng số và ngưỡng trực tiếp sao cho hàm hiệu suất giảm nhanh nhất _ gradient có giá trị âm Mỗi vòng lặp thuật toán được viết lại như sau:
xk+1 = xk - αkgk
Với xk: vector trọng số và ngưỡng hiện tại
gk: gradient hiện tại
k : tốc độ học
Có hai cách thực hiện gradient descent là chế độ incremental và chế độ batch Trong chế
độ incremental, gradient được tính và cập nhật trọng số sau mỗi ngõ vào đưa vào mạng Trong chế độ batch, tất cả các ngõ vào đưa vào mạng trước khi cập nhật trọng số
a Huấn luyện incremental (ADAPT)
Trong chế độ incremental, việc huấn luyện mạng sử dụng hàm adapt Có nhiều thông số phải được thiết lập để hướng dẫn huấn luyện ở chế độ incremental Đầu tiên, hàm net.adaptFcn xác định sử dụng loại hàm huấn luyện Giá trị mặc định là hàm adaptwb Thông số xác định
hàm học là net.biases{i,j}.learnFcn, net.inputWeight{I,j}.learnFcn và
net.layerweights{i,j}.learnFcn Cuối cùng là thông số xác định số lần huấn luyện net.adaptParam.passes.
b Hàm gradient descent (LEARNGD)
Đối với thuật toán giảm gradient nhanh nhất, trọng số và ngưỡng di chuyển theo hướng
gradient âm của hàm hiệu suất Với thuật toán này, hàm học là learngd Hàm learngd có một thông số học là tốc độ học lr Tốc độ học càng lớn, thì bước nhảy càng lớn Nếu tốc độ học quá
lớn, thuật toán sẽ không ổn định Nếu tốc độ học quá nhỏ, thuật toán sẽ hội tụ lâu
c Hàm gradient descent có quán tính (LEARNGD)
Bổ sung cho hàm learngd hội tụ nhanh hơn, mạng feedforward có thể sử dụng thuật toán
learndm _ giảm dốc nhất có quán tính Quán tính cho phép mạng đáp ứng không chỉ với gradient
cục bộ, mà còn theo hướng mới của mặt phẳng sai số Hoạt động giống bộ lọc thông thấp, moment cho phép mạng bỏ qua các biểu hiện nhỏ trên mặt phẳng sai số
Moment thay đổi trọng số bằng tổng một phần sự thay đổi trọng số cuối cùng và sự thay đổi mới nhất theo quy luật học backpropagation Biên độ ảnh hưởng của độ thay đổi trọng số