ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 05.CNN
    practice_인공지능,머신러닝 2024. 10. 14. 19:37

    Q. 딥러닝에서 Convolutional Neural Network (CNN)의 기본 구조와 그 주요 층에 대해 설명해 주세요. 

     

    A.

    Convolutional Neural Network (CNN)은 이미지나 시각 정보를 처리하는 딥러닝 모델로, 주요 층은 다음과 같습니다:

    1. 입력층: 이미지 데이터를 입력받음.
    2. 합성곱층 (Convolutional Layer): 필터를 사용해 이미지의 특징을 추출하고, 활성화 함수(ReLU)를 적용하여 비선형성을 추가.
    3. 풀링층 (Pooling Layer): 차원을 줄이고 중요한 특징을 유지하는 역할, 최대 풀링(Max Pooling) 또는 평균 풀링(Average Pooling)을 사용.
    4. 완전 연결층 (Fully Connected Layer): 추출된 특징을 바탕으로 분류 작업을 수행.
    5. 출력층: 최종 예측을 출력, Softmax 또는 Sigmoid를 사용하여 확률을 계산.

    CNN은 지역적 특징을 효율적으로 학습하고, 가중치 공유로 파라미터 수를 줄이며, 층을 통해 복잡한 패턴을 학습합니다.

     

    ================================

    CNN (Convolution Neural Network)

    CNN : Kernel 로 stride 해주면서 연산하는 Neural Network (convoultion연산 - 내적x)

    사용이유: 순차적 데이터(이미지 특히) sequential data에 처리하기 좋아서

                     -> 이유: local feture를 잘 캐치함.

    아래그림) 인공지능의 이해 - fast campus

     

    아래그림)

    모서리에 흰색왼쪽 빨간네모등 전체적 x는 다르지만 위치직 특징( local feature)를 잘뽑아낸다.

    KERNAL 이 한칸씩가는걸 STRIDE = 1

                       두칸씩 가는거 STRIDE 2

    커널은 지금은 3*3 행렬

    PADDING 사이드 0채우는것 = 

     

     

    출처 https://velog.io/@skkumin/CNNConvolution-Neural-Network-%EC%9D%B4%EB%A1%A0

     

    CNN(Convolution Neural Network) 이론

    컨브넷(convnet)이라고도 불리는 합성곱 신경망(convolutional neural network)는 컴퓨터 비전 에플리케이션에 사용된다.그렇다면 왜 컴퓨터비전에서는 MLP(Multi layer perceptron)이 아닌 CNN을 사용할까? 그 이

    velog.io

     

    Pooling  

    • Conv연산이 적용된 feature map의 일정 영역 별로 하나의 값을 추출하여 feature map의 사이즈를 줄이는것(sub sampling)
    • 일반적으로 Pooling 크기와 stride를 동일하게 부여하여 모든 값이 한번에 처리 될 수 있도록 한다.
    • 비슷한 feature 들이 서로 다른 이미지에서 위치가 달라지면서 다르게 해석되는 현상을 중화시켜준다.
    • Max pooling(지정된 블록의 최대값을 대표값으로):
    • Averaging Pooling(블록내 원소들의 평균값을 대표값으로):

    결론



     

     

    ==========================================

     

    Convolutional Neural Network (CNN)는 주로 이미지나 비디오 데이터와 같은 시각 정보를 처리하기 위해 고안된 딥러닝 모델입니다. CNN은 컴퓨터 비전 분야에서 매우 성공적인 모델로, 이미지 인식, 객체 탐지, 영상 분류 등의 다양한 응용에서 사용됩니다. CNN의 기본 구조와 주요 층을 살펴보면 다음과 같습니다.

    1. CNN의 기본 구조

    CNN은 주로 여러 계층(layer)로 구성되며, 각 계층은 특정한 기능을 수행합니다. 일반적인 CNN 구조는 다음과 같은 순서를 따릅니다:

    • 입력층 (Input Layer)
    • 합성곱층 (Convolutional Layer)
    • 풀링층 (Pooling Layer)
    • 완전 연결층 (Fully Connected Layer)
    • 출력층 (Output Layer)

    2. CNN의 주요 층

    2.1 입력층 (Input Layer)

    • CNN에 입력되는 데이터는 주로 이미지입니다. 이미지 데이터는 보통 3차원 배열로 표현되며, (높이 x 너비 x 채널)의 형태로 입력됩니다. 예를 들어, RGB 이미지의 경우, 각 채널이 각각 빨강, 초록, 파랑 색상을 나타내며, (H x W x 3)의 형태로 입력됩니다.

    2.2 합성곱층 (Convolutional Layer)

    • 합성곱 연산 (Convolution Operation): 이 층에서는 필터(또는 커널)를 사용해 이미지의 부분 패치를 학습합니다. 필터는 작은 행렬로, 이미지 전체에 걸쳐 이동하며 (슬라이딩), 이미지의 특징을 추출합니다. 합성곱층은 여러 필터를 사용하여 입력 이미지로부터 다양한 저수준(low-level)의 특징, 예를 들어 가장자리, 색상, 텍스처 등을 감지합니다.
    • 활성화 함수 (Activation Function): 합성곱 연산 후에는 비선형 활성화 함수(주로 ReLU)를 적용하여 비선형성을 부여합니다. ReLU는 음수 값을 0으로 만들고, 양수 값은 그대로 유지하는 함수입니다. 이는 모델이 비선형 패턴을 학습할 수 있게 도와줍니다.

    2.3 풀링층 (Pooling Layer)

    • 최대 풀링 (Max Pooling) 또는 평균 풀링 (Average Pooling): 풀링층은 합성곱층의 출력을 압축하는 역할을 합니다. 보통 2x2 또는 3x3 크기의 필터를 사용하여 이미지의 차원을 줄입니다. 최대 풀링은 각 영역에서 가장 큰 값을 선택하고, 평균 풀링은 평균 값을 계산합니다.
    • 풀링층의 주요 목적은 차원을 줄여 계산량을 줄이고, 지역적인 특징을 유지하면서도 모델의 불변성(invariance)을 강화하는 것입니다. 즉, 이미지가 조금 변하거나 회전되어도 특징이 안정적으로 유지되게 합니다.

    2.4 완전 연결층 (Fully Connected Layer, FC Layer)

    • CNN의 마지막 부분에서, 추출된 특징들을 기반으로 최종 분류 작업을 수행하기 위해 완전 연결층이 사용됩니다. 이 층에서는 모든 뉴런들이 서로 연결되어 있으며, 고차원의 이미지 특징들을 특정 클래스로 분류하는 역할을 합니다.
    • Softmax 또는 Sigmoid 함수와 같은 활성화 함수가 적용되어 클래스 확률을 계산합니다. 예를 들어, 다중 클래스 분류에서는 Softmax 함수가 사용되어 각 클래스에 대한 확률을 출력합니다.

    2.5 출력층 (Output Layer)

    • 출력층은 최종적으로 분류 결과를 나타냅니다. 예를 들어, 이미지 분류 모델의 경우 각 클래스에 대한 확률을 출력하며, 확률이 가장 높은 클래스를 예측합니다.

    3. CNN의 특징

    CNN은 합성곱 연산을 통해 이미지 데이터의 지역적 특징을 효율적으로 추출하며, 풀링 연산을 통해 불변성을 얻습니다. 이와 같은 구조 덕분에 CNN은 매우 높은 성능을 보이며, 특히 이미지 데이터에서 매우 유용합니다.

    CNN의 주요 특징 요약:

    • 국소 연결성 (Local Connectivity): 각 뉴런은 입력의 일부분(국소 영역)만 처리하므로 파라미터의 수를 크게 줄일 수 있습니다.
    • 가중치 공유 (Weight Sharing): 같은 필터가 입력의 모든 위치에서 적용되므로 동일한 특징을 탐지할 수 있습니다. 이를 통해 모델이 더 일반화된 특징을 학습하게 합니다.
    • 계층적 특징 학습: 낮은 층에서는 간단한 특징(예: 가장자리)을 학습하고, 더 높은 층으로 갈수록 더 복잡하고 추상적인 특징(예: 객체의 형태나 패턴)을 학습합니다.
Designed by Tistory.