Tại sao các mạng thần kinh cần lựa chọn tính năng / kỹ thuật?


14

Đặc biệt trong bối cảnh các cuộc thi kaggle tôi đã nhận thấy rằng hiệu suất của mô hình là tất cả về lựa chọn / kỹ thuật. Mặc dù tôi hoàn toàn có thể hiểu lý do tại sao trong trường hợp đó khi xử lý các thuật toán ML thông thường / cũ hơn, tôi không hiểu tại sao điều này lại xảy ra khi sử dụng các mạng thần kinh sâu.

Trích dẫn cuốn sách Deep Learning:

Học sâu giải quyết vấn đề trung tâm này trong học tập đại diện bằng cách giới thiệu các biểu diễn được thể hiện dưới dạng các biểu diễn khác, đơn giản hơn. Học sâu cho phép máy tính xây dựng các khái niệm phức tạp từ các khái niệm đơn giản hơn.

Do đó tôi luôn nghĩ rằng nếu "thông tin có trong dữ liệu", một mạng lưới thần kinh được tham số hóa đủ sâu sẽ nhận được các tính năng phù hợp với thời gian đào tạo đủ.


4
bộ não của bạn vẫn mạnh hơn một cỗ máy, vì vậy một chút giúp đỡ của con người đi một chặng đường dài
Aksakal

Ai nói họ cần lựa chọn tính năng / kỹ thuật? bạn có thể cho bất kỳ tài liệu tham khảo? Khi bạn làm việc với hình ảnh, chúng hoạt động khá nhiều từ đầu đến cuối ...

@ user2137591 đó là điểm chính. Tôi có một ấn tượng rằng trong mạng lưới thần kinh văn học thường được mô tả như một bước tiến so với học máy thông thường khi chúng được cho là tự động hóa kỹ thuật và lựa chọn (theo ngụ ý của Goodfellow, Bengio, Courville trong cuốn sách Deep Learning). Điều này đúng trong nhiều nhiệm vụ trong CV hoặc NLP nơi tôi tin rằng thông tin vẫn còn khan hiếm. Mặt khác, trong khoa học dữ liệu cạnh tranh (kaggle), nơi có rất nhiều dữ liệu ồn ào, một niềm tin phổ biến là yếu tố quan trọng nhất trong việc xây dựng một giải pháp cạnh tranh là tìm ra "tính năng kỳ diệu".
CephasW

Tôi có thể nói cho CompVis, nơi tôi không thể nhớ bất kỳ dự án nào làm kỹ thuật tính năng để cung cấp cho các mạng sau đó ... điều này cũng đúng với dữ liệu hình ảnh y tế, trong đó chất lượng hình ảnh thường thấp hơn. có lẽ điều này là khác nhau trong các lĩnh vực khác ... bạn có bất kỳ giấy tờ hoặc bất kỳ nguồn được xuất bản nào bạn có thể tham khảo về vấn đề này? Tôi sẽ đánh giá cao nó, cảm ơn.

Câu trả lời:


18
  • Điều gì sẽ xảy ra nếu mạng "đủ sâu" cực kỳ lớn, hoặc khiến việc đào tạo mô hình trở nên quá tốn kém (phí AWS cộng lại!) Hoặc do bạn cần triển khai mạng trong môi trường hạn chế tài nguyên?

  • Làm thế nào bạn có thể biết, một tiên nghiệm rằng mạng được tham số hóa tốt? Có thể mất rất nhiều thử nghiệm để tìm ra một mạng hoạt động tốt.

  • Điều gì xảy ra nếu dữ liệu bạn làm việc không "thân thiện" với các phương pháp phân tích tiêu chuẩn, chẳng hạn như một chuỗi nhị phân bao gồm hàng ngàn hoặc hàng triệu bit, trong đó mỗi chuỗi có độ dài khác nhau?

  • Điều gì xảy ra nếu bạn quan tâm đến dữ liệu cấp độ người dùng, nhưng bạn buộc phải làm việc với cơ sở dữ liệu chỉ thu thập dữ liệu cấp độ giao dịch?

  • Giả sử dữ liệu của bạn là dạng số nguyên, chẳng hạn như và nhiệm vụ của bạn là dự đoán tổng các chữ số, vì vậy mục tiêu trong ví dụ này là . Thật đơn giản để phân tích từng chữ số thành một mảng và sau đó tính tổng mảng ("kỹ thuật tính năng") nhưng lại thách thức khác.12,32,486,73,5,18,7

Chúng tôi muốn sống trong một thế giới nơi phân tích dữ liệu là "chìa khóa trao tay", nhưng những loại giải pháp này thường chỉ tồn tại trong những trường hợp đặc biệt. Rất nhiều công việc đã đi vào việc phát triển các CNN sâu để phân loại hình ảnh - công việc trước đó có một bước biến mỗi hình ảnh thành một vectơ có độ dài cố định.

Kỹ thuật tính năng cho phép người thực hành trực tiếp chuyển đổi kiến ​​thức về vấn đề thành một vectơ có độ dài cố định có thể điều chỉnh được thành các mạng chuyển tiếp. Lựa chọn tính năng có thể giải quyết vấn đề bao gồm rất nhiều tính năng không liên quan đến mức bất kỳ tín hiệu nào bị mất, cũng như giảm đáng kể số lượng tham số cho mô hình.


6

Các từ khóa ở đây là linh mụcquy mô . Ví dụ đơn giản, hãy tưởng tượng bạn đang cố gắng dự đoán tuổi của một người từ một bức ảnh. Với bộ dữ liệu hình ảnh và độ tuổi, bạn có thể đào tạo một mô hình học sâu để đưa ra dự đoán. Điều này là khách quan thực sự không hiệu quả vì 90% hình ảnh là vô dụng, và chỉ có khu vực với người thực sự hữu ích. Đặc biệt, khuôn mặt của người đó, cơ thể của họ và có thể là quần áo của họ.

Mặt khác, thay vào đó, bạn có thể sử dụng mạng phát hiện đối tượng được đào tạo trước để trích xuất các hộp giới hạn cho người đó, cắt hình ảnh và sau đó chuyển qua mạng. Quá trình này sẽ cải thiện đáng kể độ chính xác của mô hình của bạn vì một số lý do:

1) Tất cả các tài nguyên mạng (nghĩa là trọng lượng) có thể tập trung vào nhiệm vụ thực tế của dự đoán tuổi, trái ngược với việc trước tiên phải tìm người trước. Điều này đặc biệt quan trọng vì khuôn mặt của người đó chứa các tính năng hữu ích. Mặt khác, các tính năng tốt hơn mà bạn cần có thể bị mất trong một vài lớp đầu tiên. Về lý thuyết, một mạng đủ lớn có thể giải quyết điều này, nhưng nó sẽ không hiệu quả. Hình ảnh được cắt cũng thường xuyên hơn đáng kể so với hình ảnh gốc. Trong khi hình ảnh gốc có rất nhiều nhiễu, có thể cho rằng sự khác biệt trong hình ảnh bị cắt có tương quan cao hơn nhiều với mục tiêu.

2) Hình ảnh được cắt có thể được chuẩn hóa để có cùng tỷ lệ . Điều này giúp mạng thứ hai xử lý các vấn đề mở rộng, bởi vì trong ảnh gốc, mọi người có thể xảy ra gần hoặc xa. Bình thường hóa tỷ lệ trước làm cho nó để hình ảnh được cắt được đảm bảo có một người trong đó lấp đầy hình ảnh được cắt hoàn toàn (mặc dù được làm mờ nếu chúng ở xa). Để xem làm thế nào điều này có thể giúp chia tỷ lệ, phần thân bị cắt có một nửa chiều rộng và chiều cao của ảnh gốc có ít pixel gấp 4 lần để xử lý và do đó, cùng một mạng được áp dụng cho hình ảnh này sẽ có gấp 4 lần trường tiếp nhận của mạng ban đầu ở mỗi lớp.

Ví dụ, trong cuộc thi kaggle phổi, một chủ đề phổ biến trong các giải pháp hàng đầu là một số loại tiền xử lý trên hình ảnh phổi đã cắt chúng càng nhiều càng tốt và cô lập các thành phần của mỗi phổi. Điều này đặc biệt quan trọng trong hình ảnh 3D vì hiệu ứng là hình khối: bằng cách loại bỏ 20% mỗi chiều, bạn sẽ thoát khỏi gần một nửa pixel!


4

Trực giác của tôi về hiện tượng này được kết nối với sự phức tạp của mô hình sẽ được học. Một mạng lưới thần kinh sâu thực sự có thể xấp xỉ bất kỳ chức năng nào trong lý thuyết , nhưng kích thước của không gian tham số có thể thực sự lớn, giống như trong hàng triệu. Vì vậy, thực sự tìm thấy một mạng lưới thần kinh tốt là thực sự khó khăn. Tôi thích nghĩ về kỹ thuật tính năng như khởi đầu cho thuật toán, cung cấp cho nó một số thông tin bổ sung liên quan đến biểu diễn dữ liệu đủ tốt theo một nghĩa nào đó. Tất nhiên, đây không phải là một lời giải thích chính thức, câu hỏi này có thể thực sự khó trả lời với sự chặt chẽ khoa học.

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.