Neural Arithmetic Logic Units
08 Aug 2018 | ml NALU regression아이디어
- output이 numerical일 때 extrapolation도 잘되는 네트워크를 만들고 싶음
- 이게 현재의 activation function들의 한계
- extrapolation을 잘 하려면, primitive 수학 연산들을 할 수 있는 linear activation가 있어야하지 않을까?
- 해서 다음과 같은 것들을 만들었음
- $W$는 [-1, 0, 1] 사이의 값을 갖기를 원했음
- 그러면 NAC($a = Wx$)는 덧셈, 뺄셈이 가능한 모듈이 됨
- 근데 gradient도 잘 흐르고 유사하게 가기위해 저런 식으로 만들었다함.
- $W$는 [-1, 0, 1] 사이의 값을 갖기를 원했음
실험
- in/output이 모두 numeric인 실험
- extrapolation이 굉장히 잘된다.
- 노란색 부위는 왜 그런지 모르겠네…
- Mnist 10개를 넣고 인식/덧셈 연산하는 테스트
- input은 numeric이 아니며, output이 numeric
- 덧셈과 identity니까 NAC가 더 잘됨
- NALU는 왜 addition에서 에러가 클까…
- 숫자를 영어로 읽은 것을 숫자로 translation하는 태스크
- NALU가 더 잘된다.
- 중간에 prediction 결과를 찍어본 것
- program evaluation은 건너뛴다. 아마 위의 translation이 되는 것을 보고 확장해서 테스트해봤을 것 같은데..
- 도착 시간을 주고 그 시간에 도착하면 reward를 주는 환경
- action space:
{UP, DOWN, LEFT, RIGHT, PASS}
- convnet output과 도착해야할 시간이 concat해서 LSTM에 들어감
- action space: