1. Khái niệm mở đầu

Cho trước tập dữ liệu có phần tử trong đó:

  • là một không gian chiều, được gọi là feature space. được gọi là một feature vector, gồm các features.
  • là tập nhãn.

Gọi là mô hình phân bố các điểm . Từ , ta muốn chọn ra một hàm sao cho: với mỗi , ta có , tức là ta muốn tìm cách hiểu rõ nhất có thể. Đây chính là bài toán Supervised Learning.

Dựa trên tập , ta có thể chia bài toán Supervised Learning thành:

| | Binary Classification | | | Multilabel Classification | | là một khoảng trên tập số thực | Regression |

Vì số lượng các hàm số đi từ đến là rất lớn, nên ta chỉ chọn một số hữu hạn hàm hay lớp hàm mà ta cho rằng là khả thi để tìm kiếm. Ta gọi tập hợp tất cả các hàm khả thi mà ta đã chọn là hypothesis class, ký hiệu là . Từ đây, ta có thể chọn ra hàm “tốt nhất” trong . Ta sẽ làm rõ hơn ý “tốt nhất” ở phần ngay sau.

2. Đánh giá độ tốt

Để đánh giá một hàm có tốt hay không, trước tiên ta phải lượng hóa được độ “tốt”. Cho trước tập hữu hạn, ta có một số cách đánh giá như sau:

  • 0/1 Loss: hàm này đánh giá “độ sai” của hàm , tức là ta cần tìm để hàm nhỏ nhất
ế

Nhược điểm ta thấy rõ của hàm này là nó không liên tục, không khả vi. Vì thế việc tìm nghiệm tối ưu sẽ khá khó khăn

  • Square Loss:

Hàm này thường được dùng trong các bài toán regression. Một ưu điểm của hàm này là khi tối ưu, các giá trị sẽ không thể quá lệch so với (nhờ phép bình phương). Tuy nhiên cũng vì đó, mà khi không quá lệch nhau, thì sai số sẽ bị coi là không đáng kể. Ví dụ dễ hiểu là . Và từ 2 sự kiện ấy, ta tối ưu hàm này trên training data thì hàm thu được rất có thể gặp vấn đề overfitting.

  • Absolute loss:

Khá tương tự như hàm trên, tuy nhiên ở đây, sai số được tính là tuyến tính so với độ chênh lệch. Vì thế những hiệu ứng của hàm Square loss cũng được giảm bớt đi.

Các hàm dùng để đánh giá ở trên gọi là loss function. Các hàm có dạng:

Tuy nhiên, đây là đánh giá trên một tập hữu hạn, ta dễ dàng thu được kết quả với tập vô hạn bằng cách đổi từ tổng thành tích phân.

Từ đây, ta có thể viết được loss function cho toàn không gian chính là:

Như vậy, ở bài toán supervised learning, chúng ta muốn tìm một hàm

Tuy nhiên trên thực tế, ta không biết được phân bố , vì thế không thể tính được . Vì thế, ta cần một ước lượng cho . Đây chính là lúc ta cần tới .

Để đi tìm một ước lượng , ta cần một tập hợp mà các phần tử là độc lập cùng phân phối (i.i.d) được lấy từ không gian . Khi đó ta có thể lấy

3. Train/test splitting

Ta chia tập data ra thành . Ta sẽ dùng tập để tìm ra một hàm sao cho (gần) tối ưu. Bước này gọi là train model. Còn ta dùng để đánh giá (evaluation), tức là .

Lưu ý rằng cần có các phần tử độc lập cùng phân phối, tức là ngay từ đầu cũng nên như thế (vì vậy, khâu lấy data rất quan trọng).

Trên thực tế, ở bước train, ngoài các tham số của mà ta cần tìm, có thể còn có nhiều hyperparameters khác dùng để hiệu chỉnh (hoặc là ta có rất model). Vì thế ta cần có thêm tập để đánh giá kết quả train, từ đó quay lại điều chỉnh hyperparameters (chỉnh model), rồi lại train lại. Quá trình này có thể diễn ra rất nhiều lần. Lưu ý rằng tập chỉ được dùng duy nhất một lần (để đảm bảo rằng nó là unbiased estimator)

Như vậy tập data được chia ra thành , một cách ngẫu nhiên theo một tỉ lệ nào đó. Trên thực tế, dữ liệu cần dùng để train thường khá lớn, nên tỉ lệ chia có thể là 8:1:1 hoặc bất kỳ cách chia nào khác phù hợp với vấn đề đang giải quyết.

Trong trường hợp ta chưa chắc chắn có gồm các mẫu độc lập cùng phân phối không, thì ta có thể chia theo thời gian thu thập dữ liệu. Những dữ liệu trước 1 mốc thời gian nào đó sẽ dùng để train (và valid), còn từ đó về sau dữ liệu chỉ dùng để test. Cách chia này vẫn đảm bảo cho ta một unbiased estimator.

4. No-free-lunch theorem

Giờ chúng ta đã hiểu cần làm gì ở bài toán supervised learning, đó là thành lập một hypothesis class , chọn một hàm và tìm hàm tốt nhất từ việc splitting thôi. Tuy nhiên ta có một số lưu ý khi thành lập chứ không phải bỏ tất cả các thuật toán có trên đời vào .

Trước tiên, ta cần biết về No-free-lunch theorem (NFLT).

NFL theorem: Ta đã biết rằng là một phân bố các điểm . Thực tế, ta không thể biết rõ được . Ta gọi tập hợp tất cả các phân bố có thể có là . Xét hai thuật toán (hàm) bất kỳ, một hàm loss function . Khi đó:

Nôm na là: “Hiệu năng của các thuật toán khi xét trên tất cả các miền khả năng là như nhau”. Từ đây, ta suy ra được: một thuật toán mà giỏi ở phân bố này thì dở ở phân bố kia.

Vì vậy, ngay từ đầu, ta phải giả định về một phân bố nào đó cho data của chúng ta. Điều này đòi hỏi ta cần hiểu rõ về tập data. Từ đó ta sẽ chọn những hàm khả thi. Với mỗi hàm khả thi ta cho vào , ta đang thêm một giả định cho phân bố của data.

5. Tổng kết

Sắp xếp mọi thứ lại theo trật tự, ta có quy trình:

  1. Thu thập data: cần phải đảm bảo data có những tính chất và phân bố phù hợp
  2. Hiểu data: tìm hiểu tốt về data để đưa ra những giả định hợp lý
  3. Chọn hypothesis class: dựa trên những giả định ta đặt ra
  4. Chọn loss function: dùng khi tập hypothesis class có nhiều hơn 1 phần tử; thường đi kèm với việc chọn thuật toán ở bước 3.
  5. Chia tập data: thành 3 tập con , .
  6. Lặp lại việc dùng ( , ) nhiều lần để chọn ra tốt nhất, từ đó đem ra dùng với tập .