Trong phần trước chúng tôi đ• xem xét bề mặt của hàm đặc trưng thực hiện. Trong phần này chúng tôi vẩn sử dụng chuỗi Taylor mở rộng để phát triển thuật toán tìm kiếm trong không gian tham số để tìm điểm tối ưu. Chúng tôi sẽ trình bày ba phương pháp cho thuật toán này: xuống dốc từng bước, phương pháp Newton và kết hợp gradient.
Mục tiêu là phát triển thuật toán tối ưu một hàm đặc trưng thực hiện F(x), sự tối ưu ở đây là tìm một
giá trị của x sao cho hàm F(x) là tối thiểu. Chúng ta h•y bắt đầu từ điểm xuất phát x0, và sẽ được thay
đổi theo cách sau:
(2.53) hoặc
(2.54)
Trong đó pk biểu diễn một hướng tìm kiếm, giá trị dương vô hướng là tốc độ học, sẽ quy định số
bước lặp.
Các thuật toán trình bày trong phần này được phân biệt bởi việc lựa chọn hướng tìm kiếm pk. Chúng tôi sẽ trình bày 3 phương pháp sau đây. Tốc độ học sẽ có rất nhiều cách lựa chọn và sẽ được trình bày trong những phần sau.
2.2.1. Phương pháp xuống dốc từng bước
Khi chúng ta cập nhật điểm tối ưu ban đầu bằng công thức (2.53), chúng ta mong muốn hàm đặc trưng sẽ giảm tại mỗi bước lặp, hay:
(2.55)
Ta sẽ chọn một hướng pk sao cho với tốc độ học đủ nhỏ, và có thể thực hiện "xuống đồi" (downhill). Xét chuỗi Taylor mở rộng ở công thức (2.10) của hàm F(x) theo giá trị xk:
(2.56)
Trong đó gk là giá trị của gradient tại điểm xk:
(2.57)
Để F(xk+1) nhỏ hơn F(xk), thành phần thứ 2 trong công thức (2.56) phải âm:
(2.58)
Chúng ta sẽ chọn một nhỏ nhưng phải lớn hơn 0. Ta sẽ có: (2.59)
Một véctơ pk thỏa m•n công thức này được gọi là một hướng xuống dốc. Hàm sẽ giảm nếu chúng ta
thực hiện một số bước đủ nhỏ trong hướng này. Tuy nhiên để chọn hướng sao cho hàm giảm ở hầu
hết các bước lặp thì hầu hết phải âm. Đây là tích trong giữa gradient và véctơ hướng, . Nó sẽ hầu hết âm khi véctơ hướng là trái dấu với gradient. Vì vậy một véctơ là một hướng sao trong thực hiện xuống dốc từng bước là:
(2.60)
Sử dụng công thức này trong mỗi bước lặp của công thức (2.53) sẽ cho ta phương pháp xuống dốc
từng bước:
(2.61)
Với phương pháp này chúng tôi đưa ra hai phương pháp để xác định tốc độ học, . Một cách tiếp cận là tối thiểu hàm đặc trưng thực hiện F(x) với từng riêng biệt tại mỗi bước lặp. Trong trường hợp này chúng ta đang thực hiện tối thiểu theo đường thẳng:
(2.62)
Các phương pháp chọn là sử dụng một giá trị cố định (ví dụ = 0.02), hoặc thay đổi, nhưng giá trị phải
được quy định trước (ví dụ = 1/k). Xét ví dụ cho sự lựa chọn như sau. Thực hiện áp dụng phương pháp xuống dốc từng bước đối với hàm sau: ,
Xuất phát với điểm ban đầu
Bước thứ nhất ta có gradient là:
Giả sử chúng ta sử dụng tốc độ học cố định =0.01. Thuật toán thay đổi ở bước lặp thứ nhất sẽ là:
ở bước lặp thứ 2 sẽ là:
Nếu chúng ta tiếp tục các bước lặp ta sẽ được quỹ đạo tìm kiếm như hình vẽ sau.
Hình 2.63- Quỹ đạo tìm kiếm với =0.01
Ô tròn thể hiện các điểm tìm kiếm tại mỗi bước lặp. Tuy nhiên nếu chúng ta thay đổi tốc độ học thì
Hình 2.64- Quỹ đạo tìm kiếm với =0.035
Chúng ta muốn chọn tốc độ học lớn với hi vọng thuật toán hội tụ nhanh hơn (việc tìm kiếm cần ít
bước lặp hơn). Tuy nhiên qua ví dụ này ta thấy tốc độ học lớn quá thì thuật toán sẽ trở nên không ổn
định. Sẽ không có một lựa chọn tốc độ học tối đa cho phép đối với mọi hàm, nhưng đối với hàm bậc 2 chúng ta có thể đặt giới hạn trên cho tốc độ học .
Xét tốc độ học ổn định
Giả sử hàm đặc trưng thực hiện là một hàm bậc 2 như sau:
(2.65)
Theo công thức (2.38) ta tính gradient của hàm là: (2.66)
Thay vào công thức của thuật toán xuống dốc từng bước (2.61) ta được:
(2.67) hay
(2.68)
Đây là một hệ động tuyến tính, nó sẽổn định nếu các trị riêng của ma trận có độ lớn nhỏ hơn 1. Chúng ta có thể biểu diễn các trị riêng của ma trận này thành các thành phần của trị riêng của ma trận
Hessian A. Đặt và là các trị riêng và véctơ riêng của ma trận Hessian, thì ta có:
(2.69)
Vì thế các véctơ riêng của giống với các véctơ riêng của A, và các trị riêng của là . Điều kiện cho sự ổn định của thuật toán xuống dốc từng bước sẽ là:
(2.70)
Nếu chúng ta giả thiết rằng hàm bậc 2 có một điểm cực tiểu mạnh thì các trị riêng của nó phải là
những số dương, khi đó công thức (2.70) sẽ trở thành
(2.71)
Điều này phải đúng với tất cả các trị riêng của ma trận Hessian nên ta sẽ có
(2.72)
Tốc độ học ổn định tối đa tỷ lệ nghịch với độ cong lớn nhất của hàm bậc 2. Độ cong của hàm cho ta thấy độ nhanh của sự thay đổi gradient. Nếu gradient thay đổi quá nhanh chúng ta có thể nhảy qua
khỏi điểm cực tiểu mà ở đó gradient sẽ lớn hơn rất nhiều so với điểm trước đó. Điều này dẫn đến
việc tăng số lượng các bước lặp của thuật toán.
Xét ví dụở trên ta có ma trận Hessian của hàm bậc hai là
Các véctơ riêng và trị riêng của A là
Ta có tốc độ học tối đa cho phép là
Kết quá này sẽ được minh họa trong hình sau với 2 tốc độ học khác nhau là và .
Hình 2.73- Quỹ đạo tìm kiếm với ?=0.039 và ?=0.041
Cực tiểu theo một đường thẳng
Một cách tiếp cận khác cho việc chọn tốc độ học để cực tiểu hàm đặc trưng thực hiện với các khác
nhau tại mỗi bước lặp. Nói một cách khác, chọn để cực tiểu
Đối với hàm bậc 2 chúng ta có thể thực hiện cực tiểu tuyến tính theo giải tích. Đạo hàm riêng của hàm (2.74) đối với các được tính như sau:
(2.75)
Nếu ta đặt đạo hàm này bằng 0 và tính cho ta được
(2.76)
Trong đó Ak là ma trận Hessian được tính tại bước lặp trước đó với xk: (2.77)
2.2.2. Phương pháp Newton
Phương pháp xuống dốc từng bước trình bày ở trên sử dụng chuỗi Taylor mở rộng tới số hạng thứ
nhất, phương pháp Newton lại sử dụng chuỗi Taylor mở rộng tới số hạng thứ hai, tức là: (2.78)
Nguyên l{ đằng sau phương pháp Newton là tìm điểm ổn định của xấp xỉ bậc 2 tới hàm F(x). Nếu chúng ta sử dụng công thức (2.38) tính gradient của hàm bậc hai với các riêng biệt và đặt nó bằng 0, ta được:
(2.79) Rút ra tính ta được
(2.80)
Phương pháp Newton được thể hiện như sau: (2.81)
Tuy vậy thực hiện theo phương pháp này ta sẽ tốn một khối lượng công việc tính toán rất lớn tại mỗi
bước lặp, dẫn đến không phù hợp trong thực tế. Tiếp theo chúng tôi sẽ trình bày một phương pháp
kết hợp gradient có hiệu quả hơn.
2.2.3. Phương pháp liên hợp gradient
Trong phương pháp xuống dốc từng bước thực hiện tìm kiếm tuyến tính tại mỗi bước lặp. Các hướng tìm kiếm ở các bước lặp liên tục là trực giao nhau. Hàm bậc hai với các đường đồng mức elíp sẽ cho ta
một quỹ đạo tìm kiếm zig-zag trên đó. Có lẽ các hướng tìm kiếm bậc hai không phải là sự lựa chọn tốt
nhất, có một phương pháp có thể đó là liên hợp gradient sẽ được trình bày sau đây.
Giả định rằng chúng ta mong muốn tìm điểm cực tiểu của hàm bậc hai:
Một tập các véctơ gọi là liên hợp lẫn nhau đối với một ma trận Hessian A xác định dương nếu và chỉ
nếu
(2.83)
Đối với các véctơ trực giao, có một số hữu hạn các tập liên hợp lẫn nhau các véctơ mà trải rộng một
không gian n chiều. Một tập các véctơ liên hợp bao gồm các véctơ riêng của A. Đặt và là các trị riêng và véctơ riêng của ma trận Hessian. Để thấy được các véctơ là liên hợp, thay pk bằng zk trong công thức (2.83) ta có:
(2.84)
Trong đó đẳng thức cuối cùng được giữ bởi vì các véctơ riêng của một ma trận đối xứng là trực giao
lẫn nhau. Vì thế các véctơ riêng vừa cả liên hợp cả trực giao.
Chúng ta có thể cực tiểu chính xác một hàm bậc hai bằng việc tìm kiếm theo các véctơ riêng của ma trận Hessian, khi chúng hình thành các trục nguyên lý của các đường đồng mức. Tuy trong thực tế
không hợp lý khi chúng ta phải tìm ma trận Hessian trước khi tìm các véctơ riêng. Chúng ta cần một thuật toán không đòi hỏi tính toán nhiều về đạo hàm bậc 2.
Chúng ta thấy rằng nếu làm một thứ tự chính xác các tìm kiếm tuyến tính theo bất kz một tập các
hướng liên hợp , thì cực tiểu chính xác của bất kz một hàm bậc hai, với n tham số, sẽ đạt được trong
nhiều nhất n lần tìm kiếm. Tuy nhiên bằng cách nào chúng ta có thể xây dựng được các hướng tìm
kiếm liên hợp?. Đầu tiên chúng tôi muốn trình bày lại điều kiện liên hợp, đ• được đưa ra trong công thức (2.83), nhưng không sử dụng ma trận Hessian.
Chúng ta có đạo hàm bậc nhất của hàm bậc hai là:
(2.85)
và đạo hàm bậc 2 của nó là:
(2.86)
Kết hợp các đẳng thức này với nhau ta có được sự thay đổi gradient tại bước lặp thứ k+1 là: (2.87)
Trong đó theo công thức (2.54) chúng ta có
(2.88)
và được chọn để cực tiểu F(x) trong hướng pk.
Chúng ta có thể phát biểu lại điều kiện liên hợp ở công thức (2.83): (2.89)
Điều kiện liên hợp ở đây chúng ta không cần ma trận Hessian, nhưng theo sự thay đổi gradient tại các bước lặp liên tiếp của thuật toán. Các hướng tìm kiếm sẽ liên hợp nếu chúng là trực giao với sự thay đổi trong gradient.
Hướng tìm kiếm đầu tiên p0 là tùy ý và p1 là một véctơ bất kz trực giao với . Vì thế có một số hữu hạn các tập các véctơ liên hợp. Thông thường bắt đầu tìm kiếm trong hướng của phương pháp xuống dốc từng bước:
(2.90)
Sau đó tại mỗi bước lặp chúng ta cần xây dựng một véctơ pk, sao cho nó trực giao với , có thể được
hình thành đơn giản như sau:
(2.91)
Giá trị vô hướng có thể được chọn bằng một số phương pháp khác nhau, theo Hestenes và Steifel, thông thường ta chọn
(2.92)
theo Fletcher và Reeves, ta chọn
(2.93)
theo Polak và Ribiére, ta chọn
(2.94)
Phương pháp liên hợp có thể được trình bày bởi các bước sau đây:
1. Chọn hướng tìm kiếm ban đầu trái dấu với gradient, như trong công thức (2.90).
2. Thực hiện một bước theo công thức (2.88), chọn tốc độ học để cực tiểu hàm theo hướng tìm kiếm.
Đối với hàm bậc hai chúng ta sử dụng công thức (2.76).
3. Chọn hướng tìm kiếm tiếp theo theo công thức (2.92), công thức (2.93) hoặc (2.94) để tính .
4. Nếu thuật toán chưa hội tụ, ta quay lại bước 2.
Xét ví dụ minh họa cho thuật toán này, sử dụng phương pháp xuống dốc từng bước với cực tiểu tuyến
tính:
với điểm ban đầu là
Theo phương pháp xuống dốc từng bước, hướng tìm kiếm đầu tiên là trái dấu với gradient:
Từ công thức (2.76), tốc độ học cho bước lặp đầu tiên sẽ là
Bước lặp đầu tiên của thuật toán liên hợp gradient như sau:
Hướng tìm kiếm ở bước tiếp theo từ công thức (2.91), ta phải tính gradient tại x1:
Chúng ta tìm :
Sử dụng phương pháp Fletcher và Reeves (công thức (2.93)). Hướng tìm kiếm tiếp theo được tính bởi công thức (2.91):
Từ công thức (2.76) ta tính tốc độ học cho bước lặp tiếp sẽ là:
Bước lặp thứ hai của thuật toán liên hợp gradient như sau:
Hình 2.95- Quỹ đạo thể hiện tìm kiếm theo 2 phương pháp chương 3
một số phương pháp huấn luyện mạng nơron
Trong chương này chúng tôi sẽ trình bày một số lớp khác nhau các phương pháp học mạng nơron, bao
gồm học liên hợp – Associative learning, học cạnh tranh – Competitive learning và học hiệu suất –
Performance learing, cùng với thuật toán lan truyền ngược - Back propagation. 3.1. Mạng Perceptron và quy tắc học Perceptron
Năm 1943, Warren McCulloch và Walter Pitts giới thiệu một nơron nhân tạo đầu tiên. Đặc trưng của mô hình nơron này là tổng trọng số các đầu vào được so sánh với một độ lệch để xác định đầu ra của nơron theo cách: nếu tổng đó lớn hơn độ lệch thì đầu ra sẽ là 1, ngược lại sẽ là 0.
Sau đó, những năm 50 được Frank Rosenblatt và các nhà nghiên cứu phát triển thành một mạng nơron
được gọi là mạng perceptron. Trong mạng này mô hình nơron vẩn giữ nguyên, đóng góp chính của Rosenblatt là giới thiệu quy tắc học cho mạng để giải quyết vấn đề nhận dạng mẫu. Ông đ• chứng minh rằng quy tắc học này sẽ luôn luôn hội tụ tới đích nếu có nghiệm.
Tuy nhiên mạng perceptron có những hạn chế nhất định. Dẫn chứng là nó không có khả năng thực hiện xấp xỉ các hàm đơn giản. Cho đến những năm 1980 những hạn chế này được phát triển bằng việc
sử dụng nhiều lớp, kết hợp với thuật toán học.
Hiện nay mạng perceptron vẩn được xem như một mạng quan trọng. Nó giữ được đặc tính nhanh và
tin cậy của mạng cho việc phân lớp mà nó có thể. Hơn nữa việc hiểu sự hoạt động của mạng dễ hơn những mạng phức tạp khác.
3.1.1. Kiến trúc perceptron
Mạng perceptron được thể hiện như hình vẽ 3.1, và đầu ra được tính như sau:
Hình 3.1- Mạng perceptron
Ma trận trọng số W có kích thước SxR như sau: (3.2)
Chúng ta định nghĩa một hàng của ma trận trong số ký hiệu bằng iw như sau:
(3.3)
Kết quả véctơ ra của mạng được xác định là: ai = hardlim(ni) = hardlim(iwTp+b) với hàm hardlim được tính như sau:
(3.4)
3.1.2. Quy tắc học perceptron
Quy tắc học perceptron là học có giám sát (suppervisor learning). Giả sử tập dữ liệu học là , trong đó
pq là đầu vào của một mẫu học thứ q và tq là đầu ra mong muốn. Khi đầu vào pq được đưa vào mạng, ta tính kết quả đầu ra aq và so sánh với đầu ra mong muốn tq. Học tức là điều chỉnh trọng số liên kết và độ lệch để đưa mạng dần tới đầu ra mong muốn.
Điều chỉnh trọng số liên kết theo công thức: (3.5)
Điều chỉnh độ lệch bằng biểu thức:
(3.6)
3.1.3. Xét sự hội tụ của thuật toán học
Mặc dù quy tắc học perceptron là đơn giản nhưng nó khá mạnh. Trong thực tế, nó cho thấy sự hội tụ
tới trọng số mà ở đó mạng đạt được yêu cầu phân lớp. ở đây chúng tôi xem xét sự hội tụ của một nơron như hình sau.
Hình 3.7- Nơron perceptron đơn
Các ký hiệu sử dụng biểu diễn dưới dạng véctơ
, (3.8)
Từ đó ta có tổng đầu vào của mạng là
(3.9)
Từ công thức điều chỉnh trọng số 3.5 và độ lệch 3.6 theo quy tắc perceptron ta viết gộp lại dưới dạng
ký hiệu véctơ sẽ là
Sai số e của mạng có thể là 1, -1, hoặc 0. Nếu e=0 thì không có sự thay đổi trong số và độ lệch. Nếu e=1 thì véctơ x (bao gồm trọng số và độ lệch) được cộng thêm véctơ vào y. Nếu e=-1 thì sẽ trừ đi. Nếu
chúng ta chỉ đếm những lần lặp mà véctơ x bị thay đổi thì quy tắc học trở thành như sau
x(k)=x(k-1) + y’(k-1) (3.10)
trong đó y’(k-1) là các phần tử trong tập hợp sau với q=1,2,...,Q (3.11)
Chúng ta giả sử có tồn tại một véctơ trọng số và độ lệch là x* phân lớp chính xác Q véctơ vào {(pq,tq)}
với q=1, 2, ..., Q. Khi đó ta có
và
với q=1,2,...,Q (3.13)
Để đảm bảo cho sự hội tụ của thuật toán chúng ta đưa ra ba tiêu chuẩn sau: