이미지 기반 응용 프로그램
• 딥 러닝의 가장 큰 성공 중 일부는 이미지 및 비디오 이해에 초점을 맞춘 컴퓨터 비전 분야입니다 • 컴퓨터 비전 태스크
이미지넷
• 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 계층)를 줄입니다
'Computer Science > 기계학습' 카테고리의 다른 글
[Recurrent neural network] (0) | 2024.06.18 |
---|---|
[Convolutional neural network] 2 (0) | 2024.06.18 |
CNN (0) | 2024.05.27 |
[Performance Evaluation] 2. Performance metrics for classification(2) (0) | 2024.04.22 |
[Performance Evaluation] 2. Performance metrics for classification(1) (0) | 2024.04.22 |