1. Fully Connected (완전 연결 신경망), CNN (합성곱 연결 신경망)
지난 시간까지 배웠던 딥러닝 학습 방식은 완전 연결 신경망 입니다.
완전 연결 신경망은 인접하는 계층의 뉴런이 모두 연결되고 출력의 수는 임의로 정할 수 있습니다.
하지만 이 신경망은 모든 뉴런이 연결되면서 원본 데이터의 형상이 무시된다는 단점을 가지고 있습니다.
데이터 형상이 무시된다는것은 어떤 뜻일까요
간단한 흑백 이미지의 경우 height, width, channels 의 3차원의 배열의 형태로 이루어져 있습니다. 이미지의 세로 가로 위치 그리고 깊이(명암, 8비트 : 256)이라고 생각할 수 있습니다. 흑백이 아니라 컬러 이미지라고 하면 channles에 rgb 배열이 추가가 되어서 더 복잡한 차원의 데이터로 이루어지게 됩니다.
이런 데이터의 형상이 무시된 채(3차원 -> 1차원으로 단순 평탄화)로 학습이 된다면 가까운 픽셀끼리 값이 비슷하다는 조건의 또한 변수의 개수, 네트워크 크기, 학습시간의 문제점 또한 존재하게 됩니다.
원본 데이터의 형상(공간 정보)을 기억하며 학습 시킬 수 있는 딥러닝 알고리즘인 CNN 을 알아봅시다.
2. CNN (Convolutional Neural Network)
CNN (Convolutional Neural Network, 합성곱 연결 신경망)은 딥러닝 모델 중 하나로, 이미지, 비디오, 텍스트 등과 같은 다양한 유형의 데이터에서 특징을 추출하고 분류하는 데 사용됩니다.
CNN은 입력 데이터를 작은 필터(커널)로 스캔하면서 지역적인 특징을 추출하는 과정을 거칩니다. 이러한 필터를 통해 입력 데이터의 공간적인 특성이 강조되며, 이어지는 계층에서 더욱 추상적인 특징이 학습됩니다. 이러한 과정을 반복하여 복잡한 패턴과 객체를 인식하고 분류할 수 있는 능력을 향상시킵니다.
CNN은 주로 이미지 처리 및 컴퓨터 비전 분야에서 사용되며, 이미지 분류, 객체 감지, 얼굴 인식, 자율주행 등의 응용 분야에서 높은 성능을 보입니다.
3. CNN 용어 정리 및 순서
3.1 Convolutional Layer(합성곱층)
이미지 데이터는 일반적으로 세로, 가로, 채널 의 3차원의 데이터로 이루어져 있습니다.
합성 곱에서는 3차원 데이터(1, 28, 28)을 입력하고 3차원의 데이터로 출력하므로 형상을 유지 가능합니다.
CNN에서는 이러한 입출력 데이터를 Feature Map 이라고 합니다
합성곱 계층의 입력 데이터를 입력 특징 맵(input feature map), 출력 데이터를 출력 특징 맵(output feature map) 이라고 한다.
3.2 Filter
3.3 convolution 합성곱의 연산
필터가 합성곱층에서의 가중치 파라미터(W)에 해당합니다.
학습단계에서 적절한 필터를 찾도록 학습합니다. 입력데이터에 필터를 적용하여 필터와 유사한 이미지의 영역을 강조하는 특성맵(feature map)을 출력 하여 다음 층(layer)으로 전달
3.4 padding (패딩)
데이터의 크기는 Conv Layer를 지날 때 마다 작아짐 가장자리 정보가 사라지는 문제 발생합니다.
합성곱 연산을 수행하기 전, 입력데이터 주변을 특정값 으로 채워 늘리는 것 주로 zero-padding을 사용합니다.
3.5 stride (스트라이드)
필터가 이동할 간격
출력 데이터의 크기를 조절하기 위해 사용합니다
보통 1과 같이 작은 값이 더 잘 작동됩니다.
3.6 3차원 데이터의 합성곱
입력의 채널 수와 필터의 채널 수는 같아야 합니다.
3.7 Polling 풀링
풀링을 이용하여 feature를 강화하기 위함에 있습니다. 값들 중에 특정값만 유지하고 나머지 값은 버린다.
대부분 max pooling을 사용한다.
'TIL' 카테고리의 다른 글
JAVA 컴파일 인터프리터 정리 (0) | 2023.05.23 |
---|---|
소프트웨어와 웹애플리케이션 (0) | 2023.05.22 |
[AI] 딥러닝 최적화 알고리즘 3주 12일차 (3) | 2023.05.10 |
[AI] 딥러닝 용어 정리 3주 11일차-1 (4) | 2023.05.09 |
[AI] 파이썬 딥러닝 기초 3주 10일차-4 (1) | 2023.05.09 |