지난 글에 이어 이번 글에서는 훈련을 위한 손실함수와 완전연결층을 합성곱 층으로 변환하는 시도가 제공하는 가치에 대해 알아본다.
이전 기고문 확인하기
☞ 인공지능(AI)을 활용한 객체탐지(Object Detection)는 어떻게 작동하나 ①
손실 함수
훈련세트가 만들어진 다음에, 훈련을 위한 손실 함수를 살펴보면 다음과 같다. 그림 4의 ①과 같이 이미지 안에 고양이 물체가 있고 경계 박스의 실측 값(ground truth)을 y라고 할 때, 딥러닝을 통해 예측하고자 하는 값을 y^라고하면 손실은 아래와 같다.
즉, 위의 그림 4를 보면 y의 벡터가 8개 성분을 가지고 있는 벡터여서 실측값(ground truth) 과의 손실 값은 예측치 y^와의 각 성분 별 제곱 오차(square error)를 통해 산출된다.
그림 4에 보는 바와 같이, P_C 값이 1이면 y1 = 1이 되고 물체가 있다는 뜻이고 제곱 오차 손실 함수가 작동하겠지만, P-C 값이 0이면 y1 = 0이 되고 오직 관심은 첫 번째 벡터 값 즉 P_C를 올바로 물체가 없다는 값으로 나타내는 가에 중점을 두게 된다.
여기서는 이해를 쉽게 하기 위해 제곱 오차를 손실로 사용했지만, 그림 4의 ①의 마지막 3 성분 즉 c1, c2, c3의 경우 우도손실을 소프트맥스에 기록하기도 하고 P_C의 산출에 로지스틱회귀 함수를 사용하기도 한다.
슬라이딩 윈도우 탐지
아래 그림 5와 같이 이미지의 고양이 물체를 탐지하기위해서는 우선 여러 종류의 고양이 물체가 입력 이미지에 안에 꽉 차도록 추출된(cropping) 이미지들을 1이라는 레이블로, 그리고 물론 고양이가 아닌 이미지들도 0의 레이블을 주어 훈련시켜야 한다.
그런 다음 아래 그림 5와 같이 서로 다른 크기의 경계 상자들을 한 번에 하나씩 이미지의 좌상의 위치로부터 출발해서 일정 간격(stride)으로 모니터의 주사선이 움직이듯이 이미지 전체를 슬라이딩 하면서 경계 박스 안에 있는 내용을 합성곱(convolution) 신경망에 입력하여 물체가 있는지 여부를 판별한다.
그런데 슬라이딩 윈도우 탐지는 직관적으로 보기에도 경계 박스에 들어온 모든 영상을 매 순간 합성곱 신경망에 보내어 계산해야 하는 무척 컴퓨팅 비용이 많이 드는 단점이 존재한다.
이러한 합성곱 계산을 위한 컴퓨팅 비용 문제는 슬라이딩 윈도우에 꽤 좋은 솔루션이다. 객체 탐지의 전체 과정을 합성곱 계산을 하도록 변경함으로써 이러한 컴퓨팅 비용 문제를 개선할 수 있다.
합성곱 층은 2x2 필터 같은 것을 통하여 지역 패턴을 학습하는 데 반해, 완전연결 층은 입력 특성 공간에 있는 전역 패턴을 학습하는 근본적 차이가 있다.
이런 특징은 합성곱 신경망에 2가지 특성을 제공한다. 하나는 합성곱의 이동불변(permutation invariance) 특성이다. 이는 입력 벡터 요소의 순서에 상관없이 모델이 같은 출력을 생산하는 것이다.
두 번째는 합성곱 신경망은 공간적 계층구조를 학습할 수 있다는 점이다. 첫 번째 합성곱 층이 작은 지역 패턴을 학습하면, 두 번째 합성곱 층은 첫 번째 합성곱의 특성으로 구성된 더 큰 패턴을 학습하는 식으로 층 간 가중치(weight)를 공유하는 특성이 나타난다.
즉, 완전연결층이 n x n의 폭발적인 행렬 곱이 일어나는 컴퓨팅 비용에 비하면 훨씬 효율적인 것이어서 아래 그림 6과 같이 완전연결층을 합성곱 층으로 바꾸는 시도는 연산비용 측면에서 꽤 괜찮은 솔루션이 되는 것이다.
완전 연결(Fully Connected)층을 합성곱(Convolutional) 신경망으로
객체 탐지를 하는 알고리즘이 아래 그림 6과 같이 14x14의 이미지 세 개(RGB채널)로 입력한다고 가정해보자.
우선 상단 그림을 보면, 그 다음 5x5 필러를 16개 사용하여 14x14x3에서 10x10x16으로 매핑한다. 필터를 이용하여 합성곱(convolution)을 하는 내용은 그림 7을 참조하자. 행렬 간의 합성곱(dot product)계산이 행해진다. 그 결과, 그림 7 좌측의 첫 번째 3이 만들어진다.
반면, max pooling 은 그림 7의 우측과 같이 2를 추출하는 것, 즉 2x2 행렬에서 그 중 최고로 큰 값을 추출함으로써 예를 들어 2x2 입력을 대상으로 하면, 연산 이후의 값은 가로x세로 값이 절반으로 줄어드는 효과가 나타난다.
지금까지 살펴본 바와 같이, 완전연결층을 합성곱 층으로 바꾸는 시도는 결국 객체 탐지의 전체 과정을 합성곱 계산을 하도록 변경함으로써 연산비용 측면에서 개선하는 구조를 갖게 되었다.
글 : 주철휘 / 인공지능연구소 소장(CAO) / 에이프리카(구 엔쓰리엔클라우드)
관련기사
- 인공지능(AI)을 활용한 객체탐지(Object Detection)는 어떻게 작동하나 ①
- 네이버·카카오, 국제 컴퓨터비전 학회(ICCV)서 AI기술력 입증
- 자일링스, 모토비스와 전방 카메라 인식기술(OD) 고도화
- 순차 입력 정보를 처리하는 심층신경망(DNN) 구조…어떻게 작용할까?
- 뷰노 전립선 MR 영상 분석SW ‘PROMISE-I’, 식약처 인증 획득
- KAIST 이재길 교수팀, 딥러닝(DL) 정확도·속도 향상 기술 개발
- 캠브리지컨설턴트, 저비용 자율주행 플랫폼 ‘인퓨즈넷(EnfuseNet)’ 공개
- 엑스페리, 인공지능(AI) 추론칩 ‘엘고(Ergo)’ 공개…올해 2분기 양산 돌입
- “SNS 사진 속 얼굴, 바꿔드립니다”…프라이피, 이미지 비식별화 기술 개발
- 네오사피엔스, 글로벌 AI/ML 학회에서 오디오AI 연구 발표