Giả sử chúng ta muốn huấn luyện mạng với một tập dữ liệu huấn luyện mẫu bao
gồm giá trị đầu vào là xp và giá trị đầu ra mong muốn là dp. Với mỗi đầu vào được cung
cấp sẵn, đầu ra của mạng sai khác so với đầu ra mong muốn dp một lượng là (dp – yp),
trong đó yp là đầu ra thực sự của mạng với đầu vào xp. Ta định nghĩa một hàm lỗi tại
đối với các noron đầu ra:
= ( − ) (2.2) Trong đó No là tổng số các noron đầu ra Chúng ta xét noron k với đầu vào là các đầu ra của các noron trong lớp trước đó. Như phần phân tích cấu trúc của một noron ở trên ta có các biểu thức tại noron k này: 18 1 = ( − ) (2.1) 1 1 2
=
là tín hiệu đầu ra của noron k với mẫu p.
(2.3)
là tín hiệu đầu vào cho noron k cũng chính là đầu ra của các noron ở lớp trước
Mục đích quá trình học đối với thuật toán làn truyền ngược là điều chỉnh các tham số tự do sao cho hàm lỗi tổng cộng Ep đạt cực tiểu. Phương pháp tìm cực tiểu thông dụng
nhất là tính đạo hàm của hàm số và dịch chuyển vector tham số lại gần điểm đạo hàm triệt
tiêu theo chiều ngược với vector gradient của hàm số. Ý tưởng của phương pháp này là
được định nghĩa bởi công thức.
γ là hằng số tỷ lệ và chính là tốc độ học của mạng
Chúng ta có thể viết
Việc còn lại là phải tính . Để tính được nó chúng ta thực hiện một chút biến đổi
′
19
= . (2.4)
thay đổi các trọng số wkj một lượng là ∆
∆ = − (2.5) = . (2.6) = (2.7) = − ∆ = (2.8) = − = − . (2.9) = (2.10)
Trong công thức (2.10) giá trị ′ chính là đạo hàm của hàm truyền tại noron k Để tín h đư ợc ta xét 2 trường hợp.
Trường hợp thứ nhất: noron k đang xét là noron đầu ra của mạng (k = o). Trong
trường hợp này chúng ta có:
Do đó:
Trường hợp thứ hai: noron k đang xét thuộc lớp ẩn (k = h). Trong trường hợp này
chúng ta không thể biết được sự sai khác giữa đầu ra mong muốn của noron với đầu ra thực tế như trường hợp thứ nhất. Tuy nhiên chúng ta có thể tính toán thông qua các noron
thuộc lớp đầu ra như sau: Coi
= . = . =
(2.13)
Đo đó
′
Phương trình (2.12) và (2.14) đưa ra một thủ tục đệ quy cho việc tính toán δ đối với
tất cả các noron trong mạng. Sau khi tính được δ chúng ta sẽ dễ dàng tính được sự biến
thiên trọng số liên kết theo công thức (2.8).
Trên cơ sở đó thuật toán lan truyền ngược sai số để huấn luyện mạng MLP được mô
tả chi tiết hơn như sau:
20 = −( ) = − (2.11) = = ( − ). ′( ) (2.12) = ( , ,……., , … ) khi đó: = ( )
INPUT: tập mẫu học được cung cấp dưới dạng (x = (x1,x2,..,xp),y = (y1,y2,..,yq)) với số lượng mẫu là N
OUTPUT: các ma trận trọng số w1,w2,..,wM và các vector ngưỡng tại các nơ ron ở các lớp b1,b2,..,bM
PROCESS:
Bước 1: Khởi tạo các tham số mạng (trọng số và ngưỡng), hệ số học η, sai số tối đa cho phép Emax và số lần huấn luyện tối đa I.
Khởi tạo k = 1 (mẫu học thứ k), i = 1 (lần huấn luyện thứ i)
Bước 2: Đưa mẫu huấn luyện thứ k vào mạng
Bước 3: Lan truyền xuôi tín hiệu đầu vào lần lượt qua các lớp nơ ron (từ lớp ẩn thứ nhất, qua lớp ẩn thứ hai, .., đến lớp đầu ra) để tính đầu ra tương ứng tại mỗi lớp theo công thức (2.0)
Bước 4: Tính sai số E và tín hiệu sai số ở lớp đầu ra của mạng theo công thức (2.12) và (2.13).
Bước 5: Lan truyền ngược tín hiệu sai số (từ lớp đầu ra, qua lớp ẩn cuối cùng,.., đến lớp ẩn đầu tiên) để cập nhật trọng số và ngưỡng tại các lớp nơ ron cũng như tính tín hiệu sai số cho lớp trước nó theo các công thức (2.10)(2.11) và (2.7)
Bước 6: Nếu k<N (chưa hết số mẫu học) thì k:=k+1 và quay lại bước 2, ngược lại chuyển tới bước 7
Bước 7: Tính sai số trung bình sau lần huấn luyện thứ i với tập mẫu gồm N mẫu
N k=1
Nếu E<Emax hoặc i>I thì trả về các ma trận trọng số và các vector ngưỡng và kết thúc quá trình huấn luyện. Ngược lại gán i:=i+1 rồi lặp lại các bước từ 2 tới 7
Như vậy tôi đã trình bày về mạng noron cũng như thuật toán lan truyền ngược. Đó là những cơ sở lý thuyết để tôi tiến hành đi vào xây dựng mô hình chương trình của tôi sau này.
Chương 4. MẠNG NORON CHO QUÁ TRÌNH DỰ ĐOÁN