33일차 강의 : CNN

Luis_J·2024년 10월 28일
0

MS_AI_School 5기

목록 보기
35/48
post-thumbnail

Summary

Introduction

강명호 강사님

Code, Conept & Explanation

복습

적절한 하이퍼 파라미터를 설정하지 않으면 성능이 확 떨어집니다 (빨간펜)

하이퍼 파라미터는 범위를 좁혀가는 것이 중요합니다

CNN

합성곱 신경망
Convolutional Neural Network

CNN 이미지의 합성곱 : 이미지 위에서 필터를 이동시키면서 겹치는 부분의 원소별 곱셈의 합 연산

Feature Extraction : 중요한 특징을 뽑아내는 단계

Classfication : 데이터를 그룹에 따라 분류하는 단계

Probabilistic Distribution : 분류 결과에 대한 확신을 확률로 표현하는 단계

전체 구조

Convolution & Pooling & Flatten

Feature Maps 특징 맵, 필터/커널을 이용하여 추출한 특성
Flatten Layer 반죽처럼 꾹꾹 누르기

Pooling 취합

Convolution 과 Pooling 을 조합
ReLU와 배치 노말라이제이션도 진행

Kernel 의 크기에 따라서 점점 사이즈를 줄임
FCN Fully Connected Layer

합성곱 계층

Hadamard product 아디마르 곱

패딩

겉을 0으로 패딩하다

3차원 데이터의 합성곱

채널을 여러 개 두어서 하나로

입력 데이터 : 채널 3개
필터 : 채널 3개

3x3x3 필터가 여러 개
출력 데이터도 여러 개

표기 순서 (C, H, W)
C : Channel 채널
H : Height 높이
W : Width 너비

풀링 계층

풀링 : 대표값을 뽑는다

풀링은 묶어서 최대값 또는 평균값을 구한다

합성곱/풀링 계층 구현하기

4차원일 경우
너무 많은 연산 필요

im2col : image to column
행렬을 펼쳐서 합성곱 연산 횟수를 줄이는 방법

CNN 구현하기

대표적 CNN 소개하기

LeNet

Yann LeCun 은 제프리 힌튼의 제자격

F1 : Fully Conected Layer

AlexNet

Alex 가 만든 모델
제프리 힌튼, 수트리 해번?

세이프 슈퍼인텔리전스(Safe Superintelligence, SSI)

224 x 224 로 사이즈 규격화 (50,176)

파라미터가 많아진다
층이 많아진다

차원이 크기 때문에 많은 데이터가 필요
데이터 증강 기술 사용

TOP 5 Error : 상위 5개 예측 안에 정답이 포함되지 않는 경우 오류로 처리
사람은 5%는 틀립니다

ILSVRC

ImageNet Large Scale Recognition Challenge

ResNet

인간의 벽을 깼음

VGG

실습용으로 많이 사용
Visual Geometry Group

모든 계층에 3x3 필터를 반복 적용
다운 샘플링 : max pooling

채널 수는 나오지 않지만
64, 128, 256, 512

GoogleNet

Inception 개념

정확도 높이기

깊게 쌓으면 정확도가 높아진다

5x5 영역에 입력
가중치 총 25개 필요

3x3 필터가 돌아다님
가중치 총 9개 필요

데이터 증강

gray scaled
rotated 90도 회전
cropped 일부만 잘라내기
flipped 좌우 변경?

전이학습과 ResNet

파이썬으로 배우는 딥러닝

0.25를 계속해서 곱하다보면 소실
대안으로 ReLu 함수 사용

가중치 초기화

"루트N" 분의 1

CNN

이미지 크기 x 이미지 개수
(28 x 28 x 1)

Flatten 과정
일렬로 표현

마지막에 이미지 추출 시도

전이학습

Transfer Learning

모국어를 잘 익히면
다른 언어를 잘 배움

Frozen 고정, 얼리기

ResNet

인간의 레벨 5% 를 넘어서는 모델

ResNet 34
ResNet 50

2048 사이즈를 512로 줄이고 Softmax 진행

224 x 224 크기로 이미지 입력

잔차 러닝

1x1 은 항등함수
그대로 복사

원래는 의미 없지만
깊이 쌓기 위해 진행

똑같은 값을 복제

필터의 갯수가 여러개 있을 수 있음
아웃풋 여러개 일 수 있음

채널의 개념

필터를 64개를 사용
인풋데이터 : 256개 (채널로 생각)
256개 필터

64개로 줄이겠다

256개 중 64개만 적용
중간에 컨볼루션으로 섞어줌

64개로 채널을 줄이기
적은 채널에서 3x3 컨볼루션 진행

채널을 줄여서 계산을 빠르게 하기

목적
1. 연산량 줄이기
2. 층을 깊게 하기

Downsampling

사이즈를 줄이기 위해 /2
색깔이 바뀔 때 다운사이징 진행

ResNet50

7x7, 채널수, 필터수 : 64

average pooling 평탄화

Fully Conected Layer : 1000개로 구성

FLOPs

FLOP의 복수, 몇 번 FLOP이 필요한지 계산

Floating Point Operations Per Second
부동 소수점 연산 수
인공지능 모델에서는 계산의 복잡도를 측정하는 중요한 지표로 사용

ResNet50 적용 방법

MNIST : 숫자 손글씨 이미지 분류
KMNIST
EMNIST
CIFAR : 캐나다
STL10 : 스탠포드

입력의 숫자 : 64
출력의 숫자 : 3

채널이 늘어나는 것은 평탄화 쪽으로 가고 있다
다운 사이징을 통해서 풀링할 때마다 내려갑니다

Challenges & Solutions

Results

What I Learned & Insights

Conclusion

profile
New life & History
post-custom-banner

0개의 댓글