Chúng ta đã cùng nhau tìm hiểu và trả lời các câu hỏi: WHY? WHAT? WHEN? Và dần dần chúng ta đang gần tới câu hỏi HOW? Làm thế nào để xây dựng được các chương trình/giải thuật Máy học.
Trong bài này, chúng tôi đề cập tới những thuật ngữ, khái niệm rất hay gặp và quan trọng trong Máy học. Nếu bạn đọc chưa rõ ngay những khái niệm này, xin hãy bỏ qua và đọc lại nó sau. Rất có thể cách diễn giải của chúng tôi chưa thực sự tốt, dù đã rất cố gắng theo cách đơn giản.
Data
Máy học là chương trình
máy tính tự “học” từ dữ liệu. Do vậy việc tìm hiểu kĩ dữ liệu và việc cần thiết.
Trong khuôn khổ cuốn sách này, dữ liệu giống như một bảng gồm hàng và cột. Đây
là một cấu trúc dữ liệu cơ bản trong Máy học. Những dữ liệu khác như hình ảnh,
video, văn bản là những dữ liệu không có cấu trúc sẽ không được xét đến.
2104
|
3
|
399900
|
1600
|
3
|
329900
|
2400
|
3
|
369000
|
1416
|
2
|
232000
|
3000
|
4
|
539900
|
1985
|
4
|
299900
|
1534
|
3
|
314900
|
1427
|
3
|
198999
|
1380
|
3
|
212000
|
1494
|
3
|
242500
|
1940
|
4
|
239999
|
2000
|
3
|
347000
|
Bảng 1. Dữ liệu
được trích từ tệp ex1data1.txt [1].
Trong
Bảng 1, cột thứ nhất chứa thông tin diện tích ngôi nhà (tính bằng feet2
), cột thứ hai chứa thông tin số phòng ngủ, cột thứ ba chứa thông tin giá ngôi nhà (tính bằng USD). Bài toán đặt ra
là dựa vào thông tin diện tích và phòng ngủ, chúng ta cần đưa ra dự đoán cho
giá của ngôi nhà tương ứng.
Thể hiện/Dữ kiện
(instance): Là một hàng trong bảng dữ liệu. Trong ví dụ trên Bảng 2.1 có 12 thể
hiện/dữ kiện, mỗi thể hiện gồm thông tin của một căn hộ (gồm diện tích, số
phòng ngủ, và giá tiền).
Đặc
trưng (feature): là một cột trong bảng dữ liệu. Nó là một thành phần của một đặc
trưng của một dữ kiện. Một số đặc trưng là dữ liệu quan sát được và một số là đặc
trưng cần được dự đoán. Trong bài toán trên 2 cột đầu (diện tích và số phòng ngủ)
là đặc trưng quan sát, cột cuối cùng là đặc trưng cần dự đoán (giá căn hộ).
Kiểu dữ liệu
(Data Type): các đặc trưng đều có dữ liệu, mỗi dữ liệu đều có một kiểu dữ liệu xác
định. Chúng có thể là kiểu số nguyên, số thực, hay cũng có thể là kiểu rời rạc.
Chúng ta cũng gặp phải kiểu dữ liệu như ngày, tháng, chuỗi kí tự, hay những kiểu
phức tạp khác; tuy nhiên, chúng sẽ được chuyển sang kiểu nguyên, thực hay rời rạc
khi dùng các thuật toán Máy học.
Các tập dữ liệu
(Datasets): một tập hợp các thể hiện/dữ kiện là một tập dữ liệu. Chúng ta sẽ
dùng một vài tập dữ liệu cho các mục đích khác nhau.
Tập dữ liệu huấn luyện
(Training dataset): là một tập dữ liệu dùng để huấn luyện cho mô hình của thuật
toán Máy học. Nói một cách khác, thuật toán Máy học sẽ học từ tập dữ liệu này.
Tập dữ liệu kiểm tra
(Testing dataset): là một tập dữ liệu dùng để kiểm chứng độ chính xác của mô
hình của thuật toán Máy học. Tập dữ liệu này không được dùng để huấn luyện mô
hình.
Có
thể hiểu một cách trực quan rằng, tập dữ liệu huấn luyện giống như bài tập được
dùng khi giáo viên ôn tập cho học sinh, sinh viên; còn tập dữ liệu kiểm tra giống
như bài thi. Và bài thi là bài thí sinh chưa bao giờ làm. Một giáo viên giỏi là
người lựa chọn được các bài ôn tập có dạng bài hay dạng đề giống như bài thi.
Thông
thường chúng ta cần tách tập dữ liệu mà chúng ta có được ra thành các tập dữ liệu
con (dùng để huấn luyện và kiểm tra).
Mục tiêu của một
chương trình Máy học (có giám sát) là xây dựng một hàm f ánh xạ tự dữ kiện quan
sát (features) tới nhãn (label):
y = f(X)
Một số thuật ngữ trong Máy học
Máy
học là quá trình xây dựng chương trình tự động “học”. Chúng ta sẽ cũng thảo luận
qua một số khái niệm học trong Máy học.
Qui nạp
(Induction): Các thuật toán máy học được học thông qua quá trình qui nạp nhờ tập
dữ liệu huấn luyện (training dataset). Qui nạp là quá trình lập luận đi đến
Khái quát từ các trường hợp cụ thể.
Khả
năng dự đoán (Generalization): Một trong những trọng
tâm khác của học máy là đạt được tính phổ quát (generalization), nói cách khác
là mô hình sau khi được xây dựng bởi thuật toán Máy học dùng để dự đoán hay đưa
ra những quyết định khi gặp dữ liệu mà nó chưa gặp bao giờ (unseen data). Một
chương trình chỉ hiệu quả với dữ liệu đã gặp nhìn chung không có nhiều tính hữu
dụng.
Overfitting
(over-learning): Khi mô hình thể hiện sự chính xác trên tập huấn luyện nhưng lại
kém chính xác trên tập dữ liệu mới (tập kiểm tra). Cũng có thể hình dung khi mô
hình quá khớp với tập dữ liệu huấn luyện.
·
Nguyên nhân: Điều này xảy ra khi tập dữ
liệu huấn luyện của chúng ta có nhiễu (noise), hay mô hình của chúng ta quá phức
tạp, tức là có quá nhiều tham số so với số dữ liệu quan sát được (thể hiện).
Chính nhiễu đã gây tác động xấu tới quá trình dự đoán của mô hình với dữ liệu mới.
·
Nhận biết: Khi mô hình cho kết quả độ lệch
nhỏ nhưng phương sai lớn (low bias nhưng high variance)
·
Cách giải quyết: Trình bày trong Bài 8.
Underfitting
(under-learning): Khi một mô hình thực thi không tốt trên cả tập dữ liệu huấn
luyện và tập dữ liệu kiểm tra. Cũng có thể hình dung khi mô hình không khớp với
tập dữ liệu huấn luyện.
·
Nguyên nhân: Điều này xảy xa khi mô hình
chúng ta đang xây dựng quá đơn giản so với tập dữ liệu.
·
Nhận biết: Khi mô hình cho kết quả độ lệnh
lớn nhưng phương sai nhỏ (low variance nhưng high bias).
·
Cách giải quyết: Một phương pháp để xử
lý khi underfitting là hãy thay đổi thuật toán Máy học đang dùng.
Good-fit: Khi mà mô hình ở trạng thái tối ưu (sweet
pot) giữa overfitting và underfitting. Đây là đích mà mọi thuật toán Máy học hướng
tới, nhưng nó rất khó đạt được trong thực tế. Trong quá trình học, lỗi mà mô
hình gây ra cho tập dữ liệu huấn luyện giảm dần và lỗi trên tập kiểm tra cũng vậy.
Nếu chúng ta huấn luyện quá lâu, lỗi trên tập huấn luyện tiếp tục giảm xuống vì
mô hình sẽ học vào mức quá chi tiết không thực sự quan trọng (như nhiễu -
noise) hướng sang trạng thái overfitting; cùng với thời điểm đó, lỗi trên tập dữ
liệu kiểm tra sẽ tăng lên và có nghĩa là mức độ Khái quát hóa của mô hình đang
giảm xuống.
Trạng thái tối ưu (sweet pot) chính là điểm
ngay trước khi lỗi trên tập kiểm tra bắt đầu tăng. Ở trạng thái đó, mô hình
đang cân bằng trong cả tập dữ liệu huấn luyện và tập dữ liệu mới (kiểm tra). Để
tìm thấy trạng thái good-fit, chúng ta thường sử dụng hai kĩ thuật để tránh
overfitting như đã nêu ở trên.
Hình 1 Hình bên trái, ở giữa, và bên phải lần lượt ở trạng thái
underfitting,
good-fit, và overfitting [1].
Hình
bên trái là khi mô hình xây dựng (đường thẳng) đang ở dạng Underfitting, trong
khi hình bên phải ở dạng Overfitting, hình ở giữa ở dạng good-fit (giữa Underfitting và
Overfitting). Tham số d chỉ bậc của đa thức, trục tung chỉ giá, và trục hoành
chỉ diện tích của căn hộ.
Sự lựa chọn mô hình: Quá trình thiết lập và huấn
luyện mô hình như là một quá trình lựa chọn mô hình. Mỗi bước lặp, chúng ta lại
tạo ra một mô hình mới. Việc lựa chọn thuật toán Máy học cũng là quá trình lựa
chọn mô hình.
Độ lệch (Bias): Độ lệch là một số đặc trưng cho giá trị
trung bình của các số liệu so với giá trị đúng. Hay nói một cách khác, độ lệch
là lỗi từ việc giả định sai của thuật toán học. Mô hình khi có độ lệch sẽ gây
ra những sai số khi khái quát hóa. Một ví dụ đơn giản về độ sai lệch trong cuộc
sống là khi chúng ta có cái cân luôn nặng hơn 1kg so với trọng lượng chuẩn
trong mọi lần đo. Độ lệch ở đây là +1 (đơn vị kg). Bias lớn sẽ dẫn tới
underfiting.
Phương
sai (Variance): Phương sai là một số đặc trưng cho
độ phân tán của các số liệu so với số trung bình của nó. Phương sai là mức độ nhạy cảm với sự biến động nhỏ trong
tập dữ liệu được huấn luyện. Một cách để giảm phương sai là chạy nhiều lần trên
tập dữ liệu với các điều kiện ban đầu khác nhau và tính độ chính xác trung bình
trong quá trình thực hiện. Phương sai lớn sẽ gây ra overfitting.
Cân bằng giữa Bias-Variance: Việc lựa chọn mô
hình chính là việc cân bằng giữa Bias-Variance. Mô hình có bias thấp sẽ có
variance lớn và sẽ cần huấn luyện nhiều hơn; trong khi mô hình có bias cao sẽ
có variance thấp
Trong Hình 2, trục tung chỉ lỗi của mô hình dự
đoán, trục hoành chỉ số chiều của không gian đầu vào (độ phức tạp của mô hình -
tỉ lệ với số chiều của các đặc trưng).
Ngoài
mục tiêu quan trọng của cuốn sách này nhằm giúp người học hiểu và cài đặt được
những thuật toán Máy học quan trọng, cuốn sách cũng sẽ dần dần cung cấp những
khái niệm và kiến thức không thể thiếu trong Máy học.
Các kiểu học trong Máy học
Máy
học có ba kiểu học chính: học có giám sát (supervised learning), học không giám
sát (unsupervised learning), và học tăng cường (reinforcement learning).
Supervised
Learning
Khi
chúng ta có dataset gồm đặc trưng (features) và nhãn (labels). Ví dụ trong Bảng
2.1, hai cột đầu (diện tích, số phòng ngủ) là features, cột cuối cùng (giá nhà)
là labels. Nhiệm vụ là xây dựng một chương trình (có thể coi là một hàm) có khả
năng dự đoán label khi cho biết tập các features. Hầu hết những thành tựu của
Máy học hiện nay đều là học có giám sát. Ứng dụng của học có giám sát hiện nay
vô cùng nhiều, một số ví dụ điển hình như:
·
Bộ lọc thư rác (spam filtering). Google
phải huấn luyện hàng triệu các email (gồm cả email rác và không rác) để có được
bộ lọc hiệu quả chúng ta dùng hiện nay.
·
Nhận dạng khuôn mặt (face recognition).
Facebook có chương trình nhận diện mặt khá tốt nhờ nó được huần luyện qua nhiều
ảnh cũ của một người. Khi cho một ảnh mới, nó sẽ dự đoán được người đó.
·
Hệ thống gợi ý (recommendation). Hãng
Netflix đã trao giải thưởng lớn cho nhóm có chương trình gợi ý phim yêu thích mới
cho người cụ thể khi họ đã cung cấp dữ liệu bộ phim yêu thích.
·
Nhận dạng chữ viết tay. Nhờ kĩ thuật mới
trong Máy học mà độ chính xác của chương trình đã lên tới 99.7% [13]
·
Dự đoán giá cho thị trường chứng khoán,
thị trường nhà đất, v.v...
Học
có giám sát có hai loại chính: phân lớp (classification) và hồi qui
(regression). Trong classification các label có kiểu dữ liệu là rời rạc, trong
khi regression có kiểu dữ liệu là liên tục (số thực). Ví dụ cho classification
là: ứng dụng lọc thư, nhận dạng khuôn mặt, hệ thống gợi ý xem phim, nhận dạng
chữ viết tay; trong khi cho regression là dự đoán giá cho thị trường chứng
khoán. Với supervised learning, chúng ta có thể hình dung như một hàm số như
sau:
Trong đó X là tập đặc trưng (features), y là nhãn (label), dạng của hàm f không biết trước. Nhiệm
vụ của chúng ta là tìm hiểu và thử nghiệm các thuật toán máy học để tìm ra hàm phù
hợp nhất. Chú ý rằng, các thuật toán khác nhau sẽ có những giả định khác nhau về
dạng của hàm trên.
Unsupervised
Learning
Khi chúng ta chỉ có dataset gồm đặc trưng (features)
mà không được gán nhãn (labels). Nhiệm vụ của chúng ta là tìm ra sự giống nhau
giữa các đối tượng đó. Ví dụ cho học không giám sát:
·
Có hai loại âm
thanh, chúng ta cần tách ra
·
Có một tập các
tin tức, hãy phân loại ra các loại khác nhau (mặc dù chúng ta không biết có bao
nhiêu loại khác nhau)
Reinforcement
Learning
Thuật toán học tăng cường sẽ được áp
dụng khi tương tác với một môi trường thay đổi nhằm thực hiện một nhiệm vụ nào
đó (ví dụ như lái xe hay chơi cờ). Các thuật toán học tăng cường cố gắng tìm
một chiến lược ánh xạ không gian trạng thái của môi trường tới
các hành động mà chương trình nên chọn trong các trạng thái đó để cực đại hóa
một khoản thưởng (reward) nào đó về lâu dài.
Trong
Máy học, chương trình học từ cặp (X/input
– y/output), được gọi là có giám sát
bởi vì nó giám sát quá trình học theo định dạng của kết quả ra ứng với mỗi dữ
kiện mà thuật toán học. Trong học không giám sát, chúng ta chỉ có X, chứ không có y. Học không giám sát nhằm tìm ra một mô hình mà phù hợp với các
quan sát. Nó khác biệt với học có giám sát ở chỗ là đầu ra
đúng tương ứng cho mỗi đầu vào là không biết trước.
Vì
hầu như tất cả các ứng dụng trong công nghiệp và thương mại hiện nay đều thuộc
về học có giám sát do vậy cuốn sách này sẽ chỉ giới thiệu các thuật toán học có
giám sát.
Tài liệu tham khảo:
- Andrew Ng. https://www.coursera.org/learn/machine-learning
- Pedro Domingos. A few useful things to know about machine learning, Published by ACM 2012 Article. Volume 55 Issue 10, October 2012, pages 78-87.
- http://gerardnico.com/wiki/data_mining/bias_trade-off
- Trevor Hastie. Robert Tibshirani. Jerome Friedman. The Elements of Statistical Learning: Data Mining, Inference, and Prediction. Springer; 2nd ed. 2009. Corr. 7th printing 2013 edition, 745 pages
- Tom Mitchell. Machine Learning. McGraw-Hill Education; 1st edition, March 1997, 432 pages
- Stephen Marsland. Machine Learning: An Algorithmic Perspective. Chapman and Hall/CRC; 1st edition April 2009, 406 pages
- http://drewconway.com/zia/2013/3/26/the-data-science-venn-diagram
0 nhận xét:
Đăng nhận xét