CNN과 RNN(1)

skjh314108·2026년 8월 21일

AI 스터디

목록 보기
6/13

CNN


1. 완전연결 신경망을 이용한 이미지 처리의 한계


이미지 데이터를 딥러닝 모델에 입력하는 가장 간단한 방법은 픽셀별로 하나씩 전부 입력하는 것일 겁니다.

하지만 이미지 크기가 100 * 100 픽셀만 되어도 너무 많은 입력을 넣어야 하고 또 그에 따라 많은 가중치 연산을 해야하기 때문에

시간도 오래 걸릴 뿐만 아니라 메모리도 지나치게 많이 사용될 것입니다.

또한 이미지 데이터에서 중요한 인접 픽셀 간 연결을 고려하지 않기 때문에 학습이 비효율적일 수 있습니다.

그래서 등장한 개념이 합성곱 신경망입니다.


2. 합성곱 신경망이란


흔히 CNN(Convolutional Neural Network)이라 불리고 한국말로는 합성곱 신경망이라고 부릅니다.

CNN은 작은 크기의 필터를 이미지 위에서 이동시키면서 주변 픽셀의 패턴을 분석합니다.

초기 층에서는 선이나 모서리와 같은 단순한 특징을 학습하고, 층이 깊어질수록 모양이나 객체와 같은 복잡한 특징을 학습합니다.

동일한 필터를 이미지의 모든 위치에서 공유하기 때문에 완전연결 신경망보다 적은 가중치로 이미지를 처리할 수 있습니다.


3. 합성곱 연산


1. 커널


커널은 이미지 특징을 추출하기 위해 만들어진 작은 가중치 행렬입니다.
일반적으로 3 x 3 또는 5 x 5 크기의 행렬을 사용합니다.

커널은 이미지의 일부분과 원소별로 곱한 뒤 그 값을 모두 더하여 하나의 출력값을 만듭니다.

이후 이미지 위를 이동하면서 같은 연산을 반복합니다. 커널의 값은 학습 과정에서 자동으로 수정되며, 각각의 커널은 선, 모서리, 질감과 같은 서로 다른 특징을 학습합니다.


2. 스트라이드


스트라이드는 커널이 이미지 위에서 한 번에 이동하는 칸 수입니다.

스트라이드가 1이면 커널이 한 칸씩 이동하고, 스트라이드가 2이면 두 칸씩 이동합니다.

스트라이드가 커질수록 연산 횟수와 출력 크기가 감소하지만, 이미지의 세부 정보를 일부 놓칠 수 있습니다.


3. 특성 맵과 패딩


커널을 이미지 데이터에 전부 순회하여 만들어진 결과를 특성 맵이라고 합니다.

그런데 이미지 데이터에 아무런 변형 없이 커널을 순회시킨다면 특성 맵은 원래 이미지 데이터보다 크기가 작아집니다.

따라서 특성 맵을 원래 크기와 똑같이 유지시키기 위해 주로 0값을 이미지 데이터 가장자리에 붙이는 패딩을 하기도 합니다.


4. 활성화 함수


합성곱 연산을 한 후에 활성화 함수를 적용하게 됩니다.

활성화 함수를 적용하지 않는다면 선형 연산만 반복하게 되어 복잡한 데이터를 처리하기 힘들게 됩니다.

하지만 활성화 함수를 적용하면 비선형적인 데이터 특성도 나타낼 수 있게 됩니다.

CNN에서는 일반적으로 ReLU 를 활성화 함수로 사용합니다.

ReLU는 계산이 단순하여 학습 속도가 빠르고, 시그모이드 함수에 비해 역전파에서의 기울기 소실 문제를 줄일 수 있어 깊은 신경망에서 널리 사용됩니다.


5. 풀링


풀링은 특성 맵의 가로와 세로 크기를 줄이는 연산입니다.

특성 맵의 크기를 줄이면 이후 층에서 수행하는 연산량과 메모리 사용량이 감소하고 불필요한 정보를 제거하여 과적합을 줄이는 데 도움이 됩니다.

또한 특징의 정확한 위치보다 특징의 존재 여부에 집중하게 하므로 이미지의 작은 위치 변화에도 비교적 안정적으로 반응할 수 있습니다.

풀링에는 최대 풀링 그리고 평균 풀링이 있습니다.

최대 풀링

최대 풀링은 일정한 영역에서 가장 큰 값만 선택합니다.

예를 들어 2×2 영역에 최대 풀링을 적용하면 네 개의 값 중 가장 큰 값 하나가 출력됩니다.

특성 맵에서 큰 값은 커널이 찾으려는 특징이 강하게 나타났다는 의미입니다. 따라서 최대 풀링은 선, 모서리, 질감처럼 중요한 특징을 유지해야 하는 이미지 분류와 객체 인식에 주로 사용됩니다.

평균 풀링

평균 풀링은 일정한 영역에 포함된 값들의 평균을 계산합니다.

가장 강한 특징 하나만 선택하지 않고 영역 전체의 정보를 부드럽게 요약합니다.

평균 풀링은 특정 특징의 존재보다 전체적인 활성화 정도나 분포가 중요한 경우에 사용됩니다.

최대 풀링을 더 자주 사용하는 이유

CNN에서는 커널이 특정 특징을 발견하면 특성 맵에 큰 값이 나타납니다. 최대 풀링은 이 값만 선택하여 중요한 특징을 명확하게 보존합니다.

반면 평균 풀링은 큰 값과 주변의 작은 값을 함께 평균 내기 때문에 중요한 특징이 약해질 수 있습니다.

따라서 특징의 존재 여부가 중요한 일반적인 이미지 인식에서는 평균 풀링보다 최대 풀링이 더 자주 사용됩니다.


6. 전체 흐름

CNN의 전체적인 흐름은 다음과 같습니다.

입력 이미지
→ 합성곱층
→ 활성화 함수
→ 풀링층
→ 합성곱층
→ 활성화 함수
→ 풀링층
→ Flatten (2차원 배열을 입력에 넣을 수 있도록 1차원 배열로 변경)
→ 완전연결층
→ 출력층

profile
인공지능, 알고리즘, ps 등을 다룹니다

0개의 댓글