본문 바로가기

Enginius/Machine Learning

Sparse Distributed Memory Framework

기존 computer의 memory system은 dense representation이라 한다. 예를 들어 A의 ascii code는 113 (1110001)이다. 여기서 세 번째 bit에 해당하는 0에 대한 의미는 사실 없다. 8개의 bit가 합쳐져야 하나의 정보가 완성되는 것이다. 만약 세 번째 bit가 1로 바뀌었다고 치면 1111001이 되어서 121이 되고, 이는 I에 해당한다. 


즉 한정된 메모리 시스템 속에서 정보를 저장하는데는 매우 유용하나 약간의 noise에도 쉽게 영향을 받는 기억 체계라고 할 수 있다. 하지만 인간의 뇌는 그렇지 않다. 뇌의 synapse와 dendrite는 그 동작이 항상 동일하게 이뤄지지 않기 때문에 기존의 dense representation을 이용한 기억 체계를 갖고 있을 경우 여러 문제가 생길 수 있다. 


이에 반해 Jeff는 인간의 뇌 (신피질)은 sparse representation을 사용한다고 한다. 즉 하나의 neuron은 어떤 의미를 갖고 있다고 생각할 수 있다. 예를 들자면 attribute learning에서 하나의 binary attribute를 의미한다고 할 수 있다. 또한 인간의 뇌의 neuron은 매우 적은 부분만 activate되어있다. 대부분의 neuron은 꺼져있는 것이다. 


그래서 meaning of something is in representation itself. 

위의 그림과 같이 폰 노인만 구조는 하나의 비트가 의미가 없다. 그렇기 위와 같이 8개의 비트로 이뤄질 경우 198이라는 수를 나타나게 된다. 그리고 단 하나의 비트라도 문제가 생길 경우 결과 값이 완전히 달라지기 때문에 문제가 심각하다. 하지만 사람의 뇌는 그렇게 robust하지 않다. 즉 몇 %의 뉴론이 망가지더라도 정상적으로 동작을 한다. 

위의 그림과 같이 Sparse Distributed Memory를 사용할 경우 각 8개의 비트는 하나의 특성 (Attribute)를 나타낸다. 즉 강아지라는 것을 나타낼 때 다음 8개의 특성을 통해서 나타낸다고 하자. 

위와 같이 각 8개의 특성이 정의 되었을 때 각 비트는 개별 의미를 갖게 된다. 쉽게 생각하면 좀 더 High-level approach를 하고있고, 일정의 representation learning과 같은 느낌을 갖게 된다. 한 가지 중요한 특성은 몇 개의 특성에 대한 정보가 없다 하더라도 우리는 결과값을 추론할 수 있게 된다. 이 경우는 고작 8개이지만, 인간의 뇌에는 수억개의 뉴론이 있고, 이러한 방식으로 데이터가 표현되기에 에러에 강인한 표현을 할 수 있게 되는 것이다.