테크레시피

회선신경망은 무엇인가

AI나 기계학습, 신경망 같은 말을 볼 기회가 늘었지만 실제로 이게 어떤 것인지 이해하기는 쉽지 않다. 이 가운데 화상이나 동영상 인식에서 널리 쓰이는 회선신경망 CNN(Convolutional Neural Networks)은 어떤 구조일까.

CNN은 신경망 중 하나로 MRI 진단과 농업용 토지 분류 같은 이미지 분류 작업 외에 스마트폰에서도 친숙한 물체 검출에도 이용된다. CNN을 이해하기 전에 먼저 신경망 구조를 이해할 필요가 있다. 신경망(Neural Network)은 신경계(Neural)라는 말이 사용되는 것에서 알 수 있듯 뇌 신경세포, 뉴런을 모방한 노드로 구성되어 있다. 신경 세포는 각각 긴밀하게 연결되어 있듯 노드도 연결되어 있다.

뉴런은 일반적으로 층 형태로 구성된다. 신경망 노드도 마찬가지다. 예를 들면 피드 포워드 신경망 FNN의 경우 입력층에서 들어온 정보가 여러 중산층을 거쳐 출력 계층으로 향하는 형태로 단일 방향 신호가 전달된다.

시스템 내 모든 노드는 이전 계층과 이후 층 노드에 연결되어 있으며 전 계층에서 정보를 수신하고 해당 정보에 어떤 처리를 한 뒤 다음 층에 정보를 보낸다. 이 때 모든 연결은 무게가 할당된다. 예를 들어 중간 계층 맨위에 있는 노드가 0.8과 0.2라는 정보를 받는데 이런 정보에 계수인 0.73을 곱한다. 이와 같이 다른 노드에서 정보를 받을 때 곱한 숫자를 무게라고 한다. 보통 노드 입력값은 여러 가중치 입력값에 대해 존재한다.

또 입력을 다음 계층에 전달할지 여부도 각 노드에서 결정된 임계값을 초과하는 노드값만 다음 계층에 데이터가 전달되는 경우도 있다고 한다. 신경망이 처음 훈련할 때 모든 가중치와 임계값은 임의로 할당되지만 같은 레이블 훈련 데이터가 입력된 때에는 동일한 출력이 된다는 가중치와 임계값 조정이 있다. 이를 오차역전파(Backpropagation)라고 한다.

보통 신경망은 너무 큰 데이터를 처리할 수 없다. 예를 들어 컴퓨터비전 교육은 CIFAR이라는 데이터세트가 이용되지만 이는 32×32픽셀이고 3개 색상 채널을 가진 이미지를 포함한다. 다시 말해 이 경우 신경망은 32×32×3=3072 가중치를 할 수 있다. 하지만 이미지가 300×300픽셀이면 27만 개 가중치를 실시해 학습에 엄청난 계산 능력을 필요로 할 뿐 아니라 매개변수 수가 많기 때문에 데이터세트를 기억하는 것만 되고 과적합(overfitting)이 발생하기 쉽다.

한편 CNN은 여러 정보를 정리하는 수학적 개념, 회선을 이용하는 것으로 계산에 걸리는 부하를 가볍게 한다. 특징을 추출해 특징맵을 작성하고 이런 특징을 추출할 수 있는 CNN 회선 처리한다. 특징 추출에는 커널이라는 필터를 이용한다. 필터를 슬라이드시키면서 다른 집단에서도 반복한다.

CNN 구조는 기본적으로 회선층과 풀링층, 완전 연결층 3가지로 이뤄진다. 회선층이 위 같은 처리로 픽셀 특징을 인식하고 풀링층은 추출된 특징을 추상화하며 완전 연결 계층은 이 특징을 예측에 이용한다.

회선을 실행하면 대량 데이터가 생성되기 때문에 신경망 훈련이 어렵다. 이 때문에 풀링 계층에서 데이터 압축을 할 필요가 있다. CNN은 보통 신경망보다 계산 효율이 높고 정확도가 높다는 장점이 있다. 한편 입력 데이터를 조작하거나 잘못 출력하게 만드는 적대적 공격에 취약하다는 단점이 있다. 이로 인해 범죄자가 CNN 기반 얼굴 인식 시스템을 속여 보안 시스템을 통과할 가능성도 있다. 또 대량 학습 데이터를 수집, 전처리해야 하는 것도 기술 보급을 방해하는 요소다. 관련 내용은 이곳에서 확인할 수 있다.