본문 바로가기
2023-1/인공지능

CNN 개요: 딥러닝과 컴퓨터 비전

by 철없는민물장어 2023. 6. 12.
728x90


**CNN 이란?**

CNN(Convolutional Neural Network)는 딥러닝의 한 방법으로, 공간적 구조를 가진 데이터를 다루는 데 특화되어 있습니다. 이러한 데이터에는 이미지, 비디오 클립 등이 포함됩니다. CNN은 기본적으로 이미지의 작은 부분에 집중하며, 이를 통해 이미지의 중요한 특징을 학습합니다.

CNN은 Convolution, Pooling, 그리고 Fully-connected 계층으로 구성됩니다. Convolution과 Pooling 계층은 이미지의 특징을 학습하고 추출하는 역할을 합니다. Fully-connected 계층은 추출된 특징을 바탕으로 최종적인 분류 또는 예측을 수행합니다.

**End-to-end 학습이란?**

딥러닝은 "end-to-end" 학습을 지원합니다. 이것은 딥러닝 모델이 원시 데이터를 입력으로 받아서, 직접 특징을 학습하고, 그 특징을 이용하여 최종 목표(분류, 회귀 등)를 달성하는 것을 의미합니다. 이는 전문가의 개입을 최소화하고 복잡한 패턴을 자동으로 학습할 수 있습니다.

**컴퓨터 비전과 CNN**

컴퓨터 비전은 컴퓨터가 이미지나 비디오를 "이해"하게 만드는 기술입니다. CNN은 이러한 컴퓨터 비전 작업에 대해 매우 효과적인 도구로 여겨집니다. 이미지의 픽셀 수준에서 직접 작업하는 대신, CNN은 필터를 사용하여 이미지의 중요한 특징을 추출합니다.

**CNN의 특징**

1. *합성곱 연산*: 이 연산은 입력 데이터에 필터(또는 커널)를 이동하며 적용해 특징 맵을 생성합니다.

2. *패딩*: 패딩은 입력 데이터 주변에 추가적인 픽셀(일반적으로 0)을 추가하여, 컨볼루션 연산 후의 출력 크기를 조절합니다.

3. *풀링*: 풀링은 특징 맵의 크기를 줄이거나 다운샘플링하는 과정입니다. 이는 모델의 계산 복잡도를 줄이고, 오버피팅을 방지하는 데 도움이 됩니다.

4. *스트라이드*: 이는 필터를 이동시키는 간격을 의미합니다. 스트라이드 2라면 필터가 한 번에 2칸씩 이동합니다.

딥러닝은 이와 같은 개념들을 활용하여 복잡한 패턴을 학습하고, 높은 수준의 추상화를 도출해낼 수 있습니다. 이로써 CNN은 이미지 분류, 객체 탐지, 자율주행차의 시각 시스템 등 다양한 응용 분야에서 활용되고 있습니다.

더보기

CNN은 딥러닝의 한 형태로, 주로 시작적인 데이터를 처리하는데 사용되는 알고리즘이다.

CNN(Convolutional Neural Network)은 일반적인 완전연결 신경망과는 다르게,부분 연결 방식의 계층을 사용한다.

 

딥러닝의 장점

딥러닝은 End-to-end학습, 즉 처음부터 끝까지의 학습이 가능하다.

 

전통적인 머신러닝 알고리즘은 원시데이터를 먼저 사람이 수동으로 특징을 추출하여 알고리즘의 입력으로 사용했다.

반면, 딥러닝 알고리즘은 원시 데이터를 직접 입력으로 받아, 네트워크가 스스로 특징을 추출하고 학습하도록 한다. 이는 네트워크가 데이터의 복잡한 패턴을 자동으로 인식하고 이해하는 능력을 가지게 됨을 의미한다.

 

따라서, 딥러닝은 원시 데이터에서부터 최종 목표까지의 전체 과정을 하나의 과정으로 볼 수 있으며, 이를 end to end학습이라고 한다. 이 방법은 전문가의 개입을 최소화하고, 자동화된 방법으로 복잡한 패턴을 학습할 수 있어, 대규모 데이터셋과 복잡한 문제에 효과적이다.

 

컴퓨터 비전:

컴퓨터 SW와 HW를 사용하여 인간의 시각적 인식 기능을 모사하는 것을 목표로 함.

2차원 영상으로부터 3차원 장면을 재구성하여 해석하고 이해하는것을 연구.

영상처리,패턴인식,컴퓨터 그래픽스 등의 분야

손글씨 인식,지문인식,얼굴인식..등의 응용

 

이미지를 이해할 때,픽셀 하나하나 읽어서 판단하는 것이 아니라 필터를 이용하여 특징을 추출하여 이미지 전체적인것을 보고 객체를 판단..컬러는 RGB 3개로 이루어짐.

 

CNN 개요

CNN은 오랜 역사를 지니며 최근 딥러닝 붐을 불러일으키는 데 중추역할을 함.

CNN은 일종의 다층 FNN에 Backpropagation을 이용해 학습시키는 망임.

컴퓨팅 필요량의 최소화를 통해 주로 영상/비전 영역에 큰 장점을 지님

 

CNN의 특징 추출 접근 방법

특징 추출 단위를 전체 이미지가 아닌 작은 단위 영역에 제한함.

전체 이미지를 이 단위 영역으로 분리해 각각에 대해 특징 추출.

필터를 이용함

 

CNN의 기술적 특징

여러개의 필터를 이용해서 특징을 추출함.

부분 연결 방식의 계층을 사용함. 특징 추출에 해당 영역만 고려할 경우, 파라미터 개수가 적어짐

 

CNN은 주로 Convolution, Pooling, Fully-connected 계층으로 구성됨.

 

Conv,Pool Conv,Pool ... FC FC 처럼 Conv,Pool은 함께쓰이고 FC는 마지막 계층에 사용

 

CNN의 합성곱 연산

입력데이터에 필터를 이동하면서 반복적으로 적용해 출력(특징맵) 생성

이 필터를 통해 특징을 추출함

 

컨볼루션 후 출력이 너무 작아지는 현상을 피하기 위해 패딩을 붙임. 이 과정이 풀링..

그래서 컨볼루션과 풀링이 함께 진행되는것..

 

또, 합성곱 연산시 필터를 이동시키는 간격을 정할 수 있음

stride 2라면 한번에 2칸씩 이동한다.

 

딥러닝도 일반신경망에서 처럼 가중입력합 계산하는 연산을 거친다. 컨볼루션이라는 개념이 추가된것임.

 

풀링

풀링은 데이터가 작아지는것 때문에 패딩을 붙이는것

 

 

\
1. **Convolution 계층 (합성곱 계층)**: 이 계층은 입력 이미지 위를 이동하는 여러 필터(또는 커널)로 구성됩니다. 각 필터는 이미지의 작은 부분 (예: 5x5 픽셀)에 대해 연산을 수행하고, 이를 통해 "특징 맵"을 생성합니다. 이 특징 맵은 입력 이미지의 특정 특징(예: 가장자리, 색상, 질감 등)을 감지하는데 사용됩니다.

2. **Pooling 계층 (풀링 계층)**: 이 계층은 특징 맵의 차원을 줄이는 역할을 합니다. 이는 모델의 계산 복잡도를 줄이고, 오버피팅을 방지하며, 불변성(invariance) 특성(예: 위치 불변성, 회전 불변성 등)을 강화합니다. 최대 풀링(max pooling)과 평균 풀링(average pooling)이 가장 널리 사용되는 풀링 기법입니다.

3. **Fully-Connected 계층 (완전 연결 계층)**: 이 계층은 네트워크의 마지막 부분에서 찾아볼 수 있습니다. 모든 뉴런이 이전 계층의 뉴런과 연결되어 있으며, 이곳에서는 추출된 모든 특징이 최종 분류 문제를 해결하기 위해 결합됩니다. 예를 들어, 강아지와 고양이를 구분하는 이미지 분류 문제에서는, 완전 연결 계층은 학습된 특징을 바탕으로 이미지가 강아지인지 고양이인지를 결정합니다.

728x90

'2023-1 > 인공지능' 카테고리의 다른 글

역전파 학습 개념  (0) 2023.06.12
기울기 강하 기법  (0) 2023.06.12
FNN 원리와 구현  (0) 2023.04.19
퍼셉트론의 학습  (0) 2023.04.19
신경망  (0) 2023.04.19

댓글