chọn ngẫu nhiên để tạo nên tập huấn luyện (có thể sử dụng kết hợp với phương pháp lấy mẫu phân tầng – stratified sampling) • Các giá trị lỗi (hoặc các giá trị đối với các tiêu chí đánh [r]
(1)Học Máy
(Machine Learning)
Viện Công nghệ thông tin Truyền thông Trường Đại Học Bách Khoa Hà Nội
Năm 2019
Ngô Văn Linh
(2)Nội dung môn học:
◼ Giới thiệu chung
◼ Các phương pháp học khơng giám sát
◼ Các phương pháp học có giám sát
(3)1 Đánh giá hiệu hệ thống học máy.
◼ Làm để thu đánh giá đáng tin cậy
hiệu hệ thống?
❑ Chiến lược đánh giá ❑ Lựa chọn tham số tốt
◼ Làm để lựa chọn tốt tham số cho
phương pháp học máy?
◼ Làm để so sánh hiệu hai phương pháp
(4)1 Đánh giá hiệu hệ thống học máy
◼ Đánh giá lý thuyết (theoretical evaluation): nghiên cứu
các khía cạnh lý thuyết hệ thống mà chứng minh được.
❑ Tốc độ học, thời gian học, ❑ Bao nhiêu ví dụ học đủ?
❑ Độ xác trung bình hệ thống, ❑ Khả chống nhiễu,…
◼ Đánh giá thực nghiệm (experimental evaluation): quan
sát hệ thống làm việc thực tế, sử dụng nhiều tập liệu tiêu chí đánh giá Tổng hợp đánh giá từ quan sát đó.
(5)1 Đánh giá hiệu hệ thống học máy…
◼ Bài toán đánh giá (model assessment): cần đánh giá
hiệu phương pháp (model) học máy A, dựa trên liệu quan sát D.
◼ Việc đánh giá hiệu hệ thống
• Thực cách tự động, sử dụng tập liệu • Khơng cần tham gia (can thiệp) người dùng
◼ Chiến lược đánh giá (evaluation strategies)
→ Làm có đánh giá đáng tin cậy hiệu hệ thống?
◼ Các tiêu chí đánh giá (evaluation metrics)
(6)2 Các phương pháp đánh giá
◼ Hold-out (chia đôi)
◼ Stratified sampling (lấy mẫu phân tầng) ◼ Repeated hold-out (chi đôi nhiều lần) ◼ Cross-validation (đánh giá chéo)
• k-fold
• Leave-one-out
(7)Hold-out (Splitting)
◼ Tồn tập ví dụ D được chia thành tập không giao nhau
• Tập huấn luyện Dtrain – để huấn luyện hệ thống
• Tập kiểm thử Dtest – để đánh giá hiệu hệ thống học → D = Dtrain Dtest, thường |Dtrain| >> |Dtest|
◼ Các yêu cầu:
❑ Bất kỳ ví dụ thuộc vào tập kiểm thử Dtest khơng sử
dụng q trình huấn luyện hệ thống
❑ Bất kỳ ví dụ sử dụng giai đoạn huấn luyện hệ thống
(i.e., thuộc vào Dtrain) không sử dụng giai đoạn đánh giá hệ thống
❑ Các ví dụ kiểm thử Dtest cho phép đánh giá không thiên vị
đối với hiệu hệ thống
◼ Các lựa chọn thường gặp: |Dtrain|=(2/3).|D|, |Dtest|=(1/3).|D|
(8)Stratified sampling
◼ Đối với tập ví dụ có kích thước nhỏ khơng cân xứng
(unbalanced datasets), ví dụ tập huấn luyện thử nghiệm khơng phải đại diện
❑ Ví dụ: Có (rất) ví dụ số lớp
◼ Mục tiêu: Phân bố lớp (class distribution) tập huấn luyện
và tập kiểm thử phải xấp xỉ tập tồn ví dụ (D)
◼ Lấy mẫu phân tầng (Stratified sampling)
• Là phương pháp để cân xứng (về phân bố lớp)
• Đảm bảo tỷ lệ phân bố lớp (tỷ lệ ví dụ lớp) tập huấn luyện tập kiểm thử xấp xỉ
◼ Phương pháp lấy mẫu phân tầng không áp dụng cho
(9)Repeated hold-out
◼ Áp dụng phương pháp đánh giá Hold-out nhiều lần, để
sinh (sử dụng) tập huấn luyện thử nghiệm khác nhau
• Trong bước lặp, tỷ lệ định tập D được lựa
chọn ngẫu nhiên để tạo nên tập huấn luyện (có thể sử dụng kết hợp với phương pháp lấy mẫu phân tầng – stratified sampling) • Các giá trị lỗi (hoặc giá trị tiêu chí đánh giá khác)
ghi nhận bước lặp lấy trung bình cộng (averaged) để xác định giá trị lỗi tổng thể
◼ Phương pháp không hồn hảo
• Mỗi bước lặp sử dụng tập kiểm thử khác
(10)Cross-validation
◼ Để tránh việc trùng lặp tập kiểm thử (một số ví dụ
cùng xuất tập kiểm thử khác nhau)
◼ k-fold cross-validation
• Tập tồn ví dụ D chia thành k tập không giao nhau (gọi “fold”) có kích thước xấp xỉ
• Mỗi lần (trong số k lần) lặp, tập sử dụng làm tập
kiểm thử, (k-1) tập lại dùng làm tập huấn luyện • k giá trị lỗi (mỗi giá trị tương ứng với fold) tính trung
bình cộng để thu giá trị lỗi tổng thể
◼ Các lựa chọn thông thường k: 10, 5
◼ Thông thường, tập (fold) lấy mẫu phân tầng
(xấp xỉ phân bố lớp) trước áp dụng trình đánh giá Cross-validation
(11)Leave-one-out cross-validation
◼ Một trường hợp (kiểu) phương pháp Cross-validation
• Số lượng nhóm (folds) kích thước tập liệu (k=|D|) • Mỗi nhóm (fold) bao gồm ví dụ
◼ Khai thác tối đa (triệt để) tập ví dụ ban đầu
◼ Khơng có bước lấy mẫu ngẫu nhiên (no random
sub-sampling)
◼ Áp dụng lấy mẫu phân tầng (stratification) không phù hợp
→ Vì bước lặp, tập thử nghiệm gồm có ví dụ
◼ Chi phí tính tốn (rất) cao
(12)Bootstrap sampling.
◼ Phương pháp Cross-validation sử dụng việc lấy mẫu không lặp lại
(sampling without replacement)
→ Đối với ví dụ, một chọn (được sử dụng), khơng thể chọn (sử dụng) lại cho tập huấn luyện
◼ Phương pháp Bootstrap sampling sử dụng việc lấy mẫu có lặp lại
(sampling with replacement) để tạo nên tập huấn luyện
• Giả sử tập tồn D bao gồm n ví dụ
• Lấy mẫu có lặp lại n lần tập D, để tạo nên tập huấn luyện Dtrain gồm n ví dụ
➢ Từ tập D, lấy ngẫu nhiên ví dụ x (nhưng không loại bỏ x khỏi
tập D)
➢ Đưa ví dụ x vào tập huấn luyện: Dtrain = Dtrain x ➢ Lặp lại bước n lần
• Sử dụng tập Dtrain để huấn luyện hệ thống
(13)Bootstrap sampling
◼ Trong bước lặp, ví dụ có xác suất = để
không lựa chọn đưa vào tập huấn luyện
◼ Vì vậy, xác suất để ví dụ (sau trình lấy mẫu lặp lại
– bootstrap sampling) đưa vào tập kiểm thử là:
◼ Có nghĩa rằng:
• Tập huấn luyện (có kích thước =n) bao gồm xấp xỉ 63.2% ví dụ D (Lưu ý: Một ví dụ thuộc tập D xuất nhiều lần tập Dtrain )
• Tập kiểm thử (có kích thước <n) bao gồm xấp xỉ 36.8% ví dụ D (Lưu ý: Một ví dụ thuộc tập D xuất tối đa
lần tập Dtest)
◼ Phù hợp ta có tập liệu D có kích thước (rất) nhỏ
− n 1 368
1 e .
(14)3 Lựa chọn tham số
◼ Nhiều phương pháp học máy thường có (tập) tham số
(hyperparameters), buộc người dùng phải đưa giá trị vào.
• Ridge regression: λ • Linear SVM: C
◼ Làm để lựa chọn giá trị tốt cho tham số?
→ model selection
◼ Model selection: từ tập học D, cần lựa chọn tham số
(model) phương pháp học A cho hệ thống
huấn luyện tốt từ D.
◼ Tập tối ưu (validation set) sử dụng để tối ưu giá trị
tham số giải thuật học máy (thường lấy từ tập D)
(15)Lựa chọn tham số: sử dụng Hold-out
◼ Cho trước tập quan sát D, ta lựa chọn tham số λ cho
phương pháp học A sau:
• Chọn tập hữu hạn S mà chứa giá trị tiềm cho λ • Chọn độ đo P để đánh giá hiệu
• Chia D thành tập rời nhau: Dtrain Tvalidation • Với giá trị λ S:
• Học A từ tập học Dtrain với tham số đầu vào λ Đo hiệu tập Tvalidation → thu Pλ
• Chọn λ* mà có Pλ tốt
◼ Có thể học lại A từ D với tham số λ* để hệ thống thu
được kết tốt.
(16)4 Đánh giá lựa chọn mơ hình
◼ Cho trước tập quan sát D, ta cần lựa chọn tham số λ
(model selection) cho phương pháp học A đánh giá (assessment) chất lượng tổng thể A.
• Chọn tập hữu hạn S mà chứa giá trị tiềm cho λ • Chọn độ đo P để đánh giá hiệu
• Chia tập D thành tập rời nhau: Dtrain, Tvalidation, Ttest • Với giá trị λ S:
• Học A từ tập học Dtrain với tham số đầu vào λ Đo hiệu tập Tvalidation → thu Pλ
• Chọn λ* mà có Pλ tốt
• Huấn luyện A tập Dtrain Tvalidation, với tham số đầu vào λ* • Đo hiệu hệ thống tập Ttest
(17)5 Các tiêu chí đánh giá.
◼Tính xác (Accuracy)
→Mức độ dự đốn (phân lớp) xác hệ thống (đã được huấn luyện) ví dụ kiểm chứng (test
instances)
◼Tính hiệu (Efficiency)
→Chi phí thời gian tài nguyên (bộ nhớ) cần thiết cho việc huấn luyện kiểm thử hệ thống
◼Khả xử lý nhiễu (Robustness)
(18)5 Các tiêu chí đánh giá
◼Khả mở rộng (Scalability)
→Hiệu hệ thống (vd: tốc độ học/phân loại) thay đổi kích thước tập liệu
◼Khả diễn giải (Interpretability)
→Mức độ dễ hiểu (đối với người sử dụng) kết và hoạt động hệ thống
◼Mức độ phức tạp (Complexity)
(19)Tính xác (Accuracy)
◼ Đối với toán phân loại
𝐴ccuracy = Số phán đoán xác Tổng số phán đốn
◼ Đối với toán hồi quy (dự đoán)
→Giá trị (kết quả) đầu hệ thống giá trị số
•o(x): Giá trị đầu (dự đốn) hệ thống ví dụ x •d(x): Giá trị đầu thực (đúng) ví dụ x
•Accuracy hàm đảo (inverse function) Error
; ) ( _ _ = test D x x Error test D
(20)Ma trận nhầm lẫn (Confusion matrix)
◼ Còn gọi Contingency Table
◼ Chỉ sử dụng tốn phân loại ❑ Khơng thể áp dụng cho toán hồi quy (dự đoán)
Lớp ci
Được phân lớp
bởi hệ thống
Thuộc Ko thuộc Phân lớp
thực (đúng)
Thuộc TP
i FNi
Ko thuộc FPi TNi • TPi (true positive): Số lượng ví dụ thuộc lớp ci phân loại xác
vào lớp ci
• FPi (false positive): Số lượng ví dụ khơng thuộc lớp ci bị phân loại nhầm vào lớp ci
• TNi (true negative): Số lượng ví dụ khơng
thuộc lớp ci phân loại
(chính xác)
• FNi (false negative): Số
(21)Precision and Recall (1)
◼ Rất hay sử dụng để đánh giá
các hệ thống phân loại văn bản
◼ Precision đối với lớp ci
→ Tổng số ví dụ thuộc lớp ci
được phân loại xác chia cho tổng số ví dụ phân loại vào lớp ci
◼ Recall đối với lớp ci
→ Tổng số ví dụ thuộc lớpci
được phân loại xác chia cho tổng số ví dụ thuộc lớp ci
Precision(ci)= TPi
TPi +FPi
Recall(ci) = TPi
(22)Precision and Recall (2)
◼ Làm để tính tốn giá trị Precision
Recall (một cách tổng thể) cho toàn lớp C={ci}?
◼ Trung bình vi mơ (Micro-averaging)
◼ Trung bình vĩ mơ (Macro-averaging)
Precision=
TPi
i=1
C
å
TPi +FPi
( )
i=1
C
å Recall =
TPi i=1
C
å
TPi +FNi
( )
i=1
C
å
Precision =
Precision(ci)
i=1
C
å
C Recall =
Recall(ci)
i=1
C
å
(23)F1
◼ Tiêu chí đánh giá F1 là kết hợp tiêu chí đánh
giá Precision và Recall
◼ F1 là trung bình điều hịa (harmonic mean) của
các tiêu chí Precision và Recall
•F1 có xu hướng lấy giá trị gần với giá trị nhỏ giá trị Precision Recall
•F1 có giá trị lớn giá trị Precision Recall lớn
F1 = 2.Precision.Recall Precision+Recall =
2
Precision +
1
(24)Ví dụ: lựa chọn tham số
◼ SVM cho phân loại tin tức
• Tham số: C
◼ Training data: 1135 tin tức, số chiều 25199, 10 lớp ◼ 10-fold cross-validation dùng
(25)Ví dụ: so sánh phương pháp
◼ 2 Phương pháp: SVM vs Random forest
◼ Thực lựa chọn tham số (dùng 10-fold cross-validation) ta
được:
• SVM: C = 1.0
• Random forest: n_estimates = 250 (số cây)
(26)Ví dụ: ảnh hưởng cỡ liệu
◼ SVM
• Tham số: kích thước liệu huấn luyện
◼ Training data: 1135 tin tức, số chiều 25199, 10 lớp ◼ 10-fold cross-validation dùng