Lựa chọn tính năng sử dụng học tập sâu?


9

Tôi muốn tính toán tầm quan trọng của từng tính năng đầu vào bằng mô hình sâu.

Nhưng tôi chỉ tìm thấy một bài viết về lựa chọn tính năng bằng cách học sâu - lựa chọn tính năng sâu . Họ chèn một lớp nút được kết nối trực tiếp với từng tính năng, trước lớp ẩn đầu tiên.

Tôi nghe nói rằng mạng lưới niềm tin sâu sắc (DBN) cũng có thể được sử dụng cho loại công việc này. Nhưng tôi nghĩ, DBN chỉ cung cấp trừu tượng (cụm) các tính năng như PCA, vì vậy mặc dù nó có thể giảm kích thước một cách hiệu quả, tôi tự hỏi rằng liệu có thể tính được tầm quan trọng (trọng lượng) của từng tính năng hay không.

Có thể calcualte tầm quan trọng tính năng với DBN? Và có phương pháp nào khác để lựa chọn tính năng sử dụng học sâu không?

Câu trả lời:


10

Một cách tiếp cận bạn có thể thực hiện cho hầu hết mọi mô hình dự đoán là trước tiên hãy huấn luyện mô hình của bạn và tìm độ chính xác của nó, sau đó cho một đầu vào thêm một chút nhiễu vào nó và kiểm tra lại độ chính xác. Lặp lại điều này cho mỗi đầu vào và quan sát làm thế nào tiếng ồn làm xấu đi các dự đoán. Nếu một đầu vào là quan trọng thì sự không chắc chắn thêm do tiếng ồn sẽ gây bất lợi.

Hãy nhớ đặt phương sai của nhiễu tỷ lệ với phương sai của đầu vào trong câu hỏi.

Tất nhiên tiếng ồn là ngẫu nhiên và bạn không muốn một đầu vào xuất hiện không quan trọng do hiệu ứng ngẫu nhiên. Nếu bạn có một vài ví dụ đào tạo thì hãy cân nhắc nhiều lần tính toán thay đổi độ chính xác cho từng ví dụ đào tạo với tiếng ồn mới được thêm vào mỗi lần.

Đáp lại các ý kiến:

Phân tích này cũng có thể được thực hiện bằng cách loại bỏ hoàn toàn một biến nhưng điều này có một số nhược điểm so với việc thêm nhiễu.

  • Giả sử rằng một trong những đầu vào của bạn là hằng số, nó hoạt động như một thuật ngữ thiên vị để nó có một số vai trò trong dự đoán nhưng nó không thêm thông tin. Nếu bạn loại bỏ hoàn toàn đầu vào này thì dự đoán sẽ trở nên kém chính xác hơn vì các tri giác đang nhận sai lệch. Điều này làm cho đầu vào trông giống như nó rất quan trọng để dự đoán mặc dù nó không thêm thông tin. Thêm tiếng ồn sẽ không gây ra vấn đề này. Điểm đầu tiên này không phải là vấn đề nếu bạn đã chuẩn hóa tất cả các đầu vào có giá trị trung bình bằng không.

  • Nếu hai đầu vào tương quan thì thông tin về một đầu vào sẽ cung cấp thông tin về đầu vào kia. Một mô hình có thể được đào tạo tốt nếu bạn chỉ sử dụng một trong các đầu vào tương quan để bạn muốn phân tích thấy rằng một đầu vào không hữu ích. Nếu bạn chỉ loại bỏ một trong những đầu vào sau đó, giống như điểm đầu tiên được thực hiện, độ chính xác dự đoán sẽ giảm đi rất nhiều cho thấy điều đó quan trọng. Tuy nhiên, thêm tiếng ồn sẽ không gây ra vấn đề này.


2
Hugh, tôi quen với việc làm điều đó bằng cách loại bỏ tính năng này. Những lợi thế của việc thay thế tính năng bằng tiếng ồn là gì?
DaL

@ Tôi không có nghĩa là tính năng này nên được thay thế hoàn toàn bằng tiếng ồn, chỉ cần thêm một số tiếng ồn. Xóa một tính năng có thể làm cho các tính năng không quan trọng trở nên quan trọng nếu chúng có ý nghĩa khác không hoặc nếu chúng có tương quan với các biến khác. Tôi đã chỉnh sửa câu trả lời của mình để giải thích.
Hugh

Cảm ơn bạn đã bình luận. Nhưng trên thực tế tôi có một số bộ tính năng (đầu vào) và nhiều trong số chúng có tương quan. Trong trường hợp này, có thể thời gian tính toán sẽ gần với n! như tôi cần xem xét các kết hợp. Vì vậy, tôi muốn áp dụng mô hình dựa trên học tập sâu có thể xem xét các kết hợp tính năng phức tạp.
z991

@ z991 trong hồi quy tuyến tính đa biến, cùng một vấn đề có thể xảy ra với các biến không tương quan hoàn hảo. Thông thường chúng tôi giới thiệu từng biến một tại một thời điểm hoặc sử dụng tất cả các biến và loại bỏ từng biến một. Không có cách nào đơn giản để tính toán sự kết hợp tốt nhất. Nếu điều đó chưa được giải quyết cho hồi quy tuyến tính, bạn sẽ không tìm thấy giải pháp cho NN. Bạn có thể thực hiện cùng một cách tiếp cận và loại bỏ từng biến một và tránh n! tính toán.
Hugh

1
@Huge Cảm ơn bạn đã bình luận. Tôi đồng ý với bạn. Nhưng điều tôi thực sự muốn biết là làm thế nào để tính toán tầm quan trọng của từng tính năng với việc học sâu hay mạng lưới thần kinh. Khi họ sử dụng một số trích xuất tính năng (các lớp ẩn), tôi rất khó phân tích tầm quan trọng của tính năng. Có thể tính toán toàn bộ trọng lượng của từng tính năng, nhưng có vẻ như nó khá phức tạp và tốn thời gian. Bài viết được liên kết đã sử dụng một lớp tuyến tính duy nhất và tôi nghĩ đó là một ý tưởng tốt. Tôi muốn biết các phương pháp khác tốt hơn để phân tích tầm quan trọng của tính năng trên mạng.
z991

2

Có thể kiểm tra giấy này: https://arxiv.org/pdf/1712.08645.pdf

Họ sử dụng bỏ học để xếp hạng các tính năng.

... Trong công việc này, chúng tôi sử dụng khái niệm Dropout trên lớp tính năng đầu vào và tối ưu hóa tỷ lệ bỏ qua tính năng tương ứng. Vì mỗi tính năng được loại bỏ một cách ngẫu nhiên, phương pháp của chúng tôi tạo ra hiệu ứng tương tự như tính năng đóng bao (Ho, 1995) và quản lý để xếp hạng các tính năng tương quan tốt hơn các phương pháp không đóng bao khác như LASSO. Chúng tôi so sánh phương pháp của chúng tôi với Rừng ngẫu nhiên (RF), LASSO, ElasticNet, xếp hạng cận biên và một số kỹ thuật để đạt được tầm quan trọng trong DNN như Lựa chọn tính năng sâu và các phương pháp phỏng đoán khác nhau ...


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.