---
# System prepended metadata

title: Lecture Notes ML4AI 2021
tags: [COTAI LHP]

---

---
tags: COTAI LHP
---

# Lecture Notes ML4AI 2021

## Session 1 -- Linear Predictors
- AI as prediction machines: $x\overset{f}{\to}\hat{y}$
- Feature extraction & concept embedding spce: $x\overset{B}{\to}z\overset{P}{\to}\hat{y}$
- Types of predictions: regression & classification (supervise & unsupervised).
- Linear regression = linear combination = weighted sum
- 4 popular similarity measures: dot product, convolution, distance, angle
- Linear classification = argmax of some similarity score
- Confidence/uncertainty of classifications: softmax probability
- Linear predictor general form : $\hat{y} = s(Wz+b)$
### Feature extraction & embedding concept spaces
- Embedding space Z allows to measure semantic similarity & make predictions
- Watch: Concept representation in the human brain '15 by Jeffrey Binder\
$x \to\text{features}\varphi_i(x) \to\text{weighted sum} \sum_{i=1}^n\alpha_i\varphi_i(x) \to\text{prediction} \Psi(x) = \Omega\Big(\sum_i{i=1}^n\alpha_i\varphi_i(x)\Big)$
$\text{Input X} \to \text{Embedding Coordinates Z} \to \text{Prediction } \hat{Y}$
## Session 2 -- Feature extraction
Dimensionality Reduction (giảm chiều dữ liệu), là một trong nnhững kĩ tthuật quan trọng nhất trong machine learning. Các feature vector thực tế có thể có số chiều rất lớn lên tới vài nghìn. Thêm vào đó số lượng điểm dữ liệu rất lớn. Nếu thực hiện lưu trữ và tính toán. Giảm số chiều dữ liệu cũng được coi là một phương pháp nén dữ liệu. Và một trong những phương pháp đơn giản nhất trong feture extracion là Pricipal Component anlysis
### 5 cách trích xuất đặc trưng 
- **Principle (Principal) component analysis** (PCA): bài hôm nay @vlsJbX7pSw6_C26-iEQGig **principal**, not principle
    - pca giúp trích xuất thành phần quan trọng 
    - ví dụ tái tạo khuôn mặt: khuôn mặt trung bình nhân trọng số = khuôn mặt gốc 
    - Những thành phần chính đầu tiền là quan trọng
    - ví dụ: khuôn mặt chính 512 chiều có thể dùng pca để ép xuống còn 2 thành phần chính 
    - có tấm hình phải làm dẹp
- word embeddings: language understanding 
    - mỗi từ có dạng một vector 
    - một không gian nhúng tốt
    - ví dụ: biểu diễn sở thích từng khách hàng bằng ma trận nhúng
- feature engineering
- sparse coding
- convolutional kernals 


### Độ lệch chuẩn : sự phân tán dữ liệu 
- std: độ lệch chuẩn 
- nếu độ lệch chuẩn nhỏ dữ liệu tập trung lại một chỗ 
- nếu độ lệch chuẩn lơn hình bè ra dữ liệu phân tán nhiều 
- hàm fit(data) tính mean và độ lệch chuẩn 
### Thành phần chính 
- Thành phần chính đầu tiên mang nhiều thông tin nhất 

### Thực hiện PCA bằng sklearn
- Standardize dataset (đảm bảo dữ liệu có trung bình =0 và độ lệch chuẩn=1)
  - Import class StandardScaler
    ```
    from sklearn.preprocessing import StandardScaler
    ```
  - Khởi tạo StandardScaler
    ```
    scaler = StandardScaler().fit(data)
    ```
  - Áp dụng StandardScaler
    ```
    data_scaled = scaler.transform(data)
    ```
- Thực hiện PCA
  - Import class PCA
    ```
    from sklearn.decomposition import PCA
    ```
  - Khởi tạo PCA
    ```
    pca = PCA(param).fit(data_scaled)
    # nếu param là float, ví dụ 0.9 tức là ta muốn giảm chiều xuống sao cho lượng thông tin được giữ lại là 0.9
    # nếu param là int, ví dụ 2 tức là ta muốn giảm xuống 2 chiều
    ```
    - Sau khi khởi tạo PCA ta có thể:
      - In ra số chiều sau khi giảm
        ```
        pca.n_components_
        ```
      - In ra % thông tin được giữ lại:
        ```
        pca.explained_variance_ratio_
        ```
  - Áp dụng PCA
    ```
    data_pca = pca.transform(data_scaled)
    ```
### StandardScaler
    
- ví dụ: số phòng (1-10) và diện tích (25-100) về (-1,1) để giúp các trọng số có ý nghĩa hơn dùng biểu đồ nhiệt (heatmap) để dễ hình dung

## Session 3 - Nonlinear Predictors

ví dụ $\{(x^t,y^t)\}_{t=1}^n$
hiểu nguyên lí bằng framework
x->y regression, closìication
có thể đưa qua hàm chuẩn háo về xác suất như softmax
để làm được đièu này cần linear regression
z là đặc trưng 
đầu vào là x qua b1 được z1
z là âm những cái ngược với b
b giống như filter 
$$y = s(Wz+b)$$

bài hôm nay MLP
Regression Curves
đường gọi là Curve
mặt gọi là surface
Làm sao để tìm được mặt cong
Có một vung không xác định: decision boundary nơi mà không xác định được điểm đó thuộc class nào vì nơi đó niềm tin bằng nhau 
$$ W^1z + b^1 = W^2z+ b^2 $$

ta không thể dùng những lát cắt
thế nào là nonlinearly sêprable: ví dụ có 2 đặc trưng 
lúc dấu cộng lúc là dấu trừ gọi là noisy data. Do đó ta phải chấp nhận đây là những lỗi
Slide 9 Nhận xét: từ không gian z của chúng ta chúng ta đưa thành không gian z' 

khi làm việc và nghiên cứu những công việc được phân bố trong dải không gian nhiều chiều 
những vùng khái niệm tạo thành những lớp 
Ngoài ra: một giả thiết khác ngôn ngữ, âm thanh, giọng nói được mô tả trong không gian chung
phải nắn không gian mới dùng linear model được 
từ những dải khái niệm (non linear) ta transform nó để có thể linear được
làm sao để biết được dùng transform nào
cái transformation đó chính là $$ y =(Wz +b) $$
đầu vào là vật phẳng đầu ra là phẳng là linear
đầu vào là vật phẳng đầu ra là cong là nonllinear
người ta phát minh ra ma trận và đại số tuyến tính vì phép nhân ma trận là phép transform
non linear transform là vật phẳng thành cong
transformation có 2 

- linear 
- non linear
Thêm gamma vào để bóp méo 
A.z tích chấm là từng thành phần nhân nhau cộng lại đầu ra là con số, giống nhau về kích thước 
Az phép nhân ma trận đầu ra là ma trận, hàng nhân cột, kích thước mxn , nxz
bản chất có 3 phép đầu tiên là xoay/lật , co dãn, xoay/lật nên nó không bị méo mó 
một ma trận có thể phân tích ra xoay, co dãn, xoay
cốt lõi của đại số tuyến tính là xoay co dãn xoay 
Tại sao hay dùng ReLU những hàm cắt không gian ra nhiều phần nó có thể xấp xỉ bất cứ hàm số nào 
Tóm lại: từ không gian đầu vào z ta biến đổi phi tuyến để thành không gian z' rồi linear model để dự báo 
- feature engineering deep learning: ta không phải đi tìm những hàm phi 
- MLP (multi-layer perceptron): chồng những mô hình này lên nắn những không gian từng lớp một 
### MLP
### Kernal
ta không cần đi tính phi ta đang tưởng tượng chuyển nó qua không gian z' 
không gian x hàm ta chuyển qua không gian z' để tính dot product

chia nhỏ không gian đầu vào ra mỗi không gian nhỏ 
$$ X\xrightarrow{{B1,B2}}Z $$
## Practice
những hidden là những phép biến đổi $$ \phi $$
từ 2 đặc trưng chuyển thành 3 đặc trưng có một bộ quay
có 9 trọng số cần học
mô hình này có 25 trọng số 
framework hôm nay là tensorflow
các điểm luôn được kết nối với nhau gọi là fully connected trong tensorflow gọi là dense
có những activation, và nó thường là ReLU
Sequential là tuần tự
input shape nhận vào số lượng đặc trưng
để so sánh 2 xác suất dùng binary_crossentropy
loss tùy theo bài toán
- bài toán phân loại là crossentropy
đầu tiên: random trọng số 
bước 2: $$ \hat{y} = Wx +b  $$
bước 3 tính $$ loss(\hat{y}, y) $$
bước chọn weights(optimizer) quay lại bước 2

@vlsJbX7pSw6_C26-iEQGig notes của em rời rác quá vì đc viết trong suốt buổi học. Em cần hệ thống hóa lại liền mạch hơn sau mỗi buổi học, nếu ko khi làm bài hoặc sau này đọc lại sẽ ko xâu chuỗi đc.




## Session 4 Recommeder Systems

Recommender Systems: được sử dụng rất nhiều trong thực tế như 
- trong bán hàng
- trong core egine of any user platforms như Amazon, Facebook, Youtube,...
- Trong cobot: những robot thông minh có thể làm việc được với con người 
- Trong chatbot 
- Nhiều ứng dụng khác 

Mỗi sản phẩm thành công đều có recommender Systems
Hệ thống Ai có khả năng recommend tốt là: 
- Generalization counts (khái quát hóa) 
- Personalization counts (cá nhân hóa): 
-> vấn đề này là Long-tail issues

Cách hình thành bài toán RecSys:
ví dụ bán hàng:
- User-based filtering
- Item-based filtering: nếu một người mua nho, dâu dưa hấu và cam, người còn lại mua nho, dâu, dưa hấu thì hệ thống khuyến nghị mua cam

### 2 nhóm chính của Recommended Systems
Content-based systems: đánh giá đặc tính của items được recommended. Ví dụ: một user xem rất nhiều các bộ phim về cảnh sát hình sự, vậy thì gơi ý một bộ phim trong cơ sở dữ liệu có chung đặc tính hình sự tới user này, ví dụ phim Người phán xử. Cách tiếp cận này yêu cầu việc sắp xếp các items vào từng nhóm hoặc đi tìm các đặc trưng của từng item. Tuy nhiên, có những items không có nhóm cụ thể và việc xác định nhóm hoặc đặc trưng của từng item đôi khi là bất khả thi.

Collaborative filtering: hệ thống gợi ý items dựa trên sự tương quan (similarity) giữa các users và/hoặc items. Có thể hiểu rằng ở nhóm này một item được recommended tới một user dựa trên những users có hành vi tương tự. Ví dụ: users A, B, C đều thích các bài hát của Noo Phước Thịnh. Ngoài ra, hệ thống biết rằng users B, C cũng thích các bài hát của Bích Phương nhưng chưa có thông tin về việc liệu user A có thích Bích Phương hay không. Dựa trên thông tin của những users tương tự là B và C, hệ thống có thể dự đoán rằng A cũng thích Bích Phương và gợi ý các bài hát của ca sĩ này tới A. (nguồn MLCB 23)
Lưu ý: RecSys đôi khi cũng được coi là Matrix completion
### RecSys taxonomy:
- Collaborative filtering: Item-based CF
    - bước 1: hình thành ma trận 
    - bước 2: tính cosine similarity (xem mỗi người như 1 đặc trưng)
    - bước 3: lấy cái đó làm trọng số
- Collaborative filtering: User-based CF
Lưu ý nếu chuyển vị thì sẽ thành Item-based CF
    - bước 1: tính similarity cho User    
- Collaborative filtering: Matrix factorization
    - phân tích ma trận thành nhân tử
    
## Session 5. Evalution: Metrics and losses 
Nội dung bài này: tìm hiểu sâu làm thế nào để đánh giá một hàm số trí tuệ 
Tìm hiểu cách chia tập dữ liệu và tập test
Tìm hiểu chuẩn đánh giá cho baì regression 
Tìm hiểu chuẩn đánh giá cho bài classification
How good is your model
Quy trình xây dựng một predictor
$$\text{Input } X \xrightarrow[B]{Features}\text{ Embedding Coordinates }Z \xrightarrow[L_\theta]{LinearPredictor}\text{Prediction } \hat{Y} = W\cdot Z+b$$

Dataset. chia thành 2 phần: Training set và test set
Training set. chia thành 3 phần: learn models, vadilation models, select models

Mô hình tốt thì phải khái quát hóa tốt
Dữ liệu đưa vào nằm trong vùng mong muốn gọi là Interpolation nếu nằm ngoài gọi là extrapolation
$$\text{interpolation(easier)} \rightarrow \text{extrapolation} \rightarrow \text{combinatorics(hardder)}$$

### Common metrics and losses

có 4 chuẩn đánh giá 
- Mean squared error:
    - error càng lớn thì chuẩn đánh giá càng tệ
- Root mean squared error
- Mean absolute error: ít bị ảnh hưởng bởi nhiễu
- Mean absolute precentage error 
### Classification. 
#### Confusion matrix & accuracy
nếu mô hình dự báo đúng với class thực tế thì không có lỗi
nếu sai class thực tế thì có lỗi và đếm số lỗi thì đúng với class thực tế 
#### Precision & Recall
Chúng ta cần tưởng tượng mỗi điểm gán mỗi nhãn cho nó
ví dụ một hình cần nhiều nhãn 
một hình gồm chó và mèo nếu nó được detect gọi là positive nếu đúng là True sai là False
nếu nó ko được detect gọi là negative = ignorednếu đúng là True sai là False (nghĩa là nên được detect)
Recall là độ nhạy của kết quả
$$ \text{Precision} \rightarrow  \text{Predicted. Recall} \rightarrow \text{Recover/Retrieval}$$
### Mô hình linear model (SVM)

## Session6- bullet points
1. [**5** Point] Given a set of inputs $(X^1,\dots,X^N)$, we use PCA to represent them as $X^t = X_0 + z_1U_1+\dots+z_nU_n$ with $X_0$ the mean input and $U_i$ the orthonormal principal components. 
- [**2** Points] Write down equation for $X_0$, and equations for properties of $U_i,U_j$: unit length & mutual orthogonal. **Solution**:
$$ U_i.U_j =0 $$

- [**1** Point] We need to reduce the dimensions of $X^t$ to visualize them on 2D. What is the embedding vector ${\bf z}^t$ of $X^t$ if we use only 2 first principal components to represent it? What is the last feature of ${\bf z}^t$ in this case? **Solution**:
$$z_t = X_0 + z_1U_1 + z_2U_2$$
- [**1** Point] What are the main differences between representations by PCA and by sparse coding? **Solution**
Khác nhau: PCA represent a collection of vectors as a linear combination of basis vectors
Sparse coding is a problem of representing a collection of N vectors in d-dimensional space as linear combinations of some basis vectors, with the requirement that the weights (in linear combinations) should be sparse.

- [**1** Point] If we cluster the dataset into 3 groups with centroids $({\bf m}_1, {\bf m}_2, {\bf m}_3),$ what is the label embedding coordinates of $X^t$ if it belongs to cluster 2? **Solution**: 

2. [**1** Point] If we use each song as a feature to represent the users, what is the embedding coordinates ${\bf z}_A$ of user A in the dataset below? **Solution**:
![](https://i.imgur.com/PseEFdZ.png)

3. [**3** Point] From the general form of linear predictors: $\hat{y}=\mathsf{s}(Wz+b)$ with $\mathsf{s}(\cdot)$ a transfer function for desired output interpretation. 
- [**1** Point] What is $W$ for 
    - 1 dimentional linear regression? **Solution**:
    W là một con số
    - sofmax regression with 3 classes? **Solution**:
 $$ W = [w1,w2,w3] $$ 
- [**1** Point] What is function $\mathsf{s}(\cdot)$ for 
    - 1 dimentional linear regression? **Solution**:
    linear
    - SVM binary classification? **Solution**:
    softmax
- [**1** Point] Why logistic regression (for binary classification) has only 1 probability output while there are 2 classes? **Solution**:

4. [**2** Points] Evaluation procedure 
- [**1** Point] Explain the main use of the train--dev (validation)--test sets. **Solution**:
Khi được tập dữ liệu ta chia nó thành tập train, test, validation hay có thể xem như bài giảng bài tập và đề thi. Khi mô hình được huấn luyện với tập train, ta sẽ dùng tập test để đánh giá độ chính xác của mô hình 
- [**1** Point] What are the main similarity and differences between linear SVM and logistic regression? **Solution**:
Giống nhau:linear SVM và logicstic regression đều là mô hình linear thuộc supervised machine

- Khác nhau logicstic regression được ứng dụng trong bài toán classification. Linear SVM được ứng dụng trong cả Regression và Classification

5. [**2** Points] There are **1100 items** and **one million users**. We need to build a content-based RecSys by extracting **120 features** ${\bf z}_i$ describing each item $i$ then learn a classifier ${\bf \theta}_j$ for each user $j$ to predict **ratings from 1 to 5 stars** of each user for each item. 
![](https://i.imgur.com/PseEFdZ.png)
- [**1** Point] How many classes do we need? **Solution**:
5
- [**1** Point] What is the size of $W$ if we use softmax regression $\hat{y}=s(Wz+b)$ for to classify ratings? **Solution**:




6. [**2** Points] Nonlinear predictors have general form $\hat{y}=s(W'\phi(z)+b')$. For Multilayer Perceptrons (MLP) in particular: $\phi(z) = \gamma(Wz+b)$ recursively, each called a "hidden layer". 
- [**1** Point] Give explicit equation of an MLP with 2 hidden layers. **Solution**: 
$$ \hat{y} = s(W''\gamma(W's(Wz+b)+b') +b'')  $$
- [**1** Point] What are the parameters of the fully-connected layer in your equation? **Solution**:
W'', W', b'', b'

7. [**2** Points] Kernel machines use "kernel trick" $\phi(z_i)\cdot\phi(z_j)  = \kappa(z_i,z_j)$. 
- [**1** Point] Explain why kernel trick is useful. **Solution**:
bởi vì việc tính toán trực tiếp hàm $\phi()$ cho mỗi điểm dữ liệu sẽ tốn rất nhiều nhiều thời gian vì số chiều của $\phi(x)$ là rất lớn với kĩ thuật kernal trick ta sẽ không cần tính trực tiếp. Điều này sẽ tiết kiệm thời gian 
- [**1** Point] Explain how we can use kernel trick in feature-space prediction $\hat{y}=s(W^\phi\phi(z)+b)$ to turn a linear predictor into a nonlinear one. **Solution**:

---
Câu trả lời:
 


## Midterm Coding (1 hour)
[Đề thi](https://colab.research.google.com/drive/1WuytAqhN_6EBZQK-0S7YYDiiu_MHy41V?usp=sharing).








## Session 7 Optimization & Training

TEFPA: task T, experience E, function space F, performance P, and search algorithm
Giả sử đưa data vào 
Lưu ý: sai số nhỏ nhất chưa phải là tốt phải tốt trên bộ test
Hàm tốt: sai số nhỏ và tốt trên bộ tốt
Khi đưa dữ liệu vào tính ra sai số thì điểm đó gọi là loss
tập hợp loss gọi là loss surface
Nhiệm vụ bắt đầu từ một điểm bất kì 
Nhiệm vụ của mỗi giải thuật từ một điểm bất kì tính ra loss thấp nhất tức là loss surface trũng 
tìm $$  \theta = \text{argmin}J(\theta:X,y) $$
muốn hàm loss giảm nhanh nhất
tìm vector vận tốc thay đổi của hàm đi ngược hướng vector nhanh nhất là giảm nhanh nhất

Gradient vector: là vector hàm số tăng nhanh nhất
Nếu điểm đó là tối ưu thì gradient = 0 
$$  \nabla $$

back-propagration: giải thuật được phát minh để update cho MLP. Giải thuật quan trọng nhất trong deep learning 
Lưu ý: Nếu gradient quá lớn thì loss tăng giảm tăng giảm. Nếu Gradient quá bé thì đi quá lâu
Batch : lấy cả dataset  -> mini-batch- sgd: lấy từng điểm trong D để tính 

## Session 8  Convutional neural networks
CNN được xử lí trong hình ảnh, video, frame
padding: 
- mục đích để giữ nguyên kích thước đầu vào 
- tránh thất thoát thông tin ở góc cạnh 
Stride: filter trượt theo Stride (mặc định Stride = 1)


## S9 Recurrent neural networks (RNNs)
Mô hình dự đoán một chuỗi thông tin
- Sequential Data: âm thanh, giọng nói, giá vàng, giá đô la, chứng khoán etc. Robot muốn cầm một cái chai thì cần dự đoán một chuỗi hành động
    - CNN: một chuỗi dữ liệu được xem như là một input
    - Sinh ra một khái niệm gọi là thời gian
    - Di chuyển trong không gian khái niệm: ta có thế sáng tạo ra một cái mới 
    - Lưu ý: máy tính có thể sáng tạo 
    - Chúng ta tính toán ra một khái niệm, rồi từ khái niệm đó tính ra khái niệm mới gọi là recurrent
- Vanilla RNN
    - tất cả những mô hình này đều có chung U và W
    - backpropagate: nếu sai truyền lỗi về để update nếu đúng thì giữ lại 
    - Common structures of RNNs
    ![](https://i.imgur.com/X2j5xWc.png)
- Vanishing gradient Problem
    - short-term memory: dùng
    
Tóm lại: một mô hình cần khái 
cái mô hình đơn giản nhất là cộng input vào và nắn đầu ra, 
xảy ra 2 trường hợp short-term memory, và khi trải 




## Session 10 K-means CLustering: Unsupervised learning


Vấn đề 1: Biểu diễn 1 cụm 
Mỗi cụm biểu diễn bằng 1 centroid, centroid là trung bình các điểm trong cụm 
Cách xác định z thuộc centroid nào 
tìm khoảng cách từ điểm tới từng centroid. Sau đó lấy argmin

Preformance metric: tổng khoảng cách intra-cluster là nhỏ nhất  
Làm sao để chọn được k: theo kinh nghiệm, theo elbowcureve, theo silhouse

## Session 11 MDP Planning
Vấn đề: 
- Planning là gì?
  plan là một chuỗi hành động để đạt kết quả mong muốn nhanh nhất 
  kết qủa như thế nào
  trạng thái như thế nào
  cần nhớ fail to plan = plan to fail
- Formulate là gì?
  planning cần phải có transition model ví dụ đường kẹt xe không thể chuyển sang đi ô tô mà phải chuyển sang đi bộ hoặc xe đạp
  Mô hình MDP gồm 5 thành phần (S,A,T,R, $\gamma$)
  ![](https://i.imgur.com/1qfg2Br.png)
  $\gamma$ cho phép chúng ta 
- Định nghĩa các chuỗi hành động 
chuyển thành MDP phải xác định được 5 thành phần của MDP, xác định được policy
![](https://i.imgur.com/fEV54IN.png)
Cái nào có nhiều reward sẽ được chọn





---
tags: COTAI AI4HighSchool
slideOptions:
  transition: slide
  width: 1920
  height: 1080
  margin: 0.1
  minScale: 0.2
  maxScale: 1.5
  
---

# ML4AI Session 12 Final Exam (for Students)

<br>

![](https://i.imgur.com/eDOwrsO.png)

<br>

CoTAI AI Training Program for Highschool Students

© [CoTAI](https://gem.cot.ai) 2021 

---

Open book. Choose to answer as many questions as possible, as concisely as possible. Ask instructors if you have difficulty in understanding the questions.

**Questions**

1. [**8** Points] The unified TEFPA framework to build a ML model: task $\mathcal{T}$, experience $\mathcal{E}$, function space $\mathcal{F}$, performance $\mathcal{P}$, and algorithm $\mathcal{A}$ to search. What are the elements in TEFPA framework...

    
- 1.1 [**2** Point, 3.1] to build a face recognition model using a DCNN?
Trả lời: 
T: input là ảnh có ba kênh màu dữ liệu dạng 3 chiều đầu      
E: bưc ảnh được trích xuất đặc trưng qua convolution
F: hàm relu
P: cosine similarity
A: Tích chập, relu maxpool,...
- 1.2 [**2** Point, 3.1] to build a RecSys? (using one of the models you have learned: item-based, user-based, content-based, MF)
T: 
- 1.3 [**2** Point, 3.1] to build a customer segmentation model using k-means?
T: đầu vào là một nhóm lớn dữ liệu và siêu tham số k (clusters) đầu ra là số cluster được khoanh vùng
E:
F:
P:Elbow, Silhouette
A: euclidean distance
Trả lời: cumstomer segmentation có thể sử dụng k-means gom nhóm khác hành có cùng hành vi lại với nhau
- 1.4 [**2** Point, 3.1] to build a sentiment analysis model (good, bad, neutral comments) using RNN+Softmax Classifier?
T: đầu vào là các dữ liệu được dán nhãn đầu ra là good, bad hoặc comment
E: LSTM
F:relu
P:
A:

2. [**6** Points] Convolutional filters (or kernels)
- 2.1 [**1** Point, 1.1, 3.2] How do we extend them from dot product?
Trả lời
 Các filter được nhân với vecto có sẵn do con người tạo ra để tạo ra filter mới gần giống với vecto có sẵn
- 2.2 [**1** Point, 1.1, 3.2, 3.4] Why do we call their outputs "feature maps"?
Bộ filters này sẽ trượt qua từng vị trí trên bức ảnh để tính tích chập (convolution) giữa bộ filter và phần tương ứng trên bức ảnh. Phần tương ứng này trên bức ảnh gọi là receptive field, tức là vùng mà một neuron có thể nhìn thấy để đưa ra quyết định, và mà trận cho ra bởi quá trình này được gọi là feature map
- 2.3 [**1** Point, 3.2] Explain padding: how to do & main purpose
Trả lời: padding giúp giữ nguyên hoặc tăng kích thước đầu vào, Tránh thất thông tin ở góc cạnh 

- 2.4 [**1** Point, 3.2] Explain pooling: how to do & main purpose
Trả lời: giúp giảm kích thước đầu vào nhanh chóng, giúp mô hình vững chắc trước các sai lệch nhỏ
- 2.5 [**1** Point, 3.2] Explain stride: how to do & main purpose
Trả lời: Stride quyết định cách filter di chuyển và tốc độ thu nhỏ dữ liệu 
- 2.6 [**1** Point, 3.2, 3.4] Explain their **effective** receptive field: why do they produce highly absstract features?
Trả lời: một vấn đề quan trọng trong nhiều tác vụ trực quan, vì đầu ra phải đáp ứng các vùng đủ lớn trong hình ảnh để nắm bắt thông tin về các đối tượng lớn
3. [**6** Points] Recurrent neural networks (RNNs) can  be used for sequential modeling.
- 3.1 [**1** Point, 3.2] What does sequential data mean?
Trả lời: sequential data là dữ liệu theo thời gian như ảnh tách ra từ một video, hay tính liên tục trong lời nói của một con người
- 3.2 [**1** Point, 1.1, 3.2, 3.4] Explain each element in this basic equation of RNNs $h_t = \mathsf{\gamma}(Ah_{t-1}+Wz_t)$
Trả lời: $$ \gamma \text{ là hàm kích hoạt thường có thể là relu hoặc tanh, } z_t \text{là input} $$
$$ h_t \text{ là state hiện tại, } h_{t1} \text {là state trước đó ,} A,W \text{là hệ số}  $$

- 3.3 [**2** Point, 1.3, 2.1, 3.2] WWhat does back-propagation-through-time mean, why do we need it instead of using plain back-prop, and how does it work for training RNNs?
- 3.4 [**1** Point, 1.3, 3.2] Explain vanishing gradient problem for simple RNNs.
Trả lời: Vanishing gradient problem là cản trở việc học long data sequence, gradient mang thông tin được sử dụng trong cập nhật tham số RNN và khi gradient ngày càng nhỏ hơn, các cập nhật tham số trở nên không đáng kể có nghĩa là không có việc học thực sự nào được thực hiện.
- 3.5 [**1** Point, 3.1, 3.3] If we want to classify the sentiment of each user comment (good, bad, neutral) at the end of each sequence using RNN+Softmax classifier: explain briefly the model architecture.

4. [**6** Points] Planning in Markov Decision Process (MDP) $(S,A,T,R,\gamma)$.
- 4.1 [**1** Point, 3.1, 3.2] Explain 5 elements in MDP model (equation of each element if available).
Trả lời 
S: state
A: action
T: transtion
R: reward
y: hệ số chiết khấu 
- 4.2 [**1** Point, 3.2] Following a policy $\pi(s)$ to generate a trajectory of 10 time steps $(s_t,a_t,s_{t+1},r_{t+1})$. Compute the return. Equation of $a_t$?
- 4.3 [**1** Point, 1.2, 3.2] Repeat for 10 days: from $s_0 = \text{HOME}$ take action $a_0 = \text{GET_BUS}$ with cost $r_1 = 6000 \text{VNĐ}$ then following policy $\pi(s)$ to generate $K=10$ trajectories, each with total cost $G_k$. Compute the average cost of taking bus then following $\pi$: $Q^\pi(\text{HOME, GET_BUS})$.
- 4.4 [**1** Point, 1.1, 1.3, 2.1, 3.2] How do we compute an optimal plan (i.e., optimal policy $\pi^*$) of a known MDP $(S,A,T,R,\gamma)$?
Trả lời:
π∗=argmaxπqπ(s,a),∀s∈S
- 4.5 [**1** Point, 3.2] Why do we say that the action value function $Q^\pi(s,a)$ gives predictions into very far future?
- 4.6 [**1** Point, 1.2, 3.2] What is the meaning of action value function when we set $\gamma = 1$? $\gamma = 0$?
Trả lời: khi $$ \gamma = 0 \text{ thì }  q*(s,a)= R(s,a) $$

5. [**7** Points] Unified ML models
$\text{Input } X \xrightarrow[B_{\beta}]{\text{Features}}\text{ Embedding Coordinates }Z \xrightarrow[P_{\theta}]{\text{Predictor}}\text{ Predictions }\hat{Y} \xrightarrow[{\pi^*}]{\text{Policy}}\text{ Action }A$
- 5.1 [**2** Points] List all *taught* algorithms for feature extraction and their main ideas.
- 5.2 [**2** Points] List all *taught* algorithms for making predictions and their main ideas.
- 5.3 [**2** Points] What are the main *general* differences between linear predictors? And in your opinion why do we need different algorithms?
- 5.4 [**1** Points] For MDPs, what are the predictions $\hat{Y}$ used to make decisions $A$?

6. [**2** Points] RecSys
![](https://i.imgur.com/PseEFdZ.png)
We build item embeddings ${\bf z}_i \in \mathbb{R}^2$ as in table, and use **softmax regression** to predict ratings 1 to 5. Choose a specific user $X\in \{A,\dots,F\}$, what is the training set for learning $\theta_X$? What are the parameters $\theta_X$ to be learned (with their shapes)?

7. [**6** Points] MDP Planning for playing Chess. Let rewards = 1 for winning, -1 for losing, and 0 for a draw or unfinished game, and no discount. 
- 7.1 [**2** Points] What is the range of value of the optimal action-value function $Q^*(s,a)$, and how to derive probability of win/loss from it?
- 7.2 [**2** Points] If we use all the games already played in history to compute $Q^*(s,a)$, explain the method?
- 7.3 [**2** Points] Because there are so many state and action pairs $(s,a)$, we need to use *learning* to approximate and generalize for all $(s,a)$ pairs. If we use MLP to learn $Q^*(s,a)$, what is the dataset and possible network structure?
  

























































