2 PHẦN TÌM KIẾM Phần 1: Breadth – first search Câu 1: Nêu ưu điểm và nhược điểm của thuật toán Breadth-first search Ưu điểm: Hoàn chỉnh vì duyệt qua tất cả các đỉnh, chắc chắn tìm ra đ
Trang 11
PHẦN TÌM KIẾM 2
Phần 1: Breadth – first search 2
Phần 2: Uniform-Cost Search 4
Phần 3: Depth-First search 5
Phần 4: Deep-Limited search 6
Phần 5: Iterative deepning search 7
Phần 6: Greedy search 7
Phần 7: A* Astar search 9
PHẦN ML 10
Phần 1: Decision Trees 10
Phần 2: Linear Regression 14
Phần 3: Logistic Regression 18
Phần 4: SVM 21
Trang 22
PHẦN TÌM KIẾM Phần 1: Breadth – first search
Câu 1: Nêu ưu điểm và nhược điểm của thuật toán Breadth-first search
Ưu điểm: Hoàn chỉnh vì duyệt qua tất cả các đỉnh, chắc chắn tìm ra được con
đường đi qua ít nút nhất
Nhược điểm: Độ phức tạp bộ nhớ cao hơn do có lưu lại bằng hàng đợi
Câu 2: Tính độ phức tạp về thời gian của thuật toán Breadth-First search khi b = 3 và d = 10
Độ phức tạp về thời gian: 𝑂ሺ𝑏𝑑+1ሻ= 𝑂ሺ311ሻ
Độ phức tạp về bộ nhớ: 𝑂ሺ𝑏𝑑+1ሻ= 𝑂ሺ311ሻ
Câu 3: Mô tả thuật toán Breadth-First search để tìm được Goal của cây dưới đây (Bắt đầu tại A, Goal là điểm F) ở hình dưới đây:
Khởi tạo Q=[A]
Lấy ra A, A chưa là F, đưa vào các nút kề Q=[B, C, D]
Lấy ra B, B chưa là F, đưa vào các nút kề Q=[C, D, E, F]
Trang 33
Lấy ra C, C chưa là F, đưa vào các nút kề, Q=[ D, E, F]
Lấy ra D, D chưa là F, đưa vào các nút kề, Q=[ E, F]
Lấy ra E, E chưa là F, đưa vào các nút kề, Q=[F]
Lấy ra F, F chính là đích ->Kết thúc
Câu 4: Sửa code phần “Breath-first tree search": Thành phố nào đã
đi qua 1 lần rồi thì không mở rộng đến thành phố đó nữa (không xét thành phố đó nữa ở các bước tiếp theo)
Câu 5: Sửa code phần “1 Breath-first tree search": ban đầu, khi mở rộng, không kiểm tra các node con là goal hay chưa -> sửa thành kiểm tra node con là goal thì dừng và trả về đường đi từ gốc đến goal
Trang 4BFS: Việc tìm kiếm bắt đầu tại nút gốc và tiếp tục bằng cách duyệt các nút kề không theo thứ tự nhất định
Câu 2: Với điều kiện nào thì Thuật toán Uniform-Cost Search tương đương với thuật toán Breadth-First Search
Khi trọng số của đồ thị tương đương với số bước di chuyển giữa các nút = 1
Thì 2 thuật toán tương đương nhau
Câu 3: Giải thích cách hoạt động của Uniform-cost search trong hình
vẽ với điểm xuất phát Zerind và đíchCraiova?
Lay ra Zenind, Q=[ (Oradas, 71), (Arad, 75) ]
Trang 55
Lay ra Oradas, Q=[(Arad,75), (Sibiu,222) ]
Lay ra Arad, Q[ (Timisoara, 193), (Sibiu, 222) ]
Lay ra Timisoara, Q=[ (Sibiu, 222), (Lugoj, 304) ]
Lay ra Sibiu, Q[ (Rimnicu, 295), (Lougoj, 304), (Faragas ,314) ]
Lay ra Rimnicu, Q=[ (Lougoj, 304), (Faragas, 314), (Pitesti, 392), (Cairova, 441)] Lay ra Lougoj, Q=[ (Faragas, 314), (Mehadia, 374), (Pitesti, 392), (Cairova, 441)] Lay ra Faragas, Q=[ (Mehadia, 374), (Pitesti, 392), (Cairova, 441)(Bucharest, )]
Lay ra Mehadia, Q=[ (Pitesti, 392), (Cairova, 441), (Bucharest, ), …]
Lay ra Pitesti, Q=[ (Cairova,441), ]
Lay ra Cairova Ket thuc
Câu 4: Sửa code để phần “6 Uniform-cost search" trong code
“search.ipynb" để ưu tiên mở rộng node có khoảng cách từ gốc đến node đó là xa nhất trước
Câu 5: Sửa code để phần “6 Uniform-cost search" trong code
“search.ipynb" để tìm đường đến đích qua ít thành phố nhất Nhận xét sau khi sửa giống thuật toán nào
Phần 3: Depth-First search
Câu 1 Nêu ưu điểm và nhược điểm của thuật toán Depth-first search
Trang 66
Ưu điểm: Độ phức tạp bộ nhớ thấp, chiếm rất ít Nếu đi đúng hướng sẽ tới được
nút đích nhanh nhất
Nhược điểm: Dễ mắc vào các vòng lặp vô hạn
Câu 2: Trong trường hợp nào thuật toán Depth_First search không
thể tìm được Goal?
Khi tồn tại chu trình làm xảy ra vòng lặp vô hạn, hoặc cây có độ sâu vô hạn
Câu 3: Tính toán độ phức tạp Space cua thuật toán Depth-First
search khi b = 5, m = 16 và d = 7
Độ phức tạp bộ nhớ của DFS: 𝑂(𝑏𝑚)=𝑂(5∗16)=𝑂(80)
Câu 4 Sửa code phần “2 Depth-first tree search": thành phố nào đã
đi qua 1 lần rồi thì không mở rộng đến thành phố đó nữa
Phần 4: Deep-Limited search
Trang 77
Câu 1: Thuật toán depth-limited search được đưa ra để giải quyết vấn đề gì của thuật toán depth-first search?
Tìm kiếm giới hạn chiều sâu khắc phục được vấn đề vòng lặp vô hạn, khi sâu đến
độ sâu tối đa, nó sẽ quay lại nên vòng lặp sẽ dừng
Câu 2: Thuật toán Deep-Limited search có trường hợp không tìm được Goal hay không? Nếu có hãy nêu ra VD
Khi nút goal nằm ở độ sâu > độ sâu tối đa sẽ không tìm được
Câu 3: Trình bày sự khác nhau giữa thuật toán Deep-Limited search
và thuật toán Uniform-Cost search?
Phần 5: Iterative deepning search
Câu 1: Trinh bày điểm tối ưu của thuật toán Iterative Deepning search so với thuật toán Deep-Limited search? Liệu rằng Thuật toán Iterative Deepning search có trường hợp không tìm được Goal hay không?
Tìm kiếm sâu dần khắc phục nhược điểm của thuật toán tìm kiếm giới hạn độ sâu,
đó là khi nút đích ở quá độ sâu giới hạn t thì không tìm được Bằng cách tăng dần
độ sâu giới hạn t đến khi tìm được đích
Như vậy sẽ luôn tìm được, vấn đề chỉ là thời gian
Trang 88
Thứ tự các nút ở trong hàng đợi của Tìm kiếm tham lam được sắp xếp theo trọng
số là giá trị của hàm h(n), chứ không phải thứ tự duyệt như Tìm kiếm theo chiều rộng
Câu 2: Hãy tìm đường đi từ thành phố Oradea đến thành phố Bucharest sử dụng thuật toán Greedy search
Kết quả: Ban dau Q=[(Oradea, 363)]
Lay ra Oreda, Q=[ (Sibiu, 232), (Zenind, )]
Lay ra Sibiu, Q=[ (Faragas, 154), (Zenind,…), (Rimi, )]
Lay ra Faragas, Q= [ (Burcharest, 0), ]
Lay ra Burcharest Ket thuc
Câu 3: Tính toán hàm heuristic function cho bài toán dưới đây theo hai cách: (h1) number of misplaced tiles ; (h2) total Manhattan distance So sánh hai hàm h1, h2, hàm nào tốt hơn cho các bài toán tìm kiếm?
h1(S)= number of misplaced tiles = 6
h2(S) = total manhattan distance
= 2 + 0 + 3 + 1 + 0 + 1 + 3 + 4 = 14
Trang 9Tùy ta đánh giá “best” là như thế nào mà sẽ có được các thuật toán khác:
BFS: duyệt cùng độ sâu từ nhỏ nhất trước (dùng hàng đợi)
DFS: duyệt độ sâu lớn nhất trước (dùng ngăn xếp)
UCS: duyệt theo cost nhỏ nhất/lớn nhất (dùng hàng đợi ưu tiên)
Câu 2: So sánh hàm đánh giá giữa hai phương pháp A* search và gready search
Tìm kiếm tham lam chỉ tính tối ưu cục bộ chi phí ước tính của đường đi ngắn nhất
từ nó đến trạng thái đích đích Còn A* xét thêm chi phí từ trạng thái khởi tạo tới trạng thái nó Nên A* chắc chắn sẽ được quãng đường tối ưu
Câu 3 Chứng minh Uniform-cost search là một trường hợp đặc biệt của A* search
f(n)= g(n) + h(n)
Khi h(n) = 0 , f(n) = g(n) và A* trở thành UCS
Do thuật toán UCS chỉ xét khoảng cách từ nút gốc đến nút hiện tại
Trang 1010
PHẦN ML Phần 1: Decision Trees
Câu 1: Cho bảng dữ liệu dưới đây:
Áp dụng thuật toán ID3 cho dữ liệu huấn luyện được cung cấp trong bảng trên Tính toán mẫu cho nút đầu tiên (root)
Trang 11Entropy: Đo độ bất ngỡ của một tập dữ liệu
IGain: lượng thông tin trung bình chứa trong đoạn mã, =Entropy mẫu – entropy trung bình
Câu 2: Liệt kê các loại node trong Decision Tree:
- Root node: gốc của cây quyết định bao gồm tất cả các tập hợp của một thuộc tính
- Decision node: khi các thuộc tính có thể phân tách thành các thuộc tính nhỏ hơn
- Leaf node: khi đầu ra cuối cùng được quyết định mà không cần phân tách thêm
Trang 1212
Câu 3: Trình bày các bước tính toán của thuật toán ID3?
1 Tính toán Entropy của cả dataset nhờ vào dữ liệu classification
2 Với mỗi thuộc tính, tính được Entropy của mỗi thuộc tính thông qua tập giá trị Nhờ đó tình được IGain(S) = Ent(S) − Ent(S|atrib)
3 Chọn ra thuộc tính A có IGain lớn nhất để làm gốc Đối với mỗi giá trị v của thuộc tính A Thêm một nhánh dưới nốt root tương ứng với A = v
3.1 Nếu tất cả các đối tượng x thuộc D có cùng một lớp label classification, trả về nốt gốc Root với nhãn classification Kết thúc
3.2 Gọi D(v) là tập các đối tượng thuộc D có v là giá trị cho thuộc tính A
3.3 Nếu D(v) = rỗng, thêm một nốt lá (leaf node) dưới nhánh này với nhãn ck nào
đó phổ biến nhất trong D Ngược lại dưới nhánh này thêm một cây con ID3(D(v), Target − Attribute, Attributes - {A})
Câu 4: Giả sử trong trường hợp có 2 thuộc tính có Information Gain bằng nhau và là lớn nhất trong data set thì thuật toán ID3 sẽ xử lý như thế nào?
Chúng ta có thể chọn bất kỳ thuộc tính nào, không có gì đảm bảo rằng việc đưa ra lựa chọn tham lam cục bộ ở mỗi cấp nhất thiết sẽ mang lại cho bạn mức tối ưu toàn cục Trọng tâm chính của phương pháp heuristic này là làm cho việc xây dựng cây quyết định trở nên hiệu quả, cho nên không cần phải thử tất cả các trường hợp có thể có để đánh giá
Ngoài ra, nếu IG bằng nhau, ta có thể chuyển sang tính Gain Ratio
Câu 5: Decision Tree là mô hình supervised learning hay unsupervised learning? Decision Tree có thể áp dụng cho bài toán nào?
Supervised learning vì nó tạo ra mô hình dựa trên tập dữ liệu huấn luyện với kết quả đúng, kết quả mô hình của nó dựa trên kiến thức mà nó thu được trong quá trình đào tạo
Áp dụng cho bài taspm Hồi quy (cây hồi quy) và phân loại (cây phân loại)
Câu 6: Decision Tree sử dụng thuật toán Search nào?
Trang 1313
Tìm kiếm theo kiểu tham lam Vì chúng ta đang chọn ra thuộc tính tối ưu hóa
thông tin thu được nhất ở từng bước
Câu 7: Nêu một số ưu/nhược điểm chính của thuật toán cây quyết
định
Ưu điểm:
- Dễ hiểu và giải thích, xây dựng dựa trên dữ liệu thành các quy tắc toàn diện
- Không cần thiết phải chuẩn hóa dữ liệu Không yêu cầu tiền sử lý
Nhược điểm:
- Thường tương đối không chính xác, dễ bị overfiting
- Không ổn định, chỉ một thay đổi trong bộ dữ liệu sẽ cho ra cấu trúc cây khác nhau
- Độ phức tạp về bộ nhớ và thời gian lớn hơn Tính toán khá phức tạp, tốn nhiều bộ nhớ
- Không thích hợp đối với các bài toán cần dự đoán các giá trị có tính liên tục
Câu 8: Điều kiện dừng để tránh overfitting của thuật toán Decision Tree
Xây dựng ra cây cuối cùng, sau đó ta sử dụng cắt tỉa, đánh giá hiệu quả của việc cắt bỏ từng nút thông qua cross-vadilation, sau đó cắt bỏ đến khi độ chính xác của
tập test tăng dần đến khi tiệm cận tập train
Trang 1414
Phần 2: Linear Regression
Câu 1: Khi tối ưu hàm mất mát sử dụng phương pháp Gradient Descents, bộ tham số θ (θ1, θ2, , θd) qua mỗi vòng lặp được cập nhật đồng thời hay lần lượt? Việc lựa chọn Learning rate (alpha) ảnh hưởng tới quá trình tối ưu của thuật toán Gradient Descents như thế nào?
- Thuật toán GD cho hàm nhiều biến cũng bắt đầu bằng một điểm dự đoán 𝜃0, sau đó, ở mỗi vòng lặp, cập nhật các 𝜃 từ 0 d đồng thời bằng cthuc
- Với α, việc lựa chọn rất quan trọng, giá trị này phụ thuộc nhiều vào từng bài toán và phải làm một vài thí nghiệm để chọn ra giá trị tốt nhất α quá nhỏ sẽ làm cho bài toán hội tụ chậm, sẽ ảnh hưởng tới tốc độ của thuật toán rất nhiều, thậm chí không bao giờ tới được đích Tuy nhiên α quá lớn khiến tiến
Trang 1515
nhanh tới đích chỉ sau vài vòng lặp, nhưng có thể không hội tụ được, vì bước nhảy quá lớn
Câu 2: Gradient descents for Linear Regression:
Giải thích tất cả ký hiệu trong công thức trên và cho biết bộ data có tổng bao nhiêu mẫu (samples), mỗi mẫu có bao nhiêu đặc trưng?
𝜃 là các tham số của mô hình cần tìm
α là tốc độ học, bước nhảy của giá trị 𝜃
h() là hàm mục tiêu cần học
y() là output thực tế từ đầu vào
Bộ data n mẫu, mỗi mẫu có d đặc trưng từ 0 đến d
Câu 3: Trình bày một số hạn chế của Linear Regression?
Hạn chế đầu tiên của Linear Regression là nó rất nhạy cảm với nhiễu (sensitive to noise) Trong ví dụ về mối quan hệ giữa chiều cao và cân nặng bên trên, nếu có chỉ một cặp dữ liệu nhiễu (150 cm, 90kg) thì kết quả sẽ sai khác đi rất nhiều Xem hình dưới đây:
Trang 16Hạn chế thứ ba của Linear Regression là nó không biễu diễn được các mô hình phức tạp Mặc dù trong phần trên, chúng ta thấy rằng phương pháp này có thể được
áp dụng nếu quan hệ giữa outcome và input không nhất thiết phải là tuyến tính, nhưng mối quan hệ này vẫn đơn giản nhiều so với các mô hình thực tế Như các làm sin, cos
Câu 4: Có thể áp dụng Logistic Regression cho bài toán phân loại
nhiều lớp (Multiclass classification) hay không?
Logistic regression sử dụng trong các bài toán binary classification, với phân loại nhiều lớp hơn có nhiều cách
- Sử dụng One-vs.-rest (1 và phần còn lại), Softmax function:
Trang 1717
- Sử dụng Multinomial logistic regression
Câu 5: Giả sử, trong bài toán dự đoán giá thuê phòng trọ tại Hà Nội,
dữ liệu thu thập được có dạng như bảng dưới đây
5a: Hãy xác định (input, label) cho mô hình bạn định xây dựng? Tại sao bạn lại lựa chọn những thuộc tính đó là input cho mô hình của bạn?
Label = Giá Thuê
Input = Diện tích, Trang bị điều hòa
Trang 18Câu 6: Linear Regression là gì? Đầu ra của bài toán?
Mô hình hồi quy là mô hình mà đầu ra là các số thực
Mô hình tuyến tính là mô hình có giả thuyết hàm Y=f(X) có dạng tuyến tính f(X)= 𝜃0+ 𝜃1.x1+…+ 𝜃n.xn
"Hồi quy tuyến tính" là hàm học có dạng tuyến tính và đầu ra là số thực
Câu 7: Trình bày thuật toán Gradient descent
Các điểm local minimum là nghiệm của phương trình đạo hàm bằng 0 Tuy nhiên, trong hầu hết các trường hợp, việc giải phương trình đạo hàm bằng 0 là bất khả thi Nguyên nhân có thể đến từ sự phức tạp của dạng của đạo hàm, từ việc các điểm dữ liệu có số chiều lớn, hoặc từ việc có quá nhiều điểm dữ liệu
Hướng tiếp cận phổ biến nhất là xuất phát từ một điểm mà chúng ta coi là gần với nghiệm của bài toán, sau đó dùng một phép toán lặp để tiến dần đến điểm cần tìm, tức đến khi đạo hàm gần với 0 Gradient Descent (viết gọn là GD) và các biến thể của nó là một trong những phương pháp được dùng nhiều nhất
Phần 3: Logistic Regression
Trang 1919
Câu 1: Giả dụ bạn train một bộ phân loại Logistic Regression và có hàm giả thuyết H là: hθ(x) = g(θ0 + θ1x1 + θ2x2) với θ0 = 6, θ1 = 1, θ2= -1
Vẽ hình thể hiện decision boundary của bộ phân loại trên (ví dụ:
)
Câu 2: Trình bày một số cách xử lý khi Logictis regression xảy ra
hiện tượng Overfitting?
Sử dụng kỹ thuật Regularization, tức là thêm vào hàm loss 1 đại lượng nữa:
Trang 2020
Đại lượng thêm vào sau hàm loss là để điều chỉnh penalty (phạt) các thành phần bậc cao khi model bị overfit Khi mô hình tối ưu, các thành phần bậc cao sẽ tiến đến 0, trừ 0 nó bỏ qua thôi vì đang tính sử dụng norm2 của với 0
Một vài phương pháp khác là nâng chất lượng và số lượng của data dùng để
trainning
Câu 3: Gradient Descent có thể dừng ở local minimum khi training
mô hình Logistic Regression không?
Gradient descent có thể dừng ở local minimum, nếu hàm cost làm hàm lõm
Câu 4: Lợi ích của việc Vectorizaion?
Vectorization về cơ bản là một cách để loại bỏ các vòng lặp trong code của chúng
ta Vectorization tức là thay vì dùng vòng lặp trên từng hàng từng hàng một, chúng
Trang 21Tuân theo phân phối chuẩn
Câu 6: Tại sao hàm sigmoid được chọn trong bài toán logistic regression?
Sigmoid là một hàm phi tuyến với đầu vào là các số thực và cho kết quả nằm trong khoảng [0,1] và được xem là xác xuất trong một số bài toán Trong hàm Sigmoid, một sự thay đổi nhỏ trong input dẫn đến một kết quả output ko mấy thay đổi Vì vậy, nó đem lại một đầu ra "mượt" hơn và liên tục hơn so với input Hàm sigmoid
là một hàm liên tục và đạo hàm của nó cũng khá đơn giản, dẫn đến việc áp dụng hàm vào mô hình mạng đem lại sự dễ dàng trong việc xây dựng mô hình và cập nhật tham số
Câu 7: Các bước xây dựng bài toán logistic regression?
- Xác định Biến phụ thuộc phải là biến nhị phân
- Các biến độc lập cần phải độc lập với nhau, và có ý nghĩa tác động đến biến phụ thuộc
Số lượng các mẫu cần phải đủ lớn tùy theo bài toán, việc lấy cỡ mẫu tối thiểu là
500 là cần thiết để thu được số liệu thống kê đại diện cho các tham số
Từ đó phát biểu kết bài toán dựa trên 2 kết quả 0(no, failure, …) và 1(yes,
success,…) (dự đoán P(Y=1) là hàm dựa trên X.)
Phần 4: SVM