Tải bản đầy đủ (.docx) (82 trang)

Tiểu luận Khai phá dữ liệu: Đề tài Cơ sở học máy tính, Giới thiệu về xử lí ngôn ngữ tự nhiên và học sâu

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.88 MB, 82 trang )

··


Mục lục
Mở đầu

3

5.1 Các thuật toán học
4
5.1.1 Tác vụ T
4
Phân loại (Classification)
5
Phân loại các dữ liệu bị thiếu (Classification with missing inputs) 5
Hồi quy (Regression)
6
Phiên mã (Transcription)
6
Dịch máy (Machine Translation)
7
Đầu ra có cấu trúc (Structured Output)
7
Phát hiện bất thường
7
Tổng hợp và lấy mẫu
8
Đầu vào bị thiếu giá trị
8
Khử nhiễu
8


Ước lượng mật độ hay ước lượng hàm khối của xác suất
8
5.1.2 Độ đo hiệu suất P
9
5.1.3 Kinh nghiệm E
10
5.1.4 Hồi quy tuyến tính
13
5.2 Dung lượng (capacity), overfitting, underfitting
5.2.1 Khơng có bữa trưa nào miễn phí (no free lunch theorem)
5.2.2 Regularization

16
24
25

5.3 Siêu tham số và tập validation
5.3.1 Cross validation

27
28

5.4. Ước lượng, độ chệch và phương sai
5.4.1. Ước lượng điểm
5.4.2. Độ chệch
5.4.3 Phương sai và độ lệch chuẩn
5.4.4 Đánh đổi giữa độ chệch và phương sai để cực tiểu hóa trung
bình của bình phương sai số
5.4.5 Tính nhất quán


30
30
31
34
36
37

5.5 Ước lượng hợp lý cực đại (Maximum Likelihood Estimation) 38
5.5.1 Logarit hợp lý có điều kiện và sai số bình phương trung bình 40
5.5.2 Các tính chất của phương pháp hợp lý cực đại
41

1


5.6 Thống kê Bayes
5.6.1 Ước lượng hậu nghiệm cực đại (MAP)

42
45

5.7 Các thuật tốn học có giám sát
5.7.1 Học có giám sát dựa trên xác suất
5.7.2 Máy vector hỗ trợ
5.7.3 Các thuật tốn học có giám sát đơn giản khác

46
47
48
50


5.8 Các thuật tốn học khơng giám sát
5.8.1 Phân tích thành phần chính
5.8.2 Phân cụm k-means

52
53
55

5.9 Stochastic Gradient Descent

56

5.10 Xây dựng một thuật toán học máy

58

5.11 Những thách thức thúc đẩy sự phát triển của học sâu
5.11.2 Tính bất biến cục bộ và cơ chế kiểm soát độ trơn
5.11.3 Học đa tạp

59
61
64

Kết luận

70

Giới thiệu và cài đặt


72

Python packages
1. NumPy
2. Pandas
3. SciPy

73
73
77
82

Code demo một số thuật toán được nhắc đến trong tiểu luận:
Hình ảnh minh họa:
K-mean
KNN
SVM + HOG

85
85
85
86
87

Deep Learning
Tác giả: Ian Goodfellow, Yoshua Bengio và Aaron Courville

2



Chương 5: Cơ sở học máy
Mở đầu
Học sâu là một dạng đặc biệt của học máy. Để hiểu được một cách tường minh
về học sâu, chúng ta cần hiểu rõ các khái niệm cơ bản về học máy. Với những
người mới bắt đầu tìm hiểu về học máy, chúng tơi khuyến khích nên học qua
khóa CS229 của Stanford để có một mức độ bao phủ kiến thức một cách toàn
diện hơn. Nếu ai đã quen với các khái niệm học máy cơ bản thì có thể chuyển
ngay đến phần 5.11, ở đó ta sẽ trình bày các khía cạnh và các kỹ thuật truyền
thống giúp cho học máy phát triển mạnh mẽ như ngày hơm nay, kéo theo đó là
sự thúc đẩy phát triển của học sâu.
Đầu tiên, chúng ta đi vào khái niệm về thế nào là một thuật tốn “học” (learning
algorithm) và một ví dụ kinh điển về nó: hồi quy tuyến tính (linear regression).
Sau đó, chúng tơi sẽ mô tả các thách thức làm thế nào để sinh mơ hình khớp với
dữ liệu huấn luyện, có gì khác biệt khi mơ hình tiếp xúc với các dữ liệu mới.
Hầu hết các thuật tốn đều có các thiết lập ban đầu là siêu tham số
(hyperparameters) mà ta phải xác định bên ngồi thuật tốn học, ví dụ với thuật
toán KNN ta cần xác định được giá trị của tham số “k” ngay từ khi bắt đầu. Vạn
sự khởi đầu nan, việc xác định tốt được hyperparameter sẽ giúp cho mơ hình
cuối cùng có độ chính xác cao hơn. Về cơ bản, học máy là một hình thái của
việc ứng dụng lĩnh vực thống kê học, một lĩnh vực hướng đến việc sử dụng các
thiết bị tính tốn để ước lượng các hàm phức tạp, giảm trọng tâm vào việc
chứng minh khoảng tin cậy quanh các hàm này. Do đó, chúng ta sẽ đi vào 2
phương pháp tiếp cận trọng tâm của thống kê: Ước lượng tần suất (frequentist
estimators) và suy diễn Bayes (Bayesian Inference).
Các thuật toán học máy có thể được phân ra thành học có giám sát (supervised
learning), học không giám sát (unsupervised learning) và học bán giám sát
(semi-supervised learning). Chúng tôi sẽ đi vào mô tả về ba cách học này và
đưa ra ví dụ đơn giản cho từng loại. Hầu hết các thuật toán học sâu đều dựa trên
kỹ thuật tối ưu stochastic gradient descent. Ngồi ra chúng tơi cũng sẽ tập trung

mơ tả sự kết hợp giữa các thuật toán tối ưu, hàm mất mát, mơ hình (model) và
tập dữ liệu (dataset) để có thể tạo ra một thuật toán học máy. Cuối cùng, trong
phần 5.11, chúng tôi mô tả một số hạn chế của các thuật toán học máy cổ điển
trong việc khái qt hóa theo dữ liệu, đồng thời chính là các động lực thúc đẩy
các thuật toán học sâu phát triển để vượt qua các giới hạn này.

3


5.1 Các thuật toán học
Một thuật toán học máy là thuật tốn mà có khả năng học từ dữ liệu. Nhưng rốt
cục ở đây thuật tốn học cái gì từ dữ liệu? Vào năm 1997, Mitchell đưa ra một
định nghĩa ngắn gọn rằng: "Một chương trình máy tính được cho là học hỏi từ
kinh nghiệm E (experience) đối với một tập tác vụ T (task) và phương pháp đo
lường hiệu năng P (performance), nếu hiệu năng của nó khi thực hiện tác vụ T,
được đo bằng phương pháp P, được cải thiện với kinh nghiệm được rút ra từ E”.
Có rất nhiều cách để hiểu về kinh nghiệm E, tác vụ T và phương pháp đo lường
hiệu năng P. Trong khuôn khổ bài viết này, chúng tôi sẽ đưa ra khái niệm và các
mô tả trực quan nhất giúp người đọc dễ tiếp cận hơn.
5.1.1 Tác vụ T
Học máy cho phép chương trình máy tính có thể học từ dữ liệu, từ đó có thể
thực hiên được các tác vụ phức tạp mà con người khó lịng có thể lập trình thủ
cơng được. Tuy nhiên để làm được điều đó, chúng ta cần có những hiểu biết cơ
bản về cách mà con người học, về trí thơng minh của con người.
Q trình tự học khơng được coi là một tác vụ, học chỉ là phương tiện để chúng
ta đạt được tác vụ đó. Chẳng hạn muốn một robot có thể đi bộ, chúng ta có hai
chiến thuật để tiếp cận vấn đề. Đầu tiên, chúng ta có thể lập trình để robot học
các di chuyển, cách thứ hai là chúng ta có thể viết thủ cơng ra một chương trình
đặc tả cách di chuyển cho robot. Ưu điểm của cách đầu tiên là robot có thể biết
đi rất nhanh, nhưng sau đó sẽ mãi mãi khơng có sự cải thiện về khả năng di

chuyển, trừ khi chúng ta lại tự đặc tả một thuật toán khác giúp robot di chuyển
hiệu quả hơn.
Các tác vụ trong học máy thường được mô tả là quá trình hệ thống học máy xử
lý một mẫu dữ liệu. Trong đó các mẫu dữ liệu đã cho là một tập các đặc trưng
được trích từ tập các dữ liệu đã cho, chúng thường được biểu diễn bởi các
vector có dạng X(x1,x2,...xn)∈Rn trong đó mỗi chiều dữ liệu xi đại diện cho một
đặc trưng nào đó của dữ liệu. Ví dụ đối với dữ liệu ảnh, ta có thể coi mỗi pixel
là một đặc trưng, ngồi ra cịn có một số đặc trưng nâng cao khác được áp dụng
trong thực tế như HOG, Haar-like,… Hiện nay với sự phát triển của Neural
Network thì việc áp dụng các mạng như CNN và các biến thể đem lại hiệu quả
rất cao đối với việc trích chọn đặc trưng trong dữ liệu ảnh.
Có rất nhiều các bài tốn có thể giải quyết được bằng học máy. Trong đó các tác
vụ phổ biến nhất bao gồm:
Phân loại (Classification)
Trong tác vụ này, với mỗi dữ liệu đầu vào, máy tính có nhiệm vụ xác định xem

4


dữ liệu đó thuộc vào nhóm nào trong k nhóm cho trước. Cụ thể chúng ta sẽ tạo
ra một hàm ánh xạ f: Rn → {1, 2,…,k}. Với y=f(x), x là một vector với các
đặc tả đầu vào cho trước ứng với các giá trị đặc trưng được quy định từ đầu.
Đầu ra y sẽ cho biết được phần tử dữ liệu x thuộc nhóm nào. Ngồi ra bài tốn
phân loại cịn có các biến thể khác, chẳng hạn đầu ra của f(x) sẽ là xác suất để
phần tử x rơi vào lớp k cho trước.
Một ví dụ về bài tốn nhận dạng đó là phân loại đối tượng mà đầu vào là một
ảnh (thường được mô tả bởi một tập các giá trị biểu diễn cho cường độ của các
pixel, với mỗi loại ảnh sẽ có cách đặc tả khác nhau, ví dụ như RGB, YUV,…
Chẳng hạn robot Willow Garage PR2 có khả năng nhận diện ra các đồ uống
khác nhau như con người, sau đó có thể mang chính xác loại đồ uống được yêu

cầu ra để phục vụ khách hàng (Good-fellow et al., 2010). Mơ hình nhận diện vật
thể hiện đại và cho ra hiệu năng cao nhất thời điểm hiện tại sử dụng các thuật
toán học sâu (Krizhevsky et al., 2012; Ioffe and Szegedy, 2015). Bài toán nhận
diện đối tượng cơ bản là bài toán nhận diện khn mặt có thể gắn nhãn cho các
ảnh trong bộ dữ liệu huẩn luyện để tạo ra mơ hình, sau đó sẽ dùng mơ hình để
phân loại khn mặt.
Phân loại các dữ liệu bị thiếu (Classification with missing inputs)
Bài tốn phân loại sẽ trở nên khó khăn hơn nếu các giá trị đầu vào bị thiếu. Trên
thực tế, việc này xảy ra thường xuyên do không phải lúc nào các đặc trưng cũng
thuận tiện cho việc trích xuất. Tiêu biểu trong lĩnh vực y tế, có rất nhiều các xét
nghiệm cực kì tốn kém để có thể thực hiện. Lúc này thay vì chỉ cần xác định
một hàm ánh xạ duy nhất như ban đầu với giả thiết tất cả các đặc trưng đều đầy
đủ, ta cần xác định một tập các hàm cho tất cả các trường hợp giá trị bị thiếu.
Trên lý thuyết với dữ liệu có n đặc trưng thì ta cần tạo nên 2 n hàm để có thể
phân loại, nhưng chương trình máy tính chỉ cần học một hàm duy nhất mô tả
phân phối xác suất chung. Chương trình học một phân phối xác suất trên các
biến có liên quan, sau đó giải quyết tác vụ phân loại bằng cách lấy xác suất biên
trên tất cả các biến bị thiếu. Mơ hình của Good-fellow và các cộng sự (2013b) là
một ví dụ của mơ hình xác suất sâu được áp dụng cho các tác vụ theo nguyên lí
tương tự như vậy. Nhiều tác vụ khác trong phần này cũng có thể dùng để làm
việc với dữ liệu bị thiếu, phân loại với đầu vào bị thiếu chỉ là một trong những
khả năng mà học máy mang lại.
Hồi quy (Regression)
Trong loại tác vụ này, chương trình máy tính u cầu với mỗi đầu vào cho trước
chúng ta cần dự đoán một giá trị tương ứng. Ví dụ với đầu vào là các thơng số
của ngơi nhà như diện tích, số phịng ngủ, số tầng,… thì đầu ra cần dự đốn giá
của ngơi nhà đó. Để thực hiện tác vụ này, hệ thống cần tạo ra một hàm f ánh xạ
Rn→R. Kiểu tác vụ tương tự với phân loại, chỉ khác nhau ở đầu ra. Trong thực

5



tế với bài toán phân loại mà số lớp định trước là vơ cùng thì nó sẽ trở thành bài
tốn hồi quy. Chúng ta hồn tồn có thể áp dụng để giải quyết bài toán dự đoán
số tiền bảo hiểm mà một người có thể được nhận, từ đó tính toán được mức mua
bảo hiểm phù hợp, hoặc trong các bài toán dự đoán giá của chứng khoán, cổ
phiếu,… Loại dự đoán này thường được dùng cho các thuật toán giao giao dịch.
Phiên mã (Transcription)
Trong loại tác vụ này, hệ thống học máy yêu cầu được quan sát các biểu diễn
liên quan phi cấu trúc của một số kiểu dữ liệu rồi chuyển đổi chúng thành dạng
rời rạc hoặc dạng văn bản.
Ví dụ trong nhận dạng ký tự quang học (Optical Character Recognition - OCR),
chương trình máy tính hiển thị một bức ảnh chứa văn bản và yêu cầu trả về văn
bản với các ký tự theo đúng thứ tự (ví dụ là ASCII hoặc định dạng Unicode).
Google Street View sử dụng học sâu để giải quyết vấn đề đánh số địa chỉ theo
cách này (Good-fellow và các cộng sự, 2014d). Một ví dụ khác có thể kể đến là
nhận dạng tiếng nói - chương trình máy tính nhận sóng âm thanh là đầu vào và
trả về thứ tự từ hoặc định danh của các từ được nói trong bản ghi âm. Học sâu là
cơng cụ chính trong lĩnh vực nhận diện tiếng nói , được sử dụng rộng rãi ở các
tập đoàn lớn hiện tại như Microsoft, IBM và Google (Hinton và các cộng sự,
2012d).
Dịch máy (Machine Translation)
Trong tác vụ dịch máy, đầu vào hầu hết là chuỗi kí tự tuần tự bằng một ngơn
ngữ nào đó, chương trình máy tính phải chuyển đổi chúng về một ngơn ngữ
khác. Tác vụ này thường được sử dụng cho các ngôn ngữ tự nhiên, ví dụ dịch từ
tiếng anh sang tiếng Pháp. Trong thời gian gần đây, học sâu đã có những tác
động mạnh mẽ đối với chất lượng của dịch máy, giúp cải thiện rõ rệt chất lượng
dịch (Sutskever và các cộng sự., 2014; Bahdanau và các cộng sự, 2015).
Đầu ra có cấu trúc (Structured Output)
Bao gồm tất cả các tác vụ mà đầu ra là vector hoặc cấu trúc dữ liệu khác chứa

nhiều giá trị với mối liên hệ chặt chẽ giữa các phần tử. Đây là một nhóm tác vụ
khá rộng, bao gồm một phần của nhóm phiên mã và dịch máy nói trên và cịn
nhiều tác vụ khác. Một ví dụ là ánh xạ - chuyển đổi các câu trong ngơn ngữ tự
nhiên về dạng cây có khả năng mô tả cấu trúc ngữ pháp bằng cách gán nhãn các
node của cây bằng các động từ, danh từ hoặc trạng từ, vân vân… Tham khảo
Collobert (2011) để thấy ví dụ về việc áp dụng học sâu vào một tác vụ chuyển
đổi. Một ví dụ khác là phân vùng ảnh dựa trên pixel, trong đó máy tính gán mỗi
pixel của ảnh vào một nhóm cụ thể.
Ví dụ học sâu có thể được sử dụng để chú thích vị trí các con đường thơng qua

6


ảnh địa không gian (Mnih and Hinton, 2010). Kết quả đầu ra không cần thiết
phải phản ánh lại kết quả đầu vào với độ chính xác cao ở các tác vụ kiểu ký hiệu
này. Ví dụ trong việc đặt tiêu đề cho ảnh, chương trình máy tính quan sát ảnh và
xuất ra một đoạn văn bản theo ngôn ngữ tự nhiên mơ tả lại nội dung bức ảnh đó.
Tác vụ này được gọi là tác vụ đầu ra có cấu trúc bởi chương trình cần trả về
nhiều giá trị có mối liên kết với nhau (trong ví dụ trên, mối liên kết giữa các
phần tử trong đầu ra là mối liên kết giữa các từ theo cấu trúc ngữ pháp để tạo
được ra một câu hợp lệ).
Phát hiện bất thường
Với kiểu tác vụ này chương trình cần phải rà sốt một tập các sư kiện hoặc đối
tượng và đánh dấu chúng là bình thường hay bất thường.
Một ví dụ trong nhóm này là tác vụ phát hiện thẻ tín dụng gian lận. Bằng việc
tạo mơ hình thơng qua cách bạn mua sắm, chương trình có thể phát hiện ra được
các giao dịch bất thường trên thẻ của bạn. Khi kẻ trộm lấy cắp được thẻ hay
thông tin của bạn, các giao dịch của kẻ trộm thường tạo ra các phân phối xác
suất dị thường so với thói quen giao dịch của bạn. Cơng ty quản lý thẻ tín dụng
có thể ngay lập tức vơ hiệu hóa thẻ của bạn trước khi kẻ gian kịp thực hiện các

giao dịch bất thường. Tham khảo Chandola và các đồng sự (2009) để có thể
nắm được thêm về phương thức phát hiện bất thường.
Tổng hợp và lấy mẫu
Trong tác vụ này, thuật toán Machine Learning yêu cầu tạo ra các mẫu dữ liệu
mới tương tự với các mẫu dữ liệu trong tập huấn luyện. Tổng hợp và lấy mẫu
thơng qua học máy có khả năng hữu dụng với các ứng dụng truyền thông bởi
việc tạo ra một khối lượng lớn nội dung bằng tay có thể gây ra sự tốn kém hoặc
nhàm chán, tiêu tốn nhiều thời gian.
Ví dụ, trị chơi điện tử có thể tạo ra các chi tiết cho các đối tượng, vật thể kích
thước lớn một cách tự động thay vì yêu cầu họa sĩ phải phác thảo chi tiết bằng
tay từng pixel một (Luo và các cộng sự, 2013). Trong một số trường hợp, chúng
ta cần phương pháp lấy mẫu hoặc tổng hợp để sinh ra kiểu đầu ra cụ thể cho đầu
vào. Chẳng hạn với tác vụ tổng hợp giọng nói, chúng ta cung cấp một câu dạng
văn bản và u cầu chương trình phát ra một dạng sóng âm thanh chứa nội dung
ở dạng tiếng nói. Đây là một dạng đầu ra có cấu trúc, nhưng với việc làm tăng
chất lượng thì chúng ta khơng đảm bảo được tính chất một đầu ra sẽ tương ứng
với một đầu vào duy nhất. Hiển nhiên chúng ta cần một lượng lớn đầu ra phong
phú để đầu ra có vẻ tự nhiên và chân thực hơn.

7


Đầu vào bị thiếu giá trị
Trong tác vụ này, thuật toán học máy được cho trước đầu vào là vector x ∈Rn
nhưng bị thiếu mất giá trị của một số thuộc tính xi nào đó. Việc chương trình
cần làm là tìm cách điền các giá trị cịn thiếu đó.
Khử nhiễu
Trong tác vụ này, thuật toán học máy được cho đầu vào là các dữ liệu nhiễu bên
cạnh các dữ liệu sạch. Thuật toán cần dự đoán được các mẫu dữ liệu sạch từ
phiên bản nhiễu của nó, hoặc tổng quát hơn sẽ là dự đốn phân phối xác suất có

điều kiện của dữ liệu sạch khi biết dữ liệu nhiễu.
Ước lượng mật độ hay ước lượng hàm khối của xác suất
Trong vấn đề ước lượng mật độ, thuật toán Machine Learning yêu cầu xác định
một hàm pmodel : Rn →R, trong đó pmodel(x) có thể xem là hàm mật độ xác suất
(đối với x liên tục) hoặc hàm khối xác suất (đối với x rời rạc) từ không gian lấy
mẫu. Để giải quyết tốt được tác vụ này (sẽ được làm rõ trong phần định nghĩa
khái niệm về độ đo hiệu suất P), thuật toán cần học từ dữ liệu mà nó đã quan
sát. Nó cần biết được ở đâu các điểm dữ liệu co cụm với nhau và ở đâu thì điểm
dữ liệu ít có khả năng xuất hiện. Đa số các tác vụ ở trên đều yêu cầu thuật toán
học phải biết được cấu trúc tổng quan về phân phối xác suất. Về ngun tắc thì
chúng ta có thể thực hiện tính tốn trên phân phối này để giải quyết các tác vụ
khác được tốt hơn.
Ví dụ nếu chúng ta thực hiện ước lượng mật độ và thu về được một phân phối
xác suất p(x), chúng ta có thể dùng phân phối này để giải quyết vấn đề đầu vào
với dữ liệu bị thiếu nêu trên. nếu chiều dữ liệu xi bị thiếu và được cho các chiều
dữ liệu x-i khác, kèm theo chúng ta biết được phân phối xác suất của xi khi biết
các yếu tố x-i cịn lại, ta hồn tồn có thể dự đốn ra được xi. Trên thực tế, ước
lượng mật độ không phải lúc nào cũng cho phép chúng ta giải quyết được tất cả
các tác vụ nêu trên do trong nhiều trường hợp, các phép tốn sử dụng phương
thức này cực kì vất vả về mặt tính tốn.
Dĩ nhiên học máy cịn có khả năng làm nhiều hơn thế. Các tác vụ kể trên không
nhằm định nghĩa một cách cứng nhắc về học máy mà chỉ đơn giản là để minh
họa một số tiềm năng học máy có thể làm được.

8


5.1.2 Độ đo hiệu suất P
Để đánh giá khả năng của một thuật toán học máy, chúng ta cần xây dựng một
phương pháp đo đạc, đánh giá hiệu năng của một thuật tốn. Thơng thường độ

đo hiệu suất P này được dùng một cách chuyên biệt đối với tác vụ T và được
thực hiện trong chính hệ thống.
Đối với các tác vụ kiểu phân loại, phân loại với đầu vào thiếu hay phiên mã,
chúng ta thường đo độ chính xác (accuracy) của mơ hình. Độ chính xác là phần
dữ liệu mà mơ hình do thuật tốn sinh ra dự đốn chính xác đầu ra. Chúng ta
cũng có thể đạt được kết quả tương tự đối với việc đo tỷ lệ lỗi (error rate) - phần
dữ liệu mà mơ hình đã dự đoán sai. Chúng ta thường coi tỷ lệ lỗi là tỷ lệ mất
mát 0-1. Tỷ lệ mất mát 0-1 (0-1 loss) được tính bằng 0 nếu mẫu được phân loại
chính xác và bằng 1 trong trường hợp ngược lại.
Thơng thường chúng ta sẽ quan tâm đến việc thuật toán machine learning hoạt
động tốt với các dữ liệu chưa thấy bao giờ hay khơng, do nó ảnh hưởng trực tiếp
khi mơ hình sau này lúc triển khai trong thực tế. Do đó, chúng ta đánh giá hiệu
năng dựa trên tập kiểm thử. Tập kiểm thử phải hoàn toàn tách biệt với tập huấn
luyện.
Việc đánh giá một hệ thống khá khó để nói rằng nó có đáng tin cậy hay khơng,
do khơng có một tiêu chuẩn cụ thể nào đúng với mọi trường hợp. Chúng ta chỉ
có được đáp án khi nhận được phản hồi từ phía khách hàng sau khi triển khai dự
án vào thực tế.
Trong một số trường hợp, chúng ta sẽ gặp nhiều khó khăn khi quyết định chọn
độ đo. Ví dụ khi cần thực hiện tác vụ phiên mã, liệu chúng ta có nên sử dụng độ
chính xác để đánh giá mơ hình? Hoặc khi mơ hình thực hiện tác vụ hồi quy, liệu
rằng chúng ta nên đánh giá một mơ hình kém khi nó cho sai số ít nhưng thường
xuyên hay ít khi sai số nhưng một khi đã sai thì rất nhiều? Cách chọn sẽ phụ
thuộc vào hoàn cảnh và ứng dụng mà bạn muốn triển khai.
Trong nhiều trường hợp khác, chúng ta biết cần làm gì để đo chính xác nhưng
việc đo khơng phải lúc nào cũng khả thi. Điều này thường xuyên xuất hiện trong
các bài tốn ước lượng mật độ. Nhiều mơ hình phân phối xác suất hiện nay chỉ
có thể biểu diễn phân phối xác suất một cách ngầm định. Tính toán giá trị xác
suất thực tế gắn liền với một điểm cụ thể trên khơng gian với những mơ hình


9


này khơng khả thi về mặt tính tốn. Trong trường hợp này, cần thiết kế ra một
giải pháp thay thế có khả năng thực hiện những tác vụ tương đương với mục
tiêu đề ra ban đầu.

5.1.3 Kinh nghiệm E
Học máy có thể được chia một cách trực quan thành 2 loại là học có giám sát và
học khơng giám sát loại kinh nghiệm áp dụng xuyên suốt quá trình học.
Hầu hết các thuật toán học máy trong cuốn sách này cho phép lấy kinh nghiệm
từ toàn bộ tập dữ liệu. Tập dữ liệu là một tập gồm nhiều các ví dụ, đơi khi cịn
được gọi là các điểm dữ liệu.
Một trong các bộ dữ liệu kinh điển của các nhà thống kê học là Iris. Đây là một
tập gồm 150 cây hoa. Mỗi phần tử của tập tương ứng với một cây. Mỗi giá trị
của các chiều ứng với các đặc trưng của hoa: độ dài hoa, độ rộng của đài hoa,
độ rộng của cánh hoa. Tập dữ liệu cũng chỉ ra lồi mà loại hoa đó thuộc về. Có
3 loại hoa được phân nhóm trong kiểu dữ liệu.
Học khơng có giám sát: Kinh nghiệm của tập dữ liệu chứa nhiều loại đặc trưng
khác nhau. do đó cần học ra đặc trưng hữu ích từ tập dữ liệu này. Nói về học
sâu, chúng ta thường muốn học toàn bộ phân phối xác suất được dùng để tạo ra
được tập dữ liệu. có thể quy định như ước lượng mật độ hoặc ngầm định như
trong các tác vụ khử nhiễu ảnh. Ngồi ra một số thuật tốn học khơng giám sát
như phân cụm giúp việc phân chia tập dữ liệu đó thành các cụm chứa các mẫu
tương đồng lớn với nhau.
Các thuật tốn học có giám sát: Trải nghiệm tập dữ liệu chứa nhiều đặc trưng,
và mỗi mẫu dữ liệu gắn liền 1 nhãn hay một mục tiêu nào đó. Ví dụ bộ dữ liệu
Iris chú thích lồi mà từng cây hoa thuộc về. Một thuật tốn học có giám sát có
thể dựa vào các dữ liệu đầu vào và nhãn của các cây hoa này để phân loại tập
Iris thành 3 loại hoa khác nhau.

Nói một cách nơm na, học khơng có giám sát gắn liền với việc quan sát một
lượng mẫu từ vector x, rồi bằng một cách trực tiếp hoặc gián tiếp học hàm phân
phối xác suất p(x) hoặc một số đặc tính hữu ích của phân phối đó . Trong khi đó
học có giám sát gắn liền với việc quan sát một điểm dữ liệu x (thường là một
vector) và gắn liền với nó là một giá trị hoặc một vector y, thường thông qua

10


ước lượng xác suất p(y|x). Thuật ngữ học có giám sát bắt nguồn từ mục tiêu y
cho trước bởi người giám sát để chỉ cho hệ thống học máy cần biết phải làm gì.
Trong học khơng giám sát, khơng hề có người hướng dẫn hay giáo viên. Thuật
tốn cần tự học các thơng tin có giá trị từ dữ liệu mà khơng hề có bất kì nhãn
nào cho các điểm dữ liệu cả.
Học có giám sát và học khơng giám sát không phải là những khái niệm được
định nghĩa một cách chuẩn tắc. Ranh giới giữa hai loại này khá mờ nhạt. Rất
nhiều kĩ thuật học máy được đề xuất có thể thực hiện đồng thời cả hai nhiệm vụ
nêu trên. Ví dụ, luật xích trong xác suất chỉ ra rằng với một vector x có n chiều,
xác suất hợp có thể phân tích thành:
Sự phân chia này cho thấy chúng ta có thể giải quyết các bài tốn học khơng
giám sát của mơ hình p(x) bằng cách chia nhỏ nó ra thành n bài tốn học có
giám sát. Khi đó, chúng ta sẽ giải bài tốn học có giám sát p(y|x) bằng phương
pháp học không giám sát cổ điển để học được xác suất hợp p(x,y) và suy ra
được:
Do đó, học có dám sát hay khơng giám sát khơng phải là những khái niệm rõ
ràng và tồn tại duy nhất. Chúng chỉ giúp chúng ta có thêm những sự phân chia
tương đối về các thuật tốn máy học. Thơng thường, người ta quan niệm hồi
quy, phân loại và các bài tốn đầu ra có cấu trúc là học có giám sát. Ước lượng
mật độ trong việc hỗ trợ các tác vụ khác thường được xếp vào loại học không có
giám sát.

Ngồi ra chúng ta có thể ứng dụng nhiều kỹ thuật học khác nữa. Ví dụ học bán
giám sát, một số dữ liệu có nhãn nhưng một số khác lại khơng có. Một số ví dụ
gần đây về sự đa dạng trong tập dữ liệu có thể tham khảo bài báo của Kotzias et
al. (2015)
Một số thuật toán học máy không chỉ làm việc với tập dữ liệu xác định từ trước.
Ví dụ, học tăng cường tương tác với mơi trường, sau đó sẽ lấy kinh nghiệm dựa
trên các phản hồi từ môi trường dựa trên các hành động mà hệ thống học đã
thực hiện. Tuy nhiên các thuật tốn kiểu này vượt qua khn khổ của cuốn sách.
Vì vậy nếu bạn có thể tìm đọc tham khảo Sutton and Barton (1998) hoặc
Bertsekas and Tsitsiklis (1996) để tìm thêm thông tin về học tăng cường, và
Mnih et al (2013) để hiểu hơn về học sâu ứng dụng cho học tăng cường.

11


Đa số thuật toán học máy đều học từ tập dữ liệu huấn luyện. Tập này có thể thể
hiện theo nhiều cách khác nhau. Trong cuốn sách này chúng ta hiểu nó là một
tập ví dụ, hay nói đúng hơn là một tập hợp các đặc trưng.
Một cách khá phổ biến để biểu diễn tập dữ liệu là thiết kế ma trận. Một ma trận
thiết kế là ma trận chứa nhiều điểm dữ liệu và mỗi điểm dữ liệu thì tương ứng
với một dòng, mỗi cột của ma trận tương ứng với một đặc trưng của dữ liệu. Ví
dụ, bộ dữ liệu Iris chứa 150 điểm dữ liệu và 4 đặc trưng với từng điểm. Điều đó
nghĩa là chúng ta có thể biểu diễn được nó với một ma trận thiết kế X ∈ R150x4 ,
Xi,1 ứng với chiều dài của cây i, Xi,2 ứng với chiều rộng của cây i,… Chúng ta
thể hiện đa số các thuật toán trong cuốn sách này dựa trên ma trận thiết kế.
Tất nhiên để biểu diễn dữ liệu dưới dạng ma trận thiết kế, chúng ta cần biểu
diễn mỗi điểm dữ liệu như là một vector. Điều này không phải lúc nào cũng khả
thi. Ví dụ khi bạn có một bộ ảnh có kích thước khác nhau, khi đó mỗi ảnh có
một lượng pixel khác nhau nên khơng phải 2 ảnh bất kì đều có thể biểu diễn
bằng những vector có chiều dài bằng nhau. Phần 9.7 và chương 10 mô tả cách

giải quyết các trường hợp này.

5.1.4 Hồi quy tuyến tính
Định nghĩa của chúng ta về machine learning là thuật toán mà có khả năng cải
thiện hiệu năng chương trình máy tính dựa vào kinh nghiệm cho cảm giác hơi
mơ hồ. Để làm rõ hơn, chúng ta sẽ đi vào thuật toán cơ bản nhất trong học máy:
hồi quy tuyến tính. Chúng ta sẽ lặp lại nhiều lần về thuật toán này, mục đích để
làm nó rõ ràng hơn, cũng như giúp bạn đọc hiểu sâu hơn về khái niệm học máy.
Như cái tên đã chỉ rõ, hồi quy tuyến tính được dùng để giải quyết các vấn đề hồi
quy. Nói cách khác, mục tiêu là xây dựng một hệ thống có thể lấy vector đầu
vào x ∈Rn và dự đoán được đầu ra là một vô hướng y ∈ R. Trong trường hợp về
hồi quy tuyến tính, đầu ra là một hàm tuyến tính của đầu vào. Đặt ŷ là giá trị mà
hệ thống dự đốn được, chúng ta có đầu ra được biểu diễn thành:
với w ∈ Rn là vector hệ số của đường tuyến tính.
Tham số là giá trị định nghĩa ra mơ hình. Trong trường hợp này wi là hệ số nhân
với xi trước khi cộng tổng chúng lại với nhau. Có thể hình dung w là một tập
các trọng số định nghĩa các đặc trưng ảnh hưởng thế nào đến việc dự đoán. Nếu

12


đặc trưng xi nhận wi dương làm trọng số, tăng giá trị của đặc trưng sẽ làm tăng
giá trị của đầu ra ŷ. Ngược lại nếu wi âm, tăng giá trị của xi sẽ làm giảm giá trị
của ŷ. Nếu wi có độ lớn càng cao, nó sẽ làm cho đặc trưng xi ảnh hưởng càng
nhiều tới kết quả đầu ra. Nếu giá trị trọng số bằng 0, đồng nghĩa với việc đặc
trưng này khơng có ý nghĩa trong việc dự đốn.
Một trong các ví dụ kinh điển về hồi quy tuyến tính là áp dụng cho bài tốn dự
đốn giá nhà tại một khu vực. Đầu vào là giá của các ngơi nhà quanh khu vực
đó và giá của chúng, đầu ra là mơ hình dự đốn giá các ngôi nhà với các đặc
trưng cho trước.

Tác vụ T được định nghĩa: tìm ŷ = wTx để dự đốn y theo x. Kế đến ta đi vào
định nghĩa đánh giá hiệu năng P.
Ta có ma trận được tạo gồm m mẫu chỉ dùng để đánh giá độ chính xác của mơ
hình. Ngồi ra, giá trị của y cũng được phản ánh bởi các vector ứng với mỗi x
tương ứng.Tập này sinh ra chỉ dùng cho mục đích test nên ta ký hiệu ma trận có
input là X(test) với đầu ra gồm các vector đích y(test).
Hiệu năng của mơ hình sẽ được đo lường bằng cách tính giá trị sai số bình
phương trung bình (mean squared error) khi mà ta áp chúng lên tập test. Với
y(test) là giá trị dự đoán thì đáp án đúng ta cần tìm nằm trong phương trình:

Khi mà (test) tiến dần tới y(test) thì giá trị của MSE chạy dần về 0, bên cạnh
đó:

nên giá trị sai số sẽ tăng khi khoảng cách giữa dự đoán và thực tế tăng.
Ta cần tìm một giải thuật có thể cập nhật trọng số w để sau khi quan sát tập
huấn luyện (X(train),y(train)) ta thu được MSE giảm dần. Ở đây, MSE_train áp
dụng trên mơ hình huấn luyện. Ta sẽ dùng phương pháp tối ưu hóa sai số bình
phương trung bình - mean squared error đã nói ở trên nhằm thực hiện mục tiêu
đề ra. Để thực hiện việc tìm min của MSE, ta cần tìm w = 0 sao cho đạo hàm
của MSE = 0 (tức lúc này MSE cực tiểu):

13


Ta thấy rằng, phương trình có nghiệm cho bởi

là những phương trình chuẩn (normal equation) và ta có thể tạo được các thuật
tốn đơn giản từ nó. Hình 5.1 biểu diễn ví dụ về hồi quy tuyến tính:

Hình 5.1: Xét bài tốn hồi quy tuyến tính với tập train bao gồm 10 điểm,

mỗi điểm 1 đặc trưng, chính vì vậy nên trọng số w chứa duy nhất thông
số w1. w1 ở đây được học để hướng cho y = w1x đi sát nhất tất cả các
điểm trong tập. Điểm ở hình tối ưu w bên phải chính là giá trị nghiệm của
phương trình chuẩn nêu trên, tại nó MSEtrain đạt giá trị nhỏ nhất như ta
thấy trên hình.

14


Các mơ hình có độ khó phức tạp hơn sẽ sử dụng hồi quy tuyến tính, với hệ số
chặn (intercept) b được thêm vào. Với mơ hình này
có sự khác nhau khi ánh xạ tham số và dự đốn có tính tuyến tính, nhưng từ đặc
trưng tới dự đốn thì lại tịnh tiến dần. Đồ thị biểu diễn sẽ không nhất thiết đi
qua gốc. Thay vì thêm b, ta có thể nối cho đặc trưng x một xo luôn mang giá trị
1 (tức là hằng số). Vai trò của b sẽ được thay thế bởi trọng số ứng với x0. Thuật
ngữ tuyến tính ở đây ám chỉ sự tính tiến mà ta đã mơ ta trong phần này, và nó sẽ
được sử dụng xuyên suốt cuốn sách.
Phép biến đổi tịnh tiến gọi b ở đây là hệ số tự do. Hiểu đơn giản rằng, kết quả sẽ
tiến dần về b mặc dù khơng biết đầu vào nào. Nó khơng giống như độ chệch,
ước lượng một đại lượng so với giá trị thực của đại lượng đó, mà nó biểu diễn
một ý nghĩa hoàn toàn khác như một đặc điểm riêng của thuật tốn.
Tuy cịn đơn giản với nhiều hạn chế nhưng hồi quy tuyến tính quả thật giúp
chúng ta tiếp cận và có một cái nhìn về cách máy học hoạt động. Đây là tiền đề
giúp chúng ta xây dựng các thuật toán phức tạp hơn bằng những nguyên lý học
máy. Ta sẽ đề cập đến phần này ở những chương sau để làm rõ những nguyên lý
quan trọng này là gì.

5.2 Dung lượng (capacity), overfitting,
underfitting
Học máy có một thách thức là xây dựng các thuật tốn có khả năng hoạt động

tốt trên cả hai: tập dữ liệu đã huấn luyện và các đầu vào mới chưa gặp. Khả
năng tính toán tốt trên các dữ liệu đầu vào chưa quan sát được gọi là khả năng
tổng quát hoá (generalization).
Khi mà chúng ta bắt đầu huấn luyện một mơ hình học máy, ta đề cập việc sử
dụng một tập huấn luyện; có thể tính một độ đo lỗi nào đó của mơ hình khi dự
đốn trên tập huấn luyện, được gọi là sai số huấn luyện, và mong muốn giảm sai
số huấn luyện này. Điều làm học máy khác biệt với tối ưu là ở chỗ chúng ta có
giá trị sai số tổng quát hóa và sai số kiểm thử càng thấp càng tốt. Sai số tổng
qt hố là kì vọng đầu vào mới. Phân phối của các điểm đầu vào mà ta kỳ vọng
hệ thống sẽ gặp phải trong thực tế sẽ sinh ra những kì vọng mà ta sử dụng ở

15


phần trên.
Sai số tổng qt hố của một mơ hình học máy sẽ được dự đoán bằng cách đo
lường hiệu năng trên tập kiểm thử với các điểm dữ liệu riêng biệt trích xuất từ
tập huấn luyện.
Với hồi quy tuyến tính, ta đã huấn luyện mơ hình bằng cách sư dụng cực tiểu
hoá sai số huấn luyện, nhưng cái mà ta cần quan tâm là sai số kiểm thử.
Vậy thì làm cách nào để gây ảnh hưởng đến hiệu suất tập kiểm thử trong khi chỉ
có thể quan sát tập huấn luyện? Lý thuyết học thống kê (statistical learning
theory) sẽ đưa ra một số câu trả lời. Sẽ rất hạn chế khi thu thập bừa bãi tập kiểm
thử và huấn luyện. Nếu đưa ra cách ví dụ giả định về cách thu thập thì câu
chuyện trên sẽ được giải quyết.
Dữ liệu huấn luyện và dữ liệu kiểm thử tạo ra từ một phân phối xác suất trên tập
dữ liệu gọi là quá trình sinh ra dữ liệu. Ta đề xuất một tập hợp các giả định gọi
là giả định i.i.d., viết tắt của 2 việc: mẫu dữ liệu trong tập dữ liệu là độc lập với
nhau (independent) và tập huấn luyện cùng tập kiểm thử phân phối một cách
giống nhau (identically distributed), và chúng được chọn ra từ một phân phối

xác suất. Dựa vào đó, ta có thể mơ tả quá trình sinh dữ liệu bằng một phân phối
xác suất trên một mẫu dữ liệu. Mẫu huấn luyện và kiểm thử được sinh ra từ
phân phối tương tự. Ta gọi phân phối cơ sở này là phân phối sinh ra dữ liệu, và
sẽ ký hiệu nó là pdata. Những yếu tố trên sẽ giúp ta nghiên cứu mối quan hệ
giữa sai số huấn luyện và sai số kiểm thử theo chiều hướng tốn học.
Có một sự liên quan trực tiếp giữa sai số huấn luyện và sai số kiểm thử đó là sai
số huấn luyện kỳ vọng sẽ được chọn ngẫu nhiên và bằng sai số kiểm thử kỳ
vọng của mơ hình đó. Giả sử có một phân phối p(x,y), được lấy mẫu nhiều lần
để tạo ra tập huấn luyện và tập kiểm thử. Trong trường hợp với một giá trị cố
định, sai số huấn luyện kỳ vọng bằng với sai số kiểm thử kỳ vọng, vì cả hai kỳ
vọng được tạo ra bởi cùng một quá trình lấy mẫu dữ liệu.
Chúng ta không cố định các tham số rồi lấy mẫu cả hai tập dữ liệu cùng lúc
trong thuật toán máy học. Ta lấy mẫu tập huấn luyện, sử dụng nó lựa chọn các
tham để sai số huấn luyện giảm đạt mức giảm, sau đó lấy mẫu dữ liệu kiểm thử.
Sai số kiểm thử kỳ vọng sẽ có giá trị lớn hơn sai số huấn luyện được kỳ vọng.

16


Một thuật toán học máy được đánh giá tốt hay không là khi:
1. Tạo ra sai số huấn luyện nhỏ
2. Khoảng cách giữa sai số trong huấn luyện và sai trong số kiểm thử nhỏ
Hai yếu tố trên ứng với hai thách thức trong học máy: underfitting và
overfitting. Underfitting xảy ra khi mơ hình dự đốn q đơn giản, thậm chí sai
cả với tập dữ liệu đã sử dụng để huấn luyện. Overfitting xảy ra khi mơ hình q
khớp với tập dữ liệu huấn luyện, sinh ra một mơ hình quá phức tạp dẫn đến khi
gặp các trường hợp khác với những gì đã huấn luyện sẽ đưa về kết quả rất tệ.
Ta có thể kiểm sốt một mơ hình có nhiều khả năng underfitting hay overfitting
khi thay đổi capacity của nó. Dung lượng của mơ hình là khả năng phù hợp của
mơ hình đó với các loại hàm số khác nhau. Các mơ hình sở hữu dung lượng

thấp sẽ gặp khó khăn để phù hợp tập huấn luyện tranning. Trong khi đó, mơ
hình dung lượng cao có thể gặp phải tình trạng overfitting khi ghi nhớ một cách
máy móc các thuộc tính tập huấn luyện, dẫn đến khả năng mơ hình khơng tổng
qt trên tập kiểm thử.
Để kiểm sốt dung lượng một thuật toán học, ta dùng phương pháp lựa chọn
khơng gian giả thuyết của nó, là tập hợp các hàm số có thể trở thành giải pháp
trong thuật tốn học. Ví dụ, thuật tốn hồi quy tuyến tính có khơng gian giả
thuyết bao gồm tập hợp tất cả các hàm tuyến tính ở đầu vào của nó. Việc khái
qt hố thuật tốn hồi quy tuyến tính để nó có thể bao gồm các đa thức trong
khơng gian giả thuyết của nó, sẽ hiệu quả hơn khi nó chỉ gồm những hàm tuyến
tính. Qua đó, dung lượng của mơ hình sẽ được gia tăng.
Các thuật tốn học máy hoạt động tốt nhất trong điều kiện dung lượng của
chúng phù hợp với độ phức tạp thực của tác vụ cần thực hiện và lượng dữ liệu
huấn luyện mơ hình được cung cấp. Nếu chỉ có một lượng dung lượng nhỏ sẽ
không thể giải quyết các vấn đề phức tạp. Các mơ hình có dung lượng lớn sẽ
giải quyết được vấn đề đó, nhưng khi dung lượng trở nên lớn hơn những gì đưa
ra, sẽ dẫn đến overfitting.
Trong hình 5.2, ta xét các biểu diễn nguyên tắc của hoạt động. Ta sẽ so sánh các
bộ dự đoán sử dụng các hàm tuyến tính, hàm bậc hai và bậc 9 khi cố phù hợp
mơ hình với một bài tốn các điểm dữ liệu biểu diễn dưới hàm bậc hai. Hàm
tuyến tính khơng thể biểu diễn đường cong của biểu diễn dữ liệu, underfitting
xảy ra. Bộ dự đốn bậc 9 thì lại mơ tả dữ liệu rất chính xác, nhưng sẽ xảy ra

17


trường hợp biểu diễn vô hạn các hàm số đi qua các điểm dữ liệu huấn luyện, vì
nó có nhiều tham số hơn số mẫu huấn luyện. Có quá nhiều sự lựa chọn để cho ta
sử dụng, nhưng việc đó khơng có nhiều cơ hội thực tế. Trong ví dụ này, mơ hình
bậc hai hồn tồn phù hợp với cấu trúc nhiệm vụ đề ra và do đó, nó sẽ tổng qt

hố tốt đối với dữ liệu mới.

Hình 5.2: Ta xét ba mơ hình với tập dữ liệu huấn luyện. Mẫu x ngẫu
nhiên và y được xác định bởi một hàm bậc hai sinh ra dữ liệu huấn
luyện.Một hàm tuyến tính underfitting với dữ liệu này – khơng thể biểu
diễn đường cong của dữ liệu. Một hàm bậc hai khái quát khá tốt với các
điểm dữ liệu chưa gặp. Hàm đa thức bậc 9 bị overfitting khi thực hiện
hợp dữ liệu. Lời giải hàm bậc 9 với phương trình vơ định biểu diễn đồ thị
đi qua tất cả các điểm dữ liệu huấn luyện chính xác, nhưng khơng may nó
khơng giúp trích xuất cấu trúc thực của dữ liệu. Ta cũng nhận ra rằng giá
trị của y cũng tăng rất mạnh về phía bên trái của dữ liệu, trong khi hàm
sinh dữ liệu lại giảm ở vùng này.
Từ đầu đến giờ, ta chỉ mô tả một cách thay đổi dung lượng của một mơ hình.
Nhưng thực tế là, có rất nhiều cách áp dụng thay đổi dung lượng của một mơ
hình. Phải hiểu là dung lượng của mơ hình cịn nhiều các xác định ngồi lựa
chọn mơ hình. Mơ hình sẽ định ra họ các hàm số mà một thuật tốn có thể học
khi thay đổi các tham số. Các hàm số này cịn có tên gọi khác là dung lượng
biểu diễn của mơ hình. Việc tìm ra một hàm phù hợp nhất là một vấn đề khó.
Trong các bài toán, thuật toán học chọn ra hàm làm giảm sai số huấn luyện. Có

18


nghĩa là dung lượng có tác động của của một thuật tốn học sẽ có thể thấp hơn
so với mặt biểu diễn.
Các triết gia có niên đại từ thời Ptolemy là những người đi đầu để hình thành
những ý tưởng hiện đại của chúng ta về vấn đề cải thiện khả năng khái qt hóa
các mơ hình học máy. Tiêu biểu trong đó là nguyên tắc Occam’s razor. Nó đề
cập đến việc nên chọn giả thuyết “đơn giản nhất” trong số các giả thuyết cùng
giải thích các quan sát đã được nhận định. Thế kỷ 20, những nhà sáng tạo lý

thuyết học thống kê Vapnik and Chervonenkis, 1971; Vapnik, 1982; Blumer et
al., 1989; Vapnik, 1995 đã chứng minh rõ ràng thêm điều đó.
Lý thuyết học thống kê đưa ra cho chúng ta nhiều cách thức khác nhau nhận
định về hiệu năng của mơ hình. Phương pháp được sử dụng phổ biến là số chiều
Vapnik-Chervonenkis hay là số chiều VC. Ta thương thấy VC được sử dụng với
một bộ phân lớp nhị phân để đo đạc hiệu năng. Số chiều VC là giá trị max của
m, với điều kiện tồn tại một bộ dữ liệu huấn luyện m điểm x để cho bộ phân loại
có thể gán nhãn tùy ý.
Bên cạnh đó, lý thuyết học thống kê có thể đưa ra các dự đốn mang tính chất
định lượng thơng qua định lượng dung lượng mơ hình. Chênh lệch giữa sai số
huấn luyện và sai số khái quát hóa bị chặn trên bởi một đại lượng nếu tăng số
lượng mẫu huấn luyện nó sẽ giảm, nó tăng khi dung lượng của mơ hình tăng .
Ta giải thích tại sao thuật tốn học máy có thể hoạt động tốt mà lại khơng được
áp dụng nhiều trong học sâu. Có thể giải thích rằng các cận được xác định tương
đối lỏng lẻo, ngoài ra việc xác định dung lượng của các thuật toán trong deep
learning là khó. Đo hiệu năng thuật tốn học sâu rất khó khăn vấn đề về các bài
tốn tối ưu.
Khi biết việc khái quát hóa sẽ giúp khoảng cách giữa sai số huấn luyện và sai số
kiểm thử là nhỏ là tốt hơn, vẫn cần nghĩ đến những phương pháp tối ưu hơn.
Đích đến là đẩy cho sai số huấn luyện tiến đến gần với mức sai số tối thiểu khi
tăng dung lượng của mơ hình. Một hàm của dung lượng mơ hình có dạng chữ U
sẽ biểu diễn sai số khái quát. Minh hoạ bằng hình vẽ 5.3.

19


Hình 5.3: Ta có thể thấy sai số trên tập huấn luyện và tập kiểm thử thay
đổi theo hai xu hướng khác nhau. Bên trái của đường đồ thị, xảy ra
underfitting khi sai số huấn luyện và sai số khái qt cao. Việc tăng dung
lượng của mơ hình làm cho sai số huấn luyện giảm dần, nhưng khoảng

cách giữa sai số huấn luyện và sai số khái quát hóa nới rộng. Khi khoảng
cách vượt qua mức độ giảm, sẽ xảy ra hiện tượng overfitting.
Ta sẽ giới thiệu khái niệm về các mơ hình phi tham số cho trường hợp đạt
tới trường hợp cực đoan với mức dung lượng lớn. Từ đầu đến lúc này, ta
chỉ đề cập mơ hình tham số. Các mơ hình tham số sẽ học hàm số với giới
hạn về kích thước vector. Nhưng bên cạnh đó, mơ hình phi tham số sẽ
khơng có những giới hạn như trên.
Việc triển khai các mơ hình phi tham số nhiều khi chỉ là ý tưởng lý thuyết và
không khả thi. Nhưng việc chuyển độ phức tạp thành một hàm số của kích
thước tập huấn luyện cũng có thể sử dụng để xây dựng các mơ hình phi tham số
thực tế hơn. Ta có thể đề cập đến việc sử dụng thuật toán hồi quy điểm gần nhất.
Khác biệt với thuật tốn hồi quy tuyến tính thường sở hữu một vector trọng số
cố định chiều dài, trong mơ hình này sẽ chỉ có x và y từ tập dữ liệu huấn luyện.
Để tìm và phân loại x, hệ thống sẽ tìm các điểm gần nhất trong training data và
trả về giá trị nhãn của nó.
Một thuật tốn học phi tham số có thể tạo ra khi chèn một thuật tốn có tham số
bên trong một thuật tốn có chức năng tăng lượng tham số của chính nó. Lấy

20


một ví dụ cho định nghĩa trên, một vịng lặp của q trình học sẽ có thể thay đổi
bậc một đa thức hồi quy trên một đa thức mở rộng với các giá trị đầu vào.
Chúng ta đề cập đến một khái niệm đó là mơ hình lý tưởng, dự đoán được các
phân phối. Nhưng từ lý tưởng ở đây khơng có nghĩa là tuyệt đối, các sai số vẫn
có thể xảy ra. Trong phần học có giám sát, có thể xảy ra cả trường hợp ngẫu
nhiên và cố định khi ánh xạ từ x sang y. Những sai số trên được gọi là sai số
Bayes, nó biểu diễn đặc trưng cho mơ hình này.
Khi kích thước training data thay đổi, sai số huấn luyện và sai số khái quát hóa
chuyển biến. Nhưng, về mặt kỳ vọng sai số tổng qt hóa sẽ có thể khơng tăng

khi tăng số lượng mẫu dữ liệu huấn luyện. Lượng dữ liệu sẽ ảnh hưởng đến sai
số thấp nhất trong mơ hình phi tham số. Việc có dung lượng thấp hơn dung
lượng tối ưu sẽ khiến mơ hình tiến đến một giá trị sai số lớn hơn sai số Bayes.
Minh họa ở hình 5.4. Khi đã có dung lượng tối ưu thì khoảng cách giữa sai số
huấn luyện và sai số khái quát hóa cũng không thể đảm bảo. Bằng việc thu thập
thêm mẫu huấn luyện, ta có thể tối ưu được bài tốn này.

21


Hình 5.4: Dung lượng tối ưu của mơ hình và tác động của kích thước tập
training data đối với sai số training và test. Ta tạo nên một bài toán hồi
quy dựa trên với cách thêm thông tin nhiều vào một đa thức bậc 5, sinh ra
chỉ một tập kiểm thử, sau đó sinh ra một số kích thước khác nhau cho tập
huấn luyện. Ta có 40 tập huấn luyện phân biệt để biểu diễn một biểu đồ
sai số với khoảng tin cậy 95%. Trên biểu đồ là sai số trên dữ liệu huấn
luyện và dữ liệu kiểm thử đối với hai mơ hình, bậc hai và bậc được chọn
nhằm mục đích tối ưu sai số kiểm thử, chúng đều đóng. Việc tăng kích
thước của tập huấn luyện sẽ khiến sai số huấn luyện tăng trong mơ hình
bậc hai. Mơ hình sẽ xảy ra khơng phù hợp với dữ liệu khi training data
lớn và bên cạnh đó, sai số trên tập kiểm thử sẽ giảm. Vì mơ hình bậc hai
ít dung lượng nên sai số kiểm thử của tiệm cận tới một giá trị lớn hơn
trung bình. Sai số huấn luyện sẽ có khả năng nhở hơn cả trong mơ hình
tối ưu với training data. Kích thước mẫu huấn luyện càng tăng thì sai số

22


càng tiệm cận với sai số Bayes. Training data tăng, dung lượng tối ưu
cũng tăng, giá trị sẽ ổn định khi hệ thống đủ khả năng xử lý các tác vụ

u cầu.

5.2.1 Khơng có bữa trưa nào miễn phí (no free lunch theorem)
Lý thuyết học cho rằng thuật toán học máy có thể tạo ra một mơ hình có tính
phổ quát tốt từ tập dữ liệu hữu hạn. Tuy nhiên việc suy diễn luật từ một tập ví
dụ hữu hạn có vẻ khơng đảm bảo được tính logic lắm. Để đảm bảo tính logic
sau khi suy diễn ra luật, cần có thơng tinh về đầy đủ các phần tử cịn lại trong
tập dữ liệu huấn luyện.
Trước đây, các thuật toán học máy đã tránh điều này bằng cách chỉ sử dụng các
luật xác suất hơn là sử dụng toàn bộ các luật tìm ra được ở trong tập dữ liệu.
Học máy hứa hẹn sẽ tìm được ra các luật gần như chắc chắn đúng với hầu hết
các phần tử trong tập dữ liệu huấn luyện.
Nhưng luật xác suất cũng không phải là tối ưu. Luật khơng có bữa trưa nào
miễn phí (no free lunch theorem) đã đưa ra một nhận định, trung bình trên tất cả
phân phối có nhiệm vụ sinh dữ liệu, khi phân loại các điểm chưa phân lớp thì
các thuật tốn có cùng sai số. Nó chứng minh rằng khơng có thuật tốn học máy
nào là tối ưu và có thể thay thế những phần cịn lại. Các thuật tốn phức tạp nhất
khi tính trung bình về hiệu suất thì cũng chỉ ngang ngửa với các thuật toán cơ
bản và đơn giản như phân chia lớp. Với những bài toán thực tế khác nhau, mỗi
thuật toán sẽ đóng góp một vai trị riêng và lựa chọn thuật tốn chính xác sẽ
giúp bài tốn được giải quyết một cách hiệu quả.
Từ đó, ta rút ra bài học là khơng nên lao vào tìm kiếm một thuật tốn “hồn
hảo”. Chúng ta cần tìm những gì mà chính cỗ máy sẽ trải nghiệm, và lựa chọn,
tìm tịi về những thuật toán, những phương pháp tốt nhất với tập dữ liệu mà
chính máy tính sẽ học. Đó là một cách nhìn xa hơn về học máy trong tương lai.

5.2.2 Regularization
Luật không có bữa trưa nào miễn phí chỉ ra rằng chúng ta cần tìm ra thuật tốn
riêng để áp dụng cho từng tác vụ cụ thể. Và để thực hiện điều đó thì việc xây
dựng các tập hợp tùy chọn là cần thiết. Khi đã có các tập hợp này rồi thì tùy vào


23


từng bài tốn mà ta sẽ có các chọn lựa khác nhau sao cho mang lại một hiệu quả
tốt nhất.
Bằng việc thêm hoặc bớt các hàm trong không gian của thuật tốn học máy
chúng ta có thể điều chỉnh dung lượng mơ hình. Đó cũng là cách duy nhất mà
chúng ta đề cập từ trước tới giờ để thay đổi thuật tốn học tập. Các ví dụ được
đề cập về tăng hay giảm bậc của đa thức trong bài toán hồi quy đã lý giải điều
trên. Và thực sự thì mức độ này vẫn còn quá đơn giản và chưa phù hợp với các
mơ hình khác.
Các hành vi mà thuật tốn thực hiện khơng chỉ phụ thuộc số lượng hàm bên
trong mà còn phụ thuộc rất nhiều vào độ phức tạp của các hàm đó. Thuật tốn
hồi quy tuyến tính sở hữu một không gian giả thuyết các hàm tuyến tính bên
trong nó. Nó là một cơng cụ mạnh mẽ để áp dụng với các bài tốn có đầu vào và
đầu ra tuyến tính, nhưng sẽ khơng có nhiều tác dụng với bài tốn phi tuyến. Ví
dụ là bà itốn dự đốn sin(x) từ x, khơng khả dụng mấy. Chính vì vậy, ta cần bài
tốn lựa chọn những hàm số phù hợp, kiểm soát các lượng hàm này để lấy ra
các giải pháp từ đó.
Khi hai hàm số cùng đủ điều kiện để giải quyết một bài toán, chúng ta sẽ có thể
áp dụng mức ưu tiên, tức là sẽ chọn những hàm số phù hợp hơn để sử dụng. Với
những giải pháp khơng được ưu tiên thì nó sẽ được chọn khi mà đáp ứng tốt hơn
đối với tập huấn luyện đang được sử dụng so với giải pháp ưu tiên.
Lấy một số ví dụ về phần này, để suy giảm trọng số, ta có thể chỉnh sửa huấn
luyện đối với hồi quy tuyến tính. Khi thực hiện phép hồi quy tuyến tính với suy
giảm trọng số, ta cực tiểu tổng của sai số bình phương trung bình trên tập huấn
luyện bên cạnh đó sử dụng một tiêu chuẩn J(w) để biểu diễn sự ưu tiên trọng số,
chuẩn L2 đạt giá trị bình phương nhỏ hơn. Cơng thức:


Theo cơng thức ta thấy λ là một giá trị đã được chọn nhằm kiểm soát độ ưu tiên
cho các trọng số nhỏ hơn. Với λ = 0 , ưu tiên không được áp đặt, khi λ càng lớn
càng thì ngược lại trọng số sẽ nhỏ dần. Cực tiểu hoá J(w) sẽ đưa ra hai hướng,
hoặc trọng số phù hợp với bộ huấn luyện hoặc nhỏ hơn. Từ đó, chúng ta có các
biện pháp có độ dốc nhỏ hoặc trọng số bớt đặc trưng. Biểu diễn việc
underfitting và overfitting bị ảnh hưởng bởi suy giảm trọng số, ta sử dụng

24


×