HUẤN LUYỆN NHANH

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

Phần trên chúng ta đã trình bày hai thuật toán huấn luyện backpropagation : gradient descent và gradient descent có quán tính. Hai phương pháp này ứng dụng trong thực tế khá chậm. Chúng ta sẽ khảo sát nhiều thuật toán có hiệu suất cao hội tụ nhanh từ 10 đến 100 lần so với các thuật toán đã khảo sát ở trên.

Các giải thuật nhanh chia làm 2 loại chính :

• Loại thứ nhất sử dụng kỹ thuật thử là kỹ thuật được mở rộng từ việc phân tích hiệu suất của thuật toán giảm dốc nhất chuẩn. Kỹ thuật này gồm giải thuật backpropagation tốc độ học thay đổi có hàm huấn luyện traingda; và giải thuật phục hồi mạng backpropagation với hàm huấn luyện trainrp.

• Loại thứ hai sử dụng kỹ thuật tối ưu hóa số chuẩn. Loại này có ba kỹ thuật tối ưu hóa số dùng để huấn luyện mạng Neural Networks : conjugate gradient (traincgf, traincgb, traincgp, trainscg), quasi _ Newton (trainbfg, trainoss) và Levenberg _ Marquardt (trainlm).

2.1 Giải thuật tốc độ học thay đổi (TRAINDA,TRAINDX)

Trong giải thuật giảm dốc nhất chuẩn, tốc độ học được giữ cố định trong suốt thời gian huấn luyện. Hiệu suất giải thuật này rất nhạy với sự thay đổi của tốc độ học. Nếu tốc độ học quá lớn giải thuật sẽ bị dao động và không ổn định. Nếu tốc độ học quá nhỏ giải thuật sẽ tốn nhiều thời gian để hội tụ. Trong thực tế khó xác định tốc độ học tối ưu và tốc độ học tối ưu thay đổi trong suốt quá trình xử lý huấn luyện, khi giải thuật di chuyển trên mặt phẳng hiệu suất.

Hiệu suất của giải thuật giảm dốc nhất sẽ tăng nếu chúng ta cho phép tốc độ học thay đổi trong suốt quá trình xử lý huấn luyện. Tốc độ học thích ứng sẽ cố gắng giữ bước nhảy càng lớn càng tốt mà vẫn giữ việc học ổn định. Tốc độ học sẽ tương ứng với độ phức tạp của mặt phẳng sai số cục bộ. Tốc độ học thích ứng yêu cầu có một vài thay đổi trong xử lý huấn luyện khi gọi hàm traingd. Đầu tiên ngõ ra của mạng và sai số sẽ được tính. Ở mỗi epoch trọng số và ngưỡng mới được tính dựa trên tốc độ học hiện tại. Ngõ ra và sai số mới sau đó mới được tính. Khi có quán tính, nếu tỉ số sai số mới và sai số cũ lớn hơn max-perf-inc (thường bàng 1,04) thì trọng số và ngưỡng mới sẽ bị hủy. Lúc này tốc độ học sẽ giảm (thường nhân với tỉ lệ lr_dec = 0,7 ). Ngược lại trọng số, ngưỡng mới v.v.. sẽ được giữ. Nếu sai số mới nhỏ hơn sai số cũ thì tốc độ học tăng (thường nhân với tỉ lệ lr_inc = 1,05).

Thủ tục này làm tăng tốc độ học, nhưng chỉ mở rộng đối với mạng học không làm tăng sai số lớn. Vì thế, tốc độ học gần tối ưu sẽ đạt được trong một vùng cục bộ. Khi tốc độ học lớn hơn có thể làm cho việc học ổn định thì tốc độ học sẽ tăng.

2.2 Giải thuật phục hồi mạng backpropagation (TRAINRP)

Mạng đa lớp thường sử dụng hàm truyền sigmoid trong các lớp ẩn. Những hàm này gọi là hàm nén, vì chúng nén vùng ngõ vào vô hạn thành vùng ngõ ra hữu hạn. Hàm sigmoid có đặc tính là độ dốc của hàm đạt zero khi ngõ vào có giá trị lớn. Đây chính là vấn đề được đề cập khi sử dụng giải thuật độ dốc lớn nhất để huấn luyện mạng đa lớp dùng hàm sigmoid, vì gradient có thể có biên độ rất nhỏ, và do đó trọng số và ngưỡng chỉ thay đổi nhỏ, cho dù trọng số và ngưỡng ở rất xa giá trị tối ưu.

Mục đích của thuật toán huấn luyện phục hồi mạng backpropagation là loại bỏ các hậu quả này về biên độ của các đạo hàm riêng phần. Chỉ sử dụng dấu của đạo hàm để xác định hướng cập nhật trọng số; biên độ của đạo hàm không ảnh hưởng đến việc cập nhật trọng số. Độ thay đổi trọng số dựa trên giá trị cập nhật riêng lẻ. Giá trị cập nhật của mỗi trọng số và ngưỡng tăng bởi hệ del-inc khi đạo hàm của hàm hiệu suất tại những trong số tức thời cùng dấu với 2 lần lặp tiếp theo. Giá trị cập nhật sẽ giảm bởi hệ số del-dec khi đạo hàm ứng với trọng số hiện tại đổi dấu so với lần lặp trước đó. Nếu đạo hàm bằng không thì giá trị cập nhật giữ nguyên. Khi trọng số dao động thì sự thay đổi trọng số sẽ giảm, nếu trọng số tiếp tục thay đổi trên cùng một hướng sau nhiều vòng lặp thì biên độ thay đổi trọng số sẽ giảm.

Phương pháp này thường nhanh hơn giải thuật giảm độ dốc nhất chuẩn.

2.3 Giải thuật conjugate_ gradient

Giải thuật backpropagation cơ bản điều chỉnh trọng số theo hướng giảm dốc nhất. Đây là hướng mà hàm hiệu suất sẽ giảm nhanh nhất. Mặc dù hàm giảm nhanh theo hướng gradient nhưng không có nghĩa hội tụ nhanh. Trong các giải thuật conjugate gradient sẽ tìm dọc theo hướng liên hợp, thông thường tạo ra độ hội tụ nhanh hơn hướng giảm dốc nhất. Có bốn phương pháp khác nhau về giải thuật conjugate gradient.

Trong hầu hết các giải thuật huấn luyện đã được trình bày, tốc độ học dùng để xác định độ dài cập nhật trọng số (kích thước nấc). Hầu hết các giải thuật conjugate gradient, kích thước nấc sẽ thay đổi sau mỗi vòng lặp. Giải thuật sẽ tìm dọc theo hướng gradient liên hợp để xác định kích thước nấc cực tiểu hóa hàm hiệu suất.

Phần 3_Chương 5 : Backpropagation

2.3.1 Giải thuật cập nhật Fletcher-Reeves (TRAINCGF)

Tất cả các giải thuật gradient liên hợp đều bắt đầu bằng việc định hướng giảm dốc nhất ở vòng lặp đầu tiên (gradient âm).

p0 = -g0

Một định hướng sau đó sẽ được thực hiện để xác định khoảng cách tối ưu di chuyển dọc theo hướng tìm hiện tại.

xk+1 = xk + αkpk

Hướng tìm kiếm tiếp theo được xác định bằng cách lấy liên hợp hướng trước đó. Thủ tục tổng quát để xác định hướng tìm mới là kết hợp hướng giảm dốc nhất mới với hướng tìm trước đó.

pk = -gk + βkpk-1

Ta phân biệt các giải thuật conjugate gradient dựa trên cách tính βk. Đối với phương pháp Fletcher-Reeves, βk được tính như sau :

11 − 1 − − = k T k k T k k g g g g β

2.3.2 Giải thuật cập nhật Polak – Ribiére (TRAIN CGP)

Đây là một phương pháp khác của giải thuật conjugate gradient. Tương tự như phương pháp Flecher - Reeves, hướng tìm ở mỗi vòng lặp được xác định bởi :

pk = -gk + βkpk-1 với 1 1 1 − − − ∆ = k T k k T k k g g g g β

2.3.3 Giải thuậât khởi động lại Powell – Beale (TRAINCGB)

Đối với các giải thuật conjugate gradient, hướng tìm sẽ được khởi động lại sau mỗi chu kỳ. Điểm khởi động chuẩn xuất hiện khi số chu kỳ bằng thông số của mạng. Phương pháp Powell –Beale sẽ làm tăng hiệu suất huấn luyện, khởi động lại về giá trị âm gradient nếu giá trị trực giao giữa gradient cũ và mới còn lại rất nhỏ, nghĩa là thỏa điều kiện.

2

1 k 0.2 k

T

k g g

2.3.4 Giải thuậât Scaled Conjugate Gradient (TRAINSCG)

Trong mỗi thuật toán conjugate gradient đều yêu cầu hướng tìm ở mỗi vòng lặp. Việc tìm này rất phức tạp vì yêu cầu mạng đáp ứng cho tất cả ngõ vào huấn luyện và được tính nhiều lần trong mỗi vòng lặp. Thuật toán Scaled Conjugate Gradient tránh sự phức tạp này.

2.4 Các thuật toán quasi – newton

2.4.1 Giải thuật BFGS (TRAINBFG)

Phương pháp Newton là một phương pháp thay thế phương pháp conjugate gradient cho độ hội tụ nhanh. Bước cơ bản của phương pháp Newton là :

xk+1 = xk – A-1k gk

với Ak là ma trận Hessian (đạo hàm cấp 2) của hàm hiệu suất tại giá trị hiện tại của trọng số và ngưỡng. Tuy nhiên phương pháp này khó tính ma trận Hessian đối với mạng feedforward. Có nhiều thuật toán dựa trên phương pháp Newton, nhưng không cần tính đạo hàm cấp 2, gọi là phương pháp Quasi – Newton. Phương pháp này cập nhật ma trận Hessian gần đúng mỗi vòng lặp thuật toán. Việc cập nhật được tính là một hàm của gradient.

Giải thuật BFGS yêu cầu tính nhiều hơn trong mỗi vòng lặp và lưu trữ nhiều hơn so với phương pháp conjugate gradient, và thường hội tụ sau một ít vòng lặp. Đối với các mạng lớn, tốt hơn ta nên dùng giải thuật backpropagation hay conjugate gradient. Tuy nhiên, đối với mạng nhỏ thì

trainbfg hoạt động rất có hiệu quả.

2.4.2 Giải thuậât One Step Secant (TRAINOSS)

Trong khi giải thuật BFGS yêu cầu lưu trữ và tính toán nhiều hơn so với phương pháp conjugate gradient, thì phương pháp One Step Secant yêu cầu lưu trữ và tính toán ít hơn. Giải thuật này như là cầu nối giữa giải thuật conjugate gradient và quasi – Newton. Giải thuật này không lưu toàn bộ ma trận Hessian, phương pháp này giả thiết ở mỗi vòng lặp ma trận Hessian trước đó là ma trận đồng nhất. Do đó phương pháp này có ưu diểm là hướng tìm mới được tính mà không cần tính ma trận ngược.

2.5 Giải thuật Levenberg – Marquardt (TRAINLM)

Giống như phương pháp Quasi-Newton, giải thuật Levenberg – Marquardt được thiết kế để đạt được tốc độ bậc 2 mà không phải tính ma trận Hessian. Khi hàm hiệu suất có dạng là tổng bình phương thì ma trận Hessian được tính là : H = JTJ và gradient được tính là : g = JT e.

Phần 3_Chương 5 : Backpropagation

Và J là ma trận Jacobian là đạo hàm bậc nhất sai số mạng tại điểm trọng số và ngưỡng hiện tại, và e là vertor sai số mạng. Ma trận Jacobian được tính bằng kỹ thuật backpropagation chuẩn nên ít phức tạp hơn tính ma trận Hessian.

Giải thuật Levenberg_Marquardt sử dụng phép gần đúng này với ma trận Hessian trong phương pháp Newton : [J J I] J e x x T T k k 1 1 − + = − +µ

Khi µ = 0, đây là phương pháp Newton. Khi µ lớn, phương pháp này trở thành gradient descent với kích thước nấc nhỏ. Phương pháp Newton nhanh hơn và chính xác hơn. Thuật toán này khá nhanh để huấn luyện mạng feedforward kích thước nhỏ (có thể lên đến vài trăm trọng số).

2.6 Giải thuật Levenberg_Marquardt giảm bộ nhớ (TRAINLM)

Trở ngại chính của thuật toán Levenberg_Marquardt là yêu cầu lưu trữ nhiều ma trận kích thước khá lớn. Kích thước của ma trận Jacobian là Q x n với Q là số mẫu huấn luyện và n là số trọng số và ngưỡng của mạng. Giải thuật giảm bộ nhớ đề nghị ma trận không phải tính và lưu toàn bộ. Ví dụ, nếu ta chia ma trận Jacobian thành hai ma trận con, chúng ta có thể tính ma trận Hessian tương ứng như sau :

[ 1 2] 1 1 2 22 2 1 J J J J J J J J J J H T T T T T  = +      = =

Do đó ma trận đầy đủ không phải tính một lần.

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

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

(77 trang)
w