---
# System prepended metadata

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

---

---
tags: COTAI LHP
---

# Lecture Notes ML4AI 2021


## Session 1 -- Linear Predictors
- Các mô hình AI đều dựa trên các linear
- AI là máy tính với khả năng học và áp dụng kiến thức, kỹ năng
- Chuẩn đánh giá P: đánh giá một hàm số tốt hay xấu,kết hợp với Dataset để đánh giá hàm số tốt hay xấu
- Mẫu đặc trưng B (basis, template, filter): dùng trong trích xuất đặc trưng
- P (predictor): hàm dự đoán
- Embedding Space (Z): embed(nhúng) các B để lấy ra các đặc trưng
- Types of data:
    - numerical values (numerical or quantitative)
        - discrete data: you can count it
        - continuous: you can measure it
    - categories ()
        - ordinal data
        - nominal data
- Hai loại dự báo:
    * regression: một con số liên tục (continuous)
    * classification: một nhóm (discrete có thể chuyển thành nhóm bằng cách chia nhóm các khoảng ) (discrete)
    * Classification:
        - clustering: phân loại theo ý của máy tính(unsupervised learning)
        - classification: phân loại theo ý của con người (cần mẫu, supervised learning)
            - so khớp bằng tích chấm $A.B = a_i.b_i$
            - so khớp bằng khoảng cách thẳng Euclidean: khoảng cách hai điểm trong mp
            - phân loại bằng kNN: tìm các điểm gần nhất, nhóm nào lớn nhất trong các điểm gần nhất thì thuộc nhóm đó.
        - Khoảng cách niềm tin: dùng softmax
        - Hàm nắn đầu ra (s): sigmoid và softmax
## Session 2 -- Feature Extraction
- Các kiểu feauture:
    - PCA: 
        - Face = Mean Face + $w_i$.Face Principle Component $i$th
        - Giúp trích xuất được các thành phần và tìm ra được các thành phần quan trọng.
        - Làm phẳng (Flatten): làm dẹp ma trận thành một vecto dài
    - Word Embedding: word2vec
        - Mỗi từ có một vecto gồm các đặc trưng để biểu diễn
    - Feature Engineering
    - Convolutional Kernels: Hay còn gọi là CNN (Convolutional Neural Network: Mạng neuron tích chập)
    - Sparse Coding
- Độ lệch chuẩn của dữ liệu: là sự phân tán của dữ liệu trong phân phối chuẩn, nếu độ lệch chuẩn nhỏ, thì dữ liệu tập trung tại một điểm.

## Session 3 -- Nonlinear Regression
## Session 4 -- Recommendation System
- Trong bán hàng, giải trí, hệ khuyến nghị là core engine cho các nền tảng kinh doanh.
- Ví dụ: Amazon, Tiktok,  Netflix,...

- Để có hệ khuyến nghị tốt cần 2 yếu tố:
  - Hệ thống có khả năng khái quát hóa: giữa nhiều sản phẩm và giữa nhiều người dùng
  - Hệ thống có khả năng cá nhân hóa cho từng người dùng: going beyond the common static of the mass
- Long-tail issue: 
    - chỉ một số nhãn hàng được mua nhiều và được nhiều người sử dụng (popular) nhưng độ thỏa mãn không cao.
    - trong khi đó có những mặt hàng (niche product) ít người mua nhưng có thể đem đến sự thỏa mãn cao cho người mua (chỉ cho một số ít người dùng.
    => cần có sự cân bằng giữa hai loại mặt hàng này để đem đến trải nghiệm tốt và bắt trend

- có nhiều cách để đưa ra được khuyến nghị: *key idea: similarity*
    - Collaborative Filtering: khai thác sự giống nhau khi được mua. Ví dụ các mặt hàng nào thường được mua cùng với nhau... Có thể được sử dụng lại, matching, có tính neighbourhood nhưng không tận dụng được cái feature bên ngoài như tuổi tác, cái loại món hàng... Đòi hỏi utility matrix phải có những trải nghiệm sẵn (Cold Start)
        - User-based CF
            - Mỗi item là đặc trưng của vecto người dùng. Các nơi chưa có rating sẽ được điền giá trị trung bình của các vị trí hiện có.
            - Normalize utility matrix: scale matrix bằng giá trị trung bình => những nơi được điền giá trị trung bình có giá trị 0
            - từ đó ta tính cosine similarity.
            - chọn k người dùng có rating giống với người dùng cần tính và sử dụng công thức như item-based
        - Item-based CF 
            - Mỗi người dùng được xem là một đặc trưng của sản phẩm đó.
            - Ưu điểm: items don't change as much as users

    - Content-based Filtering: tận dụng cái thông tin của người dùng nhưng không có tính neighbourhood, mang tính personal hơn...
        - Matrix Factorization CF: Phân rã ma trận
            - Utility Matrix được phân rã thành hai ma trận là thừa số của ma trận đó với các đặc trưng về các mặt hàng. Ví dụ phim tình cảm, phim hành động...
    - Personalize Recommender:
        - Content-based: 
            - Mỗi một item có một vecto đặc trưng dựa trên các tiêu chí đánh giá: nhạc bolero, nhạc trữ tình ...
            - Ta cũng có các rating cho các item của các user
        - Context-aware & KB Personal
- Ngoài các thông tin về rating... người ta còn sử dụng input về các website người dùng sử dụng, thông tin về giao dịch, nơi ở, tuổi tác, thu nhập...


## Session 5 - Evaluation: Metrics and Loss
- Chia dữ liệu thành các tập train - dev (validation) - test set. Tập validation dùng để test các model để chọn ra model tốt nhất.
- Chuẩn đánh giá $P$ (performance measure/evaluation metric) được xây dựng thành hàm $loss$ để thực hiện việc đánh giá.
    - Đầu vào: Hàm số f, dataset D 
    - Đầu ra: Một con số thực để đánh giá f tốt như thế nào
- Giải thuật tìm ra các params ($\theta^{i}=(W^{i},b^{i})$ tại lần lặp thứ i với $\theta^{0}$ được initalized randomly) tốt nhất bằng cách lấy đạo hàm lặp đi lặp lại gọi là "fitting a model $f_{\theta}$ to the dataset $D$"
- (easier) interpolation $\rightarrow$ extrapolation $\rightarrow$ combinatorics (harder)
- Generalization: most important ability of intelligence
    - "Large-margin" classifier
- Confusion Matrix: biểu diễn số lượng các class thực tế và các class được dự đoán $\rightarrow$ đường chéo của ma trận là xác suất dự báo đúng các class (sau khi đã normalized).
- Threshold: tiêu chuẩn về xác suất để lựa chọn class (thường là 0.5)
- Precision, Recall and Accuracy of imbalanced-dataset classification
    - True/Fase: tính đúng/sai của dự báo
    - Positive/Negative: awared or ignored
    - $Precision = \frac{\sum{TP}}{\sum{TP+FP}}\rightarrow$ độ hữu dụng của mô hình 
    - $Recall = \frac{\sum{TP}}{\sum{TP+FN}}\rightarrow$ độ nhạy của mô hình 
    - $Accuracy = \frac{\sum{TP+TN}}{\sum{TP+TN+FP+FN}}$
    - Mối quan hệ giữa Precision và Recall được mô tả bằng $F_{\beta}\text{ score}$
        $F_{\beta}\text{ score}=(1+\beta^{2})\frac{\text{Precision.Recall}}{\text{Precision+Recall}}$ với $\beta$ là độ quan trọng của Precision
    - $F_{1}$ treats Precision and Recall equal.
    - True Positive Rate (TPR) = Recall: probability of detection 
    - False Positive Rate (FPR) = probability of false alarm = $1-\frac{TN}{N}=\frac{TN}{TN+FP}=1-TNR$

## Session 6 -- Midterm Exam
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**:
        - $X_0=\frac{\sum_{i=1}^{n}X_i}{n}$
        - $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$
        - The last feature of $z_t$ in this case is $U_2$
- [**1** Point] What are the main differences between representations by PCA and by sparse coding?
    - **Solution**:
        Sự khác biệt giữa PCA và Sparse Coding là:
        - PCA sử dụng các đặc trưng quan trọng nhất để việc học đơn giản, nhanh và hiệu quả hơn.
        - Sparse Coding là kỹ thuật biểu diễn embedding vector z là một vecto có nhiều giá trị 0 và ít giá trị khác 0 chứ không ưu tiên các đặc trưng quan trọng nhất.
- [**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? 
![](https://i.imgur.com/PseEFdZ.png)
    - **Solution**:
    $z_A$=[5, 5, 0, 0, 1, unknown]

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**: một learnable-parameter
    - sofmax regression with 3 classes? 
        - **Solution**: là một vector có shape (3,) $W=[W_{class1}, W_{class2}, W_{class3}]$
- [**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**: Xác suất đầu ra của mô hình phân loại nhị phân cho ta xác suất của nhóm thứ nhất. Nếu xác suất thấp $\rightarrow$ giá trị được dự đoán thuộc nhóm thứ 2. Nếu xác suất cao $\rightarrow$ giá trị được dự đoán thuộc nhóm thứ nhất.

4. [**2** Points] Evaluation procedure 
- [**1** Point] Explain the main use of the train--dev (validation)--test sets. 
    - **Solution**:
        - Train: tập dùng để huấn luyện (được coi là bài học).
        - Dev: tập dùng để kiểm tra độ chính xác của các mô hình với nhiều trường hợp hyperparameter khác nhau (được coi là bài tập).
        - Test: tập dùng để kiểm tra mô hình đã được chọn ra từ dev (được coi là bài thi).
- [**1** Point] What are the main similarity and differences between linear SVM and logistic regression? 
    - **Solution**:
        - Giống nhau: đều là mô hình thuộc nhóm supervised learning
        - Khác nhau: SVM được có thể là một mô hình nonlinear trong khi Logistic Regression là mô hình linear.
        
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 classes 
- [**1** Point] What is the size of $W$ if we use softmax regression $\hat{y}=s(Wz+b)$ for to classify ratings? 
    - **Solution**: (120,)

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'(\gamma(Wz+b)+b'))+b'')$ 
- [**1** Point] What are the parameters of the fully-connected layer in your equation? 
    - **Solution**: W'', W', W, b'', 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**: 
        - Kernel trick hữu dụng vì nó là sự tổng quát của phương pháp tính sự giống nhau.
- [**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**:

## Session 7 - Search: Optimization and Training

- Đằng sau mỗi tọa độ nhúng là một đặc trưng.
- TEFPA: Task, Experience, Function Space, Performance, Search Algorithm.
    - Search Algorithm: hàm search để tìm kiếm bộ trọng số trong Function Space.
- Maximizing performance measure = minimizing loss.
- Paramter Space $\rightarrow\$ Loss Surface: mỗi một bộ trọng số cho một loss khác nhau $\rightarrow\$ từ parameter space cho ra được loss space (landscape)
- $\theta^\star = argmin_\theta J(\theta, X, y)$
- Gradient Vector: vector vận tốc chỉ hướng tăng nhanh nhất của hàm số.
- Điểm tối ưu => gradient = 0 nhưng gradient = 0 thì chưa chắc là điểm tối ưu. 
    - $\nabla_\theta J=(\frac{\delta J_\theta}{\delta\theta_1}+\frac{\delta J_\theta}{\delta\theta_2}+...+\frac{\delta J_\theta}{\delta\theta_n})$
- Điểm tối ưu => gradient = 0 nhưng gradient = 0 thì chưa chắc là điểm tối ưu. 
- Learning rate: bước đi trong không gian, nếu như hàm loss tăng giảm liên tục, learning rate có thể đang lớn.
- Batch: lấy cả Dataset để tính $\rightarrow$ mini-batch: lấy một phần nhỏ trong dataset $\rightarrow$ SGD: lấy từng điểm trong D để tính hàm loss (trong trường hợp không đủ phần cứng)
- Momentum: động lượng (kết hợp vector động lượng với vector vận tốc trong data để cho ra hướng đi thích hợp)
- Early Stopping: tránh overfitting
- Tắt bớt mỗi node trong mạng neuron: ép mạng nowrron học được đặc trưng chống nhiễu tốt hơn (robust feature).

## Session 8 - Convolutional Neural Network
- CNN thường được sử dụng trong xử lý ảnh, video và âm thanh.
- Sliding: Filter, kernel trượt qua tấm ảnh, nơi nào có filter $\rightarrow$ tích chập nơi đó lớn và ngược lại.
- Khi sliding ta quan tâm chủ yếu vị trí ở trung tâm của filter $\rightarrow$ filter thường là một ma trận vuông có kích thước lẻ.
- Matching + Sliding = Convolution 
    - 1D: trượt qua một ma trận theo một hướng.
    - 2D: trượt qua một hình ảnh theo hai hướng.
    - 3D: hình có 3 kênh màu.
- Padding (phép đệm): để giữ nguyên kích thước của output và tránh thất thoát thông tin ở rìa, ta tạo ra một rìa ảnh gồm những số 0 và trượt filter qua output đó.
- Stride: bước nhảy của filter 
- Pooling: (phép gộp) chọn ra một vùng các điểm ảnh và lấy giá trị:
    - Cao nhất: Maxpooling $\rightarrow$ sharp feature.
    - Trung bình: Average pooling $\rightarrow$ smooth feature.
    - Mặc định: stride=2, filter_size=2
    - Giúp mô hình vững chắc trước các sai lệch nhỏ
    - Giảm kích thước đầu vào nhanh chóng
- Kích thước filter + số output = số lượng trọng số
- Mỗi feature map có một output

## Session 9 -- Recurrent Neural Network (RNN)
- Mô hình giúp đưa ra quyết định.
- Sequential Data - Time series Data:
    - Có sự chuyển động. 
    - Trong phân loại hình ảnh, output của 1 tấm ảnh ko ảnh hưởng đến output của tấm khác (dữ liệu không có tính chuỗi - tính liên tục theo thời gian).
    - Đế xử lý các dữ liệu có tính chuỗi, ta cần mô hình chuyên biệt.
    - Ví dụ: giá vàng, giá nhà, giọng nói, ... (time series).
- Di chuyển trong không gian khái niệm $\rightarrow$ ứng dụng của việc sáng tạo:
    - Khái niệm cũ $h$ $\rightarrow$ khái niệm mới $h'=\sigma(Uh+Wx+b)$
    - U: hàm biến đổi (co dãn,...)
    - $\sigma$: hàm nắn
- Thay đổi hidden state và input, sử dụng lại các tham số (weight-sharing in time)
- CNN là weight-sharing in space
    - Hiddent State mới được tính lại bằng input mới + hidden state của bước trước đó.
    - Sử dụng Back Propagation để update các node $\rightarrow$ Back Propagation through time.

## Session 10 -- Unsupervised Learning: K-Means Clustering
- Trích xuất đặc trưng mà không cần ví dụ mẫu y khác với supervised learning - tương lai của ML.
- Áp dụng: giảm chiều dữ liệu để trực quan hóa.
- Máy tính tự phân loại đầu vào, không cần label y.
- Đối với ảnh: từng phần của tấm ảnh đầu vào được phân thành từng cụm: bầu trời, nhà cửa, xe cộ... $\rightarrow$ unsupervised segmentation
- Ví dụ:
    - Customer Segmentation
- To-do:
    - Biểu diễn một cụm ?
    - Mỗi input thuộc cụm nào ?
    - Ví dụ "gom K cụm trung bình"
        - Cụm = Centroid = Trung bình các điểm trong cụm.
        - Input gán vào cụm gần nhất (Khoảng cách Euclide - Euclidean Distance).
- Chuẩn đánh giá: minimum intracluster distance (đối với k-means) và maximum intercluster distance.

## Session 11 -- MDP Planning
- Z được trích xuất từ Observation (O) hoặc có thể chính là O.
- Trạng thái, hành động (decision), mục đích(goal) là những phần cần xác định.
- Plan: chuỗi các hành động để đạt được mục đích HIỆU QUẢ NHẤT $\rightarrow$ Sequential Decision Making
- Thành phần của một bài toán Planning:
    - Action
    - Goal
    - Performance Measure
    - State: trạng thái tại thời điểm đưa ra planning
        $\rightarrow$ Policy: plan được đưa ra 
    - Reward Signal: tín hiệu về tốt/xấu

- MDP: State(S), Action($A$), Transition($T$), Reward($R$), $\gamma$
    - Tại mỗi thời điểm t, ta có $S_t$, agent phải thực hiện hành động $A_t$ sao cho $R_t$ là lớn nhất.
    - $\gamma$: discount factor dùng để nhấn mạnh plan nào lấy được $R$ sớm thì sẽ tốt.
    - Policy/Value Function: hàm $\pi(s)$ nhận vào s cho ra a HOẶC có s và a $\rightarrow$ tính ra tổng R trong tương lai.



---
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)

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?
    - T: Input: Images of face in many angles - Output: Name of the person
    - E: Dataset containing faces with label are the names of the person
    - F: Mô hình CNN
    - P: Accuracy of model
    - A: 
- 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: Input: các feature đã biết của người dùng (sản phẩm đã mua, giới tính, tuổi tác, ...) - Output: gợi ý món hàng người đó có thể sẽ cần, sẽ mua
    - E: Feature của người khách hàng đó
    - F: 
    - P: độ hài lòng của khách hàng, tần suất chọn các gợi ý...
    - A: 
- 1.3 [**2** Point, 3.1] to build a customer segmentation model using k-means?
    - T: Input: Customers with Features - Output: Class of customer
    - E: Customer with vectorized features
    - F: 
    - P: Silhoutte Analysis for choosing K
    - A: 
- 1.4 [**2** Point, 3.1] to build a sentiment analysis model (good, bad, neutral comments) using RNN+Softmax Classifier?
    - T: Input: Comments - Output: Good, bad or neutral comments
    - E: Comments with label (good, bad or neutral)
    - F: 
    - P: Accuracy of model
    - A:

2. [**6** Points] Convolutional filters (or kernels)
- 2.1 [**1** Point, 1.1, 3.2] How do we extend them from dot product?
    - 
- 2.2 [**1** Point, 1.1, 3.2, 3.4] Why do we call their outputs "feature maps"?
    - Sau khi tính Dot Product, ta có được ma trận cho thấy độ giống nhau và giống nhau ở vùng nào của Kernel và Input.
- 2.3 [**1** Point, 3.2] Explain padding: how to do & main purpose
    - How to do: add n collum and row of zeros outside the input matrix. (n = (kernel_size - 1)/2)
    - Main purpose:
        - Maintaining the size of input
        - Avoiding the loss of information at the edges
- 2.4 [**1** Point, 3.2] Explain pooling: how to do & main purpose
    - How to do: nhóm nhiều vị trí trên input (thường là 2x2) và chọn ra giá trị trung bình hay giá trị lớn nhất tại mỗi nhóm và đặt nó làm giá trị đại diện cho nhóm đó.
    - Main purpose: 
        - Rapidly decreasing the size of input
        - Mô hình vững chắc trước cái sai lệch nhỏ
- 2.5 [**1** Point, 3.2] Explain stride: how to do & main purpose
    - How to do: Stride là tốc độ trượt của filter trên input matrix. Với stride = 1, mỗi lần trượt filter sẽ di chuyển đến vị trí kế tiếp. Stride = 2, mỗi lần trượt filter đi đến vị trí cách vị trí ban đầu 1 ô.
    - Main purpose:
        - Điều chỉnh tốc độ giảm kích thước của dữ liệu
        - Điều chỉnh cách filter di chuyển
- 2.6 [**1** Point, 3.2, 3.4] Explain their **effective** receptive field: why do they produce highly absstract features?

3. [**6** Points] Recurrent neural networks (RNNs) can  be used for sequential modeling.
- 3.1 [**1** Point, 3.2] What does sequential data mean?
    - Dữ liệu thay đổi theo thời gian, dữ liệu có tính trước-sau. Ví dụ: bài hát, các chuỗi hành động liên tiếp nhau, ...
- 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)$
    - $h_t$: embedding coordinates at t 
    - $\mathsf{\gamma}$: hàm nắn
    - A
- 3.3 [**2** Point, 1.3, 2.1, 3.2] What 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?
    - Back-propagation-through-time: backpropagation through earlier time-step
    - 
- 3.4 [**1** Point, 1.3, 3.2] Explain vanishing gradient problem for simple RNNs.
    - Sử dụng Back-propagation-through-time, khi gradient ở mỗi thời điểm bé hơn 1, thì việc thực hiện nó càng nhiều làm cho gradient càng nhỏ.
- 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).
    - S: State (trạng thái hiện tại)
    - A: Acion (hành động tiếp theo)
    - T: Transition
    - R: Reward (phần thưởng)
    - $\gamma$: Discount Factor
- 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)$?
    - $q(s,a)= \frac{1}{k}\sum^{K}_{k=1}r_1+{\gamma}G^\pi_k(s')$
    - optimal plan $\pi^*=argmax_{\pi}q^\pi(s,a)$
- 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?
    - Từ Q ta sẽ thấy được tỉ lệ thành công của các hành động ta có thể thực hiện
- 4.6 [**1** Point, 1.2, 3.2] What is the meaning of action value function when we set $\gamma = 1$? $\gamma = 0$

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?