Bản chất của giải thuật BP là giải thuật tìm kiếm sử dụng kỹ thuật tìm kiếm ngƣợc hƣớng gradient. Mặc dù dễ thực thi nhƣng giải thuật này bộc lộ một số nhƣợc điểm nhƣ sau:
i) Tại các vùng hoặc một số hƣớng mà bề mặt sai số bằng phẳng, các giá trị gradient nhỏ dẫn đến tốc độ hội tụ của giải thuật chậm.
ii) Bề mặt sai số trong đa số các bài toán thƣờng không “lồi” mà có nhiều vùng “lõm” khác nhau, nó phụ thuộc vào quá trình khởi tạo các trọng số ban đầu của mạng, điều đó dẫn đến giải thuật có thể bị tắc tại các cực trị địa phƣơng (tắc tại các vùng “lõm”).
iii) Các hàm kích hoạt của nơron và hàm giá tính tín hiệu sai số phải khả vi [22]. Điểu này là điểm bất lợi trong các ứng dụng sử dụng các hàm ngƣỡng làm hàm kích hoạt do tính không khả vi của chúng.
iv) Hiệu năng tìm kiếm của giải thuật phụ thuộc vào các tham số luyện nhƣ số nơron trên lớp ẩn (tham số cấu trúc), giá trị các trọng số khởi tạo ban đầu, hằng
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ số học …Việc xác định các giá trị của chúng dễ đƣa tới tình thế tiến thoái lƣỡng lan giữa tốc độ hội tụ và sự dao động trong quá trình tìm kiếm.
Có rất nhiều các nghiên cứu đã đề xuất các cải tiến nhằm khắc phục các nhƣợc điểm trên nhƣ sử dụng tham số bƣớc đà, sử dụng hệ số học biến đổi, sử dụng gradient kết hợp, sử dụng thuật toán giả luyện kim, sử dụng giải thuật di truyền …[3, 9, 11, 12, 20, 22].
1) Phương pháp sử dụng hệ số học biến đổi
Trong thực tế, các hàm hiệu năng có dạng biểu diễn hình học là không đồng đều, có lúc có dạng phẳng (hàm không thay đổi giá trị hoặc thay đổi rất ít) hoặc có dạng phễu (giá trị của hàm thay đổi rất nhanh khi thay đổi tham số đầu vào). Nếu ta chỉ sử dụng hệ số học cố định thì có thể sẽ tốn thời gian tại các vùng phẳng. Vì vậy, ý tƣởng của giải thuật BP sử dụng hệ số học biến đổi là khi gặp vùng phẳng thì tăng hệ số học lên và ngƣợc lại khi gặp vùng dạng phễu thì giảm hệ số học đi.
Ngƣời ta đã đƣa ra rất nhiều phƣơng pháp để thực hiện giải pháp trên, ở đây chỉ xin nêu ra một cách biến đổi hệ số học dựa trên hiệu năng của mạng [9]:
Bước 1: Nếu bình phƣơng lỗi trên toàn bộ tập huấn luyện tăng một số phần trăm cho trƣớc (thông thƣờng là từ 1% cho đến 5%) sau một lần cập nhật trọng số thì bỏ qua việc cập nhật này, hệ số học đƣợc nhân với một số hạng nào đó (với 0 < < 1).
Bước 2: Nếu bình phƣơng lỗi giảm sau một lần cập nhật trọng số, thì cập nhật đó là chấp nhận đƣợc và hệ số học đƣợc nhhân với một số hạng nào đó > 1.
Bước 3: Nếu bình phƣơng lỗi tăng một lƣợng < thì cập nhật trọng số là chấp nhận đƣợc nhƣng hệ số học không thay đổi.
Các thuật toán heuristic luôn cho ta sự hội tụ nhanh hơn trong một số bài toán, tuy nhiên chúng có hai nhƣợc điểm chính sau đây:
Thứ nhất, việc sửa đổi thuật toán lan truyền ngƣợc cần có thêm một số tham số, trong khi trong thuật toán lan truyền ngƣợc chuẩn chỉ yêu cầu có 1, đó là hệ số học. Một số thuật toán sửa đổi cần đến 5 hoặc 6 hệ số trong khi hiệu năng của thuật toán khá nhạy cảm đối với những thay đổi của các tham số này. Hơn nữa việc chọn lựa các tham số này lại độc lập với bài toán đặt ra.
Thứ hai, các thuật toán sửa đổi này có thể không hội tụ trong một số bài toán mà thuật toán lan truyền ngƣợc chuẩn có thể hội tụ đƣợc.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ Ngƣời ta đã thấy rằng cả hai nhƣợc điểm này thƣờng xảy ra khi sử dụng các thuật toán sửa đổi phức tạp hơn (yêu cầu nhiều tham số hơn).
2) Sử dụng phương pháp gradient kết hợp
Nhắc lại phƣơng pháp gradient kết hợp bao gồm các bƣớc sau: Chọn hƣớng bắt đầu ngƣợc với gradient p0 g0 . Thực hiện một bƣớc xk xk 1 xk kpk .
Chọn k để tối thiểu hàm theo hƣớng tìm kiếm đã chọn. Có thể chọn nhƣ sau: k k T k k T k k p A p p g
(phƣơng trình trên đƣợc suy ra bằng cách chọn k để tối thiểu hóa hàm
k k k
F x p . Để thực hiện, ta lấy đạo hàm của F theo k, đặt bằng 0 ta sẽ thu đƣợc phƣơng trình trên.)
Chọn hƣớng tiếp theo dựa vào một trong 3 phƣơng trình tính k
1 k k k p g g g β T 1 - k T 1 - k hay 1 k k k g g g g β T 1 - k T k hay 1 k k k g g g g β T 1 - k T 1 - k
Nếu thuật toán chƣa hội tụ thì quay lại bƣớc 2.
Phƣơng pháp này không thể áp dụng trực tiếp trong việc luyện mạng nơron, bởi lẽ hàm chỉ số hiệu năng trong nhiều trƣờng hợp không ở dạng bậc 2. Điều này ảnh hƣởng đến thuật toán này nhƣ sau: thứ nhất, ta không thể sử dụng phƣơng trình
k k T k k T k k p A p p g
để tối thiểu hóa hàm theo đƣờng thẳng xk kpk nhƣ trong bƣớc thứ 2. Thứ hai, điểm cực tiểu chính xác sẽ không thể đạt tới đƣợc một cách bình thƣờng sau một số hữu hạn bƣớc và do vậy thuật toán sẽ phải đƣợc thiết lập lại sau một số hữu hạn bƣớc.
Vấn đề tìm kiếm điểm cực tiểu
Ta cần có một thuật toán tổng quát để tìm điểm cực tiểu của một hàm số theo một hƣớng cụ thể nào đó. Việc này liên qua đến 2 thao tác: một là xác định tần số
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ (interval location) và giảm tần số. Mục đích của bƣớc xác định tần số là tìm kiếm tần số khởi đầu có chứa điểm cực tiểu. Bƣớc giảm tần số sau đó giảm kích thƣớc của tần số cho đến khi tìm ra điểm cực tiểu với một độ chính xác nào đó.
Ta sẽ sử dụng phƣơng pháp so sánh hàm để thực hiện bƣớc xác định tần số. Thủ tục này đƣợc mô tả trong hình vẽ phía dƣới. Ta bắt đầu bằng cách tính chỉ số hiệu năng tại một điểm khởi đầu nào đó (điểm a1 trong Hình 3.3), điểm này chính là giá trị của chỉ số hiệu năng với các tham số hiện tại của mạng.
Bƣớc tiếp theo là tính giá trị hàm chỉ số hiệu năng tại điểm thứ 2, thể hiện bởi điểm b1 trong Hình 3.3 cách điểm khởi đầu một đoạn là theo hƣớng tìm kiếm
p0.
Hình 2.3: Xác định tần số
Sau đó, ta tiếp tục tính giá trị của hàm hiệu năng tại các điểm bi có khoảng cách đến điểm khởi đầu gấp đôi điểm trƣớc. Quá trình này sẽ dừng lại nếu nhƣ giá trị của hàm tăng lên so với điểm trƣớc đó (trong Hình 3.3 là điểm b3 và b4). Đến đây, ta biết rằng điểm cực tiểu sẽ rơi vào khoảng giữa [a5, b5]. Ta không thể thu hẹp thêm tần số nữa bởi lẽ điểm cực tiểu có thể rơi vào vùng [a3, b3] hoặc [a4, b4].
Bây giờ ta tiếp tục bƣớc thực hiện giảm tần số, ta sẽ lấy ít nhất là 2 điểm c, d
trong khoảng [a5, b5] để có thể thực hiện việc này (nếu chỉ lấy 1 điểm thì ta khó có thể xác định đƣợc liệu điểm cực tiểu sẽ nằm trong vùng nào). Có nhiều cách để chọn các điểm trên, ở đây ta sẽ sử dụng phƣơng pháp gọi là: Golden Section Search. Phƣơng pháp này cố gắng thực hiện tìm kiếm sao cho số lần phải tính giá trị của hàm là ít nhất (tại mỗi một bƣớc ta đều cần phải tính giá trị của hàm).
b5 a5 b4 a4 b3 a3 b2 a2 b1 a1 2 4 8
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/
Hình 2.4: Giảm kích thước của tần số của sự không chắc chắn
Trong hình vẽ trên, điểm a sẽ đƣợc bỏ qua và điểm c sẽ trở thành cận bên trái. Sau đó, một điểm c mới sẽ đƣợc đặt vào vùng của điểm c và d cũ. Mẹo mực ở đây là chọn điểm c sao cho tần số của sự không chắc chắn sẽ đƣợc giảm đi càng nhanh càng tốt.
Thuật toán Golden Section Search đƣợc mô tả nhƣ sau:
Trong đó tol là độ chính xác chấp nhận đƣợc do ngƣời sử dụng đƣa vào.
a c b a c d b
a) Tần số không được giảm b) Điểm cực tiểu phải nằm giữa
c và b.
Golden Section search
= 0.618
Đặt c1 = a1 + (1 - ) (b1 – a1 ), Fc = F(c1).
d1 = b1 - (1 - ) (b1 – a1 ), Fd = F(d1). Với k = 1, 2, ...., lặp lại các bƣớc sau:
Nếu Fc< Fd thì: Đặt ak + 1 = ak; bk + 1 = dk; dk + 1 = ck; ck + 1 = ak + 1 + (1 - ) (bk + 1 – ak + 1) Fd = Fc; Fc= F (ck + 1) Ngƣợc lại Đặt ak + 1 = ck; bk + 1 = bk; ck + 1 = dk; dk + 1 = bk + 1 - (1 - ) (bk + 1 – ak + 1) Fc = Fd; Fd= F (dk + 1) Kết thúc chừng nào (bk + 1 – ak + 1) < tol
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/
Thiết lập lại thuật toán
Thuật toán gradient kết hợp còn cần phải sửa đổi thêm một chút nữa trƣớc khi áp dụng để luyện cho mạng nơron. Đối với hàm bậc 2, thuật toán sẽ hội tụ đến điểm cực tiểu sau nhiều nhất n bƣớc, trong đó n là số các tham số cần tối thiểu hóa. Chỉ số hiệu năng trung bình bình phƣơng lỗi của mạng nơron truyền thẳng nhiều lớp không phải ở dạng bậc 2, do vậy thuật toán sẽ không hội tụ sau n bƣớc lặp. Những phát triển ở phía trên không chỉ ra hƣớng tìm kiếm tiếp theo sau khi n bƣớc lặp hoàn thành. Có nhiều cách để thực hiện, nhƣng ta chỉ cần áp dụng một cách đơn giản nhất đó là đặt lại hƣớng tìm kiếm trở lại hƣớng ban đầu của thuật toán giảm nhanh nhất sau khi n bƣớc lặp đã hoàn thành.