About Me

header ads

Backpropagation Algorithm

Thuật toán Lan truyền ngược (Backpropagation Algorithm)


Ý tưởng chính của quá trình huấn luyện dựa trên thuật toán Lan truyền ngược (Backpropagation algorithm) như sau: Dữ liệu đầu vào được đưa vào mạng, giá trị từng nút trong mạng được kích hoạt và cho ra kết quả đầu ra cuối cùng. Một hàm chi phí (cost function hoặc loss function) được xây dựng để đánh giá độ sai lệch của kết quả đầu ra của mạng so với kết quả mong muốn (theo dữ liệu thực tế). Dựa trên hàm chi phí, độ lỗi của mỗi nút trong mạng được tính toán để xác định sự đóng góp của mỗi nút trong độ lỗi của toàn mạng. Các tham số của mỗi nút được cập nhật theo giá trị hiện tại và độ lỗi tại nút đó. Quá trình này được lặp lại cho đến khi độ lỗi của mạng tiến tới giá trị tối ưu (cực tiểu).


Quá trình học của Neural Network được chia thành 02 giai đoạn, bao gồm: Giai đoạn 1: Lan truyềnGiai đoạn 2: Cập nhật tham số

Một số quy ước trong biểu diễn thuật toán Backpropagation Algorithm, như sau:

  • nl  là số layer trong mạng; sl là số lượng neural trong layer l; Li là layer thứ i trong mạng.

  • Tập các tham số trong mạng là (W,b) trong đó W là tập tất cả các trọng số (weight) còn b là tập tất cả các giá trị lệch (bias).

  • Wij(l) là trọng số kết nối neural thứ j trong layer l với neural  i trong layer l + 1.bi(l) là giá trị độ lệch (bias) với neural thứ i trong layer l + 1.

  • ai(l) là giá trị kích hoạt (kết quả) của neuron thứ i trong layer l; khi đó ai(l) = xi tương ứng với giá trị đầu vào thứ i trong lớp đầu vào.

  • zi(l) là tổng các tích của trọng số và đầu vào, thêm vào giá trị lệch (bias) của neuron i trong layer l. Từ đó, ai(l) = f(zi(l)) với f là hàm kích hoạt (activation function).

  • Hàm giả thiết hW,b(x) là hàm biến đổi giá trị tập dữ liệu đầu vào x của lớp đầu vào (input layer) thành tập các giá trị đầu ra y trong lớp đầu ra (output layer); ở đây (x,y) tương ứng với một mẫu huấn luyện (training sample).

  • Hàm chi phí J(W,b ; x,y) là hàm thể hiện độ sai lệch của kết quả đầu ra của mạng dựa trên dữ liệu đầu vào, hW,b(x), với giá trị đầu ra mong muốn y cho một mẫu huấn luyện (x,y). Một hàm chi phí hay được sử dụng là hàm trung bình của bình phương lỗi Mean Square Error (MSE) với công thức như sau:

J(W,b ; x,y) = 12||hW,b(x) - y || 2 

Từ đó, thuật toán lan truyền ngược cho một mẫu huấn luyện (x,y) như sau:

Giai đoạn 1 - Lan truyền

  1. Lan truyền thuận (forward pass): dựa trên dữ liệu đầu vào để tính toán giá trị tại tất cả các nút kích hoạt trong các lớp L2, L3,,..., cho tới khi có kết quả đầu ra trong layer Lnl.

  2. Lan truyền ngược (backward pass):

    1. Tính độ lỗi tại các nút đầu ra: Với mỗi nút i trong layer ni (lớp đầu ra), tính các giá trị lỗi:

  1. Tính độ lỗi tại các nút ẩn: Với l = nl - 1, nl - 2,...,2: với mỗi nút i trong layer l. Tính gia trị lỗi tại nút:

Giai đoạn 2 - Cập nhật tham số

  1. Tính giá trị gradient của tham số tại nút:

  1. Cập nhật tham số mới theo gradient

Với 𝞪 là hệ số huấn luyện (learning rate).


Đăng nhận xét

0 Nhận xét