ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 멋쟁이 사자처럼 13주차 회고
    카테고리 없음 2022. 12. 8. 17:45

    CNN(Convolutional Neural Networks)

    CNN 기본 개념

    DNN으로 이미지 데이터를 처리한다고 했을 때 데이터를 1차원 벡터 형태로 처리하여 다루기 때문에 인접 공간에 대한 정보를 잃어버리게 되고 입력값이 커져서 계산이 오래 걸리는 단점이 있다. CNN은 이러한 문제점을 보완한 방법이다.

     

    CNN은 기본적으로 Convolution과 Pooling의 연속적인 반복으로 구성되어있다.

    CNN 구조, 출처: https://www.analyticsvidhya.com/blog/2021/05/convolutional-neural-networks-cnn/
    출처: https://sonsnotation.blogspot.com/2020/11/7-convolutional-neural-networkcnn.html

     

    Convolution(filters)

    => 필터(filters)를 랜덤하게 여러 장 만든다. 각 필터의 사이즈는 kernel_size 로 정함

    => 필터를 이미지에 통과시켜서 합성곱 연산을 하여 나온 결과로 특징을 추출한다.

    kernel / 출처: https://velog.io/@kim_haesol/CNN-%EA%B8%B0%EC%B4%88%EC%84%A4%EB%AA%85
    convolution filter /  출처: https://velog.io/@kim_haesol/CNN-%EA%B8%B0%EC%B4%88%EC%84%A4%EB%AA%85

    => 이러한 패턴을 여러 장 만들어 패턴을 분류하고 피쳐를 추출한다.

     

    Pooling

    Pooling이란 convolution layer을 resizing하여 새로운 layer를 얻는 과정이다.

    출처: https://sonsnotation.blogspot.com/2020/11/7-convolutional-neural-networkcnn.html

     

    1) MAX Pooling

    설정한 커널안의 값들 중 가장 큰 값을 대표값으로 반환하여 새롭게 픽셀 값을 구성한다. 주로 가장 많이 쓰인다.

    2) MIN Pooling

    MAX Pooling과 정반대로 가장 작은 값을 대표값으로 반환한다.

     

    3) Average Pooling

    커널안의 값의 평균을 내어 대표값으로 반환한다.

     

    Padding (경계 처리 방법)

    이미지 데이터에 그대로 필터를 적용할 수도 있지만 가장자리 데이터를 좀 더 활용하거나 이미지 사이즈가 줄어드는 것을 방지하기 위해 Padding을 설정하여 준다.

     

        * valid’ : 유효한 영역만 출력, 따라서 출력 이미지 사이즈는 입력 사이즈보다 작다.
        * ‘same’ : 출력 이미지 사이즈가 입력 이미지 사이즈와 동일.

    출처: https://medium.com/@draj0718/zero-padding-in-convolutional-neural-networks-bf1410438e99

     

Designed by Tistory.