안녕하세요~


지난시간에서는 DNN(Deep Neural Network)구조가 이미지영역에서 왜 성과가 낮은시 설명해드렸어요. 결과적으로는 이러한 단점을 극복한 것이 Convolution Neural Network (CNN)라는 구조인데, 그렇다면 CNN은 어디서 기원했을까요?



<1.고양이의 시각피질 검사>


사람들이 인간의 신경망을 본떠 Deep Neural Network를 만들어낸것 처럼, CNN도 시각피질(visual cortex)의 neuron이 어떻게 작동하는지를 알아보기 위해 노력을 했습니다. 이를 알아보기 위한 실험으로 고양의 시각피질 반응에대한 실험을 진행했는데요. 고양이에게 단순한 모양의 여러패턴(같은모양의 다른방향을 갖고있는 그림 or 다른모양의 같은 방향을 갖고 있는 그림 등)을 보여주고 시각피질의 반응을 살펴보게 됩니다. 그리고, 이러한 다양한 패턴에따라 뉴런이 반응하는 정도가 다르다는 사실을 알게 됩니다.


 

<사진1>


이 실험에 의하면 고양이의 시각 피질은 흑백 이미지에서 밝기가 변하는 사선이나 배경색과 대조되는 움직이는 사선 즉 사선형 edge를 detect 할 수 있다는 결론이다. 더 나아가서 후벨의 실험에 의하면 시각피질은 이미지에서 edge의 크기 또는 기울어진 각도와 edge의 움직이는 방향을 detect할 수 있도록 다음과 같이 세 종류의 Neuron 들로 구성되어 있다는 점을 밝혔어요. (아래 글에서 세 가지 cell에 대해서 설명할거에요)


Cell Type 

 Selectivity

Simple 

Orientation, position 

Complex

Orientation, motion, direction  

Hypercomplex 

Orientation, motion, direction, length 


외부로부터 눈에 들어온 빛은 망막에서 전기적인 신호로 변환된 뒤뇌의 시각피질(visual cortex)로 전달되는데요Visual cortex에 있는 세포 중에는 망막의 특정 부분이 특정 패턴으로 입력되면 활성화가되고그 외의 패턴에 대해서는 활성화 되지 않는 선택적인 행동을 보이는 세포가 있어요특히망막으로부터 온 정보의 입구 역할을 하는 초기 시각 피질에 속한 신경세포에 이러한 선택적인 반응을 보이는 세포가 있다는 것이 예전부터 알려져 있었는데, 이러한 세포에는 단순세포 (simple cell) 과 복잡세포(complex cell) 라 불리는 두 종류의 세포가 있습니다 


 

          

<사진2>



단순 세포는 엄격한 위치(position)와 방향(orientation)정보를 갖고 있어요. 그래서 '사진2'의 왼쪽그림을 보면 노란색선의 방향이 다르거나 위치만 바뀌어도 simple cell은 활성화되지 않는다는걸 알 수 있어요.


복잡 세포는 방향성에 그렇게 엄격하지 않고 입력 패턴을 조금 벗어나도 반응하는데요. 위의 '사진2'의 중간그림을 보면 선의 방향의 위치가 조금 바뀌더라도 활성화되는 것을 알 수 있어요. 그렇기 때문에 어떤 선이 같은 방향으로 움직이면 특정 complex cell 지속적으로 활성화되어 다음과 같은 판단을 할 수 있을거에요 "아! 지금 A라는 complex cell이 계속 활성화되어있는거 보니까 특정모양의 선이 우측대각선 아래로 움직이고 있구나!" (어쨋든 simple cell을 기반(특정모양의 선)으로 위치정보를 파악할 수 있었나보네요)


위와 같은 비슷한 방법으로 Hypercomplex cell도 motion, direction, orientation, length과 같은 더 많은 정보를 포함하게 됩니다.


결국 이미지를 구성하는 기울어진 크고 작은 edge 요소들의 합성 과정과 complex cell, hypercomplex cell을 통해 좀 더 많은 정보를 포함하게 함으로써 통해서 전체 이미지를 구성해 볼 수 있어요.


<사진3>



이러한 개념을 공학적으로 설계한 첫 번째 모델이 "Neurocognitron"이라는 모델이에요. Neurocognitron에 대한 자세한 설명은 하지 않을게요. 그냥 시각정보를 반영하는 인공뉴런을 공학적으로 설계했다는데 큰 의의를 두시면 될 것 같아요~







<2. LeNet의 탄생>


아무튼, 이렇게 시각적인 정보를 담고있는 뉴런들에 대한 연구가 지속되어오다가 마침내 1998년 Yann LeCun이라는 분이 오늘날의 Convolution Neural Network의 구조를 만들게 되요. 앞서 언급한 것 처럼 초반에는 간단시각정보를 먼저 수집하고 이를 기반으로 뒤로 갈 수록 좀더 추상적인 정보를 담을 수 있게 되요 (아직 구체적인 이해가 안되시는게 당연해요. 다음글에서 이 부분에 대한 자세한 설명할게요!)


<사진4>




요약하자면, CNN이라는 것이 biological concept에서 출현하게 되었고, 이를 공학적인 패턴인식에 이용한것이  neurocognitron이며, 오늘날의 CNN 뿌리라고 할 수 있는 LeNet으로 까지 이어지게 되었다고 할 수 있어요.


<사진5. LeNet 구조>


<사진6. 일반적인 CNN 구조>



다음글에서는 본격적으로 위의 사진의 CNN 구조를 자세하게 살펴보도록 할게요!








[글 래퍼런스]

https://steemit.com/kr/@codingart/4-8-edge-detection-cnn-convolutional-neural-network


[사진 래퍼런스]

사진1

 https://www.google.co.kr/url?sa=i&source=images&cd=&ved=2ahUKEwis4tHg8L7cAhUCXrwKHdE-DjYQjhx6BAgBEAM&url=https%3A%2F%2Fwww.timetoast.com%2Ftimelines%2Fa-shamelessly-awesome-history-of-modern-psychology&psig=AOvVaw3SNGNDlSDOHXiSBJSDtlLG&ust=1532767155814949

사진2

https://en.wikipedia.org/wiki/Hypercomplex_cell

사진3

딥러닝 제대로 시작하기

사진4

https://neurdiness.wordpress.com/2018/05/17/deep-convolutional-neural-networks-as-models-of-the-visual-system-qa/

사진5

https://d2l.ai/chapter_convolutional-neural-networks/lenet.html

사진6

밑바닥부터 시작하는 딥러닝

+ Recent posts