2.3.2.1 Cấu trúc mạng Neural
Mỗi Neural (nút) là một đơn vị xử lý thông tin của mạng neural, là yếu tố cơ bản để cấu tạo nên mạng neural.
input xi uk yk
b
Hình 2.8: Cấu trúc 1 nơ ron (Neural)
Trong đó:
xi: các tín hiệu vào.
wik: trọng số của từng input f(.): hàm hoạt động
yk: kết xuất của Neural
b: thông số ảnh hưởng đến ngưỡng ra của output
2.3.2.1.1 Mạng truyền thẳng một lớp
Đây là cấu trúc mạng neural đơn giản nhất. Mạng neural này chỉ gồm 1 lớp xuất, không có lớp ẩn. Hình 2.9: Cấu trúc mạng neural một lớp 2.3.2.1.2 Mạng truyền thẳng nhiều lớp F (.) w2k ∑ wik
Hình 2.10: Cấu trúc mạng neural nhiều lớp
Mạng neural nhiều lớp có thể giải quyết các bài toán phi tuyến nhờ vào các lớp ẩn. Các lớp ẩn này xen giữa các input bên ngoài và output của mạng. Càng nhiều lớp ẩn thì khả năng mở rộng thông tin càng cao và xử lý tốt mạng có nhiều input và output. Ngoài ra còn có mạng hồi quy và mạng Neural dạng lưới.
2.3.2.2 Hàm hoạt động (hàm truyền)
Các hàm hoạt động phải có các đặc tính sau: - Hàm bị chặn trên và chặn dưới
- Hàm có tính đơn điệu
- Hàm phải có tính liên tục và trơn
Trong thực tế thông thường người ta thường chọn các hàm sau:
2.3.2.2.1 Hàm Threhold f (u) = (2.17) 2.3.2.2.2 Hàm piecewwise – linear (2.18) 2.3.2.2.3 Hàm sigmoid (logistic)
(2.19)
2.3.2.2.4 Hàm tang - hyperbol
(2.20)
2.3.2.3 Tiến trình học
Tiến trình học là tiến trình quan trọng của con người, nhờ học mà bộ não ngày càng tích luỹ những kinh nghiệm để thích nghi với môi trường và xử lý tình huống tốt hơn. Mạng neural xây dựng lại cấu trúc bộ não thì cần phải có khả năng nhận biết dữ liệu thông qua tiến trình học, với các thông số tự do của mạng có thể thay đổi liên tục bởi những thay đổi của môi trường và mạng neural ghi nhớ giá trị đó. teach/use X1 W1 X2 W2 Inputs Output Xn Wn Teaching input Hình 2.11: Tiến trình học
Trong quá trình học, giá trị đầu vào được đưa vào mạng và lan truyền thẳng trong mạng tạo thành giá trị ở đầu ra.
Tiếp đến là quá trình so sánh giá trị tạo ra bởi mạng Neural với giá trị ra mong muốn. Nếu hai giá trị này giống nhau thì không thay đổi gì cả. Tuy nhiên, nếu có một sai lệch giữa hai giá trị này vượt quá giá trị sai số mong muốn thì đi ngược mạng từ đâu ra về đầu vào để thay đổi trọng số một số kết nối.
Đây là một quá trình lặp liên tục và có thể không dừng khi không tìm các giá trị W sao cho đầu ra tạo bởi mạng Neural bằng đúng đầu ra mong muốn. Do đó trong thực tế người ta phải thiết lập tiêu chuẩn dựa trên một giá trị sai số nào đó của hai giá trị này, hay dựa trên một số lần lặp xác định.
Để tiện cho việc trình bày, ta ký hiệu o là giá trị kết xuất của mạng Neural, t là giá trị ra mong muốn, e là sai lệch giữa hai giá trị này:
(2.21)
2.3.1.4 Giải thuật Back – Propagation (lan truyền ngược) 2.3.1.4.1 Định nghĩa
Lan truyền ngược được tạo ra bằng cách khái quát hóa các quy tắc học tập Widrow -Hoff cho các mạng nhiều lớp và các hàm truyền phi tuyến khả vi. Vector đầu vào và các vector mục tiêu tương ứng được sử dụng để đào tạo một mạng cho đến khi nó có thể gần đúng một hàm truyền, vector đầu vào liên kết với các vector đầu ra cụ thể, hoặc sắp xếp vector đầu vào một cách thích hợp tùy theo quy định của bạn. Mạng với những sai lệch, một lớp sigmoid, và một lớp đầu ra tuyến tính có khả năng xấp xỉ một hàm bất kỳ với một số hữu hạn các điểm gián đoạn.
Tiêu chuẩn lan truyền ngược là một thuật toán giảm độ dốc, giống như quy luật học tập Widrow-Hoff, trong đó trọng số mạng được thay đổi hay di chuyển dọc theo những giá trị âm của gradient của hàm hiệu suất. Thuật ngữ lan truyền ngược được sử dụng vì nó liên quan đến phương cách tính toán gradient của các mạng neural nhiều lớp phi tuyến. Sự điều chỉnh các trọng số này được thực hiện ở bước
quay ngược lại tức là bước từ tầng xuất quay ngược qua các tầng ẩn đến tầng ẩn đầu tiên. Mặc dù không chắc chắn nhưng hầu hết các trọng số đều hội tụ về một giá trị và quá trình học kết thúc.
Hiện nay có khá nhiều biến thể của thuật toán cơ bản lan truyền ngược được xây dựng, chúng hầu hết dựa trên các kỹ thuật cơ bản của tối ưu hóa như phương pháp gradient liên hợp hoặc phương pháp Newton.
Trong thực tế để tiến hành thiết kế hoặc sử dụng các mạng neural lan truyền ngược để học hay huấn luyện các mạng truyền thẳng nhằm giải một bài toán cụ thể nào đó, các bước cơ bản sau đây thường được tiến hành:
• Tập hợp các dữ liệu được học hoặc huấn luyện;
• Xây dựng mạng neural;
• Huấn luyện mạng;
• Ứng dụng mạng neural để mô phỏng các dữ liệu mới. Sơ đồ khối của mạng lan truyển ngược được biết như sau (hình).
Ngõ
Hình 2.12 : Sơ đồ khối mạng lan truyền ngược Batch mode (chế độ hàng loạt):
Có nhiều biến thể của thuật toán lan truyền ngược. Trong đó thực hiện việc học lan truyền ngược đơn giản nhất là cập nhật các trọng số mạng và những sai lệch theo hướng mà trong đó các hàm hiệu suất giảm nhanh nhất - những giá trị âm của gradient.
Một lần lặp của thuật toán này có thể được viết:
Mục tiêu So sánh Mạng Neural gồm tất cả các kết nối(được gọi là các trọng số) giữa các neural Ngõ vào trọng số Điều chỉnh
(2.22)
trong đó là vevtor trọng số hiện tại, là gradient hiện tại và là tốc độ
học.
Có 2 cách khác nhau để thực hiện thuật toán giảm độ dốc gradient: chế độ gia tăng và chế độ hàng loạt. Trong chế độ gia tăng, gradient được tính toán và các trọng số được cập nhật với mỗi yếu tố đầu vào được áp dụng cho mạng. Trong chế độ hàng loạt, tất cả các yếu tố đầu vào được áp dụng cho mạng trước khi các trọng số được cập nhật.
Batch Training (train) : trong chế độ hàng loạt, các trọng số và những sai lệch của mạng được cập nhật sau khi toàn bộ tập huấn luyện đã được áp dụng vào mạng. Gradient tính tại mỗi lần huấn luyện được cộng thêm vào với nhau để xác định sự thay đổi trong trọng số và những sai lệch.
Batch Gradient Descent (traingd): hàm huấn luyện giảm độ dốc hàng loạt nhanh nhất là hàm traingd. Trọng số và những sai lệch được cập nhật theo hướng giá trị âm gradient của hàm hiệu suất (hàm traingdx kết hợp huấn luyện tỷ lệ học tập thích nghi với momentum (động lượng).
2.3.1.4.2 Quá trình học (huấn luyện)
Thuật toán Back – Propagation được sử dụng để điều chỉnh các trọng số kết nối sao cho tổng sai số E nhỏ nhất.
(2.23) Trong đó:
: giá trị của tập mẫu
Trước tiên , ta xét trên 1 Neural, mỗi Neural đều có giá trị vào và ra, mỗi giá trị đều có một trọng số để đánh giá mức độ ảnh hưởng của giá trị vào đó. Thuật toán Back – Propagation sẽ điều chỉnh các trọng số đó để giá trị ek = tk – ok là nhỏ nhất.
Trước hết ta phải xác định vị trí của mỗi neural. Neural nào là của lớp ẩn và nào là của lớp xuất. Ta cần biết các ký hiệu:
wịj: vector trọng số của neural j với số đầu vào i ok: vector giá trị kết xuất của neural trong lớp k x1 tk W1j x2 W2j ok xi-1 ek W(i – 1)j xi sum Wij Neural j
Hình 2.13: Mô hình tính toán một neural
- Giá trị sai số của neural k tại vòng lặp thứ n
k k k (2.24)
- Tổng bình phương sai số của mạng neural:
(2.25)
trong đó m là tổng số neural của lớp ra. - Giá trị đầu ra tại neural j của một lớp bất kỳ:
(2.26)
+
Với . Trong đó là trọng số
liên kết từ đầu vào thứ i đến neural thứ j, là giá trị đầu vào thứ I đến neural
thứ j, m là số phần tử của lớp trước đó.
- Tại mỗi đầu ra k ta tính giá trị lỗi :
(2.27) Với tk là giá trị đầu ra mong muốn thứ k.
- Đốivới mỗi neural trong lớp ẩn :
(2.28) Với outputs là tập hợp các neural ở lớp ra, là trọng số liên kết từ k
neural lớp ra đến neural j của lớp ẩn. - Quá trình cập nhật lại trọng số:
(2.29) Nếu η được gọi là hệ số học (tốc độ học) thì ∆ = η .
- Sau khi cập nhật những trọng số này, các mẫu trong tập mẫu lại tiếp tục đưa vào mạng, quá trình này sẽ tiếp tục diễn ra khi giá trị lỗi E<ε cho trước :
(2.30) Với outputs là tập hợp các neural ở lớp ra, là giá trị ra mong muốn của
neural thứ k cho mẫu huấn luyện d, và là giá trị ra thực của neural k.