Thuật toán huấn luyện mạng và loại bỏ dư thừa

Một phần của tài liệu 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 67)

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. (adsbygoogle = window.adsbygoogle || []).push({});

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ố (adsbygoogle = window.adsbygoogle || []).push({});

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ỉ (adsbygoogle = window.adsbygoogle || []).push({});

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ả

huấn luyện mạng. Quá trình tìm kiếm có thể dừng khi sai số huấn luyện nhỏ hơn một hệ số cố định

theo cách này phải thiết lập một số các tham số điều khiển, và sử dụng sai số huấn luyện đểước lượng hiệu quả tổng thể của mạng.

4.2.4. Chiến lược tìm kiếm

Bây giờ chúng ta xem xét vấn đề khó nhất của thuật toán này. Chiến lược tìm kiếm xác định cách

chuyển từ một trạng thái tới một trạng thái khác trong không gian trạng thái, cho đến khi đạt được trạng thái kết thúc. Đó chính là việc xác định đồ thị liên kết C có được trong quá trình tìm kiếm. Nếu trạng thái hiện tại là và trạng thái tiếp theo là thì thuật toán thêm vào này thỏa m•n các điều kiện sau:

1) (4.11) 2) (4.12)

Các nơron và liên kết trong trạng thái hiện tại phải được giữ nguyên trong trạng thái tiếp theo, và phải có một số liên kết mới được hình thành trong trạng thái tiếp theo, hoặc cùng với một số nút nơron được thêm vào. Trên lý thuyết chúng ta có thể chỉ cần thay đổi liên kết trong E và không cần thay đổi trong V ( ) cho một số cặp trạng thái kế tiếp, điều này dẫn tới có nhiều mạng có cùng hiệu quả thực

hiện và ít được sử dụng trong thực tế. Vì thế chúng ta thường chọn , với thường được sử dụng

nhiều nhất.

a) ánh xạ chuyển trạng thái

Chìa khóa của thuật toán thêm vào là ánh xạ chuyển trạng thái , ánh xạ này sẽ thực hiện chuyển trạng thái hiện tại tới trạng thái tiếp theo. Trong các bài toán tìm kiếm điển hình, các thực hiện chuyển trạng

thái được xác định bởi bài toán cần thực hiện, không phải là chiến lược tìm kiếm. Ví dụ trong bài toán

chơi cờ, cấu hình cho trạng thái tiếp theo được xác định bởi luật chơi cờ, chiến lược tìm kiếm chỉ định

nghĩa thứ tự các trạng thái được xem xét. Nhưng ở đây, việc tìm một hàm xấp xỉ tốt cho hàm đích tự

nó không có một hạn chế nào trên các thực hiện chuyển trạng thái có thể, ít nhất là trong nguyên lý. Cách đơn giản là nhảy ngẫu nhiên tới bất kz một trạng thái nào đó trong không gian trạng thái. Vì vậy

để cung cấp một nguyên lý tìm kiếm cho thuật toán thêm vào phải được hạn chế bởi những trạng thái

có thể bằng cách định nghĩa một thích hợp, được chỉ dẫn bởi 2 điều kiện 1) và 2) nêu trên.

có thể là đơn trị hoặc đa trị. Xét trường hợp là đơn trị, tức là chỉ có duy nhất một trạng thái tiếp

theo đưa ra từ trạng thái hiện tại. Việc này sẽ làm giảm sơ đồ các trạng thái đi qua trong quá trình tìm kiếm, hình sau.

Hình 4.13- Sơ đồ trạng thái trong ánh xạ đơn trị

Tuy nhiên, điều này sẽ thiếu sự mềm dẻo đối với các bài toán thực hiện. Nó cho thấy không có một lớp

đơn các kiến trúc mạng nơron giải quyết cho mọi bài toán. Nếu hàm đích có thể được biểu diễn sát

bởi một mạng nơron có kích thước hợp lý, thì việc sinh trạng thái mới sẽ trở nên tốt. Ngược lại việc sinh ra trạng thái mới sẽ tồi. Vì thế khi là đơn trị sẽ không có lối ra ngay cả khi có sự không khớp giữa bài toán và kiến trúc mạng được tạo ra từ thuật toán.

Một phương cách hữu hiệu phải có một đa trị, sẽ có một số trạng thái tiếp theo cho một trạng thái

hiện tại. Mỗi trạng thái tiếp theo như vậy gọi là một tuyển lựa, và sẽ khác về cấu trúc với những trạng thái khác. Các tuyển lựa khác nhau cùng có một số lượng các nút ẩn. Vì thế có nhiều tuyển lựa cho phép thử với một số kiến trúc mạng ở giai đoạn tiếp theo, và kết quả kiến trúc mạng thích ứng hơn cho bài toán sẽ được giữ. Trong trường hợp này chúng ta phải định nghĩa thứ tự các trạng thái kế tiếp

sẽ được xem xét. Kỹ thuật tìm kiếm phải định nghĩa hàm đánh giá để đánh giá độ thích ứng của riêng

mỗi tuyển lựa. Ví dụ sơ đồ trạng thái trong ánh xạ đa trị.

b) Định nghĩa một đồ thị liên kết mới (adsbygoogle = window.adsbygoogle || []).push({});

Không quan tâm tới việc ánh xạ chuyển trạng thái là đơn trị hay đa trị, một câu hỏi đặt ra là làm thế

nào để sinh ra được trạng thái tiếp theo kể từ trạng thái hiện tại, hoặc tương tự làm thế nào để định

nghĩa một đồ thị mới. Một cách đơn giản đòi hỏi tất cả các nút ẩn phải cùng trong một lớp ẩn, điều này dẫn đến kiến trúc mạng có một lớp ẩn. Cấu trúc mạng thông thường là sử dụng cùng một hàm kích họat cho tất cả các nút ẩn, dẫn đến việc thực hiện dễ hơn.

Để đơn giản ta thực hiện một trạng thái mới được sinh ra sẽ có số nút tăng lên 1, và các liên kết trong E sẽ thực hiện liên kết đầy đủ (full connection). Như đ• trình bày, ở đây chúng ta chỉ xây dựng mạng

Một phần của tài liệu 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 67)