Ở đây, mỗi node trong hidden layer sẽ thực hiện 2 công việc.
1. Thực hiện a = X.wT + b
2. Thực hiện z = g(a)
Trong đó g là activation function.
Cho đến nay, ta đã nhắc tới sigmoid function như là 1 activation function có biểu thức:
Ngoài ra, còn có một số activation function khác (các activation functions đều là các hàm phi tuyến) như hình dưới đây:
Trong thực tế, ta sẽ chỉ dùng các hàm sigmoid và tanh cho output layer khi mà đầu ra cần các giá trị nằm trong khoảng (0,1) hoặc (-1,1) còn các hàm như ReLU and Leaky ReLU được sử dụng ở trong các node của hidden layers. Lý do ta không sử dụng các hàm sigmoid hay tanh trong hidden layers là khi ta thực hiện back propagation, các giá trị đạo hàm sẽ nhỏ dần khi ta đi từ phải sang trái của 1 mạng NN, đo đó Gradient Descent sẽ không thể áp dụng.
Ngoài ra, tại sao ta lại cần các activation function. Ví dụ gán trực tiếp z = a và ta không hề sử dụng hàm g. Lúc này, output và input sẽ quan hệ với nhau bởi 1 hàm tuyến tính, do đó, ta sẽ không thể có nhiều lớp.
Ta sử dụng activation functions là các hàm tuyến tính thì có được không? Hay việc sử dụng hàm phi tuyến sẽ đem lại kết quả tốt hơn?
Và tại sao ta lại cần nhiều lớp trong Neural Network?
Không có nhận xét nào:
Đăng nhận xét