học sâu cho các nhiệm vụ phi hình ảnh phi NLP?


12

Cho đến nay có nhiều ứng dụng thú vị để học sâu về thị giác máy tính hoặc xử lý ngôn ngữ tự nhiên.

Làm thế nào là nó trong các lĩnh vực truyền thống khác? Ví dụ, tôi có các biến nhân khẩu học xã hội truyền thống cộng với có thể rất nhiều phép đo trong phòng thí nghiệm và muốn dự đoán một bệnh nào đó. Đây sẽ là một ứng dụng học tập sâu nếu tôi có nhiều quan sát? Làm thế nào tôi có thể xây dựng một mạng ở đây, tôi nghĩ rằng tất cả các lớp ưa thích (tích chập, v.v.) không thực sự cần thiết?! Chỉ cần làm cho nó sâu?

Trên tập dữ liệu cụ thể của tôi, tôi đã thử một số thuật toán học máy phổ biến như rừng ngẫu nhiên, gbm, v.v với kết quả hỗn hợp về độ chính xác. Tôi đã hạn chế kinh nghiệm học tập sâu với nhận dạng hình ảnh.


1
Bạn có thể tốt hơn khi nhìn vào một cách tiếp cận khác, ví dụ XGBoost, tùy thuộc vào mức độ "nhiều quan sát". Bạn có thể làm rõ liệu mục tiêu của bạn là đặc biệt để thử các phương pháp học tập sâu, hay để có được độ chính xác tốt nhất?
Neil Slater

@NeilSlater mục tiêu của tôi sẽ đạt được độ chính xác cao hơn các phương thức đã được thiết lập như xgboost, nếu điều đó là có thể trong trường hợp như vậy
spore234

1
Có thể, nhưng theo kinh nghiệm của tôi thì không thể trừ khi bạn thực sự có nhiều dữ liệu.
Neil Slater

Matlab cung cấp tài liệu về "Thủ thuật và mẹo học tập sâu". Tôi đã có cùng một câu hỏi và trang cung cấp hướng dẫn rất hữu ích cùng với các ví dụ hay. ví dụ bạn có thể cần phân loại / hồi quy chuỗi theo trình tự / chuỗi thời gian bằng cách học sâu.
Sami Navesi

Câu trả lời:


10

Có, bạn có thể sử dụng các kỹ thuật học sâu để xử lý dữ liệu phi hình ảnh. Tuy nhiên, các lớp mô hình khác vẫn rất cạnh tranh với các mạng thần kinh bên ngoài xử lý tín hiệu và các nhiệm vụ liên quan.

Để sử dụng các phương pháp học sâu về dữ liệu phi tín hiệu / không theo chuỗi, thông thường bạn sử dụng mạng nhiều lớp chuyển tiếp đơn giản. Không cần các lớp chập hoặc lớp gộp. Kiến trúc tốt nhất ngoài điều đó cần được khám phá với xác nhận chéo và có thể tốn thời gian để khám phá vì các NN sâu cần rất nhiều tính toán để đào tạo.

Theo kinh nghiệm của tôi, tôi đã cố gắng sử dụng các mạng thần kinh sâu (-ish, thường là ~ 5 lớp) trong các cuộc thi Kaggle:

  • Bỏ học vẫn có hiệu quả cao để thường xuyên hóa và cải thiện độ chính xác

  • Chuẩn hóa đầu vào - thường có nghĩa là 0, độ lệch chuẩn 1, rất quan trọng

  • Các chức năng kích hoạt lớp ẩn có thể tạo sự khác biệt. Mặc dù ReLU giảm một số vấn đề với độ dốc biến mất, nhưng theo kinh nghiệm của tôi, nó không mạnh mẽ hơn với dữ liệu không có tín hiệu và bạn sẽ muốn một số dạng khác. Nếu bạn chỉ có một vài lớp thì sigmoid hoặc tanh vẫn hoạt động tốt. Mặt khác, xem xét các biến thể ReLU, PReLU, ELU và các biến thể ReLU bị rò rỉ khác cố gắng khắc phục các vấn đề của nó với các tế bào thần kinh "đã chết".

  • Sử dụng các trình tối ưu hóa được thiết kế để học sâu, chẳng hạn như Adam, Adagrad hoặc RMSProp

  • Sử dụng phương pháp khởi tạo trọng lượng hoạt động với học tập sâu, chẳng hạn như Glorot.

  • Cân nhắc sử dụng các lớp Batch Chuẩn hóa. Không phải là thứ tôi có nhiều kinh nghiệm, nhưng tôi đã thấy những người khác làm tốt với phương pháp này.

Bất chấp tất cả những điều này, XGBoost có thể thường xuyên và dễ dàng đánh bại các NN sâu với nỗ lực điều chỉnh và đào tạo tối thiểu để so sánh (tất nhiên tùy thuộc vào vấn đề và dữ liệu bạn có). Nếu độ chính xác là tất cả đối với bạn, thì có thể - mặc dù không được bảo đảm - rằng một nhóm gồm các NN sâu và mô hình khác như XGBoost sẽ hoạt động tốt hơn so với đơn lẻ.


1

Một mạng có thể phù hợp cho mục đích phân loại. Đối với điều này, bạn cần có khả năng xác định tập huấn luyện và tập kiểm tra dữ liệu của bạn đại diện cho dữ liệu mà mạng sẽ được yêu cầu phân loại trong sản xuất. Điều này xác định xem bạn có thể có được một mạng lưới xấu, hợp lý hay hoạt động tốt.

Tôi coi các thuật ngữ là "học sâu" là sai lệch: một mạng không học, bạn chỉ có thể đào tạo nó.

Giả sử bạn có thể tạo một tập huấn luyện và kiểm tra, ở cấp độ cao, bạn có thể sử dụng một

  • Nhiều lớp: nếu dữ liệu của bạn không có thứ tự và các cấu trúc có một vị trí cố định.

  • Mạng đệ quy: nếu thứ tự của dữ liệu có tầm quan trọng đối với việc phân loại

  • Chuyển đổi: nếu dữ liệu của bạn có cấu trúc như trong ảnh nhưng không có vị trí cố định.

Để có một thiết lập tốt, như số lớp, yêu cầu thử và lỗi; nó là một loại ma thuật đen

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.