본문 바로가기
고려사이버대학교/Keras

[케라스 5주차] 이미지에 특화된 인공지능 알아보기

by 꿈돌이. 2022. 4. 3.

오늘은 케라스 5주차로 이미지에 특화된 인공지능을 알아본다. 사실 이미지나 영상 관련 딥러닝에 관심이 있었기 때문에 이번 내용은 흥미롭게 참여할 수 있을 것 같다. 아래 학습 내용부터 살펴보도록 하자.

 

 

1. 컨볼루션 레이어 (Conv 레이어)

Conv2D (32, (5, 5), padding='valid', input_shape=(28, 28, 1), activation='relu')
  • 첫번째 인자(32) : 컨볼루션 필터의 수
  • 두번째 인자(5, 5) : 컨볼루션 커널의 행과 열
  • padding : 경계 처리 방법을 정의
    • valid : 유효한 영역만 출력이 됨. 따라서 출력 이미지 사이즈는 입력 사이즈보다 작음
    • same : 출력 이미지 사이즈가 입력 이미지 사이즈와 동일함
  • input_shape : 샘플 수를 제외한 입력 형태를 정의함. 모델에서 첫 레이어일 때만 정의하면 됨
    • (행, 열, 채널 수)로 구분
    • 흑백영상인 경우에는 채널이 1이고, 컬러(RGB)영상인 경우에는 채널을 3으로 설정

 

■ 맥스풀링(Max Pooling) 레이어

MaxPooling2D(pool_size=(2, 2))  #이미지 크기가 2배로 축소

 

2. 컨볼루션 신경망 구성

컨볼루션 레이어는 "필터"를 학습시키는 것이다. 즉, 입력한 필터 개수만큼 주요 특징들을 잘 추출할 수 있게 필터를 학습시킨다.

 

필터를 적용할 이미지와 필터의 크기

  • 주요 특징을 잘 뽑아내기 위한 크기가 있음
  • 점 > 눈,코,입 > 얼굴 형태

 

컨볼루션 레이어

  • 입력 이미지 크기 8x8, 입력 이미지 채널 1개
  • 필터 크기 3x3, 필터 수 2개
  • 경계 타입 'same', 활성화 함수 'relu'

컨볼루션 레이어 (출처: tykimos.github.io)

각 컨볼루션 신경망마다 "컨볼루션 -> 맥스풀링 -> 컨볼루션 -> 맥스풀링" 반복 축소하면서 특성을 골라낸다.

 

끝내며. . .

원래 "컨볼루션 신경망으로 숫자손글씨 분류" 실습 코드도 올리려고 했지만 양이 많은 관계로 따로 올려봐야겠다. 이론도 좋지만, 뭐니뭐니 해도 실습하면서 직접 따라해보는 시간이 기억에도 잘 남고 시간도 금방 가는거 같다.

댓글