다중 출력 회귀 분석을위한 신경망


14

34 개의 입력 열과 8 개의 출력 열이 포함 된 데이터 세트가 있습니다. 문제를 해결하는 한 가지 방법은 34 개의 입력을 가져 와서 각 출력 열에 대해 개별 회귀 모델을 작성하는 것입니다. 이 문제를 신경망을 사용하는 하나의 모델로만 해결할 수 있는지 궁금합니다.

다층 퍼셉트론을 사용했지만 선형 회귀와 같은 여러 모델이 필요합니다. 시퀀스 1 시퀀스 학습이 실행 가능한 옵션이 될 수 있습니까? TensorFlow를 사용해 보았습니다 .float 값을 처리 할 수없는 것 같습니다.

특별히 신경망을 사용하는 하나의 통합 모델을 사용하여이 문제를 해결하기위한 제안은 인정 될 것입니다.

  1. Ilya Sutskever, Oriol Vinyals 및 Quoc V. Le (2014). 신경망을 이용한 시퀀스 대 시퀀스 학습. 신경 정보 처리 시스템의 발전 , 27. ( pdf )

무엇 문제는?
TEG

2
(잠재적 인 유권자들에게 : 이것은 프로그래밍 문제가 아닙니다. 스택 오버 플로우 에 관한 주제가 아닐 것 입니다.)
gung-Reinstate Monica

여기서 "시퀀스 순서"옵션을 명확하게 설명 할 수 있습니까? 나는 그것이 NN과 함께 일하는 사람들에게 친숙할지 모르겠지만, 나에게는 그렇지 않습니다.
gung-모니 티 복원

RNN을 사용한 시퀀스 대 시퀀스 모델링. papers.nips.cc/paper/…
sjishan

MultiOutputRegressor ()를 사용해 볼 수 있습니다. 이것은 이런 유형의 문제에 적용됩니다
Subham Sarkar

답변:


7

여러 결과를 갖는 신경망은 결과의 치수가 이면 의 치수는 .

Y=γ+V1Γ1+ϵV1=a(γ2+V2Γ2)V2=a(γ3+V3Γ3)VL1=a(γL+XΓL)
N×8[γ1,Γ1](pV1+1)×8

즉, 각 결과가 숨겨진 레이어의 모든 매개 변수를 공유하고 최상위 파생 변수를 가져 와서 결과와 관련시키는 다른 매개 변수 만 있다고 가정합니다.

이것이 당신의 상황에 대한 현실적인 가정입니까?


5

처음에 generic_user의 의견이 쇼 스토퍼라고 생각했지만 방금 그렇지 않다는 것을 깨달았습니다.

I 훈련 경우 D 에 다른 네트워크 (D) 다른 출력하고 각 외에는 아무 관련하여 그 사이즈에 적합 할 것이다.

그러나 d 개의 출력으로 하나의 네트워크를 훈련시키고 역 전파에 모든 출력을 사용하면 모든 d 출력이 더 정확 하도록 네트워크의 모든 계층의 각 가중치가 조정됩니다 .

즉, 각 네트워크 매개 변수는 그라디언트의 합에 의해 조정되며 ( 이 매개 변수에서 " 흔들기 "에 따라 각 출력이 변경되는 방식 ), 선택한 위 또는 아래 방향으로 조정하면 전체적으로 더 정확한 출력이 발생합니다. 이렇게하면 출력의 일부 치수가 덜 정확 해집니다.

따라서, 각 출력을 궁극적으로 구별하는 것은 마지막 레이어에서 인코딩 된 선형 방정식 일뿐이지만 하나의 다중 출력 네트워크를 훈련 하면 모든 레이어가 마지막 레이어에 작업을 더 잘 수행 할 수있는 것으로 제시하는 데 더 좋습니다 . 따라서이 아키텍처는 출력 간의 관계를 설명합니다.

딥 네트워크가 입력 간의 "구성 적"관계를 활용하여 얕은 네트워크보다 낫다는 것처럼 아키텍처가 출력의 알려진 관계를 반영하도록하여 완전히 연결된 네트보다 더 나은 결과를 얻을 수 있습니다 .


다변량 회귀 분석에서는 해당 대상 변수를 서로 관련시키는 (알 수없는) 공분산 행렬이 있다고 가정합니다. 숨겨진 레이어를 명시 적으로 포함 할 필요없이 하나의 조밀 한 레이어 만 있으면이 공분산을 포착하기에 충분하다고 제안하고 있습니까?
thecity2

숨겨진 레이어는 해당 공분산의 일부를 캡처해야한다고 제안합니다. 하나의 밀집된 출력 레이어만으로도 병렬 선형 회귀-통과-활성화 기능이 있습니다. 서로 다른 튜닝 노드에 대한 입력으로 상호 조정하고 입력 / 통과 할 수있는 숨겨진 계층이없는 경우 출력 간의 관계를 설정할 수 없습니다.
Pavel Komarov

0

하나의 신경망으로 만 할 수 있습니다. 그러나 신경망은 다음과 같아야합니다.
입력 레이어 : 34 노드 (입력 열당 하나)
출력 레이어 : 8 노드 (출력 열당 하나)

신경망에서 원하는만큼 숨겨진 레이어를 추가 할 수 있습니다. 따라서 신경망은 8 개의 예측 값을 출력하며 각 값은 입력의 다른 회귀가됩니다.


어떤 언어로 어떤 패키지를 지원합니까 ??
Arpit Sisodia

0

나는 같은 것을 궁금해했다. 내 아이디어는 다음과 같습니다.

출력이 숨겨진 패턴을 공유하는 경우 모든 출력에 대한 회귀를 동시에 학습하면 교육이 도움이 될 수 있다고 생각합니다.

각 출력에 대해 신경망을 구축하는 아키텍처를 시도하는 것이 흥미로울 수 있지만 모든 신경망은 일부 계층 (예 : 전반)을 공유합니다. 그런 다음 각 신경망을 동시에 훈련시킬 수 있습니다. 학습 루프 내에서 각 신경망은 한 단계 (일괄 처리)로 순차적으로 훈련됩니다.

이것은 지식 전달과 유사하지만 지식 전달에서 각 신경망은 다른 신경망을 훈련시키기 위해 그 일부를 재사용하기 전에 완전히 훈련된다는 차이점이 있습니다.

나는 누군가 이것에 대해 이전에 생각했지만 내기에 대해서는 언급하지 않았다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.