Học sâu cheatsheet
Mạng Neural
Mạng Neural là 1 lớp của các mô hình (models) được xây dựng với các tầng (layers). Các loại mạng Neural thường được sử dụng bao gồm: Mạng Neural tích chập (Convolutional Neural Networks) và Mạng Neural hồi quy (Recurrent Neural Networks).
Kiến trúc Các thuật ngữ xoay quanh kiến trúc của mạng neural được mô tả như hình phía dưới:
Bằng việc kí hiệu $i$ là tầng thứ $i$ của mạng, $j$ là hidden unit (đơn vị ẩn) thứ $j$ của tầng, ta có:
chúng ta kí hiệu $w, b, z$ tương ứng với trọng số (weights), bias và đầu ra.
Hàm kích hoạt Hàm kích hoạt được sử dụng ở phần cuối của đơn vị ẩn để đưa ra độ phức tạp phi tuyến tính (non-linear) cho mô hình (model). Đây là những trường hợp phổ biến nhất:
| Sigmoid | Tanh | ReLU | Leaky ReLU |
| $g(z)=\displaystyle\frac{1}{1+e^{-z}}$ | $g(z)=\displaystyle\frac{e^{z}-e^{-z}}{e^{z}+e^{-z}}$ | $g(z)=\textrm{max}(0,z)$ | $g(z)=\textrm{max}(\epsilon z,z)$ với $\epsilon\ll1$ |
![]() | ![]() | ![]() | ![]() |
Lỗi Cross-entropy Trong bối cảnh của mạng neural, hàm lỗi cross-entropy $L(z,y)$ thường được sử dụng và định nghĩa như sau:
Tốc độ học Tốc độ học, thường được kí hiệu bởi $\alpha$ hoặc đôi khi là $\eta$, chỉ ra tốc độ mà trọng số được cập nhật. Thông số này có thể là cố định hoặc được thay đổi tuỳ biến. Phương thức (method) phổ biến nhất hiện tại là Adam, đó là phương thức thay đổi tốc độ học một cách phù hợp nhất có thể.
Lan truyền ngược Backpropagation là phương thức dùng để cập nhật trọng số trong mạng neural bằng cách tính toán đầu ra thực sự và đầu ra mong muốn. Đạo hàm theo trọng số $w$ được tính bằng cách sử dụng quy tắc chuỗi (chain rule) theo như cách dưới đây:
Như kết quả, trọng số được cập nhật như sau:
Cập nhật trọng số Trong mạng neural, trọng số được cập nhật như sau:
- Bước 1: Lấy một mẻ (batch) dữ liệu huấn luyện (training data).
- Bước 2: Thực thi lan truyền tiến (forward propagation) để lấy được lỗi (loss) tương ứng.
- Bước 3: Lan truyền ngược lỗi để lấy được gradients (độ dốc).
- Bước 4: Sử dụng gradients để cập nhật trọng số của mạng (network).
Dropout Dropout là thuật ngữ kĩ thuật dùng trong việc tránh overfitting tập dữ liệu huấn luyện bằng việc bỏ đi các đơn vị trong mạng neural. Trong thực tế, các neurals hoặc là bị bỏ đi bởi xác suất $p$ hoặc được giữ lại với xác suất $1-p$
Mạng neural tích chập
Yêu cầu của tầng tích chập Bằng việc ghi chú $W$ là kích cỡ của volume đầu vào, $F$ là kích cỡ của neurals thuộc convolutional layer, $P$ là số lượng zero padding, khi đó số lượng neurals $N$ phù hợp với volume cho trước sẽ như sau:
Chuẩn hoá batch Đây là bước mà các hyperparameter $\gamma, \beta$ chuẩn hoá batch $\{x_i\}$. Bằng việc kí hiệu $\mu_B, \sigma_B^2$ là giá trị trung bình, phương sai mà ta muốn gán cho batch, nó được thực hiện như sau:
Nó thường được tính sau fully connected/convolutional layer và trước non-linearity layer và mục tiêu là cho phép tốc độ học cao hơn cũng như giảm đi sự phụ thuộc mạnh mẽ vào việc khởi tạo.
Mạng neural hồi quy
Các loại cổng Đây là các loại cổng (gate) khác nhau mà chúng ta sẽ gặp ở một mạng neural hồi quy điển hình:
| Cổng đầu vào | cổng quên | cổng | cổng đầu ra |
| Ghi vào cell hay không? | Xoá cell hay không? | Ghi bao nhiêu vào cell? | Cần tiết lộ bao nhiêu về cell? |
LSTM Mạng bộ nhớ dài-ngắn (LSTM) là 1 loại RNN model tránh vấn đề vanishing gradient (gradient biến mất đột ngột) bằng cách thêm vào cổng 'quên' ('forget' gates).
Học tăng cường và điều khiển
Mục tiêu của học tăng cường đó là cho tác tử (agent) học cách làm sao để tối ưu hoá trong một môi trường.
Định nghĩa
Tiến trình quyết định Markov Tiến trình quyết định Markov (MDP) là một dạng 5-tuple $(\mathcal{S},\mathcal{A},\{P_{sa}\},\gamma,R)$ mà ở đó:
- $\mathcal{S}$ là tập hợp các trạng thái (states)
- $\mathcal{A}$ là tập hợp các hành động (actions)
- $\{P_{sa}\}$ là xác suất chuyển tiếp trạng thái cho $s\in\mathcal{S}$ và $a\in\mathcal{A}$
- $\gamma\in[0,1[$ là discount factor
- $R:\mathcal{S}\times\mathcal{A}\longrightarrow\mathbb{R}$ hoặc $R:\mathcal{S}\longrightarrow\mathbb{R}$ là reward function (hàm định nghĩa phần thưởng) mà giải thuật muốn tối đa hoá
Policy Policy $\pi$ là 1 hàm $\pi:\mathcal{S}\longrightarrow\mathcal{A}$ có nhiệm vụ ánh xạ states tới actions.
Chú ý: Ta quy ước rằng ta thực thi policy $\pi$ cho trước nếu cho trước state $s$ ta có action $a=\pi(s)$.
Hàm giá trị Với policy cho trước $\pi$ và state $s$, ta định nghĩa value function $V^{\pi}$ như sau:
Phương trình Bellman Phương trình tối ưu Bellman đặc trưng hoá value function $V^{\pi^<em>}$ của policy tối ưu (optimal policy) $\pi^</em>$:
Chú ý: ta quy ước optimal policy $\pi^*$ đối với state $s$ cho trước như sau:
Giải thuật duyệt giá trị Giải thuật duyệt giá trị gồm 2 bước:
1) Ta khởi tạo giá trị:
2) Ta duyệt qua giá trị dựa theo giá trị phía trước:
Ước lượng khả năng tối đa Ước lượng khả năng tối đa cho xác suất chuyển tiếp trạng thái (state) sẽ như sau:
Q-learning $Q$-learning là 1 dạng phán đoán phi mô hình (model-free) của $Q$, được thực hiện như sau:
CS 229 - Học máy 


