# **Session 4: Revision**
[toc]
## **Theory**
### **Question 1**
Giải thích vì sao phép biến đổi phi tuyens tính $\bf z'=\phi{z} = \gamma(Wz + b)$ bởi 1 lớp neuron, perceptron lại có tác dụng "xoay-co/giãn-xoay" rồi xê dịch và cuối cùng là bóp/nắn/cắt trong không gian tọa độ $\bf z$ để cho ra không gian tọa độ $\bf z'$ giúp cho linear predictors hiệu quả hơn.
### **Answer**
Ta có **Linear Transformation**: $\bf z \rightarrow z'$
- $\bf Wz$: tọa độ $z$ sẽ bị biến đổi bởi ma trận $\bf W$ theo các cách sau:
- $\bf W$ là ma trận trục chuẩn $\rightarrow$ phép xoay $\bf z$ quanh các trục $\phi$ của $\bf z$ thành $\phi'$ quanh trục $O$ $\rightarrow$ $\bf z'$
- $\bf W$ là ma trận đường chéo $\rightarrow$ phép co giãn trục tọa độ $\phi$ vơi tỉ lệ nghịch đảo $\frac{1}{\lambda}$ của $\bf z$ thành $\phi'$ $\rightarrow$ $\bf z'$
- $\bf W = USV^\top$ là ma trận bất kỳ $\rightarrow$ xoay ($\bf V^\top$) + co giãn ($\bf S$) + xoay ($\bf U$) $\rightarrow \bf z'$
- $\bf Wz + b$: dời đi một đoạn $b$
- $\gamma(\bf Wz + b)$: sau đó bị bóp/nắn/cắt bởi activation $\gamma$ cho ra $\bf z'$ có giá trị trong khoảng mong muốn.
### **Question 2**
Chứng minh hoặc giải thích vì sao 1 lớp neuron/perceptron $\bf z'= \phi(z) = \gamma(Wz + b)$ còn có tác dụng trích xuất các đặc trưng bậc cao từ những dặc trưng bậc thấp. Cụ thể nhưng đặc trưng ở đây là gì?
### **Answer**
Ví dụ $\bf z$ có hai chiều (features) $\bf z = (z1,z1)$ hay là lớp layer input có 2 units sau đó lớp layer thứ 2 (hidden layer) có 3 units (3 chiều - higher-dimension) $\rightarrow$ ma trận $\bf W$ có tổng số parameters $2 \times 3 = 6$ và 3 bias hay $\bf b \in \mathbb{R}^3$ và $\bf W \in \mathbb{R}^{3 \times 2}$ $\rightarrow$ $\bf z' = W^\top z + b \in \mathbb{R}^3$.
$$
\left[ \begin{matrix}
\mathbf{z}_1 \newline
\mathbf{z}_2 \newline
\end{matrix} \right]
\left[ \begin{matrix}
\mathbf{w}_{11} & \mathbf{w}_{12} \newline
\mathbf{w}_{21} & \mathbf{w}_{22} \newline
\mathbf{w}_{31} & \mathbf{w}_{32} \newline
\end{matrix} \right]^\top \text{+}
\left[ \begin{matrix}
\mathbf{b}_1 \newline
\mathbf{b}_2 \newline
\mathbf{b}_3 \newline
\end{matrix} \right]
= \left[ \begin{matrix}
\mathbf{z'}_1 \newline
\mathbf{z'}_2 \newline
\mathbf{z'}_3 \newline
\end{matrix} \right]
$$
```graphviz
digraph G {
rankdir=LR;
Z1 [label="z1"]
Z2 [label="z2"]
Z_1 [label="z'1"]
Z_2 [label="z'2"]
Z_3 [label="z'3"]
Z1 -> Z_1
Z1 -> Z_2
Z1 -> Z_3
Z2 -> Z_1
Z2 -> Z_2
Z2 -> Z_3
}
```
## **Summary - Nonlinear Predictors**
### **Regression**
1. Regression curve: $y = c(x)$
2. Regression surface: $y = g(x,y)$
### **Nonlinear predictor by a large set of locally linear predictors**
Locally Linear Models: Decision Tree
- Idea: Chia không gian tọa độ nhúng Z thành các vùng không gian nhỏ, sau đó sử dụng linear predictor lên mỗi vùng "local"
Locally Nonliner Models: KNN
- Không sử dụng regression linear line hay hyperplane để classify
### **Transformation for nonlinear predictors**
- Extract good features $\rightarrow$ $\bf z$ is globally linearly separable
- Globally nonlinear predictors:
$$\bf \hat{y} = s(W \phi(z) + b)$$
$\bf z$: low-level/low-dimensional features
$\bf \hat{y}$: high-level-high dimension features
- Tạo không gian $\bf z'$ với nhiều chiều hơn không gian $z$
$$\text{Nonlinear predictor in } {\bf z}\overset{\phi}{\leftrightharpoons} \text{Linear predictor in } \bf{z'}$$
Ví dụ: Nonlinear quadratic feature
$$z=(x,y)\in\mathbb{R}^2\xrightarrow{\text{features }\phi(z)} z'=(x,y,h = x^2+y^2)\in\mathbb{R}^3 \to {\text{linear predictor }} \hat{y} = \mathsf{s}(Wz'+b)$$
#### **Embedding Space transformation**
1. Biến đổi (co giãn, xoay) để tạo nhiều chiều: $\bf Wz$
2. Dịch chuyển vị trí: $\bf Wz + b$
3. Nắn (ép) lại trong khoảng mong muốn: $\bf \gamma(W{\bf z}+{\bf b})$
4. Lặp lại $\bf (W_L …\gamma(W_2(\gamma(W_1z+b_1)+b_2)+b_L)$ với $L$ là số lớp layer
#### **Transformation T: geometric intuitions**
- Linear transformations = **rotate/flip + scale + rotate/flip** - Singular Value Decomposition
- Rotations $\Leftrightarrow U, V$ orthogonal matrices
- Scaling along axes $\Leftrightarrow S, \Sigma$ diagonal matrices
#### **Nonlinear predictors by transformations:**
**1. Mulitlayer Perceptron**
- Nonlinear Activation: Most popular is Relu: $\bf max(0, x)$
- Transformations: $\text{Nonlinear predictor in } {\bf z}\overset{\phi}{\leftrightharpoons} \text{Linear predictor in } \bf{z'}$
$${\bf z}' = \phi({\bf z}) = \gamma(W{\bf z}+{\bf b})$$
👉 Ta có $z'$ trong công thức trên là high-level features (nhiều chiều hơn) và bằng với số hàng của ma trận $W$. Ví dụ ban đầu có vector input $\bf {z} \in \mathbb{R}^2$ và $W \in \mathbb{R}^{3 \times 2} \rightarrow W^Tz \in \mathbb{R}^3$ sau đó dịch chuyển $+ b$ và nắn bằng $\gamma$ được $z'$ là high-level features. ($3=$ rows of $W$)
- **Feed Forward**: no backward connections between layers (no loops)
$$𝒔(𝑊_𝐿 …𝜸(𝑊_2(𝜸(𝑊_1𝒛+𝒃_1)+𝒃_2)+𝒃_𝐿)=\hat{𝒚}$$
**2. Kernel Machines:**
- Kernels generalize “similarity measures”: $\kappa({\bf z}^1,{\bf z}^2) = \phi({\bf z}^1)\cdot\phi({\bf z}^2)$
- "kernel tricks" don't need to compute transformations