Mô hình một lớp nơron cạnh tranh

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Một số quy trình huấn luyện mạng nơron và ứng dụng xấp xỉ hàm số (Trang 64)

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 dưới dạng bài toán tìm kiếm. Vì vậy các yếu tố chính sẽ là không gian trạng thái, trạng thái xuất phát, trạng thái kết thúc và chiến lược tìm kiếm.

4.2.1. Không gian trạng thái

Hàm cần tìm của bài toán hồi quy có thể được định nghĩa đối với một không gian hàm F, như là không gian Lp. F được lựa chọn bởi người sử dụng và được liên hệ tới điều kiện sai số tối thiểu. Để thể hiện một hàm trong F sử dụng mạng nơron truyền thẳng, phải xác định các tham số sau:

- n, số lượng nút ẩn trong mạng nơron

- C, đồ thị liên kết nơron trong mạng, là sự liên kết giữa các nút vào, nút ra và nút ẩn

- ?, là các dạng hàm của các nút ẩn

- W, là các tham số của toàn mạng, bao gồm trọng số liên kết giữa các nơron, độ lệch và các tham số

trong ?.

Một bộ bốn (n,C, ?,W) sẽ chỉ ra một mạng duy nhất và tương ứng là một hàm f trong F. Chú ý rằng 2 bộ

t1 và t2 có thể thể hiện cùng một hàm f. Điều này dễ hiểu khi ta hoán vị các trong số của các nút ẩn, sẽ

cho ra một tập n, C và ? như nhau nhưng khác nhau về W.

Theo kiến trúc mạng nơron chúng ta thấy bộ bốn thành phần n, C, ? và W không hoàn toàn độc lập nhau. Ví dụ, với C=(V,E) tương ứng là các đỉnh (nút nơron trong mạng) và các cạnh (các liên kết giữa các nơron), ta có

(4.8)

trong đó nin là các nơron đầu vào, nout là các nơron đầu ra. Hơn nữa chúng ta cho C và ? thì W có thể

được xác định bằng cách sử dụng một thuật toán huấn luyện tham số nào đó, ví dụ BP. Mặc dù W có

tiết và giả sử rằng W có thể xác định duy nhất từ C và ?. Hơn nữa, ? đóng vai trò không phải là trung tâm của thuật toán, vì vậy ta bỏ qua ? trong phần này.

Ta xem xét mỗi đồ thị C (là một trạng thái trong không gian tìm kiếm) là bộ gồm hai thành phần là V và

E, ký hiệu .

4.2.2. Trạng thái xuất phát

Một đặc trưng của thuật toán thêm vào này là bắt đầu với một mạng nơron nhỏ. Rõ ràng mạng nhỏ

nhất có thể không có nút ẩn. Nếu có thông tin biết trước về bài toán thì ta có thể thay thế bằng sự

cung cấp của người dùng. Điều này trái ngược với thuật toán loại bỏ, bắt đầu với một mạng đủ lớn và

được xác định bởi người dùng.

4.2.3. Trạng thái kết thúc

Tiếp cận theo phương pháp tìm kiếm, thuật toán sẽ dừng khi đạt được trạng thái kết thúc. Do đó ta phải xác định các tiêu chuẩn để nhận biết trạng thái này, có một số cách thực hiện. Đơn giản là chúng ta sẽ dừng thuật toán tạo mạng khi hiệu quả thực hiện của nó bắt đầu giảm. Đặt là hàm được thể

hiện bởi một mạng nơron n nút ẩn và đ• được huấn luyện với N mẫu dữ liệu, là hàm đích. Số đo

khoảng cách giữa 2 hàm này là:

(4.9)

Công thức trên xác định hiệu quả họat động của mạng nơron do người dùng tạo ra (mạng nơron với một tập các trọng số đặc thù được huấn luyện bằng cách sử dụng mẫu dữ liệu thu thập bởi người dùng). Tuy nhiên, không thể có được một ước lượng tốt cho sai số hiệu quả này.

Chúng ta coi mỗi dữ liệu đầu vào thu thập được là một véc tơ p, thể hiện của một giá trị của biến ngẫu

nhiên nhiều chiều X, đầu ra t là thể hiện của biến ngẫu nhiên Y. Một xấp xỉ khá tốt đó là lấy kz vọng

trên tập dữ liệu huấn luyện với kích thước là N mà người quan sát được.

(4.10)

Chú ý rằng sai số trên vẩn không tính được bởi chúng ta không biết rõ hàm như thế nào. Vì vậy chúng

ta sử dụng thuật toán thêm vào này để có được một sai số tốt nhất.

Với việc sử dụng thuật toán thêm vào này hiệu quả của toàn mạng vẩn không tăng khi thêm các nút ẩn

mới, bởi vì phải có một sự thỏa hiệp giữa sai số xấp xỉ và sai sốước lượng. Trong đó, sai số xấp xỉ

tham chiếu tới khoảng cách giữa hàm đích và hàm ( là hàm xấp xỉ tốt nhất có thể của mạng nơron có n nơron ẩn, không phụ thuộc tập dữ liệu huấn luyện D và sai số huấn luyện). Sai sốước lượng tham chiếu tới kz vọng khoảng cách giữa hàm xấp xỉ tốt nhất của mạng nơron và hàm xấp xỉ của mạng qua tập dữ liệu D .

Có rất nhiều cách tiếp cận đểước lượng sai số , tuy nhiên có một cách đơn giản là dựa vào hiệu quả

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Một số quy trình huấn luyện mạng nơron và ứng dụng xấp xỉ hàm số (Trang 64)

Tải bản đầy đủ (PDF)

(96 trang)