컴퓨터가 과연 이미지를 어떻게 이해를 할까? 이게 데이터로 어떻게 저장이 되고 특징을 어떠한 방식들을 추출하는지 조금이라도 이해하고 싶었다. 딥러닝 공부를 1년간 진행하면서 나는 항상 궁금했다. Black Box 개념에 대해서는 알겠는데 regularization, batch normalization와 같은 비법들은 어떻게 생각해낸 것일까? 분명 모델의 학습과정에 대해 어느 정도 추론을 할 수 있기에 생각해낸 기법들이 아닐까? 그렇다면 그러한 추론은 어떠한 바탕의 지식이 필요한 것일까?
기존 다녔던 국비교육과정 학원에서는 단순하게
"이미지는 픽셀단위로 저장 되어 있는 행렬이다! 각 픽셀은 RGB(Red, Green, Blue)중 하나에 맞게 해당 밝기가 담긴 픽셀값들을 담고 있고 여기에 합성곱을 진행하여 특징을 추출한다~"
라는 아무런 설명이 되지 않는 설명만 해줬다. 조금 더 자세한 설명을 요청하면 돌아온 답변은 늘 "black box 때문에 우리가 정확하게 알 수 없다" 였다.
그래서 "영상처리 기반의 인공지능 입문" (저자: 고병철)이란 책을 읽었다.
Andrew Wng 교수님의 edge detection 영상을 보고 어느 정도가 이해가 됐다. Sobel edge detection 영상을 보면 실제 필터의 가중치가 receptive field 내 각 픽셀에 곱했을 때 어떠한 아웃풋(activation map)이 나오는 지 이해할 수가 있다.
그렇다면 컴퓨터는 우리 처럼 눈이 있는 것이 아니고 분명 선을 추출하더라도 이를 단순히 보고 "선이네?" 라고 하지 않을탠데 추출한 edge를 어떤 식으로 저장하고 이것을 어떻게 다른 사진 속의 edge들과 비교할 수 있는 것인가? 각 픽셀값들을 histogram으로 그려 픽셀 밝기별로 분포도를 그린다고?
또 하나의 의문이 생겼다. 이걸 어떻게 처리하고 그로부터 어떻게 의미를 추출하는거지? 끝 없는 검색에 그냥 책을 사서 영상처리에 대해 조금이라도 배워보고자 책을 사서 읽고자 하였지만 조금 다른 의미로 이미지 처리에 대해 조금 더 알게 된 것 같다
그렇다면 대체 이 픽셀들을 어떻게 저장하고 해석하길래 특징을 추출하는거지?
(5.11 수정) 데이터에 대해 이해를 하기 위해서는 선형대수학을 알아야된다.