1. output gate 에 하이폴릭탄젠트 곱하는데 이유가 먼가요?
- input gate 는 sigmoid 로 삭제 되고, forget gate도 하이폴릭 탄젠트에 시그모이드랑 곱하니깐 이것도 0~1 사이값을 곱하니 어느정도 잊어먹을테고
이걸 그대로 넣어주면 될텐데 왜 굳이 (forgat + input) 에 tanh 를 하고 또 시그모이드를 곱하는지 이해가 안가네요
1. output gate 에 하이폴릭탄젠트 곱하는데 이유가 먼가요?
- input gate 는 sigmoid 로 삭제 되고, forget gate도 하이폴릭 탄젠트에 시그모이드랑 곱하니깐 이것도 0~1 사이값을 곱하니 어느정도 잊어먹을테고
이걸 그대로 넣어주면 될텐데 왜 굳이 (forgat + input) 에 tanh 를 하고 또 시그모이드를 곱하는지 이해가 안가네요
그림에서 input gate랑 forget gate 위치가 반대로 표기됐네. sigmoid=얼만큼 원래 값을 decay 시킬 것인가, tanh=모든 값을 -1~1로 보내주는 맵핑. input+forget에선 기존 값을 얼마나 잊고 새로운 값으로 업데이트할지를 정해서 cell state를 찾고, cell state에서 hidden state로의 맵핑을 결정하는게 output gate. 두 state를 동일하게 만든게 gru
tanh가 하는 역할은 일반적인 net의 activation function과 같다고 보면 됨. cell state-> hidden state의 맵핑을 찾는 방향이 있고 hidden state-> cell state의 맵핑을 찾는 방향이 있으니 비선형으로 휘어줄 활성화 함수를 쓰는거지. sigmoid는 그 업데이트 값을 몇 퍼센트 해줄것이냐는 decay를 찾는 활성화함수
거기서 이해가 안가는게 이미 input이랑 forget에 이미 시그모이드를 각각 다 곱해줬는데 또 곱해줘야하는 이유를 모르겠네요
Output gate로 갈때 tanh만 곱해주면 안되나요? 이미 input이랑 forget에 sigmoid를 곱해서 감쇄를 해줬는데 또 굳이 tanh 함수 통과 후 시그모이드로 감쇄를 해줘야하는지 이해가 안가서요
hidden state도 다음 스탭에 decay를 해야하니까? cell state만 decay를 했잖아
아 다음 cell state는 감쇄가 적용됐는데 hidden state에선 감쇄가 적용이 안됐으니 미리 주고 넘긴거다... 아그건 좀 납득이 가네요
비선형이 어떤의미를 가지는지, 왜 딥 러닝인지 를 알면 좋을듯 - dc App
그냥 그런가 보다 하고 쓰셈. 전체 정보의 일부는 압축해서 뒤로 보내고 일부는 output으로 뺀다. - dc App