[ComputerSystem] Convolutional Neural Network

Zoe·2022년 6월 14일
0

ComputerSystem

목록 보기
4/5

Convolutional Neural Network


✅ 컨볼루션 신경망

1️⃣ DMLP와 CNN의 비교

  • 완전연결구조란 ? dense
  • cnn은 2차원이니까 가중치도 2배로 많아짐
  • 완전연결 : 학습이 매우 느리고 오버피팅 우려.
  • 희소연결, 부분연결 : 복잡도 낮추고, 좋은 특징 추출

2️⃣ CNN

  • 가변 크기의 입력 : 어느 크기의 이미지가 와도 상관 없음

✅ 컨볼루션층

1️⃣ 컨볼루션 연산

  • 커널 = filter
  • 커널 하나가 은닉노드 하나랑 똑같은 개념?
  • 커널 안 값들을 뭐로 설정해놔야 제일 좋은 특징들을 찾아낼까 고민하는 것
  • 한 레이어에 커널을 여러 개 사용
  • 커널 마다 추출하는 엣지가 다름
  • 커널 값을 어떻게 설정하는지에 따라 특징들이 달라짐 -> ex) 블러효과
  • 곱해서 더하는 건 affine 연산이라고 함. 딥러닝이 하는 건 다 어핀 연산
  • 커널의 값이 가중치와 같은 개념

2️⃣ 가중치 공유(묶인 가중치)

  • 가중치는 공유함

3️⃣ 다중 특징 맵 추출

  • 입력 -> 커널 -> 특징 맵
  • 목적함수 : 정답이랑 예측값의 차이니까 작아지는 방향으로 수정해야 함

4️⃣ 특징 학습

  • 목적함수 미분 -> 미분값이 작아지는 방향으로 값을 수정 -> 그래디언트

5️⃣ 큰 보폭에 의한 다운 샘플링

  • 스트라이드..
  • 스트라이드를 지정 안 하면 한 칸씩 촘촘촘촘 감

6️⃣ 텐서에 적용

  • 컬러는 입력이 3차원
  • 3차원 짜리가 여러개 -> 4차원이 됨.
  • 3차원이상의 데이터를 텐서라고 함
  • 케라스는 이걸 다 싸가지고 2D하면 2차원, 3D하면 3차원 이렇게 됐던 거임
  • 전이학습은 파이토치

7️⃣ 3차원 구조의 데이터에 적용

  • 입력 : 3차원
  • 특징맵 : 2차원
  • 컬러면 그에 맞게 변함

8️⃣ 풀링 연산

  • 이 값들의 통계 요약
  • summary
  • 특징1.흑백 대비
  • 언제 넣는지 정해진 건 없음
  • 특징2.스트라이드3 맥스풀링 : 작은 노이즈한 값에 대해서 둔감해짐

✅ 전체 구조

1️⃣ 빌딩 블록

  • 히든 레이어 한층 : 커널.활성함수.풀링
  • 히든 레이어 한층 : 컨볼루션층 -> 활성함수(주로 ReLU) -> 풀링층

2️⃣ 초창기 CNN 사례로서 LeNet-5

  • 필기체 인식
  • 은닉층 5개
  • 28*28 맵

✅ AlexNet

1️⃣ 구조

  • 은닉층 8개
  • 많은 필터
  • 컴퓨팅 파워

2️⃣ 학습에 성공한 요인

  • 외부요인 : ImageNet -> 대용량 DB, GPU를 사용한 병렬처리
  • 내부요인 : ReLU, 지역반응 정규화 기법, 오버피팅 방지하는 여러 규제 기법

✅ 딥러닝은 왜 강력한가?

1️⃣ 전체 과정을 동시에 최적화

  • 데이터로부터 스스로 학습
  • 데이터가 적은 경우 오히려 svm이 나음

2️⃣ 깊이의 중요성

  • 히든레이어를 또 쌓는다는 의미는 다른 특징을 더 찾아보겠다는 의미
  • 필터를 추가하는 건 같은 레벨에서 더 세밀하게 찾아보겠다는 의미
profile
iOS 개발자😺

0개의 댓글