Mạng thần kinh cho hồi quy đầu ra đa


10

Tôi có một bộ dữ liệu chứa 34 cột đầu vào và 8 cột đầu ra. Một cách để giải quyết vấn đề là lấy 34 đầu vào và xây dựng mô hình hồi quy riêng cho từng cột đầu ra. Tôi tự hỏi liệu vấn đề này có thể được giải quyết chỉ bằng một mô hình đặc biệt là sử dụng Mạng thần kinh.

Tôi đã sử dụng một perceptron đa lớp, nhưng cần nhiều mô hình giống như hồi quy tuyến tính. Trình tự học tập trình tự 1 có thể là một lựa chọn khả thi? Tôi đã thử sử dụng TensorFlow nhưng dường như không thể xử lý các giá trị float.

Bất kỳ đề xuất nào để giải quyết vấn đề này bằng cách chỉ sử dụng một mô hình hợp nhất đặc biệt sử dụng mạng thần kinh sẽ được đánh giá cao.

  1. Ilya Sutskever, Oriol Vinyals, & Quốc V. Lê (2014). Trình tự học liên tục với mạng nơ ron. Những tiến bộ trong hệ thống xử lý thông tin thần kinh , 27. ( pdf )

Là những gì các vấn đề?
TEG - Tái lập Monica

1
(Để bất kỳ cử tri gần tiềm năng: Đây không phải là một câu hỏi lập trình Nó sẽ là off topic trên. Stack Overflow .)
gung - Khôi phục Monica

Bạn có thể làm rõ tùy chọn "trình tự để trình tự" ở đây? Tôi không biết liệu nó có quen thuộc với những người làm việc với NN không, nhưng nó không phải với tôi.
gung - Phục hồi Monica

Trình tự mô hình hóa trình tự bằng RNN. tờ giấy.nips.cc / apers / từ
sjishan

Bạn có thể thử MultiOutputRegressor (). Điều này hoạt động cho loại vấn đề này
Subham Sarkar

Câu trả lời:


6

Một mạng lưới thần kinh với nhiều kết quả có dạng

Y=γ+V1Γ1+ϵV1=a(γ2+V2Γ2)V2=a(γ3+V3Γ3)VL1=a(γL+XΓL)
Nếu kết quả của bạn có kích thước , sau đó [ γ 1 , Γ 1 ] sẽ có kích thước ( p V 1 + 1 ) × 8 .N×8[γ1,Γ1](pV1+1)×8

Điều đó có nghĩa là bạn sẽ giả sử rằng mỗi kết quả chia sẻ TẤT CẢ các tham số trong các lớp ẩn và chỉ có các tham số khác nhau để lấy biến dẫn xuất cao nhất và liên quan đến kết quả.

Đây có phải là một giả định thực tế cho bối cảnh của bạn?


4

Lúc đầu, tôi nghĩ rằng bình luận của generic_user là một công cụ chặn show, nhưng tôi chỉ nhận ra rằng nó không phải là:

Nếu tôi đào tạo d mạng khác nhau trên d đầu ra khác nhau, thì mỗi mạng sẽ phù hợp với kích thước đó mà không liên quan đến các mạng khác.

Nhưng nếu tôi huấn luyện một mạng có đầu ra d và sử dụng tất cả các đầu ra để truyền bá, thì mỗi trọng số trong mỗi lớp trong mạng sẽ được điều chỉnh sao cho tất cả d đầu ra chính xác hơn.

Đó là: Mỗi tham số mạng sẽ được điều chỉnh bằng một tổng số độ dốc (cách mỗi đầu ra thay đổi với một " lung " trong tham số này) sao cho việc điều chỉnh nó theo hướng lên hoặc xuống đã chọn sẽ tạo ra tổng thể đầu ra chính xác hơn - ngay cả khi điều chỉnh trọng lượng theo cách đó làm cho một số kích thước của đầu ra là ít chính xác.

Vì vậy, vâng, điều cuối cùng phân biệt mỗi đầu ra chỉ là một phương trình tuyến tính được mã hóa ở lớp cuối cùng, nhưng khi đào tạo một mạng đa đầu ra, mỗi lớp sẽ trở nên tốt hơn khi trình bày lớp cuối cùng với thứ gì đó cho phép nó làm việc tốt hơn . Và do đó, theo sau các mối quan hệ giữa các đầu ra sẽ được tính theo kiến ​​trúc này.

Bạn có thể có thể làm tốt hơn mạng được kết nối đầy đủ bằng cách làm cho kiến ​​trúc của bạn phản ánh bất kỳ mối quan hệ đã biết nào ở đầu ra, giống như các mạng sâu làm tốt hơn các mạng nông bằng cách khai thác các mối quan hệ "kết hợp" giữa các đầu vào .


Hồi quy đa biến cho rằng có một số ma trận hiệp phương sai (chưa biết) có liên quan đến các biến mục tiêu đó với nhau. Bạn có gợi ý rằng chỉ cần có một lớp dày đặc là đủ để nắm bắt được hiệp phương sai này mà không cần rõ ràng bao gồm (các) lớp ẩn?
thecity2

Tôi đề nghị rằng các lớp ẩn phải nắm bắt được một số hiệp phương sai đó. Một lớp đầu ra dày đặc chỉ là một nhóm các hàm hồi quy tuyến tính song song thông qua kích hoạt-chức năng. Không có mối quan hệ nào giữa các đầu ra có thể được thiết lập khi không có lớp ẩn để chúng điều chỉnh lẫn nhau và lấy làm đầu vào / chuyển làm đầu vào cho các nút đầu ra khác.
Pavel Komarov

0

Bạn có thể làm điều đó chỉ với một Mạng thần kinh. Nhưng Mạng thần kinh của bạn sẽ trông như thế này:
Lớp đầu vào: 34 Nút (một nút trên mỗi cột đầu vào của bạn)
Lớp đầu ra: 8 Nút (một nút trên mỗi cột đầu ra của bạn)

Bạn có thể thêm bao nhiêu và lớn như các lớp ẩn bạn muốn trong Mạng thần kinh. Vì vậy, Mạng nơ-ron đưa ra 8 giá trị dự đoán và mỗi giá trị sẽ là một hồi quy khác nhau của các đầu vào.


Gói ngôn ngữ nào hỗ trợ vậy ??
Arpit Sisodia

0

Tôi đã tự hỏi tương tự; đây là ý tưởng của tôi:

Tôi cho rằng nếu các đầu ra chia sẻ một số mẫu ẩn, thì việc đào tạo có thể được hưởng lợi từ việc học đồng thời hồi quy cho tất cả các đầu ra.

Sẽ rất thú vị khi thử một kiến ​​trúc nơi bạn xây dựng một mạng thần kinh cho mỗi đầu ra, nhưng tất cả các mạng thần kinh đều chia sẻ một số lớp (ví dụ nửa lớp đầu tiên). Sau đó, bạn có thể huấn luyện từng mạng thần kinh cùng một lúc: bên trong vòng học tập, mỗi mạng thần kinh được đào tạo một bước (với một đợt) theo tuần tự.

Điều này sẽ tương tự như chuyển giao kiến ​​thức, nhưng với sự khác biệt là trong chuyển giao kiến ​​thức, mỗi mạng lưới thần kinh được đào tạo đầy đủ trước khi sử dụng lại một phần của nó để đào tạo một mạng lưới thần kinh khác.

Tôi cá là ai đó đã nghĩ về điều này trước đây, nhưng tôi không có liên quan đến nó.

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.