Categories
AI & Machine Learning

Phương pháp Boosting trong máy học

Bài đọc tham khảo

Machine Learning 10-701 (Boosting)

  • Phương pháp chung để cải thiện độ chính xác của bất kỳ thuật toán học cụ thể nào.
  • Hoạt động bằng cách tạo một loạt các bộ dữ liệu thách thức mà ngay cả hiệu suất khiêm tốn nhất trên những bộ này cũng có thể được sử dụng để tạo ra một công cụ dự đoán tổng thể có độ chính xác cao.
    • Hoạt động rất tốt trong thực tế — Adaboost và các biến thể của nó là một trong 10 thuật toán hàng đầu.
    • Được hỗ trợ bởi nền móng vững chắc.

Bài đọc:

HÌNH 15.1. Rob Schapire.

Kế hoạch cho hôm nay:

  • Động lực.
  • Một chút lịch sử.
  • Adaboost: thuật toán, đảm bảo, thảo luận.
  • Tập trung vào phân loại có giám sát.
  • Vd: phân loại email nào là thư rác và email nào quan trọng.

HÌNH 15.2. Ví dụ: Phát hiện thư rác.

  • Dễ dàng tìm thấy các quy tắc ngón tay cái thường đúng.
    • Ví dụ: “Nếu mua ngay trong tin nhắn, thì hãy dự đoán là thư rác.”
    • Ví dụ: “Nếu nói lời tạm biệt với món nợ trong tin nhắn, thì hãy dự đoán thư rác.”
  • Khó tìm quy tắc đơn lẻ có độ chính xác rất cao.
  • Boosting: siêu thủ tục sử dụng thuật toán tìm quy tắc ngón tay cái (thuật toán học yếu). Tạo ra một quy tắc có độ chính xác cao, bằng cách gọi liên tục thuật toán học yếu trên các bộ dữ liệu được lựa chọn khéo léo.HÌNH 15.3. Ví dụ: Phát hiện thư rác.
    • áp dụng thuật toán học yếu cho một tập hợp con email, lấy quy tắc ngón tay cái
    • áp dụng cho tập hợp con thứ 2 của email, lấy quy tắc ngón tay cái thứ 2
    • áp dụng cho tập hợp con thứ 3 của email, lấy quy tắc ngón tay cái thứ 3
    • lặp lại T lần; kết hợp các quy tắc yếu thành một quy tắc duy nhất có độ chính xác cao.

Làm thế nào để chọn mẫu trên mỗi vòng?

  • Thông thường, tập trung vào các mẫu “khó nhất” (những mẫu thường bị phân loại sai bởi các quy tắc ngón tay cái trước đó)

Làm cách nào để kết hợp các quy tắc ngón tay cái thành quy tắc dự đoán duy nhất?

  • lấy (có trọng số) biểu quyết theo đa số các quy tắc ngón tay cái

HÌNH 15.4. Kearns & Valiant.

  • [Kearns & Valiant ’88]: học yếu được định nghĩa: có thể dự đoán tốt hơn đoán ngẫu nhiên (sai số ≤ 1⁄2 − 𝛾) , một cách nhất quán.
  • Đưa ra một pb mở: “Liệu có tồn tại một thuật toán Boosting biến một thuật toán học yếu thành một thuật toán học PAC mạnh (có thể tạo ra các giả thuyết chính xác tùy ý) không?”
  • Không chính thức, đưa ra thuật toán học tập “yếu” có thể nhất quán tìm bộ phân loại có lỗi ≤ 1⁄2 − 𝛾, một thuật toán Boosting có thể chứng minh là xây dựng một bộ phân loại duy nhất có lỗi ≤ 𝜖.

HÌNH 15.5a. Học Yếu so với Học Mạnh/PAC.

  • [Kearns & Valiant ’88]: đã định nghĩa việc học yếu & đặt ra một pb mở về việc tìm kiếm một thuật toán Boosting.

HÌNH 15.5b. Kearns & Valiant.

Xây dựng ban đầu [Schapire ’89]:

HÌNH 15.6. Học yếu = Học mạnh (PAC).

  • thuật toán Boosting thời gian đa thức, khai thác mà chúng ta có thể học một chút trên mỗi bản phân phối.
    • Một bộ Boosting khiêm tốn thu được bằng cách gọi thuật toán học yếu trên 3 bản phân phối.Lỗi = 𝛽 < 1⁄2 − 𝛾 → lỗi 3𝛽2 − 2𝛽3
    • Sau đó, khuếch đại mức tăng độ chính xác vừa phải bằng cách chạy đệ quy bằng cách nào đó.
  • Rất tốt về mặt khái niệm và kỹ thuật, không thực tế lắm.

HÌNH 15.7. Sự bùng nổ của công việc tiếp theo.

“A Decision-Theoretic Generalization of On-Line Learning and an Application để Boosting” [Freund-Schapire, JCSS’97]

Người đoạt giải Godel 2003

HÌNH 15.8. Mô tả không chính thức Adaboost.

  • Boosting: biến một thuật toán yếu thành một thuật toán học mạnh (PAC).

Đầu vào: S={(x1, 𝑦1), …,(xm, 𝑦m)}; xi ∈ 𝑋, 𝑦𝑖 ∈ 𝑌 = {−1,1}

thuật toán học yếu A (ví dụ: Naïve Bayes, các gốc quyết định)

  • Với t=1,2, … ,T
    • Xây dựng Dt trên {x1, …, xm}
    • Chạy A trên Dt tạo ra ht: 𝑋 → {−1,1} (phân loại yếu)

ϵt = Pxi ~Dt (ht(xi) ≠ yi) lỗi của ht trên Dt

  • Đầu ra Hfinal(𝑥) = sign(∑𝑡=1 𝛼𝑡𝑡(𝑥))

Nói đại khái Dt+1 tăng trọng lượng trên xi nếu ht sai trên xi ; giảm nó trên xi nếu ht đúng.

  • Thuật toán học yếu A.
  • Với t=1,2, … ,T
    • Xây dựng 𝐃𝐭 trên {𝐱𝟏, …, 𝒙𝐦}
    • Chạy A trên Dt tạo ht

Dựng 𝐷𝑡

  • D1 đồng nhất trên {x1, …, xm} [nghĩa là D1(𝑖) = 1⁄𝑚]
  • Cho Dtht đặt 

HÌNH 15.9. Adaboost (Tăng cường thích ứng).

Dt+1 đặt một nửa trọng số cho các mẫu xi khi ht sai & một nửa cho các mẫu ht đúng

cuối cùng hyp: Hfinal(𝑥) = sign(∑𝑡 𝛼𝑡𝑡(𝑥))

bộ phân loại yếu: nửa mặt phẳng dọc hoặc ngang (còn gọi là gốc cây quyết định)

HÌNH 15.10. Adaboost: Một ví dụ đồ chơi.

HÌNH 15.11. Adaboost: Một ví dụ đồ chơi.

HÌNH 15.12. Adaboost: Một ví dụ về đồ chơi.

  • Thuật toán học yếu A.
  • Với t=1,2, … ,T
    • Xây dựng 𝐃𝐭 trên {𝐱𝟏, …, 𝒙𝐦}
    • Chạy A trên Dt tạo ra ht

Dựng 𝐷𝑡

  • D1 đồng nhất trên {x1, …, xm} [nghĩa là D1(𝑖) = 1⁄𝑚]
  • Cho Dtht đặt 

HÌNH 15.13. Adaboost (Tăng cường thích ứng).

Dt+1 đặt một nửa trọng số cho các mẫu xi khi ht sai & một nửa cho các mẫu ht đúng

HYP cuối cùng: Hfinal(𝑥) = sign(∑𝑡 𝛼𝑡𝑡(𝑥))

Các tính năng hay của Adaboost

  • Rất tổng quát: một siêu thủ tục, nó có thể sử dụng bất kỳ thuật toán học yếu nào!!! (ví dụ: Naïve Bayes, các gốc quyết định)
  • Rất nhanh (dữ liệu đi qua một lần trong mỗi vòng) & viết mã đơn giản, không cần điều chỉnh tham số.
  • Thay đổi tư duy: mục tiêu bây giờ chỉ là tìm ra các bộ phân loại tốt hơn một chút so với đoán ngẫu nhiên.
  • Dựa trên lý thuyết phong phú.
  • Phù hợp với thời đại dữ liệu lớn: nhanh chóng tập trung vào “những khó khăn cốt lõi”, rất phù hợp với các cài đặt phân tán, nơi dữ liệu phải được truyền đạt hiệu quả [Balcan-Blum-Fine-Mansour COLT’12].

Định lý 𝜖𝑡 = 1/2 − 𝛾𝑡 (lỗi của 𝑡 trên 𝐷𝑡)

𝑒𝑟𝑟𝑆(𝐻𝑓𝑖𝑛𝑎𝑙) ≤ exp [ −2 ∑𝑡𝛾𝑡2]

Vì vậy, nếu ∀𝑡, 𝛾𝑡 ≥ 𝛾 > 0 thì 𝑒𝑟𝑟𝑆(𝐻𝑓𝑖𝑛𝑎𝑙) ≤ exp[ −2 𝛾2𝑇]

Sai số giảm hàm mũ!!!

Để nhận 𝑒𝑟𝑟𝑆(𝐻𝑓𝑖𝑛𝑎𝑙) ≤ 𝜖, chỉ cần 𝑇 = 𝑂 (1𝛾2 log (1𝜖)) Vòng

Adaboost là thích ứng

  • Không cần biết 𝛾 hoặc T tiên nghiệm
  • Có thể khai thác 𝛾𝑡 ≫  𝛾

Yêu cầu: Dt+1 đặt một nửa trọng lượng lên xi khi ht sai và một nửa trọng số lên xi khi ht đúng.

Nhớ lại 𝐷𝑡+1(𝑖) = 𝐷𝑡(𝑖)𝑍𝑡 e{−𝛼𝑡𝑦𝑖𝑡(𝑥𝑖)}

HÌNH 15.14a. Tìm hiểu các bản cập nhật & chuẩn hóa.

HÌNH 15.14b. Tìm hiểu các bản cập nhật & chuẩn hóa.

Xác suất là như nhau!

Định lý 𝜖𝑡 = 1/2 − 𝛾𝑡 (sai số của 𝑡 trên 𝐷𝑡)

𝑒𝑟𝑟𝑆(𝐻𝑓𝑖𝑛𝑎𝑙) ≤ exp [ −2 ∑𝑡𝛾𝑡2]

  • Ở vòng 𝑡, ta tăng trọng số của 𝑥𝑖𝑡 sai.
  • Nếu 𝐻𝑓𝑖𝑛𝑎𝑙 phân loại sai 𝑥𝑖,
    • Khi đó 𝑥𝑖 được phân loại sai bởi (wtd) đa số 𝑡‘s.
    • Điều đó ngụ ý trọng số xác suất cuối cùng của 𝑥𝑖 lớn.

Có thể cho thấy xác suất 1𝑚 (1⁄𝑡𝑍𝑡)

  • Vì tổng của xác suất = 1, không thể có quá nhiều trọng số cao.

Có thể cho thấy # phân loại sai ≤ 𝑚 (∐𝑡𝑍𝑡).

(∐𝑡𝑍𝑡) → 0.

Bước 1: mở gói lặp lại: 𝐷𝑇+1(𝑖) = 1𝑚 (exp(−𝑦𝑖𝑓(𝑥𝑖))𝑡𝑍𝑡) trong đó 𝑓(𝑥𝑖) = ∑𝑡 𝛼𝑡𝑡(𝑥𝑖). [Phiếu bầu có trọng số không giới hạn của ℎ𝑖 trên 𝑥𝑖 ]

Bước 2 : errS(𝐻𝑓𝑖𝑛𝑎𝑙) ≤ ∐𝑡𝑍𝑡.

Bước 3: 𝑡𝑍𝑡 = ∐𝑡 2 √𝜖𝑡 (1 − 𝜖𝑡) = ∐𝑡1 − 4𝛾𝑡2 ≤ 𝑒−2 ∑𝑡 𝛾𝑡2

Bước 1: mở gói lặp lại: 𝐷𝑇+1(𝑖) = 1𝑚 (exp(−𝑦𝑖𝑓(𝑥𝑖))𝑡𝑍𝑡) trong đó 𝑓(𝑥𝑖) = ∑𝑡 𝛼𝑡𝑡(𝑥𝑖).

Nhớ lại 𝐷1(𝑖) = 1𝑚 và 𝐷𝑡+1(𝑖) = 𝐷𝑡(𝑖) exp(−𝑦𝑖𝛼𝑡𝑡(𝑥𝑖))𝑍𝑡

HÌNH 15.15. Phân tích lỗi huấn luyện: Toán chứng minh.

Bước 1: mở gói lặp lại: 𝐷𝑇+1(𝑖) = 1𝑚 (exp(−𝑦𝑖𝑓(𝑥𝑖))𝑡𝑍𝑡) trong đó 𝑓(𝑥𝑖) = ∑𝑡 𝛼𝑡𝑡(𝑥𝑖).

Bước 2: errS(𝐻𝑓𝑖𝑛𝑎𝑙) ≤ ∐𝑡𝑍𝑡.

HÌNH 15.16. Phân tích lỗi huấn luyện: Toán chứng minh.

mất hàm mũ

Bước 1: mở gói lặp lại: 𝐷𝑇+1(𝑖) = 1𝑚 (exp(−𝑦𝑖𝑓(𝑥𝑖))𝑡𝑍𝑡) trong đó 𝑓(𝑥𝑖) = ∑𝑡 𝛼𝑡𝑡(𝑥𝑖).

Bước 2: errS(𝐻𝑓𝑖𝑛𝑎𝑙) ≤ ∐𝑡𝑍𝑡.

Bước 3: 𝑡𝑍𝑡 = ∐𝑡 2 √𝜖𝑡 (1 − 𝜖𝑡) = ∐𝑡1 − 4𝛾𝑡2 ≤ 𝑒−2 ∑𝑡 𝛾𝑡2

Lưu ý: nhớ lại 𝑍𝑡 = (1 − 𝜖𝑡)𝑒−𝛼𝑡 + 𝜖𝑡𝑒𝛼𝑡 = 2 √𝜖𝑡 (1 − 𝜖𝑡)

𝛼𝑡 cực tiểu của 𝛼 → (1 − 𝜖𝑡)𝑒−𝛼 + 𝜖𝑡𝑒𝛼

Định lý 𝜖𝑡 = 1/2 − 𝛾𝑡 (sai số của 𝑡 trên 𝐷𝑡)

𝑒𝑟𝑟𝑆(𝐻𝑓𝑖𝑛𝑎𝑙) ≤ exp [ −2 ∑𝑡𝛾𝑡2]

  • Ở vòng 𝑡, ta tăng trọng số của 𝑥𝑖𝑡 sai.
  • Nếu 𝐻𝑓𝑖𝑛𝑎𝑙 phân loại sai 𝑥𝑖,
    • Khi đó 𝑥𝑖 được phân loại sai bởi (wtd) đa số 𝑡’s.
    • Điều đó ngụ ý trọng số xác suất cuối cùng của 𝑥𝑖 lớn.

Có thể cho thấy xác suất 1𝑚 (1⁄𝑡𝑍𝑡)

  • Vì tổng của xác suất = 1, không thể có quá nhiều trọng số cao.

Có thể cho thấy # phân loại sai ≤ 𝑚 (∐𝑡𝑍𝑡).

(∐𝑡𝑍𝑡) → 0.

Định lý 𝑒𝑟𝑟𝑆(𝐻𝑓𝑖𝑛𝑎𝑙) ≤ exp [ −2 ∑𝑡𝛾𝑡2] trong đó 𝜖𝑡 = 1/2 − 𝛾𝑡

Làm thế nào về đảm bảo tổng quát?HÌNH 15.17. Đảm bảo khái quát hóa.

Giải tích ban đầu [Freund&Schapire’97]

  • Không gian H của các giả thuyết yếu; d=VCdim(H)

𝐻𝑓𝑖𝑛𝑎𝑙 là một phiếu bầu có trọng số, vì vậy lớp giả thuyết là:

G = {tất cả các fns của dấu hiệu biểu mẫu sign(∑𝑇𝑡=1 𝛼𝑡𝑡(𝑥))}

Định lý [Freund & Schapire’97]

∀ 𝑔 ∈ 𝐺, 𝑒𝑟𝑟(𝑔) ≤ 𝑒𝑟𝑟𝑆(𝑔) + 𝑂 (√𝑇𝑑𝑚) T= # vòng

Lý do chính: VCd𝑖𝑚(𝐺) = 𝑂(𝑑𝑇) cộng với các giới hạn VC điển hình.

Định lý [Freund&Schapire’97]

∀ 𝑔 ∈ 𝑐𝑜(𝐻), 𝑒𝑟𝑟(𝑔) ≤ 𝑒𝑟𝑟𝑆(𝑔) + 𝑂 (√𝑇𝑑𝑚) trong đó d=VCdim(H)

HÌNH 15.18. Đảm bảo tổng quát hóa.

lỗi huấn luyện

lỗi tổng quát

T= # vòng

Đảm bảo tổng quát hóa

  • Các thử nghiệm với việc tăng cường cho thấy lỗi kiểm tra của bộ phân loại được tạo ra thường không tăng khi kích thước của nó trở nên rất lớn.
  • Thực nghiệm cho thấy việc tiếp tục thêm mới các học viên yếu kém sau khi phân loại đúng tập huấn luyện đã đạt được có thể cải thiện hơn nữa hiệu suất của bộ kiểm tra!!!

HÌNH 15.19. Đảm bảo tổng quát hóa.

Đảm bảo tổng quát hóa

  • Các thử nghiệm với việc tăng cường cho thấy lỗi kiểm tra của 
    bộ phân loại được tạo ra thường không tăng khi kích thước của nó trở nên rất lớn.
  • Các thử nghiệm cho thấy rằng việc tiếp tục thêm những học viên yếu mới sau khi đã đạt được phân loại chính xác của tập huấn luyện có thể cải thiện hơn nữa hiệu suất của tập kiểm tra!!!
  • Những kết quả này dường như mâu thuẫn với FS’87 bound và Occam’s razor (để đạt được lỗi kiểm tra tốt, bộ phân loại phải càng đơn giản càng tốt)!

R. Schapire, Y. Freund, P. Bartlett, WS Lee. trình bày trong “Tăng tỷ suất lợi nhuận: Một lời giải thích mới về tính hiệu quả của các phương pháp bỏ phiếu” một lời giải thích lý thuyết hay.

Ý tưởng chính:

Leave a Reply

Your email address will not be published. Required fields are marked *