Khóa học Machine Learning online trên Coursera miễn phí – Andrew NG
I. Hàm Cost Function, hay tính khoảng cách giữa đầu ra dự đoán (giá trị tại lớp Output) với đầu ra thực tế. Có sử dụng Regularization để tránh Overfitting.
Và nhớ là giá trị Cost Function là một số thực cho mỗi tập dữ liệu đầu vào.
Các tính Gradient cũng được làm tuơng tự. Bao gồm cảu Regularization. Số chiều của Gradient sẽ bằng số chiều tham số.
Hàm Cost Function tính được bằng khoảng các giữa đầu ra thật và đầu ra dự đoán chỉ dành cho lớp cuối cùng thôi.
Nhưng ở Neural Network, có cả những lớp ẩn. Mỗi lớp ẩn có số Neuron khác nhau. Mỗi Neuron chính là một hàm với các kết nối có độ lớn khác nhau nữa.
Ta phải đi update các hàm số (hay chính là độ lớp các kết nôi) của các hàm (hay các Neuron) đó nữa.
Backgropagation Alogorithm sẽ thực hiện việc đó.
Việc giải thích tại sao thuật toán trên lại chạy khá nặng về toán học, mình có đọc qua nhưng không nhớ được mấy. (Thấy nhiều i,j,k lắm, đau đầu thật).
Đại khái là, nó sẽ tính độ lỗi hay mức độ phải trả giả cho cho việc dự đoán tại mỗi Neuron trong mỗi lớp ẩn. Việc tính này dựa vào độ lỗi từ lớp ngay sau.
Từ giá trị đó sẽ tính tiếp các giá trị cho từng kết nối của Neuron đó (hệ số) tới các giá trị lớp ngay trước.
Nghĩa là tính ngược từ lớp cuối lên. Tất nhiên là bỏ qua lớp Input.
II. Tiếp theo, việc tính đạo với hàm số phức tạp không hề dễ, lại còn dễ nhầm.
Cần có một bước kiểm tra tính đúng đắn của giá trị đạo hàm. Cái này dựa trên tính chất của vốn có của đạo hàm để thực hiện một bước kiểm tra đạo hàm.
III. Tiếp theo, đến khởi tạo hệ số.
Phải là random. Không thể khởi tạo toàn 0 cho các tham số được. Người ta thường khởi tạo giá trị trong một khoảng [-epsilon, epsilon] nào đó.
Leave a Reply