4장에서는 다음과 같은 주제에 대해 알아본다.
- 분류와 회귀 이외의 머신 러닝 문제 유형
- 모델 평가, 과대적합과 과소적합 및 문제 해결 기법
- 딥러닝을 위한 데이터 전처리
머신 러닝의 세 가지 유형
2장, 3장에서 다룬 예제는 머신 러닝 유형 중 지도학습에 해당한다.
일반적으로 머신 러닝은 다음과 같이 세 가지로 분류된다.
- 지도학습
- 비지도학습
- 강화학습
지도학습
- 딥러닝과 머신 러닝에서 성공한 유명한 사례의 대부분은 지도학습이다.
- 지도학습의 대표적인 예
- 분류 문제: 개와 고양이 이미지 분류
- 회귀 문제: 주가 예측, 크리켓 경기 점수 예측 등
- 이미지 분할: 픽셀 단위 분류. 자율 주행 자동차에서 카메라로 촬영한 사진에서 각 픽셀이 어디에 포함되어 있는지를 구분하는 것은 중요하다. 특정 픽셀은 자동차, 보행자, 나무, 버스 등에 포함된 것으로 분할될 수 있다.
- 음성 인식: 구글, 알렉사 및 시리와 같은 음성 인식 서비스
- 언어 번역: 특정 언어의 음성을 다른 언어로 번역하는 것
비지도학습
- 데이터에 레이블 또는 목적 변수가 없으면, 비지도학습을 이용해 데이터를 시각화하고 압축함으로써 데이터를 이해하는데 유용하다.
- 비지도학습에서는 일반적으로 다음과 같은 두 가지 기법이 자주 사용된다.
- 클러스터링: 모든 유사한 데이터를 함께 그룹화하는 데 유용한 기법
- 차원 축소: 데이터의 차원 수를 줄이는 머신 러닝 기법. 차원 축소를 이용해 고차원 데이터를 시각화하고, 데이터의 숨겨진 패턴을 찾을 수 있다.
강화학습
- 가장 주목받고 있는 머신 러닝 분야
- 아직 성공한 실제 사례를 찾기 어렵지만, 최근 빠르게 발전하고 있다.
- 알파고 시스템은 구글 딥마인드 팀이 강화학습을 기반으로 개발한 시스템이다.
이 책에서는 지도학습에 대해 중점적으로 살펴보고, GAN과 같은 몇 가지 비지도학습에 대해서도 알아본다.
*GAN: 특정 스타일의 이미지를 생성하는 딥러닝 기술
머신 러닝 용어
머신 러닝 모델 평가
학습, 검증 및 테스트 분할
단순 홀드아웃 검증
K-겹 검증
데이터 혼합이 적용된 K-겹 검증
데이터 표현력
시간 민감도
데이터 중복
데이터 전처리와 특성 공학
벡터화
수치 정규화
누락 데이터 처리
특성 공학
과대적합과 과소적합
더 많은 데이터 확보
네트워크 크기 줄이기
class Architecture1(nn.Module):
def __init__(self, input_size, hidden_size, num_classes):
super(Architecture1, self).__init__()
self.fc1 = nn.Linear(input_size, hidden_size)
self.relu = nn.ReLU()
self.fc2 = nn.Linear(hidden_size, num_classes)
self.relu = nn.ReLU()
self.fc3 = nn.Linear(hidden_size, num_classes)
def forward(self, x):
out = self.fc1(x)
out = self.relu(out)
out = self.fc2(out)
out = self.relu(out)
out = self.fc3(out)
return out
class Architecture2(nn.Module):
def __init__(self, input_size, hidden_size, num_classes):
super(Architecture2, self).__init__()
self.fc1 = nn.Linear(input_size, hidden_size)
self.relu = nn.ReLU()
self.fc2 = nn.Linear(hidden_size, num_classes)
def forward(self, x):
out = self.fc1(x)
out = self.relu(out)
out = self.fc2(out)
return out
가중치 규제 적용
드롭아웃
nn.dropout(x, training=True)
과소적합
머신 러닝 프로젝트 워크플로
문제 정의와 데이터셋 만들기
모델 평가 기준
평가 프로토콜
데이터 준비
기준 모델
문제 유형 | 활성화 함수 | 오차 함수 |
이진 분류 | 시그모이드 | nn.CrossEntropyLoss() |
다중 클래스 분류 | 소프트맥스 | nn.CrossEntropyLoss() |
다중 레이블 분류 | 시그모이드 | nn.CrossEntropyLoss() |
회귀 | 없음 | MSE |
벡터 회귀 | 없음 | MSE |
과대적합될 정도의 모델
가중치 규제 적용
학습률 선정 전략
요약
'IT 도서 리뷰' 카테고리의 다른 글
PyTorch로 시작하는 딥러닝 - CH7 생성적 신경망 (0) | 2021.11.14 |
---|---|
PyTorch로 시작하는 딥러닝 - CH6 시퀀스 데이터와 텍스트 딥러닝 (0) | 2021.11.12 |
PyTorch로 시작하는 딥러닝 - CH5 컴퓨터 비전 딥러닝 (0) | 2021.11.11 |
PyTorch로 시작하는 딥러닝 - CH2 신경망 구성 요소 (0) | 2021.10.29 |
Pytorch로 시작하는 딥러닝 (0) | 2021.10.26 |