Thuật toán Back-propagation

Một phần của tài liệu ĐỒ ÁN TỐT NGHIỆP Đề tài “Lý thuyết mạng Neuron và ứng dụng trong nhận dạng tiếng nói” (Trang 37 - 46)

PHƯƠNG PHÁP HỌC CHO MẠNG TIẾN (FEEDFORWARD) ĐA MỨC

2.2.2Thuật toán Back-propagation

Tín hiệu lỗi tại đầu ra của neuron j tại vòng lặp thứ n (khi xử lý ví dụ tích luỹ thứ n) được xác định như sau

neuron j là một nút đầu ra (2.6)

Chúng ta định nghĩa giá trị tức thời của năng lượng lỗi cho neuron j là . Cũng tương tự như vậy, giá trị tức thới (n) của năng lượng lỗi tổng cộng nhận được bởi việc tính tổng trên tất cả các neuron trong mức đầu ra; đây là các neuron nhìn thấy duy nhất mà các tín hiệu lỗi có thể được tính toán một cách trực tiếp. Như vậy, chúng ta có thể viết

(2.7)

ở đó tập hợp C bao gồm tất cả các neuron trong mức đầu ra của mạng. Đặt N là số các mẫu (các ví dụ) trong tập hợp tích luỹ. Năng lượng lỗi bình phương trung bình nhận được bằng cách tính tổng (n) trên tất cả các giá trị của n rồi chia cho kích thước tập hợp N như sau

(2.8)

Các giá trị năng lượng lỗi kể trên là hàm của tất cả các các tham số tự do (các trọng số synapse và các hệ số hiệu chỉnh) của mạng. Với một tập hợp tích luỹ cho trước, đại lượng av biểu diễn một hàm giá như một thước đo tính năng của việc học. Mục đích của quá trình học là để điều chỉnh các tham số tự do của mạng làm cho avđạt cực tiểu. Chúng ta xem xét một phương pháp tích luỹ đơn giản mà trong đó các trọng số được cập nhật trên cơ sở từng mẫu một cho tới khi một Thời

kỳ (toàn bộ tập hợp tích luỹ được sử dụng một lượt) kết thúc. Những sự điều chỉnh trọng số được thực hiện theo các lỗi tương ứng được tính toán cho từng mẫu tích luỹ.

Chúng ta xem xét hình 2.4, trong đó thể hiện neuron j với các đầu vào là các tín hiệu chức năng được tạo ra bởi mức neuron ở bên trái. Tổ hợp tuyến tính vj(n) được tạo ra tại đầu vào của hàm kích hoạt của neuron j như sau

(2.9)

ở đó m là số các đầu vào của neuron j. Trọng số synapse wi0(tương ứng với đầu vào cố định y0=+1) là hệ số hiệu chỉnh bj của neuron j. Như vậy tín hiệu chức năng yi(n) xuất hiện tại đầu ra của neuron j tại vòng lặp thứ n là

yj(n)=(vj(n)) (2.10)

Trong thuật toán back-propagation, hiệu chỉnh wji(n) đối với trọng số synapse wji(n) tỷ lệ với đạo hàm riêng (n)/wji(n). Theo quy tắc tính toán đạo hàm, chúng ta có thể biểu diễn gradient này như sau

(2.11)

đạo hàm riêng này xác định hướng tìm kiếm trong không gian trọng số đối với trọng số synapse wji.

Đạo hàm cả hai vế của (2.7) theo ej(n), chúng ta có

(2.12)

Đạo hàm cả hai vế của (2.6) theo yj(n), chúng ta có

(2.13)

Đạo hàm cả hai vế của (2.10) theo vj(n), chúng ta có

(2.14)

Cuối cùng, đạo hàm cả hai vế của (2.9) theo wji(n), chúng ta có

(2.15)

Áp dụng các công thức từ (2.12) đến (2.15) cho công thức (2.11), ta có

(2.16)

Hiệu chỉnh wji(n) áp dụng cho trọng số wji(n) được xác định theo quy tắc

(2.17)

ở đó là tham số tốc độ học. Như vậy từ (2.16) và (2.17), ta có

wji(n)=j(n)yj(n) (2.18)

ở đó gradient cục bộj(n) được xác định như sau

(2.19) (adsbygoogle = window.adsbygoogle || []).push({});

Gradient cục bộ chỉ ra những thay đổi cần thiết cho các trọng số synapse. Từ các công thức (2.18) và (2.19), chúng ta thấy rằng một yếu tố chính liên quan tới việc tính toán các điều chỉnh trọng số wji(n) là tín hiệu lỗi ej(n) tại đầu ra của neuron j. Ở đây, chúng ta quan tâm đến hai trường hợp riêng biệt. Trường hợp thứ nhất, neuron j là một nút đầu ra; và trường hợp thứ hai, neuron j là một nút ẩn.

Trường hợp 1. Neuron j là một nút đầu ra

Khi neuron j nằm ở mức đầu ra của mạng, nó được cung cấp một đáp ứng mong muốn. Chúng ta có thể sử dụng công thức (2.6) để tính toán tín hiệu lỗi ej(n) tương ứng với neuron này (xem hình 2.4). Do xác định được ej(n), chúng ta dễ dàng tính được gradient cục bộ j(n) theo công thức (2.19).

Trường hợp 2. Neuron j là một nút ẩn

Khi neuron j thuộc một mức ẩn của mạng, không có một đáp ứng mong muốn xác định nào cho neuron này. Như vậy, tín hiệu lỗi cho một neuron ẩn được xác định một cách đệ quy theo các tín hiệu lỗi của tất cả các neuron mà neuron đang xét kết nối trực tiếp. Hãy xem xét tình huống được mô tả trong hình 2.5. Theo công thức (2.19), chúng ta có thể tính lại gradient cục bộ của neuron j như sau

, neuron j là ẩn (2.20)

Hình 2.5 Đồ thị luồng tín hiệu chi tiết cho một neuron ẩn j nối với một neuron đầu ra k.

Để tính đạo hàm riêng (n)/wji(n), chúng ta có thể thực hiện như sau. Từ hình 2.5, chúng ta thấy rằng

, neuron k là nút đầu ra (2.21)

Đạo hàm hai vế công thức (2.21) theo tín hiệu chức năng yj(n), chúng ta có

(2.22)

Tiếp theo, chúng ta sử dụng quy tắc tính đạo hàm và viết lại công thức (2.22) dưới dạng tương đương như sau

(2.23)

Tuy nhiên, từ hình 2.5, chúng ta nhận thấy

ek(n)=dk(n)-yk(n)

=dk(n)-k(vk(n)), neuron k là một nút đầu vào (2.24)

Như vậy

(2.25)

Từ hình 2.5, chúng ta cũng thấy rằng đối với neuron k

(2.26)

ở đó m là số đầu vào (bao gồm cả hệ số hiệu chỉnh) của neuron k. Lấy đạo hàm công thức (2.26) theo yj(n), ta có

(2.27)

Từ các công thức (2.25), (2.27) và (2.23), chúng ta tính được đạo hàm riêng mong muốn

(2.28)

ở đó k(n) cho bởi công thức (2.19) với chỉ số k thay cho chỉ số j.

Cuối cùng, thay công thức (2.28) vào công thức (2.20), chúng tađược công thức back-propagation cho gradiient cục bộ j(n) như sau

, neuron j là nút ẩn (2.29)

Hình 2.6 thể hiện đồ thị luồng dữ liệu của công thức (2.29), vói giả định rằng mức đầu ra bao gồm mLneuron.

Tóm tắt lại thuật toán

Bây giờ chúng ta tổng kết những gì mà chúng ta vừa tính được cho thuật toán back-propagation. Đầu tiên, hiệu chỉnh wji(n) của trọng số wji(n) mà nối neuron i với neuron j được xác định bởi quy tắc deltanhư sau (adsbygoogle = window.adsbygoogle || []).push({});

(2.30)

Thứ hai, gradient cục bộ j được xác định tuỳ theo việc neuron j là một nút đầu ra hay một nút ẩn:

Nếu neuron j là một nút đầu ra, j(n) được tính theo công thức (2.19): bằng tích của đạo hàm ‘(vj(n)) với tín hiệu lỗi e(n).

Nếu neuron j là một nút ẩn, j(n) được tính một cách đệ quy theo công thức (2.29): bằng tích của đạo hàm riêng ‘(vj(n)) với tổng các  đã được nhân với các trọng số tương ứng () của tất cả các neuron thuộc mức tiếp theo mà được neuron j nối tới.

Hình 2.6 Đồ thị luồng tín hiệu của một phần mạng tiến đa mức khi tín hiệu lỗi phản hồi trở lại

Hai giai đoạn tính toán của thuật toán

Trong việc áp dụng thuật toán back-propagation, có hai giai đoạn tính toán tách biệt nhau: giai đoạn tiến (forward), và giai đoạn lùi (backward).

Trong giai đoạn tiến, các trọng số synapse giữ nguyên không thay đổi trong toàn bộ giai đoạn, và các tín hiệu chức năng được tính toán dựa trên cơ sở từ neuron này tới neuron khác theo chiều tiến của mạng. Bắt nguồn từ đầu vào là một

mẫu tích luỹ, quá trình tính toán cứ tiếp diễn cho tới khi tínhđược đầu ra của các neuron nằm trong mức đầu ra cuả mạng. Đầu ra này được so sánh với đáp ứng mong muốn di(n), và thu được tín hiệu lỗi ej(n). Như vậy, giai đoạn tính toán tiến bắt đầu từ mức ẩn đầu tiên và kết thúc tại mức đầu ra để tính toán tín hiệu lỗi cho mỗi neuron tại mức này.

Trái lại, giai đoạn tính toán lùi bắt đầu tại mức đầu ra bằng cách chuyển tín hiệu lỗi ngược trở lại qua toàn bộ mạng theo từng mức nhằm tính toán một cách đệ quy  (gradient cục bộ) cho mỗi neuron. Quá trình đệ quy này cho phép các trọng số synapse của mạng có thể được điều chỉnh theo quy tắc delta (công thức (2.30)). Bằng cách như vậy, sự điều chỉnh các trọng số synapse sẽ được lan truyền trên toàn bộ mạng.

Tốc độ học

Thuật toán back-propagation cung cấp một phương pháp tính “xấp xỷ” cho việc lần tìm trong không gian trọng số (nhằm tìm ra các trọng số phù hợp nhất cho mạng). Chúng ta càng lấy giá trị của tham số tốc độ học nhỏ bao nhiêu thì sự thay đổi của trọng số synapse càng nhỏ bấy nhiêu và quỹ đạo trong không gian trọng số sẽ càng trơn. Tuy nhiên điều này lại làm cho tốc độ học chậm đi. Trái lại nếu chúng ta chọn tham số tốc độ học quá lớn, sự thay đổi lớn của các trọng số synapse có thể làm cho mạng trở nên không ổn định. Một phương pháp đơn giản để tăng tốc độ học mà tránh được nguy cơ không ổn định như trên là thay đổi quy tắc delta trong công thức (2.18) bằng cách sử dụng thêm một toán hạng moment như sau

wji(n)=wji(n-1)+(n)yi(n) (2.31)

ở đó thường được gọi là hằng số moment. Nó điều khiển vòng lặp quay lui hoạt động xung quanh wjinhư được minh hoạ trong hình 2.7 mà ở đó z-1 là toán hạng đơn vị trễ. Đẳng thức (2.31) được gọi là quy tắc delta tổng quát mà quy tắc delta trong công thức (2.18) là một trường hợp đặc biệt (với =0).

Hình 2.7 Đồ thị luồng tín hiệu minh hoạ tác dụng của hằng số moment 

Để thấy được ảnh hưởng của các hiệu chỉnh trong quá khứ đối với các trọng số synapse, chúng ta viết lại công thức (2.31) như một tổng chuỗi theo thời gian với chỉ số thời gian tnhư sau

(2.32)

Từ công thức (2.16) và (2.19), chúng ta thấy rằng toán hạng j(n)yi(n) chính bằng -(n)/wji(n). Như vậy, chúng ta có thể viết lại công thức (2.32) như sau

(2.33)

Dựa trên quan hệ này, chúng ta có thể đi một số nhận định sau:

Điều chỉnh hiện thời wji biểu diễn một tổng chuỗi theo thời gian với số mũ của hằng số tăng theo thời gian. Để chuỗi này có thể hội tụ, hằng số moment phải nằm trong giới hạn 0||<1. Khi bằng 0, thuật toán back- propagation hoạt động không có moment. có thể nhận giá trị âm hoặc dương.

Khi đạo hàm -(n)/wji(n) có cùng dấu đại số trong các vòng lặp kế tiếp nhau, wji tăng theo hàm mũ, và như vậy trọng số wjiđược điều chỉnh bởi một giá trị lớn. Trong trường hợp này, việc đưa thêm moment vào thuật toán back-propagation có xu hướng làm cho nó hoạt động một cách nhanh chóng và đều đặn.

Khi đạo hàm -(n)/wji(n) đổi dấu ở những vòng lặp kế tiếp nhau, wji dao động về giá trị, và như vậy trọng số wji(n) được điều chỉnh bởi một giá trị nhỏ. Trong trường hợp này, việc đưa thêm moment vào thuật toán back- propagation cho nó khả năng tự ổn định dần theo thời gian.

Việc tích hợp moment vào thuật toán back-propagation biểu diễn một sự thay đổi căn bản trong việc cập nhật trọng số, và nó có thể đem lại hiệu quả tốt cho

hoạt động học của thuật toán. Toán hạng moment cũng có thể phần nào ngăn ngừa được nguy cơ quá trình học kết thúc tại một cực tiểu cục bộ của bề mặt lỗi.

Các Thời kỳ (Epoch)

Trong ứng dụng thực tế của thuật toán back-propagation, việc học thực hiện thông qua rất nhiều biểu hiện của một tập hợp các ví dụ tích luỹ cho trước. Như đã nhắc đến ở trên, một biểu diễn trọn vẹn của toàn bộ tập hợp tích luỹ trong quá trình học được gọi là một Thời kỳ. Quá trình học được duy trì trên một cơ sở từ

Thời kỳ này sang Thời kỳ khác cho tới khi các trọng số synapse và các mức hiệu chỉnh của mạng trở nên ổn định và lỗi bình phương trung bình trên toàn bộ tập hợp tích luỹ hội tụ tại một số giá trị cực tiểu. Sẽ tốt hơn nếu chúng ta chọn một cách

ngẫu nhiên thứ tự các thể hiện của các ví dụ tích luỹ cho từng thời kỳ. Mặc dù điều này không được chứng minh một cách rõ ràng nhưng nó là một trong những kinh nghiệm vô cùng quan trọng đảm bảo cho hiệu quả của thuật toán.

Trong thực tế, đôi khi việc điều chỉnh trọng số của thuật toán back- propagation không được thực hiện ngay trong giai đoạn lùi của thuật toán mà sau mỗi Thời kỳ. Khi đó tích trong công thức của quy tắc delta (2.30) sẽ được tính trung bình trên toàn bộ Thời kỳ cho mỗi neuron j. (adsbygoogle = window.adsbygoogle || []).push({});

Tiêu chuẩn dừng thuật toán

Nói chung, thuật toán back-propagation không thể xác định được là đã hội tụ hay chưa, và như vậy không có một tiêu chuẩn tuyệt đối nào cho việc dừng thuật toán. Tuy nhiên, vẫn có một số tiêu chuẩn có thể coi là chấp nhận được. Để tạo nên một tiêu chuẩn như vậy, một cách logic, chúng ta có thể nhghĩ đến những thuộc tính đặc trưng của các cực tiểu cục bộ hay toàn cục của bề mặt lỗi. Đặt w* là một cực tiểu, có thể là toàn cục hay cục bộ. Một điều kiện cần để w* là một cực tiểu là vector gradient g(w) (đạo hàm riêng bậc nhất) của bề mặt lỗi theo vector trọng số w phải bằng không tại w=w*. Như vậy, chúng ta có thể xây dựng nên một tiêu chuẩn hội tụ nhạy cảm cho thuật toán back-propagation như sau:

Thuật toán back-propagation được xem là hội tụ khi độ lớn Euclide của vector gradient đạt tới một ngưỡng gradient đủ nhỏ.

Một hạn chế của tiêu chuẩn hội tụ này là thời gian học phải dài và cần phải tính toán vector gradient g(w).

Một thuộc tính duy nhất nữa của cực tiểu là hàm giá av(w) ổn định tại w=w*. Như vậy chúng ta lại có thể đưa ra một tiêu chuẩn khác như sau:

Thuật toán back-propagation được xem là hội tụ khi tỷ lệ thay đổi tuyệt đối

của lỗi bình phương trung bình trên một Thời kỳ là đủ nhỏ.

Tỷ lệ thay đổi của lỗi bình phương trung bình được coi là đủ nhỏ nếu nó nằm trong giới hạn từ 0.1 đến 1 phần trăm trên một thời kỳ. Thật không may là tiêu chuẩn này có thể dẫn đến một sự kết thúc vội vàng của quá trình học.

Ngoài ra còn có phương pháp vừa học vừa thực hiện kiểm tra tính năng nhận dạng trên một tập hợp mẫu kiểm tra khác với tập hợp tích luỹ. Trong trường hợp này, thuật toán được xem là hội tụ khi nó đã tích luỹ đủ lâu và tính năng nhận dạng trên tập hợp kiểm tra đạt tới một giá trị cho phép.

Một phần của tài liệu ĐỒ ÁN TỐT NGHIỆP Đề tài “Lý thuyết mạng Neuron và ứng dụng trong nhận dạng tiếng nói” (Trang 37 - 46)