Lab · Dữ liệu & robot

Phòng lab Dữ liệu & Robot

Bảy trạm nhỏ về cách dữ liệu biến thành quyết định và cách robot di chuyển. Tất cả dùng chung dữ liệu của một quán tưởng tượng: xe bánh mì của cô Lan.

Kit

Bạn bắt đầu ở trạm nào cũng được. Mỗi trạm có một thử thách nhỏ, bạn làm được là mình đánh dấu ngay.

Cáo Kit của ManuAI đang chỉ tay

Sổ ghi chép của cô Lan

Ba mươi ngày bán ở một xe bánh mì tại Sài Gòn. Số liệu là bịa, nhưng giống một xe thật: cuối tuần đông khách, trời mưa người ta ngại ra đường, sáng nào nóng quá thì bán ít đi một chút, và từ ngày 15 giá tăng từ 20.000 đ lên 25.000 đ.

Xem đủ 30 ngày
Số bánh bán mỗi ngày ở xe của cô Lan (dữ liệu tưởng tượng)
NgàyThứThời tiết°CGiá (nghìn đ)Đã bán
1T2Nắng3020120
2T3Nắng352092
3T4Nhiều mây3020115
4T5Nắng3220110
5T6Mưa2720104
6T7Nắng3120137
7CNNắng3420116
8T2Nhiều mây2920117
9T3Nhiều mây2920114
10T4Nắng3120121
11T5Mưa2620101
12T6Nắng3120120
13T7Nắng3120138
14CNNắng3320125
15T2Nắng3025120
16T3Nhiều mây3025107
17T4Mưa272591
18T5Nắng3325103
19T6Nắng342593
20T7Nhiều mây2925131
21CNNắng3225115
22T2Nắng3025119
23T3Mưa272583
24T4Nắng3225106
25T5Nhiều mây3025113
26T6Mưa272593
27T7Nắng3125128
28CNNắng3525100
29T2Nhiều mây2925111
30T3Nắng322595

Trạm 1: Chọn đúng biểu đồ

Kit

Mỗi biểu đồ trả lời một câu hỏi, nên trước khi vẽ mình luôn hỏi: câu hỏi là gì? Muốn xem thay đổi theo thời gian thì dùng đường. So vài nhóm với nhau thì dùng cột. Các phần của một tổng thì dùng tròn, miễn là ít phần thôi. Còn muốn xem hai con số có đi cùng nhau không thì dùng biểu đồ chấm.

Thử thách · Chưa xong

Chọn biểu đồ hợp nhất cho cả bốn câu hỏi.

Câu 1/4

Đúng 0/4 câu

Số bánh bán mỗi ngày thay đổi thế nào trong tháng?

Biểu đồ nào trả lời tốt nhất?
Biểu đồ nào trả lời tốt nhất?

Trạm 2: Precision và recall

Kit

Camera trong lò của cô Lan chấm cho mỗi ổ bánh một điểm cháy. Mình phải vạch một ngưỡng, ổ nào trên ngưỡng thì bỏ. Đặt ngưỡng thấp thì bắt được hết ổ cháy nhưng bỏ oan cả bánh ngon. Đặt cao thì không phí ổ nào, nhưng bánh cháy lại tới tay khách. Precision (độ chính xác) hỏi: trong số ổ mình bỏ, bao nhiêu ổ cháy thật? Recall (độ phủ) hỏi: trong số ổ cháy, mình bắt được bao nhiêu?

Thử thách · Chưa xong

Bắt được ít nhất 10 trong 12 ổ cháy mà bỏ oan không quá 3 ổ ngon.

Cháy thậtNgon thật0255075100
Bỏ điĐem bán
Cháy thật12 bắt đúng0 lọt lưới
Ngon thật12 bỏ oan16 ổn
Precision50%
Recall100%

Bắt được 12/12 ổ cháy, bỏ oan 12 ổ ngon.

Trạm 3: Học vẹt (overfitting)

Kit

Đây là một buổi sáng đông khách ở xe bánh mì, cứ 10 phút đếm một lần. Mình học một đường cong từ các chấm đặc, rồi kiểm tra trên các chấm rỗng mà mình chưa thấy bao giờ. Đường càng uốn (bậc càng cao) thì càng khớp chấm đặc. Nhưng quá một mức, nó bắt đầu chép luôn cả phần nhiễu, và lỗi trên chấm rỗng tăng vọt. Đó là học vẹt.

Thử thách · Chưa xong

Tìm bậc cho lỗi kiểm tra thấp nhất.

010206:007:008:009:0010:00Giờ buổi sáng
Dùng để họcGiấu để kiểm tra

Lỗi khi học

28.67

Lỗi kiểm tra

23.08

Lỗi ở từng bậc

123456789101112
Lỗi khi họcLỗi kiểm tra

Trạm 4: Điều khiển PID

Kit

Drone giao hàng của mình phải bay giữ ở độ cao 10 mét. P đẩy mạnh hơn khi càng lệch xa, nhưng chỉ có P thì sẽ vọt quá rồi lắc lư. D để ý mình đang bay nhanh cỡ nào mà phanh lại, nhờ vậy bớt lắc. Chỉ có P và D thì trọng lực vẫn kéo mình thấp hơn một chút, nên I cộng dồn phần lệch còn lại đó và đẩy nó đi.

Thử thách · Chưa xong

Lên tới 10 m, vọt quá dưới 10% và từ giây thứ 6 trở đi chỉ lệch tối đa nửa mét.

05101520036912GiâyMục tiêu 10 m

Vọt quá

91%

Ổn định lúc

chưa ổn định

Lệch lúc cuối

9.02 m

Trạm 5: Bộ lọc Kalman (ý tưởng của EKF)

Kit

GPS trên xe máy nhảy lung tung cả vài mét. Nhưng mình cũng biết đại khái xe chạy nhanh cỡ nào và về hướng nào. Bộ lọc Kalman trộn hai thứ đó: đoán xe đáng lẽ đang ở đâu, nhìn GPS, rồi dịch một phần về phía GPS. Dịch nhiều hay ít tùy mình tin bên nào hơn. Robot và điện thoại dùng bản mở rộng gọi là EKF khi đường đi cong, nhưng vòng lặp vẫn y như vậy.

Thử thách · Chưa xong

Làm cho đường đã lọc lệch chưa tới một nửa so với GPS thô.

Đường đi thậtChấm GPSĐã lọc

GPS lệch

11.2 m

Đã lọc lệch

6.8 m

Trạm 6: Tìm đường với A*

Kit

Robot của mình cần tìm đường từ xe bánh mì tới chỗ khách. Dijkstra tìm theo từng vòng quanh điểm xuất phát: không bao giờ sót, nhưng phải xem rất nhiều ô. Tham lam (greedy) lao về phía trông có vẻ gần đích nhất, nên dễ bị tường đánh lừa. A* cộng quãng đã đi với ước đoán quãng còn lại, nhờ vậy vừa hướng về đích vừa tìm được đường ngắn nhất.

Thử thách · Chưa xong

Vẽ tường sao cho đường của Tham lam dài hơn đường của A*.

Xe bánh mìKhách

Chạm hoặc kéo qua các ô để thêm hay xóa tường. Dùng bàn phím: phím mũi tên để di chuyển, phím cách để bật tắt tường.

Số ô đã xemĐộ dài đường
A*5720
Dijkstra15120
Tham lam2920

Trạm 7: Gradient descent (đi xuống dốc)

Kit

Huấn luyện mô hình là đi xuống dốc trên đường lỗi của nó. Mình dò độ dốc chỗ đang đứng rồi bước một bước xuống. Learning rate là độ dài bước chân đó. Nhỏ quá thì tới tối vẫn còn đi. Lớn quá thì nhảy vọt qua cả thung lũng, lần nhảy sau còn loạn hơn lần trước.

Thử thách · Chưa xong

Xuống tới đáy thung lũng trong tối đa 8 bước.

Thông số của mô hình

Nhỏ quá: bò từng chút

Số bước

0

Lỗi

20.75