MỤC LỤC
Lời cảm ơn
Nhận xét của giáo viên
Lời nói đầu
Mục lục
Chương I: TỔNG QUAN VỀ MẠNG NEURAL
I. LỊCH SỬ PHÁT TRIỂN CỦA MẠNG NEURAL 1
II. MẠNG NEURAL VÀ CÁC KHÁI NIỆM CƠ BẢN 2
II.1. Giới thiệu về mạng Neural 2
II.2. Cấu trúc và phân loại mạng Neural 6
II.2.1. Phân loại theo cấu trúc 6
II.2.2. Phân loại theo phương pháp dạy 7
II.3. Cấu trúc mạng Neural 8
II.3.1. Mạng Neural một lớp 8
II.3.1. Mạng Neural nhiều lớp 9
III. LUẬT HỌC VÀ CÁC PHƯƠNG PHÁP DẠY MẠNG 11
III.1. Luật học sữa lỗi 11
III.2. Luật học Hebbian 11
III.3. Luật học cạnh tranh 13
III.4. Giải thuật học Delta 13
III.5. Giải thuật học Delta tổng quát 16
III.6. Các mạng nuôi tiến và giải thuật truyền ngược 19
V. KHÁI QUÁT MỘT SỐ MẠNG NEURAL NHÂN TẠO 22
V.1. Mạng Maccalox 22
V.2. Mạng Perceptron 23
V.3. Mạng Multilayer Perceptrons 24
V.4. Mạng Hopfield 27
V.5. Mạng Hemmin 28
V.6. Mạng Functional Link Net 28
VI. CÁC ỨNG DỤNG CỦA MẠNG NEURAL 29
Chương II: DỰ BÁO VÀ CÁC PHƯƠNG PHÁP DỰ BÁO
I. KHÁI NIỆM CHUNG 31
II. CÁC PHƯƠNG PHÁP DỰ BÁO NHU CẦU ĐIỆN NĂNG 32
II.1. Phương pháp bình phương cực tiểu 32
II.1.1 Khái niệm chung 32
II.1.2. Các biểu thức toán học để xác định các hệ số của mô hình dự báo 33
II.2. Phương pháp tính hệ số vượt trước 35
II.3. Phương pháp tính trực tiếp 35
II.4. Phương pháp so sánh đối chiếu 36
II.5. Phương pháp chuyên gia 36
II.6. Phương pháp san bằng hàm mũ 36
II.7. Phương pháp ngoại suy theo thời gian 39
II.8. Phương pháp tương quan 41
III. KẾT QUẢ DỰ BÁO THEO PHƯƠNG PHÁP SAN BẰNG HÀM MŨ 42
Chương III: THIẾT KẾ MẠNG NEURAL ỨNG DỤNG VÀO DỰ BÁO
I. LỰA CHỌN VÀ PHÂN TÍCH DỮ LIỆU ĐẦU VÀO 47
I.1 Phương pháp chuỗi thời gian 47
I.2 Phương pháp tương quan 50
II. MẠNG NEURAL VÀ GIẢI THUẬT BACKPROPAGATION 52
II.1. Mạng Neural 52
II.2. Giải thuật BackPropagation 53
III. TRÌNH TỰ THIẾT KẾ 55
Chương IV: GIỚI THIỆU CHƯƠNG TRÌNH NEURAL NETWORK
I. NHẬP DỮ LIỆU 58
I.1. Cấu trúc mạng 59
I.2. Dữ liệu đầu vào 60
I.3. Dữ liệu đầu ra 62
I.4. Trọng số và Bias 62
I.5. Hàm truyền 63
II. HUẤN LUYỆN MẠNG 65
III. KẾT QUẢ HUẤN LUYỆN VÀ QUÁ TRÌNH DỰ BÁO 66
III.1. Kết quả huấn luyện 66
III.2. Dự báo 70
III.2.1. Dự báo với thông số vừa huấn luyện 70
III.2.2. Dự báo với thông số có sẵn 71
III.2.3. Cập nhật dữ liệu 72
IV. KẾT QUẢ DỰ BÁO ỨNG VỚI NHỮNG THÔNG SỐ MẠNG KHÁC NHAU 73
V. KẾT LUẬN 74
Phụ lục1: CODE CHƯƠNG TRÌNH 76
Phụ lục 2:SỐ LIỆU VÀ KẾT QUẢ DỰ BÁO 120
Tài Liệu Tham Khảo
30 trang |
Chia sẻ: maiphuongdc | Lượt xem: 1438 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Luận văn Thiết kế lưới địa chính đo vẽ bản đồ địa chính tỷ lệ 1/500-1/2000 khu vực thị xã Rạch Giá, huyện Châu Thành tỉnh Kiên Giang, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
gian dạy mạng và được xác định bởi:
- Đặc tính của bài toán (tuyến tính, phi tuyến, liên tục, gián đoạn..)
- Thuận lợi cho việc ứng dụng máy tính.
- Thuật toán dạy mạng.
+ Lớp (layer): Mạng Neural có thể có một hay nhiều lớp. Lớp đầu vào gọi là input layer, lớp cuối cùng có giá trị đầu ra là output thì gọi là output layer (lớp output). Các lớp còn lại gọi là hidden layer (lớp ẩn).
+Khái niệm dạy mạng: là quá trình làm thay đổi các thông số trong mạng (trọng số, Bias) cho phù hợp với kích thích bên ngoài, sau đó chúng lưu giữ các giá trị này. Cách dạy được xác định thông qua cách thức thay đổi thông số.
Đó là:
-Mạng Neural được kích thích bởi đầu vào .
- Mạng Neural thay dổi các thông số theo kết quả kích thích.
- Mạng Neural phản ứng lại một kích thích mới bằng những thay đổi tìm thấy trong cấu trúc mạng.
II.2. Phân loại mạng Neural
II.2.1 Phân loại theo cấu trúc:
Mô hình kết nối của các mạng Neural nhân tạo dựa vào cấu trúc có thể được chia ra làm hai loại: Mạng nuôi tiến và mạng nuôi lùi.
Mạng feedforward :
Hình 1.12
Các Neural tạo thành nhóm trong các lớp , tín hiệu truyền từ lớp input đến lớp ouput . Các Neural không cùng lớp thì nối với nhau nhưng các Neural cùng lớp thì không nối với nhau . Ví dụ như mạng perceptron nhiều lớp , mạng chuẩn hoá vecto học hỏi , mạng điều khiển phát âm và mạng lưu trữ dữ liệu .
Mạng recurrent :
hình 1.13
Các đầu ra của một số Neural hồi tiếp lại chính nó hay các Neural ở các lớp kế cận. Mạng recurrent có bộ nhớ động , ngõ ra của nó phản ánh input hiện hành như các input và output trước đó . Ví dụ như mạng Hopfied, mạng Elman, mạng Jordan.
II.2.2 Phân loại theo phương pháp dạy:
1.Mạng học hỏi có giám sát
Đầu ra thực tế y
Mạng
Neural
w
Đầu vào x
đầu ra mong muốn d
Sai số
Hình 1.14 Mô hình mạng huấn luyện có giám sát
Thuật toán này dùng để điều chỉnh sự khác nhau giữa các output thực tế và output yêu cầu tương ứng từng mẫu đưa vào. Ví dụ như qui tắc delta do Windrow và Hoff đưa ra vào năm 1960, thuật toán giải thuật lan truyền ngược (backpropagation) do Rumelhart và Mc Clellan đưa ra năm 1986, thuật toán vecto học hỏi do Kohonen đưa ra năm 1989.
2.Mạng học hỏi không giám sát
Mạng Neural
w
Hình 1.15 Mô hình huấn luyện không giám sát
Thuật toán này không đòi hỏi cần biết trước ngõ ra yêu cầu. Trong quá trình huấn luyện các mẫu nhập đưa vào mạng và thuật toán tự điều chỉnh các trọng số kết nối, các mẫu nhập có đặc điểm tương tự sẽ ở trong cùng một lớp. Ví dụ như thuật toán học hỏi cạnh tranh ATR của Carpenter và Grossberg đưa ra vào năm 1988.
đầu vào x đầu ra thực tế y
3.Mạng học hỏi có điều chỉnh
Thuật toán học hỏi có điều chỉnh sử dụng tiêu chuẩn đánh giá các đặc điểm tốt của output mạng tương ứng và input đưa vào. Ví dụ như thuật toán Gen do Holland đưa ra năm 1975.
Mạng
Neural
Hình 1.16 Mô hình huấn luyện có điều chỉnh
Đầu vào x Đầu ra thực tế y
Tín hiệu
Hồi tiếp
tín hiệu tăng cường
II.3 Cấu trúc mạng Neural
II.3.1. Mạng Neural có một lớp : Bao gồm các phần tử xử lý trên cùng mức.
S
f
S
f
S
f
Hình 1.17 Mạng Neural nuôi tiến một lớp
w1,1 a1
p1
b1
p2
a2
p3
b2
wS,R aS
pR
bS
Trong đó:
- pi: Dữ liệu đầu vào.
- a = f(wp + b) (1.3)
- R :số lượng vecto đầu vào
- S : số lượng Neural trong một lớp
Trong mạng này, mỗi đầu vào p được nối với mỗi Neural thông qua ma trận trọng số W. Mỗi Neural có một bộ tổng để cộng các trọng số và bias. Kết quả của chúng là đầu vào của hàm f.
Thường thì số vecto đầu vào khác với số Neural (R¹S). Trong mạng không bắt buộc số đầu vào bằng số Neural (R=S).
Ma trận trọng số w
Chỉ số hàng trong ma trận cho biết nơi đến Neural và chỉ số cột cho biết nơi bắt đầu xuất phát từ input của trọng số .
Ví du: W1,2 cho biết trọng số xuất phát từ input thứ 2 và kết thúc ở Neural thứ 1.
Tín hiệu hồi tiếp
Hình 1.18 Mạng Neural nuôi lùi một lớp
S
f
S
f
S
f
a1
p1
b1
p2
b2 a2
pR aS
b3
II.3.2. Mạng Neural nhiều lớp
Trong mạng Neural có thể có nhiều lớp. Mỗi lớp có một ma trận trọng số w và một bias b, và một output a. Lớp Neural đầu tiên gọi là lớp đầu vào, lớp Neural cuối là lớp đầu ra, các lơp Neural giữa hai lớp đầu vào và đầu ra gọi là lớp ẩn. Trong mạng Neural một lớp, chỉ có một lớp đầu vào, một lớp đầu ra và một lớp ẩn. Để phân biệt các giá trị này trong các lớp ta dùng các chỉ số như hình vẽ bên dưới.
S
f
S
f
S
f
S
f
S
f
S
f
S
f
S
f
S
f
P1 a1,1 a1,2 a1,n
b1,1 b1,1 b1,n
P2 a2,1 a2,2 a2,n
b2,1 b2,1 b2,n
Pr ar,1 ar,2 ar,n
br,1 br,1 br,n
Hình 1.19 Mạng Neural nuôi tiến nhiều lớp
Input layer
Hidden layer
Output layer
S
f
S
f
S
f
S
f
S
f
S
f
S
f
S
f
S
f
P1 a1,1 a1,2 a1,n
b1,1 b1,2 b1,n
P2 a2,1 a2,2 a2,n
b2,1 b2,2 b2,n
Pr ar,1 ar,2 ar,n
br,1 br,2 br,n
Hình 1.20 Mạng Neural nuôi lùi nhiều lớp
Lớp cuối cùng có giá trị đầu ra là output thì gọi là output layer, lớp đầu
vào (input) gọi là input layer. Các lớp còn lại gọi là hidden layer (lớp ẩn). Một
vài tác giả thì cho rằng input là lớp thứ 4.
III. LUẬT HỌC VÀ CÁC PHƯƠNG PHÁP DẠY MẠNG
Học là quá trình làm thay đổi các thông số trong mạng (trọng số) cho phù hợp với kích thích bên ngoài, sau đó chúng lưu giữ các giá trị này. Cách học hỏi được xác định thông qua cách thức thay đổi thông số.
Định nghĩa của việc học bao hàm các ý sau:
- Mạng Neural được kích thích bởi đầu vào.
- Mạng Neural thay đổi các trọng số theo kết quả kích thích.
- Mạng Neural phản ứng lại một kích thích mới bằng những thay đổi tìm thấy trong cấu trúc mạng.
Có nhiều cách học trong mạng nhưng ở đây chỉ đề cập một số luật học chủ yếu:
III.1. Luật học sửa lỗi (Error-Correction Learning)
- Gọi dk là giá trị đầu ra mong muốn của Neural thứ k.
- yk là giá trị đầu ra thực.
- ek là sai số của Neural thứ k.
Ta có công thức tính sai số ở lần thứ n:
ek(n) = dk(n) – yk(n) (1.4)
Tổng sai số trong mạng:
E= (1.5)
Giá trị trọng số thay đổi như sau :
(1.6)
Với Dwkj(n) = hek(n)xj(n) (1.7)
Trong đó: h là tốc độ dạy (là một hằng số)
x là giá trị đầu vào (input)
III.2. Luật Hebbian (Hebbian Learning)
Định luật Hebb: Gia tăng trọng số của kích thích nếu muốn đầu ra của Neural tác động đối với kích thích. Ngược lại, giảm trọng số của kích thích nếu không muốn đầu ra của Neural tác động đối với kích thích đó.
Donald Hebb đã đề xuất sơ đồ học tập để cập nhật các liên kết nút mà ngày nay chúng ta gọi là qui tắc huấn luyện Hebb. Mỗi khi một Neural được kích hoạt lặp đi lặp lại bởi một Neural khác, ngưỡng kích hoạt của Neural thứ hai giảm đi, do đĩ sự truyền đạt giữa 2 Neural này được dễ dàng bởi sự kích hoạt lặp lại.
Một đặc tính quan trọng của qui tắc này là việc huấn luyện được thực hiện một cách cục bộ, tức là sự thay đổi trọng số kết nối giữa hai Neural chỉ phụ thuộc vào hoạt động của 2 Neural đĩ.
Ý tưởng này cĩ thể mở rộng cho các hệ thống nhân tạo. Cĩ nhiều cơng thức tốn học khác nhau để diễn tả qui tắc Hebb. Cơng thức sau đây được sử dụng phổ biến nhất. Theo qui tắc Hebb, khi cĩ sự hoạt động chạy từ Neural thứ j đến Neural thứ i, trọng số tự sẽ tăng. Ơng cho rằng thơng tin cĩ thể được lưu trữ trong kết nối và kỹ thuật huấn luyện của ơng đã cĩ những đĩng gĩp nền tảng cho lý thuyết mạng Neural.
Nếu biểu thị hoạt động của Neural thứ j bằng xj và đầu ra của Neural thứ i là yi, thì trọng số kết nối được cho bởi:
∆wij = ŋ xj yi (1.8)
Xj Yi
Hình 1.21
Ở đây ŋ là tham số để hiệu chỉnh sự thay đổi trọng số. Chú ý rằng qui tắc Hebb cĩ tính cục bộ đối với trọng số và khác với các qui tắc huấn luyện (perceptron, truyền đạt ngược), khơng cĩ đầu ra yêu cầu trong qui tắc Hebb và chỉ cĩ đầu vào cần chảy qua mạng Neural.
Viết lại phương trình trên ta có:
w(t+1) = w(t) + ŋ x(t) y(t) (1.9)
Ở đây t biểu thị số bước lặp và ŋ là độ lớn của bước lặp. Nếu ta cĩ một Neural tuyến tính, thì thay y = wx ta cĩ:
w(t+1) = w(t) . ( 1+ŋ x2(t)) (1.10)
Như vậy, trong số cĩ khả năng tăng khơng giới hạn, làm cho các huấn luyện viên Hebb khơng ổn định về bản chất, cĩ thể sinh ra các trọng số dương hoặc âm rất lớn. Để khống chế sự tăng khơng giới hạn của trọng số, Oja và Sanger đưa ra sự tiêu chuẩn hoá vào qui tắc Hebb.
Qui tắc Oja:
Oja đề xuất tiêu chuẩn hố qui tắc Hebb. Chúng ta phân trọng số được cập nhật bằng chuẩn của tất cả các trọng số kết nối:
Oja cho sự xấp xỉ vào qui tắc cập nhật này như sau:
wi (t+1) = wi (t) + η y(t) [x(t) – y(t) wi (t)] = wi (t) [ 1 - η y2(t) ] + η xi (t) y(t). (1.11)
Ở đây x(t) – y(t).wi (t) là sự hoạt động tiêu chuẩn hố, nĩ là một “hệ số quên” tỉ lệ với bình phương của ngõ ra.
Qui tắc Sanger:
Sanger đã sửa đổi qui tắc Oja để thực hiện làm giảm. Mơ tả tĩm tắt qui tắc Sanger như sau:
Giả sử mạng cĩ M đầu ra cho bởi:
yi (t) = ∑ wij(t) xj(t), i = 1,M (1.12)
và đầu vào (N<M). Theo qui tắc Sanger, các trọng số được cập nhật như sau:
∆wij(t) = ηyi(t)[ xj(t) - wkj(t)yk(t) ] (1.13)
Chú ý rằng các trọng số được cập nhật khơng cĩ tính cục bộ. Tất cả các ngõ vào trước đĩ được yếu cầu để cập nhật cho trọng số wij.
III.3. Luật học cạnh tranh (Competitive Learning)
Mạng học tập cạnh tranh đơn giản nhất cĩ một lớp ngỏ ra, kí hiệu yi, mỗi ngỏ ra này được nối với tất cả ngỏ vào xi thơng qua trọng số wij. Phương pháp này được mơ tả như sau: cho x là ngỏ vào của mạng 2 lớp liên kết bởi trọng số wij. Luật học tập cạnh tranh cơ bản được cho như sau :
∆wi*j = η( xj – wi*j ) (1.14)
với Wi* được chuyển theo x, i* là phần của trọng số ứng với nút thắng được cập nhật. Nút thắng là ngỏ ra lớn nhất. Nĩi cách khác cĩ thể viết:
∆wij = ηyi ( xj – wij ) (1.15)
điều này xuất hiện trong tập luật của Hebb về sự phân rả. Đây là cách phối hợp của Kohonen trong thuật tốn đầu tiên của ơng. Học tập cạnh tranh địi hỏi một chiến lược tồn diện. Nĩ trở thành hoạt động tiêu biểu cho tất cả các thuật tốn của Kohonen.
III.4. Giải thuật học delta
Luật học Delta dựa trên tính chất của đạo hàm mà nền tảng là phương thức giảm nên có thể dùng cho hàm truyền bất kỳ (tuyến tính hay không tuyến tính).
Đạo hàm
Định nghĩa :
Đạo hàm của hàm số f tại điểm x thuộc miền xác định, kí hiệu là f’(x), được cho bởi :
f’(x)= (1.16)
Nếu f’(x)>0 thì ta nói rằng f tăng tại x, nếu f’(x)<0 thì ta nói rằng hàm f giảm tại x, còn nếu f’(x)=0 thì hàm f có một cực trị tại x
f(x) f
f(x)-f(xn)
x-xn
x
xn x
Hình 1.22
Phương trình đường thẳng d đi qua điểm (x0,f(x0)) được cho bởi:
(1.17)
suy ra
y=f(x0) + (x-x0)f’(x0) (1.18)
Gọi x1 là giao điểm của d và trục hoành, suy ra x1 là nghiệm của phương trình :
f(x0) + (x-x0)f’(x0)=0 (1.19)
Þ x1 = x0 –f(x0)/f’(x0) (1.20)
Tổng quát ta có :
xn+1 = xn + (1.21)
Quá trình trên được gọi là phương thức giảm. Áp dụng điều này cho trọng số w, ta thấy ở vòng lặp kế wn+1 phải thoả tính chất :
f(wn+1)<f(wn) (1.22)
Tức là giá trị của f tại wn+1 phải nhỏ hơn giá trị trước đó tại wn
Trong luật học sửa sai, mỗi phép lặp theo phương thức giảm sẽ tìm hướng giảm tại wn để với một h>0 cho trước sao cho:
f(wn-hf’(wn))<f(wn) (1.23)
đặt wn+1 là vecto
wn+1 = w - hf’( wn ) (1.24)
Đặt f : Rn®R là một hàm thực và đặt eỴRn với =1 là một hướng cho trước. Đạo hàm của f theo hướng e tại w được định nghĩa như sau:
(1.25)
Nếu e = (0,…,1,…,o)T tức e là một hướng cơ sở trong không gian vecto thì thay vì ¶ef(w), ta viết ¶if(w) , được định nghĩa bởi:
(1.26)
Gradient của f tại w, kí hiệu f’(w), được định nghĩa:
f’(w)=(¶1f(w),…,¶nf(w))T (1.27)
Mô tả luật học delta
Xét một Neural sử dụng hàm truyền là hàm tuyến tính, thế thì vecto trọng số tìm được trong giải thuật học sẽ là một đường thẳng (trường hợp không gian hai chiều). Điều này có nghĩa là luật học cho hàm tuyền tuyến tính chỉ là một hàm tuyến tính mà thôi.
Tuy nhiên, nếu hàm truyền là phi tuyến thì khó có một xấp xỉ tốt. Đó là lý do tại sao người ta dùng hàm kích hoạt là hàm bán tuyến tính .
Đầu ra của Neural :
y()=f(wTx) (1.28)
Mẫu thứ Giá trị đầu vào Đầu ra mong muốn
1 d1
2 d2
... ………………. …
k dk
Hệ lấy xk làm đầu vào, tạo ra kết quả yk của riêng nó rồi so sánh với kết quả mong muốn dk ,sai lệch của mẫu thứ k được tính như sau:
Ek=(dk - yk)2 = (yk – f(wTx))2 (1.29)
Sai lệch của tất cả các mẩu:
E == E1 + E2 + … + Ek (1.30)
Luật học sẽ thay đổi w theo hướng làm cực tiểu hoá sai lệch bằng cách sử dụng phép lặp:
w = w - hE’k(w) (1.31)
với
= - (yk –f(wTx))f’(wTx) (1.32)
Tóm tắt giải thuật:
Cho trước k mẫu dữ liệu:
í(x1,d1),…, (xk,dk)ý
với xk = (,…,) và dk Ỵ R, k=1,….,k.
Do tính chất không tuyến tính của hàm truyền mà giải thuật khó có thể dừng đúng nghĩa (giá trị tạo bởi mạng Neural bằng đúng giá trị đầu ra mong muốn hay sai lệch = 0). Do đó người ta thiết lập tiêu chuẩn dừng theo một giá trị sai lệch Emax cho phép nào đó: khi sai lệch E nhỏ hơn hoặc bằng Emax thì dừng lại.
Trong thực tế người ta còn dùng tiêu chuẩn dừng theo một số lần lặp xác định.
Bước 1: chọn trước giá trị h>0 và Emax>0.
Bước 2 : khởi tạo ngẫu nhiên trọng số w, bắt đầu với mẫu thứ nhất k=1và gán sai lệch E=0.
Bước 3: bắt đầu quá trình học, gán x=xk và d=dk. Đầu ra của mạng Neural tính theo:
y = y()=f(wTx) (1.33)
Bước 4: cập nhật trọng số
w = w-hE(w) (1.34)
Bước 5: tính sai lệch bằng cách cộng thêm sai lệch hiện tại
E = E + ½(d-y)2 (1.35)
Bước 6: nếu k<K thì k=k+1 và trở lại bước 3. Nếu không thì qua bước 7.
Bước 7: kết thúc chu kỳ học: Nếu E£Emax thì kết thúc quá trình học. Còn nếu E>Emax thì gán E=0 và bắt đầu một chu kỳ học mới bằng cách quay trở lại bước 3.
III.5. Giải thuật học Delta tổng quát
Luật học delta ở trên ứng dụng cho một Neural. Bây giờ xét trong trường hợp tổng quát cho một mạng Neural đa tầng và dẫn đến giải thuật Delta tổng quát, hay còn gọi là giải thuật lan truyền ngược sai lệch.
Luật học lan truyền ngược sai lệch rất phức tạp, việc dẫn xuất cần nhiều phương thức toán học. Nhằm đơn giản cho việc trình bài, ở đây chỉ chỉ minh họa cho trường hợp mạng Neural hai tầng có một đầu ra.
Độ sai lệch giữa giá trị tạo ra của mạng Neural với giá trị mong muốn cho một mẫu dữ liệu học được cho bởi:
Hình 1.23
x1
x2 y
xn
Ek(W,w) = (dk -yk)2 (1.36)
Độ sai lệch tổng thể được tính bằng cách lấy tổng các độ sai lệch:
E(W,w) = (1.37)
Đầu ra của mạng Neural:
Yk = (1.38)
Trong đó ok là giá trị đầu ra của lớp ẩn, được tính bởi:
(1.39)
Với w1 là vecto trọng số của Neural thứ nhất.
Luật để thay đổi trọng số được cho theo phương thức giảm gradient, tức là chúng ta sẽ cực tiểu hoá độ sai lệch quân phương bằng cách dùng hàm lặp:
W = w-h (1.40)
Wl = wl-h (1.41)
Trong đó h là hệ số học.
Sử dụng luật dây chuyền để rút ra hàm tổng hợp:
=-(dk-yk)yk(1- yk)ok (1.42)
Vậy luật thay đổi trọng số của đầu ra là:
W = W + h(dk-yk)yk(1- yk)ok = W + hdkok (1.43)
Xét riêng lẻ cho từng trọng số thì :
Wi =Wi + hdkoki (1.44)
Với i =1,..,N (số Neural )
dk= (dk-yk)yk(1- yk) (1.45)
Đối với lớp ẩn , ta tính Ek như sau:
= - yk(1- yk )wlokl(1-okl)xk (1.46)
luật thay đổi cho trọng số lớp ẩn là :
wl=wl + hdk wlokl(1-okl)xk (1.47)
Xét riêng từng trọng số thì :
Wij =wij + hdk wlokl(1-okl)xkj (1.48)
j=1,..,n
Tóm tắt giải thuật
Bước 1: chọn trước giá trị h > 0 và Emax > 0
Bước 2: chọn ngẫu nhiên giá trị trọng số w,bắt đầu với mẫu thứ nhất k=1 và gán sai lêch E=0
Bước 3: bắt đấu quá trình học, gán x = xk, d= dk. Đầu ra của mạng Neural được tính theo công thức:
(1.49)
trong đó ok là giá trị đầu ra của lớp ẩn, được tính bởi:
(1.50)
Bước 4: cập nhật trọng số Neural đầu ra:
W=W + hdo (1.51)
Với d = y(d - y)(1 - y)
Bước 5: cập nhật trọng số Neural lớp ẩn:
wl=wl + hd wlol(1-ol)x (1.52)
Bước 6: tính sai lệch bằng cách cộng thêm sai lệch hiện tại
E = E + ½ (d - y)2 (1.53)
Bước 7: nếu k<K thì k =k+1 và trở lại bước 3. Nếu không thì bước 8
Bước 8: kết thúc chu kỳ học . Nếu E £ Emax thì kết thúc . Còn nếu E> Emax thì gán E = 0 và bắt đầu chu kỳ học mới bằng cách quay trở lại bước 3.
III.6. Các mạng nuôi tiến và giải thuật truyền ngược.
Giải thuật truyền lùi (back propagation algorithm) là một trong các giải thuật quan trọng nhất trong lịch sử phát triển của các mạng Neural nhân tạo. Giải thuật được sử dụng để huấn luyện các mạng nuôi tiến nhiều lớp với các phần tử xử lý trong mạng có hàm tác động là hàm phi tuyến. Mạng nuôi tiến nhiều lớp kết hợp với giải thuật truyền lùi còn được gọi là mạng truyền lùi (back propagation network). Nếu cho tập hợp các cặp mẫu huấn luyện vào-ra (x(k),d(k)) với k=1,2,…,p, giải thuật sẽ cung cấp một thủ tục cho việc cập nhật các trọng số kết nối trong mạng truyền lùi từ lớp Neural đầu ra đến lớp Neural đầu vào. Giải thuật vận hành theo hai luồng dữ liệu: Đầu tiên các mẫu huấn luyện được truyền từ lớp Neural đầu vào đến lớp Neural đầu ra và cho kết quả thực sự y(k) của lớp Neural đầu ra. Sau đó các tín hiệu sai lệch giữa đầu ra mong muốn và đầu ra thực sự của mạng được truyền lùi từ lớp đầu ra đến các lớp đứng trước để cập nhật các trọng số kết nối trong mạng.
Để làm rõ các nguyên lý làm việc của các mạng nuôi tiến được kết hợp với giải thuật truyền lùi, ở đây ta chỉ xem xét một mạng nuôi tiến ba lớp đó là lớp Neural đầu vào, lớp Neural ẩn và lớp Neural đầu ra và từ đó ta có thể mở rộng các nguyên lý làm việc cho các mạng nuôi tiến nhiều lớp hơn.
Giả sử lớp Neural đầu vào của mạng có m đầu vào: x1, x2,…, xm , lớp Neural ẩn của mạng có l phần tử xử lý với các đầu ra là: z1, z2,…, zl và lớp Neural đầu ra của mạng có n phần tử xử lý với n đầu ra là: y1, y2, …, yn . Ta cũng giả sử rằng vqj là trọng số kết nối giữa đầu vào thứ j của lớp Neural đầu vào với phần tử xử lý thứ q của lớp Neural ẩn và wiq là trọng số kết nối giữa phần tử xử lý thứ q của lớp Neural ẩn với phần tử xử lý thứ i của lớp Neural đầu ra. Hình 1.16 mô tả mạng Neural ba lớp với giải thuật truyền lùi.
x1 y1
x1 y2
xm yn
xj (j=1,…,m) vq,j zq (q=1,…,l) wi,q yi (i=1,…,n)
Hình 1.24
Cho cặp mẫu huấn luyện (x,d), hàm tổng hợp cho mỗi phần tử xử lý thứ q của lớp Neural ẩn là:
netq= (1.54)
và đầu ra của nó là:
zq=a(netq) (1.55)
Hàm tổng hợp cho mỗi phần tử xử lý thứ i của lớp Neural đầu ra là:
neti= (1.56)
và đầu ra của nó là:
yi=a(neti) (1.57)
Nếu hàm đánh giá để đo sai lệch giữa đầu ra mong muốn và đầu ra thực sự của mạng được định nghĩa với dạng:
E(w)= (1.58)
Vì thế các trọng số giữa lớp Neural đầu ra và lớp Neural ẩn có thể được cập nhật bằng một lượng:
(1.59)
Sử dụng luật Chain cho ():
Ta có: (1.60)
Trong đó: ,
và
Do đó, ta có: (1.61)
Nếu cho tín hiệu sai lệch thì các trọng số kết nối giữa lớp Neural ẩn và lớp Neural đầu ra có thể được cập nhật bằng:
(1.62)
Việc cập nhật các trọng số kết nối giữa lớp Neural ẩn và lớp Neural đầu vào sử dụng luật:
hay: (1.63)
trong đó:
,
và , với i=1,…,n
Do đó, ta có:
hay: (1.64)
trong đó dhq là tín hiệu sai lệch của phần tử xử lý thứ q trong lớp Neural ẩn được cho bởi:
(1.65)
Một cách tổng quát, cho mạng nuôi tiến Q lớp, q=1,2,…,Q và qneti và qyi là đầu vào và đầu ra của phần tử xử lý thứ i của lớp Neural thứ q. Mạng có m Neural đầu vào và n Neural đầu ra. Cho qwị là trọng số kết nối giữa q-1yj và qyi. Giải thuật truyền lùi được kết hợp với mạng nuôi tiến Q lớp để tìm ra các trọng số kết nối xấp xỉ thích nghi cho mạng được mô tả như sau:
Nhập: tập các cặp mẫu huấn luyện {(x(k),d(k))/k=1,2,…,p}, trong đó các vectơ đầu vào với các phần tử cuối cùng được gán bằng –1, đó là:xm+1(k)=-1.
Bước 0: thiết lập hằng số học h>0, và thiết lập sai lệch Emax cho phép giữa đầu ra mong muốn và đầu ra thực sự của mạng. Thiết lập các trọng số ban đầu. Thiết lập E=0 và k=1.
Bước 1: Gán mẫu đầu vào thứ k với lớp Neural đầu vào (q=1):
qyi=1yi=xi(k) cho tất cả i.
Bước 2: Truyền tín hiệu tiến thông qua mạng sử dụng công thức:
qyi=a(qneti)=a(qwij.q-1yj) (1.66)
cho mỗi phần tử xử lý thứ i ở lớp thứ q và cho đến khi q đạt đến lớp Neural đầu ra Qyi.
Bước 3: Tính giá trị sai lệch và các tín hiệu sai lệch cho lớp Neural đầu:
E=(di(k)-Qyi)2+E (1.67)
Qdi=(di(k)-Qyi).a’(Qneti) (1.68)
Bước 4: Truyền các tín hiệu sai lệch lùi để cập nhật các trọng số và tính các tín hiệu sai lệch q-1di cho các lớp đứng trước:
Dqwijnew=hqdi.q-1yj và qwijnew=qwijold+Dqwij (1.69)
q-1di=a’(q-qneti)qwij.qdj cho q=Q,Q-1,…,2 (1.70)
Bước 5: Kiểm tra xem nếu k<p thì cho k=k+1 và quay về bước 1 mặt khác đi đến bước 6.
Bước 6: Kiểm tra xem tổng sai lệch hiện có nếu E<Emax thì kết thúc quá trinhg huấn luyện và xuất các trọng số được xem là các trọng số kết nối xấp xỉ thích nghi cho mạng, mặt khác, thiết lập lại E=0, k=1 và thực hiện quá trình huấn luyện mới khác bằng cách quay trở về bước 1.
Tóm tắt
Hầu hết các giải thuật học đều dựa trên sai lệch giữa kết quả thực hiện bởi Neural với kết quả mong muốn. Đó là một quá trình sửa sai theo giải thuật tổng quát gọi là lan truyền ngược sai lệch ( Back Propagatio ). Có thể phát biểu như sau:
Trong quá trình học, giá trị đầu vào được đưa vào nạng theo dòng chảy 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 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ó sai lệch giữa hai giá trị này thì đi ngược mạng từ đầu ra về đầu vào để thay đổi một số kết nối hay trọng số .
Đây là một quá trình lặp liên tục và có thể không dừng khi không thể tìm được các giá trị trọng số 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ừng dựa trên một sai số nào đó giữa hai giá trị này, hay dựa trên một số lần lặp xác định.
V. KHÁI QUÁT MỘT SỐ MẠNG NEURAL NHÂN TẠO
V.1. Mạng Maccalox
Vào năm 1943 Maccalox và học trò của ông là Pet đã đưa ra những học thuyết cơ bản của bộ não con người. Kết quả là họ đã đưa ra được mô hình Neural như một phần tử vi xử lý đơn giản có thể tính vecto đầu ra qua giá trị đầu vào, hàm truyền và bộ trọng số.
Điểm yếu của mô hình Neuraln này là hàm truyền có dạng ngưỡng tức là từng Neural xác định tổng trạng thái của các Neural khác và so sánh với ngưỡng để xác định giá trị của mình. Vì thế mạng này dạy rất khó.
å
Hình 1.25 Mạng Maccalox
X1 W1
X2 W2 Y
Xn … Wn
Trong đó :
Y=f(net) = (1.71)
là ngưỡng xác định giá trị Y
V.2. Mạng Perceptron
Luật học perceptron được Frank Rosenblatt đưa ra vào cuối những năm 1950 là một tiêu biểu cho nguyên lý sửa sai theo giải thuật lan truyền ngược sai lệch. Hàm truyền trong luật học này là hàm ngưỡng tuyến tín