2013-05-02 37 views
9

Sau khi sử dụng OpenCV cho boosting Tôi đang cố gắng triển khai phiên bản của riêng mình về thuật toán Adaboost (hãy kiểm tra here, herethe original paper để biết một số tham chiếu).Lựa chọn tham số trong Adaboost

Bằng cách đọc tất cả tài liệu tôi đã đưa ra một số câu hỏi liên quan đến việc triển khai thuật toán.

1) Tôi không rõ ràng về cách tính trọng số a_t của từng người học yếu.

Trong tất cả các nguồn tôi đã chỉ ra lựa chọn là a_t = k * ln((1-e_t)/e_t), k là hằng số dương và e_t tỷ lệ lỗi của người học yếu cụ thể.

Ở trang 7 của số này source nó nói rằng giá trị cụ thể đó giảm thiểu một hàm lồi nhất định, nhưng tôi thực sự không hiểu đoạn văn.

  • Có ai vui lòng giải thích cho tôi không?

2) Tôi có một số nghi ngờ về quy trình cập nhật trọng lượng của các mẫu đào tạo.

Rõ ràng nó phải được thực hiện theo cách như vậy để đảm bảo rằng chúng vẫn là phân phối xác suất. Tất cả các tài liệu tham khảo áp dụng lựa chọn này:

D_ {t + 1} (i) = D_ {t} (i) * e^(- a_t y_i h_t (x_i))/Z_t (nơi Z_t là a yếu tố chuẩn hóa được chọn sao cho D_ {t + 1} là phân phối).

  • Nhưng tại sao là sự lựa chọn đặc biệt của bản cập nhật trọng lượng chất nhân với số mũ của tỷ lệ lỗi do người học yếu cụ thể không?
  • Có bản cập nhật nào khác có thể không? Và nếu có thì có bằng chứng cho thấy bản cập nhật này đảm bảo một số loại tối ưu của quá trình học tập không?

Tôi hy vọng đây là nơi thích hợp để đăng câu hỏi này, nếu không vui lòng chuyển hướng tôi!
Cảm ơn trước vì bất kỳ trợ giúp nào bạn có thể cung cấp.

+0

Bạn có quen thuộc với việc tối ưu hóa lồi không? Nếu không, giải thích đoạn văn này sẽ mất một thời gian (một khóa học đại học về tối ưu hóa có một học kỳ) – AlexK

+0

Có thể có một chương trình cập nhật trọng lượng khác nếu bạn chọn một chức năng khách quan khác (tra cứu hàm mục tiêu) trong sách tối ưu hóa lồi) . Đối với một lược đồ cập nhật trọng lượng khác của google "LogitBoost", để có hướng dẫn về tối ưu hóa lồi xem http://www.stanford.edu/~boyd/cvxbook/ – AlexK

+0

@AlexK - Tôi quen với việc tối ưu hóa lồi, nhưng tôi vẫn cần một số giải thích. Bạn có thể giúp tôi được không? – Matteo

Trả lời

1

1) Câu hỏi đầu tiên của bạn:

a_t = k * ln((1-e_t)/e_t) 

Kể từ khi lỗi trên dữ liệu huấn luyện được bao bọc bởi sản phẩm của Z_t) alpha), và Z_t (alpha) là lồi w.r.t. alpha, và do đó chỉ có một alpha tối ưu "toàn cầu" giúp giảm thiểu phần trên của lỗi. Đây là trực giác về cách bạn tìm thấy ma thuật "alpha"

2) Câu hỏi thứ hai của bạn: Nhưng tại sao sự lựa chọn đặc biệt là cập nhật trọng số nhân với số mũ của tỷ lệ lỗi của người học yếu?

Để cắt ngắn: cách trực quan để tìm alpha ở trên thực sự cải thiện độ chính xác. Điều này không có gì đáng ngạc nhiên: bạn thực sự tin tưởng nhiều hơn (bằng cách cho trọng số alpha lớn hơn) của những người học giỏi hơn những người khác, và tin tưởng ít hơn (bằng cách cho alpha nhỏ hơn) cho những người làm việc tệ hơn.Đối với những học viên xông không có kiến ​​thức mới hơn so với những người học trước, bạn chỉ định trọng lượng alpha bằng 0.

Có thể chứng minh (xem) mà tăng giả thuyết lỗi đào tạo năng suất chính thức giáp

exp(-2 \sigma_t (1/2 - epsilon_t)^2) 

3) Câu hỏi thứ 3 của bạn: Có bất kỳ bản cập nhật nào khác có thể không? Và nếu có thì có bằng chứng cho thấy bản cập nhật này đảm bảo một số loại tối ưu của quá trình học tập không?

Điều này khó nói. Nhưng chỉ cần nhớ ở đây bản cập nhật đang cải thiện độ chính xác trên "dữ liệu đào tạo" (có nguy cơ quá mức), nhưng khó nói về tính tổng quát của nó.

Các vấn đề liên quan