CNN(Convolutional Neural Network)

2024. 10. 21. 17:04·KT AIVLE School/시각지능 딥러닝

 

CNN이란?

이미지 데이터 구조를 "그대로" 사용하는 접근으로,

더불어, 한꺼번에 Feature의 개성을 고려하기보다 지역별 개성을 살려 feature를 추출한다.

 

Fully Connected layers은 흑백 이미지에서는 일정한 정도 성능을 보이지만

컬러 이미지 부터는 성능이 떨어진다! 그러므로 COVN layers를 사용한다.

Input 사진 (28X28X1) > 흑백, (32X32X3) > 컬러

 

 

- CNN 특징

  • 마지막 숫자는 채널, 혹은 색상 채널이라고 말한다.
  • filter( Convolutional Layer )를 거쳐서 다양한 Feature map이 생성된다.
  • 필터의 depth는 inpurt의 depth를 따라간다.
  • depth가 늘어날 수록 고레벨의 특징을 추출한다.
  • CNN이 filter를 스스로 학습한다.

 

Convolutional Layer(Conv2D Layer)

  • Number of Filters : 필터의 결과가 나오는 수(반복 노드)
  • Filter size : Filter 크기 결정 (3x3)
  • Stride : Filter의 이동 보폭 - Feature map 크기(가로, 세로)에 영향
  • Zero Padding : 이전 feature map의 크기 유지, 외곽(가장자리) 정보를 더 반영하여 데이터 손실 방지
  • Activation = relu

결과 : Feature map 생성

output 크기 계산 공식

model.add( keras.layers.Conv2D(filters=64,        # 새롭게 제작하려는 feature map의 수!
                               kernel_size=(3,3), # Conv2D Layer filter의 가로세로 사이즈 (depth는 케라스가 보정!)
                               strides=(1,1),     # Conv2D Layer filter의 이동 보폭
                               padding='same',    # 앞전 feature map의 가로세로 사이즈 유지 | 외곽 정보 더 반영
                               activation='relu', # 빼먹지 않기!
                               ) )

 

- 파라미터 설명

filters = 32 : 서로 다른 가중치(값)를 가진 필터의 수

kernel_size = (3,3) : 필터의 가로세로 사이즈

strides = (2,2) : filter의 보폭 (어떻게 이동할 것인가)

padding = same (적용o), vaild (적용x) : 1. 이전 feature map의 크기 유지 2. 가장자리 손실 방지

activation = 'relu' : 활성화 함수

 

(MAX-)Pooling Layer > Sub-sampling

중요 정보만 추출하여 feature map의 크기를 줄임으로써 연산시간(연산량)을 줄이기 위한 레이어이다.

하드웨어 제약이 컸기때문에 필요했다.

model.add( keras.layers.MaxPool2D(pool_size=(2,2), # Maxpooling layer filter의 가로세로 사이즈
                                  strides=(2,2),   # Maxpooling layer filter의 이동 보폭
                                  ) )

pool_size = 2

Stride = 2

 

Dropout, BatchNormalization

모델 성능을 높이기 위한 테크닉이다.

  • Mini-batch : 기본 32개의 데이터 덩어리(Batch)를 이용해 가중치(W)를 업데이트한다. 
  • BatchNormalization : 덩어리 데이터 분포를 평균이 0이고 분산이 1인 형태로 정규화한다.

 

Full-Connected 

Flatten을 통해 3차원 데이터를 1차원으로 구성하는 방식으로 흑백 이미지에만 성능이 올라간다. (컬러엔 성능↓)

 

SoftMax

마지막에 분류를 진행 activation function이다.

 

 

- 시각화 데이터 사이트

더보기
1. AI-Hub
 

AI-Hub

[문화관광] 한국 골목길 이미지 및 3D 데이터 #PCD # 세그멘테이션 조회수 16,358 관심등록 12 다운수 115

www.aihub.or.kr

 

2. kaggle

https://www.kaggle.com/datasets
 

Find Open Datasets and Machine Learning Projects | Kaggle

Download Open Datasets on 1000s of Projects + Share Projects on One Platform. Explore Popular Topics Like Government, Sports, Medicine, Fintech, Food, More. Flexible Data Ingestion.

www.kaggle.com

 

 

3. MDIS: 마이크로 데이터

https://mdis.kostat.go.kr/index.do

 

 

 

'KT AIVLE School > 시각지능 딥러닝' 카테고리의 다른 글

100중 분류  (1) 2024.10.24
Transfer Learning  (3) 2024.10.23
Image Precessing & Augmentation - notMNIST  (0) 2024.10.23
MNIST에 CNN 추가, CIFAR-10에 CNN 추가  (0) 2024.10.23
notMNIST 분류  (0) 2024.10.21
'KT AIVLE School/시각지능 딥러닝' 카테고리의 다른 글
  • Transfer Learning
  • Image Precessing & Augmentation - notMNIST
  • MNIST에 CNN 추가, CIFAR-10에 CNN 추가
  • notMNIST 분류
Rabet
Rabet
  • 블로그 메뉴

    • 관리자
    • 글쓰기
  • Rabet
    卯
    Rabet
  • 전체
    오늘
    어제
    • Root (139)
      • KT AIVLE School (85)
        • Start (4)
        • Python프로그래밍 & 라이브러리 (6)
        • 데이터 처리 및 분석 (7)
        • 데이터 분석 및 의미 찾기 (7)
        • 웹크롤링 (10)
        • 머신러닝 (10)
        • 딥러닝 (6)
        • 시각지능 딥러닝 (10)
        • 언어지능 딥러닝 (6)
        • JAVA (4)
        • SQL (2)
        • 가상화 클라우드 (5)
        • 프로젝트 (8)
      • QA (2)
        • 오류사항 (1)
      • 웹공부 (14)
        • SPRING (11)
        • React (1)
      • 코딩 알고리즘 스터디 (23)
      • 코딩테스트 (9)
        • JAVA (8)
        • HTML (1)
      • CS공부 (3)
      • 자격증공부 (3)
        • 정보처리기사 (1)
        • 컴퓨터활용능력 1급 (1)
        • AICE Associate (1)
        • CSTS (0)
  • 인기 글

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
Rabet
CNN(Convolutional Neural Network)
상단으로

티스토리툴바