자동 인코더에서 ReLU를 활성화 기능으로 사용할 수 있습니까?


11

신경망으로 오토 인코더를 구현할 때 대부분의 사람들은 활성화 기능으로 시그 모이 드를 사용합니다.

대신 ReLU를 사용할 수 있습니까? ReLU에는 상한에 대한 제한이 없으므로 기본적으로 시그 모이 드를 사용할 때 자동 인코더에 대한 제한된 기준과 달리 입력 이미지의 픽셀 수가 1보다 클 수 있습니다.

답변:


5

여기에 몇 가지 문제가있을 수 있지만이를 수행 할 수 있음을 나타내는 토론 스레드 (2013 년 7 월부터)가 있습니다.

Çağlar Gülçehre (Yoshua Bengio의 연구실)는 Knowledge Matters 에서 다음 기술을 성공적으로 사용했다고 말했습니다 .

첫 번째 DAE를 평소대로 훈련하지만 숨겨진 레이어에 정류기를 사용 a1(x) = W1 x + b1 h1 = f1(x) = rectifier(a1(x)) g1(h1) = {sigmoid}(V1 h1 + c1) 하여 g1 (f1 (corrupt (x)))와 x를 비교하여 교차 엔트로피 또는 MSE 손실을 최소화하십시오. S 자형은 데이터에 따라 선택 사항입니다.

h2 = f2(h1) = rectifier(W2 h1 + b2) g2(h2) = softplus(V2 h2 + c2) f1(x)g2(f2(rectifier(corrupt(a1(x)))))2+λ1W1+λ2W2

Bengio 연구소의 Xavier Glorot 은 두 도메인 적응 모두에서 을 "활성화 값에 대한 페널티"(아마도 ?)로 바꾸는 것을 제외하고는 동일한 작업을 수행했다고 밝혔다. 대규모 감정 분류 : 딥 러닝 접근법 (ICML 2011) 및 딥 스파 스 정류기 신경망 (AISTATS 2011).W1L1g2()1


빠른 답변 감사합니다! 따라서 Sigmoid 대신 ReLU를 사용할 때 auteencoder를 최적화하는 데 문제가 있다고 말하고 있습니까?
RockTheStar

그것은 문제를 일으킬 수있는 것처럼 보이지만 학습 과정을 올바르게 설정하면 확실히 수행 할 수 있습니다. 링크 된 논문을 읽는 것이 도움이 될 수 있습니다.
Dougal

MNIST 데이터 세트에서 간단한 자동 인코더를 실험하고 있습니다. 784-128-64-2-64-128-784 아키텍처로 완전히 연결된 네트워크를 사용합니다. 나는 모든 곳에서 relus를 사용하지만 병목 현상 레이어 (relu 또는 linear)와 출력 레이어 (relu 또는 sigmoid)를 실험하고 있습니다. 출력에 정류기를 사용하면 성능이 저하됩니다. S 자형이 더 좋습니다. S 자형 출력의 경우 선형 병목 현상이 약간 더 나은 것으로 보입니다. 이 두 레이어에 대해 제가 가장 좋아하는 조합은 선형 / 시그 모이 드입니다. (그러면, 모든 층에 시그 모이 드를 사용하면 분명히 나빠집니다.)
amoeba

@ameoba relu 출력이 나쁘다는 것은 놀라운 일이 아닙니다. 출력에 특정 범위가 있음을 알고 있으면 해당 범위로 제한하는 활성화 함수를 사용하는 것이 좋습니다. 나는이 분야에서 경험이 많지 않지만 숨겨진 레이어에 대해 ELU 또는 누출 ReLU를 시도 할 것입니다 .
Dougal

2
와우, 나는 ELU를 몰랐다! 팁 고마워요, 더갈 나는 그들을 시도하고 그들은 더 잘 작동합니다. 딥 러닝은 놀랍습니다. 매년 새로운 트릭이 나타나고 어떤 사람이 왜 다른 사람보다 더 잘 작동하는지 전혀 모릅니다. (@RockTheStar의 CC). 그건 그렇고, 아담 옵티마이 저가 아주 훌륭하게 작동한다는 것을 알았습니다.
amoeba
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.