TIỀN VÀ HẬU XỬ LÝ.

Một phần của tài liệu Tổng quan Neural networks (Trang 57 - 62)

Phần 3_Chương 5 : Backpropagation

Mạng Neural Networks có thể hoạt động tốt hơn nếu chúng ta có một vài bước xử lý trên tập các giá trị vào, đích trước khi qua mạng.

5.1 Phương pháp MIN và MAX (PREMNMX, POSTMNMX, TRAMNMX)

Trước khi huấn luyện, chúng ta thường chuẩn hóa ngõ vào, ngõ đích. Hàm premnmx sử dụng để chuẩn hóa ngõ vào và đích trong khoảng [-1,1].

Sau đây minh họa cách sử dụng hàm này.

[pn, minp, maxp, tn, mint, maxt] = premnmx (p,t); net= train (net,pn,tn);

p, t : là giá trị vào và đích ban đầu. pn, tn : là giá trị vào và đích ra chuẩn hóa

minp, maxp : chứa giá trị min, max của giá trị vào ban đầu mint, maxt : chứa giá trị min, max của giá trị đích ban đầu

Sau khi huấn luyện, các giá trị này sử dụng để biến đổi các ngõ vào, ra cho các hàm sau này. Chúng trở thành một bộ phận của mạng, giống như trọng số và ngưỡng.

Do hàm premnmx chuẩn hóa giá trị vào, đích, nên ngõ ra của mạng về giá trị trong khoảng [-1,1]. Để đổi ngõ ra về giá trị ra bình thường ta dùng hàm postmnmx. Minh họa sau cho thấy cách mô phỏng và biến đổi ngõ ra mạng về giá trị bình thường :

an = sim(net,pn);

a= postmnmx (an,mint,maxt);

Ngõ ra của mạng an sẽ tương ứng với tập đích tn. Ngõ ra mạng không chuẩn hóa a tương ứng với tập đích t.

Nếu premnmx dùng để tiền xử lý tập huấn luyện, thì bất cứ khi nào mạng được huấn luyện với giá trị vào mới thì ta sử dụng hàm tramnmx để chuẩn hóa giá trị vào.

pnewn = tramnmx (pnew, minp, maxp); anewn = sim (net,pnewn);

anew = postmnmx (anewn, mint, maxt);

Một kỹ thuật khác dùng phân đoạn giá trị vào, đích của mạng chuẩn hóa là trung bình và phương sai chuẩn. Phương pháp này chuẩn hóa ngõ vào và đích sao cho có giá trị trung bình là zero và phương sai chuẩn đơn vị.

[pn, meanp, stdp, tn, meant, stdt]=prestd(p,t); p, t : giá trị vào, đích của mạng pn, tn : giá trị vào, đích chuẩn hóa

meanp, stdp : giá trị trung bình và phương sai của tín hiệu vào gốc. Meant, stdt : giá trị trung bình và phương sai của tín hiệu đích gốc

Sau khi huấn luyện, các giá trị này được dùng để biến đổi cho các giá trị vào, ra của mạng sau này. Chúng trở thành một bộ phận của mạng, giống như trọng số và ngưỡng.

Ngõ ra của mạng sẽ có giá trị trung bình zero và phương sai đơn vị. Do đó ta phải biến đổi ngõ ra của mạng sang giá trị bình thường.

an = sim (net,pn);

a= poststd (an,meant,stdt);

Nếu ta muốn huấn luyện mạng với các giá trị mới, thì ngõ vào mới cũng được chuẩn hóa như sau :

pnewn = trastd (pnew, meanp,stdp); anewn = sim (net,pnewn);

anew = post std (anewn, meant,stdt);

6. GIỚI HẠN

Thuật toán gradient descent thường rất chậm vì có tốc độ học nhỏ cho việc học ổn định. Khi có quán tính thì gradient descent sẽ nhanh hơn vì cho phép học nhanh hơn trong khi vẫn giữ việc học ổn định, nhưng cũng quá chậm so với các vấn đề trong thực tế. Hai phương pháp thường sử dụng là Levenberg_Marquardt (nếu có đủ bộ nhớ), hoặc có giải thuật nhanh khác.

Mạng đa lớp có khả năng thực hiện tính toán tuyến tính và phi tuyến, cũng như các hàm trừu tượng khác. Như thế mạng đã vượt qua các hạn chế của perceptron và mạng tuyến tính. Tuy nhiên, mạng được huấn luyện theo lý thuyết phải chính xác, nên backpropagation và các biến thể của nó không phải luôn luôn tìm được cách giải quyết vấn đề tốt.

Tốc độ học trong mạng phi tuyến là một thách thức thực sự. Giống như mạng tuyến tính, tốc độ học quá lớn sẽ làm cho việc học không ổn định. Ngược lại, tốc độ học quá bé sẽ tốn nhiều thời

Phần 3_Chương 5 : Backpropagation

gian huấn luyện. Không giống như mạng tuyến tính, tốc độ học rất khó chọn để cho kết quả tốt.

Mặt phẳng sai số của mạng phi tuyến phức tạp hơn mặt phẳng sai số mạng tuyến tính. Mặt phẳng sai số trong mạng phi tuyến có rất nhiều sai số cực tiểu cục bộ. Giải thuật gradient descent rất có nhiều khả năng rơi vào các điểm cục bộ này. Điều này phụ thuộc vào điều kiện cài đặt ban đầu của mạng, khoảng cách so với điểm sai số cực tiểu toàn cục. Trong nhiều trường hợp, mặc dù mạng backpropagation đa lớp có đủ neuron để thực hiện bất kỳ hàm nào, nhưng backpropagation vẫn không phải luôn luôn tìm được chính xác các trọng số và ngưỡng. Do đó chúng ta phải chạy thử mạng rất nhiều lần để có thể cho kết quả tốt.

Mạng cũng rất nhạy đối với số neuron trong các lớp ẩn. Quá ít neuron thì không khít. Quá nhiều neuron sẽ quá khít. Do đó chúng ta phải thực hiện tổng quát hóa mạng.

7. TÓM TẮT

Backpropagation có thể huấn luyện mạng feedforward với nhiều hàm truyền khác nhau. Khái niệm backpropagation dựa trên quá trình xử lý bằng cách lấy đạo hàm của sai số mạng. Quá trình xử lý này sử dụng nhiều chiến lược tối ưu hóa khác nhau.

Cấu trúc mạng đa lớp không bị bài toán ép buộc hoàn toàn. Số ngõ vào mạng do bài toán qui định cũng như số neuron trong lớp ngõ ra. Tuy nhiên số lớp ẩn và kích thước của các lớp do người thiết kế chọn.

Mạng hai lớp có hàm truyền sigmoid/ linear có thể biểu diễn bất kỳ hàm nào nếu lớp sigmoid có đủ neuron.

Có nhiều thuật toán huấn luyện backpropagation khác nhau. Chúng khác nhau về cách tính toán, dung lượng bộ nhớ và không có thuật toán nào là tốt nhất đối với mọi trường hợp.

HÀM MÔ TẢ

Traingd Gradient descent cơ bản. Đáp ứng chậm, sử dụng trong chế độ incremental.

Traingdm Gradient descent có quán tính. Thường nhanh hơn traingd, có thể sử dụng trong chế độ nấc.

Traingdx Tốc độ học thay đổi. Huấn luyện nhanh hơn traingd nhưng chỉ có thể sử dụng trong chế độ batch.

Trainrp Resillient backpropagation. Đây là thuật toán huấn luyện chế độ batch đơn giản, có độ hội tụ nhanh và ít tốn bộ nhớ.

Traincgf Thuật toán conjugate gradient Fletcher – Reeves. Ít tốn bộ nhớ nhất trong các thuật toán conjugate gradient.

Traincgp Thuật toán conjugate gradient Polak –Ribiére. Yêu cầu bộ nhớ nhiều hơn

traincgf, đối với một số bài toán có độ hội tụ nhanh.

Traincgb Thuật toán conjugate gradient Powell – Beale. Yêu cầu bộ nhớ lớn hơn

traincgp, tốc độ hội tụ nhanh hơn.

Trainscg Thuật toán Scaled Conjugate Gradient. Đây là thuật toán conjugate gradient duy nhất không yêu cầu định hướng tìm.

Trainbfg Phương pháp quasi – Newton BFGS. Yêu cầu lưu trữ ma trận Hessian và có nhiều phép tính hơn các thuật toán conjugate gradient trong mỗi vòng lặp, nhưng thường hội tụ sau một vài phép lặp.

Trainoss Phương pháp one step secant. Đây là phương pháp kết hợp giữa phương pháp conjugate gradient và phương pháp quasi – Newton.

Trainlm Thuật toán Levenberg - Marquardt. Thuật toán huấn luyện nhanh đối với mạng có kích thước vừa phải, có tính chất giảm bộ nhớ khi tập huấn luyện lớn.

Trainbr Thuật toán chuẩn tổng quát hóa Bayesian. Là giải thuật huấn luyện Levenberg - Marquardt được sửa đổi, tạo ra mạng tốt hơn, giảm sự phức tạp để mạng hội tụ.

Một phần của tài liệu Tổng quan Neural networks (Trang 57 - 62)

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

(77 trang)
w