양재 AI 허브/2022.07.08 Fri

이재하·2022년 7월 11일
0

양재 AI 허브

목록 보기
4/13
post-thumbnail

2022.07.08 Fri

이미지 데이터 처리하기

  • PIL
  1. 이미지에 텍스트 입력하기
  2. 모자이크 이미지 만들기 : 픽셀값들을 읽은 후 평균값을 구하여 픽셀값을 평균값으로 대체
    -img.getpixel()
    -img.putpixel()

CNN 없이 이미지 분류하기

fashion_mnist 데이터셋 분류해보기
-이전 학습 내용 응용

Convolutional Neural Network

  1. CNN의 기원
    고양이의 시각 피질 실험에서 고양이 시야의 한쪽에 자극을 주었더니 뇌의 전체 뉴런이 아닌 특정 뉴런만이 활성화되는 것을 발견
    -> 신경세포안에 일정 범위 안의 자극에만 활성화되는 근접 수용 영역(local receptive field)을 가지며, CNN 모델을 만드는 근거가 되었다

  2. Convolution 연산
    합성곱, 하나의 함수와 또다른 함수를 반전 이동한 값을 곱한 뒤 적분하여 새로운 함수를 만드는 연산자

  3. 커널
    Convolution 연산에서 가장 중요한 역할. 필터라고도 불림
    각 뉴런이 가지는 가중치(weight)를 담당함. 모델 전체의 파라미터 수를 줄이는 데 기여
    사실상 모든 CNN은 정사각형 모양의 커널을 사용한다고 봐도 무방하다

    -> 좌측 상단부터 이미지와 커널을 겹쳐 포갠 후 같은 위치에 있는 원소들끼리 곱하여 더한다
    -> 나온 결과를 특성 맵(feature map) 또는 활성화 맵(activation map)이라고 한다

이렇게 나온 결과는 다음과 같이 이미지의 어떤 형태를 인식가능하게끔 한다

  1. CNN과 Fully-Connected layer의 차이
    CNN은 Fully-Connected layer에 비해 파라미터 수를 줄이는 데 기여

-Fully-Connected layer는 그 이름에서도 알 수 있듯이 이전 layer의 뉴런이 다음 layer의 모든 뉴런과 연결되어 있고, 이 연결마다 모두 별도의 가중치(weight)을 가지게 됩니다.
-그러나 convolution layer는 커널에 weight 값이 들어가있고, 이 값들을 이미지의 모든 부분과 공유하게 됩니다.

  1. CNN의 Hyperparameter
  • 커널의 크기
  • 커널의 개수
  • Stride(커널이 이미지 상에서 움직이는 칸의 개수)
  • Padding(입력 이미지의 테두리에 덧붙이는 더미 값의 개수)
  1. Pooling Layer
    CNN의 효율성의 큰 기여를 하는 장치
    feature map의 크기를 줄임-feature map의 값 중 일부만 가져오는 방식으로 줄이기 때문에 별도의 학습 파라미터는 필요하지 않다
    -최대값:Max Pooling(특정 영역에서 최대값을 뽑아내는 것)
    -평균값:Average Pooling
  • 전이학습 : 학습했던 모델을 재사용하여 학습시키는 것
profile
SW Engineer

0개의 댓글