오토인코더는 정말 재밌는 아이디어이다. 오토인코더는 정보를 bottleneck 레이어로 인풋하고 다시 원본 정보를 복원하는 훈련을 통해 일반화 성능을 향상시킨다.
사람은 왜 직전에 본 이미지를 사진처럼 기억하지 못할까? 촘촘하게 박혀있는 대여섯개의 바늘의 개수를 세는것이 왜 어려울까? 분명 식별은 되는데 어디까지 세었는지 헷갈리고 실수하기 일수다.
왜 인간은 정보를 손상없이 저장하고 둘러보지 못하는가?
이것이 정말 재밌는 점이라고 생각한다. 인간은 자체적으로 정보를 bottleneck 층을 통해 정제하며 반응하는 것일지도 모른다. 바라보는 매 순간 시야의 초점을 통해 어텐션한 다음에야 그것에 대해 정제된 정보가 뇌에 도착하고, 우리는 그 정보만을 의식 속에서 다룰 수 있는 것일 테다.
여기서 뇌에 도착할때 어텐션된 부분과 어텐션되지 않은 시야의 배경정보가 조합되어 도착하고 우리는 그걸 통해 세상을 바라보는 것일 테다.
이런 실험을 제안할 수 있다 초점을 주고 있는 부분과 초점을 주지 않는 부분간에 정보인지 속도가 다르다면 어떨까? 그러니까 두 빛이 하나는 초점속에서 점멸하고 하나는 바깥에서 점멸할때, 시차를 두는것이다. 만약 두 빛이 모두 초점 속에 있다면 시차를 느낄 수 있지만, 초점 밖에 있다면 시차를 느낄 수 없는 부분이 있을지도 모른다.
만약, 실험이 성공한다면, 이런 생각도가능하다. Convolution의 Filter Sharing을 초점 필터와 배경필터로 구분해서 학습하는 것이다.
오토인코더는 이런 관점으로 볼 수도 있다. 정보를 압축해서 사용하는 방법의 학습. (이것은 Adapter에 가깝다. 그리고 인간의 정보 해석은 이 층위에서 작용할 것이다.) 하지만 인간의 정보 저장 방식은 컴퓨터 마냥 차곡차곡 쌓는 방식이 아니다. 인간은 효율적으로 정보를 저장하는 파라미터 업데이트 방식을 수백만년간 진화시켜왔다. 컴퓨터의 메모리 캐시도 가지고있는 시공간 locality를 이용할 뿐만 아니라, 후각, 미각 등 감각을 통한 locality, 개념이나 인과를 가지고 연결하는 locality 등 연관이 있다고 느껴지기만 하면 뭐든 연결되는 트리구조를 갖고 있다. 그리고 동적으로 pruning과 merging을 통해 디스크를 관리한다. 그게 해마다. 그리고 인간은 해마(디스크)에서 정보를 필요할때 의식(메모리)층위로 가져와서 정보를 다룬다.
하지만, 두가지 의문이 든다. 그래서 정보를 어떻게 (1) 파라미터에 저장하며, 그 안에서 (2) 정보를 가져오느냐. 이게 의식의 본질일 터인데…
현재의 GPT는 텍스트 인풋 아웃풋을 의식 메모리처럼 사용한다. 하지만, 인간은 그렇지 않다. 어느정도는 비슷하지만, 조금더 low하고 정제가 덜된 의식 메모리를 지니고있다. 그리고 의식공간과 해마공간을 분리해서 다룬다. 하지만 현재 GPT는 아니다. 나는 이것이 거대한 구조적 문제라고 본다.
흠. 정보 저장의 본질이 state vector일까. 아니면 weight parameter일까.