나선형 신경망

완료됨

딥 러닝 모델은 모든 종류의 기계 학습에 사용할 수 있지만 이미지와 같이 수많은 숫자 값 배열로 구성된 데이터를 처리하는 데 특히 유용합니다. 이미지로 작업하는 기계 학습 모델은 ‘컴퓨터 비전’이라는 인공 지능 영역의 기반이 됩니다. 딥 러닝 기술은 최근 몇 년 동안 이 영역에서 놀라운 발전을 촉진하는 역할을 했습니다.

이 영역에서 딥 러닝이 거둔 성공의 중심에는 ‘나선형 신경망’ 또는 CNN이라고 불리는 모델이 있습니다. CNN은 일반적으로 이미지에서 특성을 추출한 후 이 특성을 완전 연결 신경망에 제공하여 예측을 생성하는 방식으로 작동합니다. 망의 특성 추출 계층은 잠재적으로 방대한 개별 픽셀 값 배열의 특성 수를 더 작은 수의 특성 집합으로 줄여 레이블 예측을 지원하게 됩니다.

CNN의 계층

CNN은 여러 계층으로 구성되며 각 계층은 특성을 추출하거나 레이블을 예측하는 데 특정 작업을 수행합니다.

나선 계층

서비스 주체 계층 유형 중 하나는 이미지의 중요한 특성을 추출하는 나선형 계층입니다. 나선형 계층은 이미지에 필터를 적용하여 작동됩니다. 필터는 가중치 값 행렬로 구성된 ‘커널’에 따라 정의됩니다.

예를 들어 3x3 필터는 다음과 같이 정의할 수 있습니다.

 1  -1   1
-1   0  -1
 1  -1   1

이미지는 픽셀 값 행렬이기도 합니다. 필터를 적용하려면 이미지에 “오버레이”하고 필터 커널에서 해당하는 이미지 픽셀 값의 ‘가중치 합계’를 계산합니다. 그런 다음, 이미지와 크기가 같은 새 값 행렬에서 해당 3x3 패치의 가운데 셀에 이 결과를 할당합니다. 예를 들어 6x6 이미지에 다음과 같은 픽셀 값이 있다고 가정해 보겠습니다.

255 255 255 255 255 255 
255 255 100 255 255 255
255 100 100 100 255 255
100 100 100 100 100 255
255 255 255 255 255 255
255 255 255 255 255 255

왼쪽 위에 있는 이미지의 3x3 패치에 필터를 적용하면 다음과 같이 작동합니다.

255 255 255      1  -1   1    (255 x 1)+(255 x -1)+(255 x 1) +
255 255 100  x  -1   0  -1  = (255 x -1)+(255 x 0)+(100 x -1) +   = 155
255 100 100      1  -1   1    (255 x1 )+(100 x -1)+(100 x 1)

결과는 새 행렬의 해당 픽셀 값에 할당됩니다.

 ?   ?   ?   ?   ?   ?  
 ?  155  ?   ?   ?   ?
 ?   ?   ?   ?   ?   ?
 ?   ?   ?   ?   ?   ?
 ?   ?   ?   ?   ?   ?
 ?   ?   ?   ?   ?   ?

필터가 이동(‘나선’으로 이동)되는데 일반적으로 ‘단계’ 크기는 1을 사용하며(따라서, 한 픽셀 오른쪽으로 이동됨) 다음 픽셀 값이 계산됩니다.

255 255 255      1  -1   1    (255 x 1)+(255 x -1)+(255 x 1) +
255 100 255  x  -1   0  -1  = (255 x -1)+(100 x 0)+(255 x -1) +   = -155
100 100 100      1  -1   1    (100 x1 )+(100 x -1)+(100 x 1)

이제 새 행렬의 다음 값을 입력할 수 있습니다.

 ?   ?   ?   ?   ?   ?  
 ?  155 -155 ?   ?   ?
 ?   ?   ?   ?   ?   ?
 ?   ?   ?   ?   ?   ?
 ?   ?   ?   ?   ?   ?
 ?   ?   ?   ?   ?   ?

이 프로세스는 이미지의 모든 3x3 패치에 필터를 적용하여 새 값 행렬을 생성할 때까지 반복됩니다.

?   ?   ?    ?    ?   ?
?  155 -155 155 -155  ?
? -155 310 -155  155  ?
?  310 155  310   0   ?
? -155 -155 -155  0   ?
?   ?   ?    ?    ?   ?

필터 커널의 크기 때문에 가장자리의 픽셀 값은 계산할 수 없습니다. 따라서 일반적으로 ‘패딩’ 값(주로 0)을 적용합니다.

0   0   0    0    0   0
0  155 -155 155 -155  0
0 -155 310 -155  155  0
0  310 155  310   0   0
0 -155 -155 -155  0   0
0   0   0    0    0   0

나선 출력은 일반적으로 활성화 함수에 전달되며, 이 함수는 음수 값을 0으로 설정하는 ReLU(Rectified Linear Unit) 함수인 경우가 많습니다.

0   0   0    0    0   0
0  155  0   155   0   0
0   0  310   0   155  0
0  310 155  310   0   0
0   0   0    0    0   0
0   0   0    0    0   0

결과 행렬은 기계 학습 모델을 학습하는 데 사용할 수 있는 특성 값의 ‘특성 맵’입니다.

참고: 특성 맵의 값은 한 픽셀의 최댓값(255)보다 클 수 있으므로 특성 맵을 이미지로 시각화하려는 경우에는 특성 값을 0에서 255 사이로 ‘일반화’해야 합니다.

아래 애니메이션에서는 이 나선 프로세스를 보여 줍니다.

A filter kernel is convolved across an image of a triangle, extracting features that emphasize the three edges and corners

  1. 이미지가 나선형 계층으로 전달됩니다. 여기에서는 이미지가 간단한 기하학적 도형입니다.
  2. 이미지는 값이 0에서 255 사이인 픽셀 배열로 구성되어 있습니다. 컬러 이미지의 경우 일반적으로 빨강, 녹색, 파랑 채널 값을 사용하는 3차원 배열입니다.
  3. 필터 커널은 일반적으로 임의 가중치를 사용하여 초기화됩니다. 이 예에서는 필터가 픽셀 값에 미칠 수 있는 영향이 잘 나타나도록 값을 선택했지만 실제 CNN에서는 일반적으로 임의의 가우스 분포에서 초기 가중치가 생성됩니다. 이 필터는 이미지 데이터에서 특성 맵을 추출하는 데 사용됩니다.
  4. 필터는 이미지에서 나선으로 이동하며 각 위치의 해당 픽셀 값을 곱한 가중치 합계를 적용하여 특성 값을 계산합니다. ReLU(Rectified Linear Unit) 활성화 함수를 적용하여 음수 값이 0으로 설정되어 있는지 확인합니다.
  5. 나선 이동 후에는 추출된 특성 값이 특성 맵에 포함되어 있으며 이 값은 이미지의 주요 시각적 특성을 강조하는 경우가 많습니다. 여기에서는 특성 맵이 이미지에 있는 삼각형의 가장자리와 모서리를 강조 표시합니다.

일반적으로 나선형 계층에서는 여러 필터 커널을 적용합니다. 각 필터는 서로 다른 특성 맵을 생성하며 모든 특성 맵은 망의 다음 계층으로 전달됩니다.

풀링 계층

이미지에서 특성 값을 추출한 후에는 ‘풀링’(또는 ‘다운샘플링’) 계층을 사용하여 추출된 주요 차별화 특성을 보존하면서 특성 값 수를 줄입니다.

가장 일반적인 종류의 풀링 중 하나는 ‘최대 풀링’으로, 이 경우 필터가 이미지에 적용되고 필터 영역 내 최대 픽셀 값만 보존됩니다. 예를 들어 다음 이미지 패치에 2x2 풀링 커널을 적용하면 결과가 155로 생성됩니다.

0   0
0  155

2x2 풀링 필터의 효과는 값의 수를 4에서 1로 줄이는 것입니다.

나선형 계층과 마찬가지로, 풀링 계층도 전체 특성 맵에서 필터를 적용하여 작동됩니다. 아래 애니메이션에서는 이미지 맵의 최대 풀링 예를 보여 줍니다.

A filter kernel is convolved across an image of a triangle, extracting features that emphasize the three edges and corners, max pooling for an image map.

  1. 나선형 계층에서 필터를 통해 추출된 특성 맵에는 특성 값 배열이 포함되어 있습니다.
  2. 풀링 커널은 특성 값의 수를 줄이는 데 사용됩니다. 이 경우 커널 크기가 2x2이므로 특성 값 수가 4분의 1인 배열이 생성됩니다.
  3. 풀링 커널은 특성 맵에서 나선으로 이동하며 각 위치의 가장 높은 픽셀 값만 보존합니다.

삭제 계층

CNN에서 가장 어려운 과제 중 하나는 ‘과잉 맞춤’을 방지하는 것입니다. 과잉 맞춤 상태에서는 결과 모델이 학습 데이터로는 잘 작동되지만 학습하지 않은 새 데이터로는 잘 일반화되지 않습니다. 과잉 맞춤을 완화하는 데 사용할 수 있는 방법 중 하나는 학습 프로세스에서 임의로 특성 맵을 제거(또는 “삭제”)하는 계층을 포함하는 것입니다. 이 방법은 반직관적인 것처럼 여겨질 수도 있으나 모델이 학습 이미지에 과도하게 의존하는 것을 배우지 않도록 하는 효과적인 방법입니다.

과잉 맞춤을 완화하는 데 사용할 수 있는 다른 기술로는 학습 이미지를 임의로 대칭 이동하거나, 미러링하거나 기울여서 학습 Epoch 간에 다양한 데이터를 생성하는 것이 있습니다.

평면화 계층

나선형 계층 및 풀링 계층을 사용하여 이미지에서 두드러진 특성을 추출하면 결과 특성 맵은 다차원 픽셀 값 배열이 됩니다. 평면화 계층은 특성 맵을 완전 연결 계층에 대한 입력으로 사용할 수 있는 값의 벡터로 평면화하는 데 사용됩니다.

완전 연결 계층

일반적으로 CNN은 완전 연결망으로 끝나며, 이 완전 연결 망에서는 특성 값이 하나 이상의 숨겨진 계층을 통해 입력 계층으로 전달되고 출력 계층에서 예측 값을 생성합니다.

기본 CNN 아키텍처는 다음과 유사합니다.

A CNN consisting of a convolutional layer, a pooling layer, a dropping layer, a flattening layer, and a fully connected layer

  1. 이미지가 나선형 계층에 제공됩니다. 여기에서는 두 개의 필터가 있으므로 각 이미지에서 두 개의 특성 맵을 생성합니다.
  2. 특성 맵은 풀링 계층으로 전달되고 이 계층에서 2x2 풀링 커널은 특성 맵의 크기를 줄입니다.
  3. 삭제 계층은 과잉 맞춤을 방지하기 위해 일부 특성 맵을 임의로 삭제합니다.
  4. 평면화 계층은 나머지 특성 맵 배열을 가져와서 벡터로 평면화합니다.
  5. 벡터 요소가 완전 연결 망에 제공되고, 완전 연결 망에서 예측을 생성합니다. 여기에서는 망이 가능한 이미지 클래스 세 개(삼각형, 정사각형 및 원)에 대한 확률을 예측하는 분류 모델입니다.

CNN 모델 학습

심층 신경망과 마찬가지로, CNN을 학습하는 방법은 각 Epoch에 대해 계산된 손실에 따라 가중치와 바이어스 값을 조정하여 여러 Epoch에 걸쳐 망을 통해 학습 데이터 배치를 전달하는 것입니다. CNN의 경우 조정된 가중치 역전파에 완전 연결 계층에서 사용되는 가중치뿐만 아니라 나선형 계층에서 사용되는 필터 커널 가중치도 포함됩니다.