Trong các phần trước đ• trình bày các phương pháp học mạng nơron theo kiểu có thầy. Mỗi mạng cần
tín hiệu đích để xác định được hành vi của mạng đúng đắn. Ngược lại, phần này sẽ trình bày một số
phương pháp học mạng nơron theo kiểu không có thầy (unsupervisor learning). Các phương pháp này đem đến cho mạng khả năng học sự liên hợp giữa các mẫu xẩy ra cùng nhau thường xuyên. Sau khi học, các sự liên hợp này cho phép mạng nơron thực hiện công việc như nhận dạng hoặc gọi lại dạng
đ• học.
Một sự liên hợp là mọi liên kết giữa đầu vào và đầu ra của một hệ thống, ví dụ khi một mẫu A được
đưa vào hệ thống thì sẽ có phản ứng ở đầu ra là mẫu B. Khi hai mẫu được liên kết bởi một sự liên
hợp, mẫu vào được gọi là tác nhân (stimulus), và mẫu ra được gọi là phản ứng (response).
Một ví dụ điển hình của Ivan Pavlov là việc huấn luyện một con chó để nó tiết nước bọt khi có một
tiếng chuông, bằng việc rung chuông khi có thức ăn cho nó. Và kết quả sau một thời gian huấn luyện,
con chó tiết nước bọt khi có tiếng chuông mặc dù không có thức ăn.
Đ• có một số nghiên cứu phát triển học liên hợp này, Anderson và Kohonen đ• phát triển mạng nơron
liên hợp tuyến tính vào những năm cuối 1960 và đầu 1970 độc lập với Grossberg, ông đ• giới thiệu
mạng nơron liên hợp phi tuyến trong thời gian đó. Sau đây tôi trình bày một số thuật toán như vậy.
3.4.1. Mô hình nơron liên hợp đơn giản
Ví dụ về một mạng nơron đơn giản có khả năng ứng dụng liên hợp. Một nơron một đầu vào với hàm chuyển là hardlim như sau.
Hình 3.131- Liên hợp một đầu vào Hard Limit
Để đơn giản chúng ta hạn chế đầu vào p là nhị phân (0 hoặc 1) cho biết một tác nhân có hay không.
Đầu ra a được giới hạn tương tự bởi hàm chuyển của nơron là hardlim, nó cho biết phản ứng đầu ra
có hay không.
Thể hiện một sự liên hợp giữa tác nhân p=1 và phản ứng a=1 được chỉ ra bởi giá trị trọng số w. Mạng nơron sẽ phản ứng đối với tác nhân nếu w lớn hơn -b (trong ví dụ là 0.5).
Một tập các đầu vào được gọi là tác nhân không điều kiện (unconditioned stimulus), điều này tương tự
với tác nhân là thức ăn của con chó trong ví dụ của Pavlov. Một tập các đầu vào khác được gọi là tác
nhân có điều kiện, tương tự với tiếng chuông của Pavlov. Ban đầu con chó chỉ tiết nước bọt khi có thức ăn, đó là đặc tính bẩm sinh của nó không phải học. Tuy nhiên khi tiếng chuông được lặp lại với thức ăn, con cho có điều kiện để tiết nước bọt khi có tiếng chuông, thậm chí cả khi không có thức ăn. Chúng ta gọi tác nhân không điều kiện là p0 và tác nhân có điều kiện là p. Giả sử trọng số liên kết tới p0 là cố định, nhưng trọng số liên kết tới p sẽ được điều chỉnh trong quá trình học.
Ví dụ chúng ta xây dựng mạng nơron nhận dạng quả chuối. Mạng có một tác nhân không điều kiện là
hình dáng quá chuối, còn tác nhân có điều kiện là mùi vị.
Hình 3.132- Liên hợp của quả chuối
Chúng ta định nghĩa các đầu vào có điều kiện và không có điều kiện của mạng này là:
ở đây chúng ta muốn mạng có sự liên hợp của hình dáng quá chuối, không có mùi vị với sự phản ứng là quả chuối. Có thể đặt w0 là một giá trị lớn hơn -b và w là một giá trị nhỏ hơn -b, ta chọn như sau: w0 = 1, w = 0
Vậy đầu ra của mạng sẽ là:
a = hardlim(p0-0.5)
Điều này cho thấy mạng chỉ phản ứng là quả chuối nếu có hình dáng (p0=1), bất kể mùi vị có hay không (p=0 hoặc p=1).
3.4.2. Luật học Hebb
Luật học Hebb được phát biểu như sau:
(3.133)
a(q) là đầu ra của mạng với đầu vào là p(q), ? là hệ số học. Thứ tự các mẫu huấn luyện đưa vào mạng là
Một cách phát triển luật học Hebb đó là thêm vào một hệ số suy yếu trọng số như sau:
(3.134)
trong đó ? gọi là tốc độ suy yếu, là một giá trị dương nhỏ hơn 1. Nếu ?=0 thì sẽ trở về dạng chuẩn của Hebb, nếu ? tiến tới 1 thì luật học sẽ quên nhanh các mẫu vào cũ và chỉ ghi nhớ các mẫu mới.
3.4.3. Luật học Kohonen
Luật học Kohonen được phát biểu như sau:
với (3.135)
X(q) là tập các trọng số liên kết sẽ được điều chỉnh. Với hàm chuyển của nơron là hardlim thì có thể
thực hiện luật học Kohonen bằng cách địng nghĩa một tập X(q) các giá trị i sao cho ai(q)=1. 3.5. Học cạnh tranh ( competitive learning )
2.5.1. Mô hình một lớp nơron cạnh tranh
Một lớp nơron cạnh tranh sẽ có hàm chuyển là C, với đầu ra sẽ là
Hàm này thực hiện tìm một chỉ số i* của nơron có tổng đầu vào lớn nhất và đặt đầu ra của nơron đó bằng 1, còn lại các nơron khác đặt đầu ra bằng 0.
Hình 3.136- Lớp nơron cạnh tranh 3.5.2. Học cạnh tranh
Học cạnh tranh tức là tại một thời điểm, chỉ các trọng số liên kết của một nơron được điều chỉnh, đó
là nơron thắng trong hàm cạnh tranh C. Và luật học cạnh tranh được phát biểu như sau:
với i=i* (là nơron thắng) với các i ? i*
3.6. Kết luận
Như chúng ta thấy, có khá nhiều phương pháp huấn luyện mạng nơron, mỗi phương pháp sẽ có một
kiến trúc mạng thích hợp. ở đây chúng tôi chỉ tập trung vào việc huấn luyện mạng nơron dựa vào hàm
đánh giá hiệu quả hoạt động của mạng. Đó là hàm đặc trưng thực hiện (perfromance index function),
và sử dụng phương pháp tụt gradient được trình bày trong thuật toán lan truyền ngược.
Tuy nhiên việc chọn một kiến trúc mạng tổng quát cho các bài toán là không hợp lý, hơn nữa có nhiều vấn đề mà chúng ta không thể lựa chọn được một kiến trúc mạng cho nó. Vậy chúng ta phải thực hiện việc xây dựng kiến trúc mạng thông qua việc huấn luyện, và đây là một vấn đề đang được nghiên cứu
khá sôi nổi. Trong phần tiếp theo chúng tôi sẽ trình bày một vài phương pháp như vậy.
chương 4
xây dựng mạng nơron để xấp xỉ hàm phi tuyến
Đểứng dụng mạng nơron vào giải quyết các bài toán thực tiễn, cụ thểở đây chúng tôi chọn bài toán
xấp xỉ hàm, chúng ta cần phải xây dựng một kiến trúc mạng và thực hiện thuật toán học trên mạng đó
để thu được mạng hoạt động theo mong muốn. Trong các phần trước đ• trình bày một số kiến trúc mạng và các thuật toán học mạng nơron, qua đó đ• trình bày các ưu nhược điểm của mỗi kiến trúc cũng như thuật toán học tương ứng. Tuy nhiên trong thực tế, việc chọn sẵn và cố định một kiến trúc mạng đối với từng bài toán là khó đạt được mong muốn và không phù hợp.
Với kiến trúc mạng truyền thẳng nhiều lớp được sử dụng nhiều nhất trong các ứng dụng thực tế. Các
phương pháp học mạng truyền thống chỉ thực hiện trên một kiến trúc mạng cố định. Điều này sẽ thực
hiện tốt và thành công khi kiến trúc mạng được chọn một cách chính xác để giải quyết bài toán. Nếu
một mạng quá nhỏ không thể học giải quyết tốt bài toán đặt ra, nhưng với mạng quá lớn sẽ dẫn tới hiện tượng quá khớp (overfit) và thực hiện quá tồi. Điều này cũng tương tự với việc khớp đường cong sử dụng các đa thức. Xét một tập dữ liệu được sinh từ đường cong của một hàm số và thêm vào một
số nhiễu ở đầu ra. Một đa thức với quá nhiều hệ số sẽ khớp chính xác với các nhiễu trong tập dữ liệu
và kết quả biểu diễn đường cong của hàm rất tồi. Với một số lượng tối ưu các hệ số của đa thức thì
đ• thức sẽ thực hiện biểu diễn đường cong tốt nhất của hàm và dự đoán tốt các dữ liệu mới.
Chúng ta biết rằng với một mạng nơron có 3 lớp (lớp vào - lớp ẩn - lớp ra) có thể xấp xỉ một hàm phi tuyến bất kz với bất kz độ chính xác tùy { (đ• được chứng minh). Trong các ứng dụng thực tế người ta
chỉ sử dụng mạng nơron 3 lớp là đủ, và ở đây ta chỉ xây dựng kiến trúc mạng bằng cách lựa chọn số
nơron cho mỗi lớp. Thông thường có 2 phương pháp tiếp cận xây dựng mạng nơron, đó là cách tiếp
cận hướng xây dựng (constructive) và hướng loại bỏ (destructive). 4.1. Xây dựng mạng nơron theo hướng loại bỏ - Destructive learning 4.1.1. Giới thiệu
Với kiến trúc mạng truyền thẳng 3 lớp, cách tiếp cận xây dựng mạng nơron theo hướng loại bỏ là bắt
đầu với một mạng nơron có số nơron trong mỗi lớp là đủ lớn, thuật toán này loại bỏ các nơron thừa
trong quá trình học và đồng thời xác định trọng số liên kết cho nơron được giữ lại. Kiến trúc mạng thực hiện cho thuật toán sẽ như sau.
Hình 4.1- Kiến trúc mạng nơron cho thuật toán
Để đơn giản tôi chọn mạng có một nơron ra, tuy nhiên tùy thuộc vào ứng dụng sẽ có một hoặc nhiều
nơron thì sẽ thêm số lượng nơron ở đầu ra cho phù hợp, và ta kết hợp các đầu ra lại với nhau. Số
nơron ở đầu vào là N đủ lớn, số nơron ở lớp ẩn là H đủ lớn. Trọng số liên kết giữa nơron ở lớp ẩn và lớp vào là Wij, trọng số liên kết giữa nơron ở lớp ra và lớp ẩn là Vi.
Chúng ta xác định tập dữ liệu huấn luyện mạng là D, ? D là các mẫu dữ liệu với q=1, 2, … , K trong đó đầu vào pq ? RN và đầu ra mong muốn tq ? R.
Để khắc phục hiện tượng quá khớp (overfit) chúng ta chia tập D một cách ngẫu nhiên thành 10 phần
bằng nhau: lấy 9 phần tạo thành tập huấn luyện - T, còn lại một phần dùng để làm tập đánh giá – X.
4.1.2. Thuật toán huấn luyện mạng và loại bỏ dư thừa
Trong thuật toán này tôi đề xuất bắt đầu mạng với số nút ẩn là H = 9, số nút vào N là số các thuộc tính của mẫu dữ liệu vào. Và có thêm một nút vào là hằng số để biểu diễn cho độ lệch nhiễu của đầu vào - bias. Trọng số liên kết giữa các nút ẩn và nút vào là [Wij] ? [0,1], trọng số liên kết giữa nút ra và nút ẩn là *Vi+ ? , trong đó:
và (4.2)
Gọi hàm kích hoạt tại các nút ẩn là h(x) thì ta có thể chọn bất kz, trong bài này tôi chọn hàm tansig: (4.3)
Hàm kích hoạt của nơron ở lớp ra là purelin, với mỗi đầu vào kết quả của mạng sẽ cho là: (4.4)
với
(4.5)
Sử dụng thuật toán lan truyền ngược sai số (BP) đ• trình bày ở phần trước để huấn luyện mạng tại mỗi bước.
Với mỗi tập huấn luyện T và đánh giá X ta tính sai số trung bình của mạng trên tập đó theo công thức sau:
(4.6) (4.7)
Hai giá trị ET và EX được dùng để xác định điểm dừng của giải thuật xây dựng mạng, sau mỗi bước loại
bỏ một nơron ta phải tính lại ET và EX và so sánh với hai sai số trước đó để xác định ETbest và EXbest (là sai số nhỏ nhất trên 2 tập T và X của các mạng ở mỗi bước trong các quá trình loại bỏ nơron). Trong thuật toán này sử dụng Emax=max{ETbest , EXbest} và tham số ? để xác định xem một nơron ẩn
hoặc nơron vào có được loại bỏ hay không, dùng Emax thay vì ETbest hoặc EXbest bởi chúng ta muốn
mạng nơron sẽ loại bỏ các nút không cần thiết và vẩn đảm bảo chất lượng của mạng. Tham số ? là một số dương, nếu ? càng lớn thì sẽ loại bỏ càng nhiều nơron.
Thuật toán được trình bày như sau: Vào:
Tập dữ liệu huấn luyện , q=1, 2, … K.
Ra:
Một mạng nơron NN với số nút vào và số nút ẩn đ• được giảm thiểu và hoạt động tốt nhất có thể.
Các bước của thuật toán:
Bước 1) Tạo một mạng nơron theo cấu trúc như hình 4.1, với số nơron lớp vào bằng số thuộc tính đầu vào của tập dữ liệu mẫu, và số nơron lớp ẩn đủ lớn (thông thường đặt là 9). Ký hiệu mạng là theNN. Bước 2) Đặt các giá trị khởi đầu cho các tham số mạng, đặt
, trong đó và
( rand[a,b] sẽ cho số ngẫu nhiên trong một khoảng [a,b] )
là một dương
Bước 3) Chia tập mẫu huấn luyện thành 2 tập con là: tập huấn luyện - T, tập đánh giá - V.
Bước 4) Dùng giải thuật huấn luyện mạng BP trên tập dữ liệu huấn luyện T để làm tối thiểu hàm sai số
E(w,v) của mạng theNN vừa tạo bước 1.
Bước 6) Loại bỏ các nút ẩn dư thừa
6.a) Lưu cấu hình của mạng: NNold = theNN
6.b) Với mỗi nút ẩn thứ i (i=1, 2, … H) đặt vi=0 và tính sai số ETi.
6.c) Tìm nút ẩn h sao cho ETh=min{ETi} và xóa bỏ nơron ẩn thứ h trong mạng theNN. Huấn luyện lại
mạng theNN sau khi đ• bỏ nơron ẩn thứ h và tính ET và EX của mạng theNN sau khi huấn luyện.
6.d) Nếu ET ? (1+?)Emax và EX ? (1+?)Emax thì:
6.d.*) Đặt Etbest=min{ET, ETbest}, EX=min{EX, EXbest} và Emax=max{Etbest, EXbest} 6.d.**) Chấp nhận cấu hình mới và quay lại bước 6.a)
Ngược lại thì khôi phục cấu hình mạng đ• lưu, theNN = NNold và sang bước 7.
Bước 7) Loại bỏ các nút vào không liên quan
7.a) Lưu cấu hình của mạng: NNold = theNN
7.b) Với mỗi nút vào j = 1, 2, … N, đặt wij = 0 cho tất cả các i=1, 2, …H và tính ETj.
7.c) Tìm j* sao cho wij* = min{ETj} và xóa bỏ nơron vào thứ j* của mạng theNN. Huấn luyện lại mạng nơron theNN sau khi bỏ và tính ET và EX.
7.d) Nếu ET ? (1+?)Emax và EX ? (1+?)Emax thì:
7.d.*) Đặt ETbest=min{ET, ETbest}, EXbest=min{EX, EXbest} và Emax=max{ETbest, EXbest} 7.d.**) Chấp nhận cấu hình mới và quay lại bước 7.a)
Ngược lại khôi phục cấu hình mạng đ• lưu, theNN = NNold và kết thúc. Sơ đồ TT1- Thuật toán xây dựng mạng nơron theo cách loại bỏ
4.2. Xây dựng mạng nơron theo hướng thêm vào - Constructive learning
2.1. Giới thiệu
Cách tiếp cận xây dựng mạng nơron theo hướng thêm vào cố gắng tìm kiếm một mạng nơron hoạt động tốt. Phương pháp này bắt đầu với một mạng nơron nhỏ và sau đó thêm các nút ẩn cùng với các trọng số liên kết cho đến khi đạt được yêu cầu. Cách tiếp cận này không tìm ra một kiến trúc mạng
nhỏ nhất, thường ở lớp NP-khó, mà chỉ dừng lại ở việc tìm một mạng phù hợp cho bài toán.
Theo [12] và một số kết quả thực nghiệm, cách tiếp cận này sẽ có một số thuận lợi sau đây: Thứ nhất,
nó xuất phát từ một mạng nhỏ cho nên rất dễ chọn, trong khi đó ở cách tiếp cận trước bắt đầu với
một mạng đủ lớn nên chúng ta không biết được lớn bao nhiêu thì đủ cho bài toán ứng dụng. Thứ hai, thuật toán này sẽ luôn tìm được một mạng nơron nhỏ đầu tiên. Việc tính toán sẽ hiệu quả hơn ở
thuật toán trước, bởi vì trong thuật toán trước chúng ta phải huấn luyện mạng đủ lớn. Thứ ba, với các mạng nơron có kích thước khác nhau sẽ cùng thực hiện giải quyết được bài toán ứng dụng, tuy nhiên thuật toán này sẽ luôn tìm được một mạng nơron nhỏ hơn so với thuật toán trước. Mạng nhỏ hơn sẽ
hiệu quả hơn trong việc tính toán và sử dụng sau này cùng như việc sinh các luật từ mạng đó. Các hàm
của các nút ẩn riêng biệt sẽ dễ quan sát hơn. Hơn nữa, bằng việc tìm kiếm mạng nơron nhỏ, số lượng
tập dữ liệu huấn luyện yêu cầu sẽ giảm xuống. Thứ tư, thuật toán trước luôn phải xác định sự thay đổi sai số khi một nút ẩn hoặc trọng số bị loại bỏ. Tuy nhiên sự thay đổi này có thể được xấp xỉ cho hiệu quả tính toán, vì thế sẽ dẫn đến sai số lớn, đặc biệt khi có nhiều nút nơron bị loại.
Tuy nhiên, cũng có những cản trở đối với cách tiếp cận thêm vào. Ví dụ, phải xác định khi nào thì dừng
việc thêm các nút ẩn vào. Hơn nữa, có nhiều thuật toán lại sử dụng tiếp cận ăn tham để xây dựng mạng, có thể dẫn đến trường hợp tối ưu cục bộ của giải pháp.
Trong phần này tôi trình bày thuật toán xây dựng mạng nơron cho bài toán tiệm cận hàm phi tuyến