Computer Vision을 어떻게 구현할까?

1. computer vision을 어떻게 구현할까

 

앞에서 설명한 아이디어를 바탕으로 computer vision을 구현하는 것은 machine visual perception을 구현하는 것

 

그 입력으로 실제 세상의 한 모습인 이미지나 비디오같은 visual data를 주는 것이다.

 

visual perception의 종류는? 색깔 인지, 움직임 인지, 사회적 감각 인지 등등 많다

 

 

사람의 시각능력을 biological하게 이해하고 이것을 어떤 식으로 구현할지 알고리즘을 연구하는 것도 포함한다

 

 

2. 우리의 시각능력은 사실 불완전하다

 

우리 시각은 단순히 시력이 나쁜 것 말고도 평소에 느끼기 어려운 치명적인 불완전성이 있을 수 있다

 

 

이렇게 거꾸로 선 사람을 보면 못생겨보여도 큰 위화감이 안든다

 

 

근데 똑바로 세우면 대단히 이상하게 보임

 

왜 이런 일이 일어날까? 여러가지 이유가 있을 것

 

그 중 하나는 우리의 눈과 뇌가 똑바로 선 사람들의 얼굴 패턴을 많이 봐서,

 

뒤집힌 상태로 선 사람들을 볼 기회가 많지 않아서 시각 기능이 bias하게 학습되어있다는 것.

 

machine visual perception을 구현하기 위해서는 사람의 시각 능력을 모방하는 것이 자연스러운 시작이다.

 

따라서 사람의 이러한 시각능력의 장단점을 잘 이해하고 이런 불완전성을 어떻게 보완할지 고민해야할 것

 

 

3. 딥러닝의 paradigm shift

 

visual perception을 어떻게 구현해야할까? 불과 5~6년전만 해도 전통적인 machine learning 모델을 사용했다.

 

입력데이터를 전문가에게 주면 열심히 관찰하여 어떤 특징이 데이터를 잘 설명하는지,

 

어떤 부분이 noise가 많아 무시해야하는지 관찰하는 feature extraction과정을 거쳤다.

 

이런 feature를 사람이 추출하고 간단한 모형을 설계하여 task를 수행하는 것이 일반적이었다.

 

 

그러나 딥러닝은 input이랑 output만 주면

 

전문가가 feature를 추출할 필요가 없이 그냥 알아서 모델이 feature를 추출하면서 task를 수행하는 end to end 학습 방식이다.

 

 

end to end로 고전적인 머신러닝 방식보다 편리하면서도 성능까지 높여준다

 

혹자는 사람이 feature를 뽑아내는게 더 좋은거 아닐까? 생각하는데 그렇지 않다

 

왜냐하면 사람은 bias의 동물이다.

 

열심히 찾아서 설계를 했다고 하더라도 우리가 모르는 숨어있는 중요한 신호를 간과했을 수도 있고

 

설령 그것을 발견했더라도 수식적으로 어떻게 추출하느냐에 따라 성능도 달라질 것이다.

 

하지만 딥러닝은 데이터와 학습방법만 주어지면 자동적으로 모형이 알아서 찾아내면서 bias가 줄어든다.

 

다른 각도에서 보면 사람이 일일이 feature extraction하는거랑 모형의 gradient descent가 찾는거랑 대응하는 관계

 

gradient descent가 훨씬 나아서 모형의 성능이 증가했다는 것이다.

 

딥러닝의 활약으로 이미지 데이터 자체도 흥미로워 많은 연구자들이 모이기 시작

 

40년간? 연구했던 패턴인식, 컴퓨터 비전 알고리즘들이 더욱 잘 동작했으며 서비스 가능한 수준까지 발전하였다

 

TAGS.

Comments