본문 바로가기
Computer Science/기계학습

[Convolutional neural network] 1

by 큌 2024. 6. 18.
반응형

이미지 기반 응용 프로그램

• 딥 러닝의 가장 큰 성공 중 일부는 이미지 및 비디오 이해에 초점을 맞춘 컴퓨터 비전 분야입니다 • 컴퓨터 비전 태스크

이미지넷

• 1,400만 개가 넘는 이미지, 21,841개의 카테고리로 구성된 대규모 데이터 세트 • 계층으로 레이블이 지정된 이미지

ILSVRC(ImageNet Large Scale Visual Recognition Challenge)

경기 데이터 세트:

• 1000개의 클래스

• 1,281, 167 트레이닝 이미지, 50,000개의 유효성 검사 이미지, 100,000개의 테스트 이미지

이미지 데이터

그레이스케일 이미지: 크기 너비 x 높이의 2D 매트릭스 • 3D 텐서: [w, h, channels] 예, c=3 (R/G/B channels) • 4D: x time(비디오) 등.

이미지가 포함된 신경망

 완전히 연결된 레이어?

무게 매개변수는 몇 개입니까? #단위 x 218 • 계산 비용이 많이 들고 메모리 집약적인 작업 • 이미지에 존재하는 공간 구조를 효과적으로 캡처할 수 없음

이미지에서의 패턴 인식

• 이미지에서 패턴을 인식하는 방법 – 원하는 패턴이 일치하는 곳에서 더 높은 점수를 주는 필터 설계  점 제품을 사용하여 각 위치의 점수를 계산합니다  동일한 필터를 이미지의 다른 위치에서 사용할 수 있습니다

컨벌루션

• 이미지에서 패턴을 인식하는 방법 – 원하는 패턴이 일치하는 곳에서 더 높은 점수를 주는 필터 설계

이미지의 공간 구조 활용

컨벌루션 네트워크

• 컨볼루션 네트워크(LeCun, 1989)는 그리드 유사 데이터(예: 이미지, 시퀀스)를 위한 특수한 종류의 신경망입니다 – 그리드에 배치된 모든 입력(1-D, 2-D, 3D, …)에 적용 가능합니다

• 신경망을 확장하여 매우 큰 이미지/비디오 시퀀스를 처리합니다

• 컨볼루션이라는 수학 연산을 사용합니다

• 컨볼루션 신경망은 단순히 레이어 중 적어도 하나에서 일반 행렬 곱셈 대신 컨볼루션을 사용하는 신경망입니다

컨벌루션 네트워크

완전 연결(FC) 계층이 있는 네트워크

컨벌루션 레이어가 있는 네트워크

컴퓨터 비전을 위한 딥 러닝

• 주로 지도 학습(NN을 훈련하기 위해 레이블이 지정된 큰 데이터가 필요함)

• 알고리즘이 먼저 대규모 말뭉치(예: ImageNet 데이터)에서 훈련된 다음 관심 있는 데이터 세트(예: 내 데이터)에서 미세 조정되는 전이 학습(transfer learning)이 중요했습니다

• 데이터 증강 및 생성 모델과 같은 합성 데이터를 생성하는 기술이 개발되고 있습니다

• 최근에는 (묵시적인) 레이블이 데이터에서 자동으로 추출되어(수동적인) 모델 훈련에 사용되는 자기 지도 학습이 널리 채택되고 있습니다(나중에 논의)

컨볼루션 계층

컨볼루션 연산

• 필터의 도트 곱과 각 입력 위치를 취합니다 예: 2D 컨볼루션

컨볼루션 커널

• 고역 통과 필터와 같은 역할을 합니다. 가장자리 근처의 픽셀은 살아남습니다 – 유용한 기능을 추출하는 데 사용할 수 있습니다 • 전통적으로 수작업으로 만든 컨볼루션 커널이 사용되었습니다 • 이제 신경망이 데이터에서 커널을 자동으로 학습하도록 합니다

편향이 있는 컨볼루션

• 커널당 단일 바이어스 항을 가정합니다 데이터로부터 학습해야 할 파라미터

컨볼루션 레이어: 단일 입력 채널(예: 그레이스케일 이미지)

• 전체 입력 이미지에 대한 컨볼루션 – 2D 입력에서 2D 출력까지

여러 입력 채널(예: RGB 컬러 이미지)을 사용한 컨볼루션 모든 입력 채널에 필터 적용

각 필터는 새 출력 채널을 생성합니다

컨볼루션 레이어: 복수의 입력 채널(예: RGB 컬러 이미지)

• 필터 깊이는 입력 깊이와 같아야 합니다. 입력 볼륨에서 자동으로 결정됩니다

컨볼루션: 차원 변경

여러 출력 채널에 여러 필터 사용

• 여러 필터를 가정하여 여러 출력 채널을 생성 – 서로 다른 필터가 서로 다른 특성의 특징을 추출할 수 있습니다 예: 두 개의 필터가 있는 ConvLayer ConvLayer: 바이어스가 있는 여러 필터 데이터에서 필터와 편향(훈련 가능한 매개변수) 학습 Q. 몇 개의 파라미터를 학습해야 하나요? 하이퍼파라미터?

변환층 쌓기

• 일반적인 CNN 아키텍처에는 여러 개의 컨볼루션 계층이 있습니다 – 학습된 필터는 일반적으로 낮은 공간에서 높은 공간 특징을 나타냅니다

변환층 쌓기

• 입력 영상이 고해상도인 경우, 컨볼루션은 너무 많은 계산을 필요로 합니다

• 더 큰 필터를 사용하면 활성화 맵이 더 빨리 작아집니다

• 이러한 문제를 완화하는 방법 – 스트라이드 및 패딩의 하이퍼파라미터 스트라이드

• 스트라이드를 사용하여 입력을 다운샘플링합니다

패딩

• 테두리를 제로 패드에 공통(제로 패드) 일반적으로 둘레에 0을 추가합니다 컨벌루션 출력의 크기(W & H)

• W(=H)는 입력 크기, K는 필터 크기, P는 패딩, S는 스트라이드라고 가정합니다

• 출력 크기 O는 다음과 같습니다:

 

CNN의 핵심 아이디어

• 신경망의 행렬 곱셈을 컨볼루션으로 대체합니다

• 다른 모든 것은 거의 동일하게 유지됩니다

팝퀴즈1

# 입력 채널 = 3, 각각 10 x 10, 크기 5 x 5의 커널(필터)이 스트라이드로 적용됨

• 출력 피처 맵의 치수는 어떻게 됩니까?

• 입력 맵이 제로 패딩이면 어떻게 합니까?

팝퀴즈2

• 단위 (1) 스트라이드를 사용하고 패딩을 사용하지 않는 경우

– 각 필터 크기는 얼마입니까? – 필터는 몇 개입니까? – 출력 피쳐맵 크기는 얼마입니까?

팝퀴즈3

• 입력량 : 32x32x3

• 스트라이드 1, 제로패드 2가 포함된 5x5 필터 10개

출력 크기:

파라미터 수:

완전 연결된 경우 파라미터 수: 31,467,520 (왜?) 왜 컨벌루션 레이어인가요?

완전 연결 대 컨볼루션 계층

• 컨볼루션 계층은 커널 외부의 모든 가중치가 0이고 동일한 가중치가 서로 다른 위치에서 재사용되는 완전 연결 계층의 특별한 경우입니다

• Why convlayer? – 공간적 국소성과 병진 불변성을 가정하여 매개변수의 수를 획기적으로 줄입니다 1x1 컨볼루션

• 입력 56x56x64

• 32개의 필터를 갖춘

1x1 컨볼루션

• 출력크기? 56x56x32

• • Number of parameters?32x(1x1x64+1)=2,080

• 차원 축소(깊이 감소, 채널 간 혼합)를 위해 1×1 컨볼루션을 사용할 수 있습니다

풀링 계층

풀링

• 각 피쳐 맵에서 값을 로컬로 집계합니다(다운 샘플링) • 표현을 더 작고 관리하기 쉽게 만듭니다

• 각 활성화 맵(채널)에서 독립적으로 작동합니다

최대 풀링

• 가장 일반적인 다운 샘플링 작업

풀링 레이어

• 학습할 매개 변수가 없습니다

• 채널 수는 변경되지 않습니다

• 하이퍼파라미터: – 공간 범위 F(필터 크기) – 스트라이드 S

• 일부 노이즈 제거 수준(입력 변동에 강건함)

CNN 아키텍처

• (반복) 컨볼루션 계층 및 풀링 계층 – 특징 추출기(low-level to high-level)처럼 작동합니다

• 네트워크 끝에 완전히 연결된(/밀도/아핀) 계층 – 분류 또는 회귀를 위한

• 입력 3D 볼륨을 파라미터를 가질 수도 있고 가지지 않을 수도 있는 미분 가능한 기능을 가진 출력 3D 볼륨으로 변환합니다

10-클래스 분류를 위한 CNN 아키텍처 예시

CNN 아키텍처 요약

• ConvNet 아키텍처는 영상 볼륨을 출력 볼륨으로 변환하는 레이어 목록입니다

• 레이어에는 몇 가지 유형(예: CONV/FC/POOL)이 있습니다

• 각 레이어는 입력된 3D 볼륨을 받아들여 미분 가능한 기능을 통해 출력된 3D 볼륨으로 변환합니다

• 풀링 계층은 활성화 맵을 축소하고 네트워크의 총 작업 수와 매개 변수(예: 마지막 FC 계층)를 줄입니다

반응형