# 세줄 요약 #
- 머신러닝은 지도학습(Supervised Learning: 입력데이터에 타깃(정답)을 매핑하는 방법을 학습), 비지도학습(Unsupervised Learning: 타깃 없이 입력데이터의 흥미로운 특징 또는 표현 학습), 자기지도학습(Self-supervised Learning: 입력데이터에서 경험적인 알고리즘을 사용해 레이블 생성), 강화학습(Reinforcement Learning: 에이전트가 주어진 환경에서 보상을 최대화하는 방법을 학습) 등의 네가지 분류로 나뉜다.
- 머신러닝에서는 데이터를 훈련에 사용되는 훈련데이터(Train Dataset), 훈련 중 성능을 평가하여 모델 튜닝에 도움을 주는 검증 데이터(Validation Dataset), 훈련이 끝난 모델을 완전히 새로운 데이터에서 평가하기 위한 테스트 데이터(Test Dataset) 등 총 3개의 세트로 나뉜다(데이터가 부족할 시에는 K-겹 교차검증 사용).
- 머신러닝은 훈련에 사용된 데이터에서 최고의 성능을 얻는 최적화(Optimization)와 새로운 데이터에서도 성능이 잘 나오는 일반화(Generalization) 사이에서 균형을 맞추는 과정으로, 훈련 초기 모델이 과소적합(Underfitting) 되었다면 최적화를 위해 성능을 올리되 모델이 과대적합(Overfitting) 되지 않게 신경망 축소, 가중치 규제, 드롭아웃 등으로 일반화시켜야 한다.
# 상세 리뷰 #
1. 머신러닝은 지도학습(Supervised Learning: 입력데이터에 타깃(정답)을 매핑하는 방법을 학습), 비지도학습(Unsupervised Learning: 타깃 없이 입력데이터의 흥미로운 특징 또는 표현 학습), 자기지도학습(Self-supervised Learning: 입력데이터에서 경험적인 알고리즘을 사용해 레이블 생성), 강화학습(Reinforcement Learning: 에이전트가 주어진 환경에서 보상을 최대화하는 방법을 학습) 등의 네가지 분류로 나뉜다.
- 지도학습: 샘플데이터가 주어지면 알고 있는 타깃(annotation or label)에 입력 데이터를 매핑하는 방법 학습
- 문자 판독, 음성 인식, 이미지 분류, 언어 번역 등 딥러닝 어플리케이션이 대표적인 예시들에 사용
- 대표적인 예: 분류와 회귀
- 물체 감지(object detection): 사진이 주어지면 사진 안의 특정 물체 주위에 경계 상자(bounding box)를 그립니다.
- 이미지 분할(image segmentation): 사진이 주어졌을 때 픽셀 단위로 특정 물체에 마스킹(masking)을 합니다.
- 비지도 학습: 어떤 타깃도 사용하지 않고 입력 데이터에 대한 흥미로운 변환을 찾는 방법
- 데이터 시각화, 데이터 압축, 데이터 노이즈 제거 등에 사용
- 데이터의 상관관계를 이해하기 위해 사용하기에 데이터 분석에 있어 필수 요소.
- 종종 지도학습 문제를 풀기 전에 거치는 단계
- 대표적인 예: 차원 축소(dimensionality reduction), 군집(clustering)
- 자기 지도 학습: 사람이 만든 레이블을 사용하지 않고, 보통 경험적인 알고리즘(heuristic algorithm)을 사용해서 입력데이터로부터 생성한 레이블을 사용한 지도학습
- 지도학습의 특별한 경우라고도 볼 수 있지만, 별도의 범주로 넣을만큼 다르다.
- 대표적인 예: 오토인코더(autoencoder)
- 시간에 따른 지도학습: 지난 프레임을 가지고 비디오의 다음 프레임 예측 또는 이전 단어가 주어졌을 때 다음 단어를 예측하는 것 등이 자기 지도 학습의 예
- 강화학습: 에이전트(agent)가 환경에 대한 정보를 받아 보상을 최대화하는 행동을 선택하도록 학습
- 대표적인 예: 딥마인드 알파고
- 아직까지 게임 이외의 성공 사례는 존재하지 않음.
- 자율주행 자동차, 자원관리, 교육 등에 쓰일 것으로 예상

2. 머신러닝에서는 데이터를 훈련에 사용되는 훈련데이터(Train Dataset), 훈련 중 성능을 평가하여 모델 튜닝에 도움을 주는 검증 데이터(Validation Dataset), 훈련이 끝난 모델을 완전히 새로운 데이터에서 평가하기 위한 테스트 데이터(Test Dataset) 등 총 3개의 세트로 나뉜다(데이터가 부족할 시에는 K-겹 교차검증 사용).
- 모델 평가의 핵심은 가용한 데이터를 항상 훈련, 검증, 테스트 3개의 세트로 나눔.
- 테스트 세트와 검증 세트가 나뉘는 이유:
- 모델의 하이퍼 파라미터를 튜닝하는 과정에서 나타나는 정보 누설(information leak)을 막기 위하여
- 즉 모델이 검증 세트에도 과대 적합될 수 있는 것.
- 데이터셋을 구성할 때 유의사항
- 대표성 있는 데이터: 훈련 세트와 검증 세트, 테스트 세트 모두 각각 데이터에 대한 대표성이 있어야 한다. 즉 분류의 경우 클래스가 골고루 분포하는 등 리얼 월드를 대표하는 특성들을 포괄하고 있어야한다.
- 따라서 보통 훈련, 테스트 세트를 나누기 전에 데이터를 무작위로 섞는 것이 일반적이다.
- 시간의 방향: 시간 순서로 미래를 예측하는 경우, 테스트 세트가 항상 훈련세트보다 미래의 경우여야 한다.
- 데이터 중복: 훈련 세트와 검증 세트 등에 데이터가 중복되지 않도록 유의.
- 대표성 있는 데이터: 훈련 세트와 검증 세트, 테스트 세트 모두 각각 데이터에 대한 대표성이 있어야 한다. 즉 분류의 경우 클래스가 골고루 분포하는 등 리얼 월드를 대표하는 특성들을 포괄하고 있어야한다.
3. 머신러닝은 훈련에 사용된 데이터에서 최고의 성능을 얻는 최적화(Optimization)와 새로운 데이터에서도 성능이 잘 나오는 일반화(Generalization) 사이에서 균형을 맞추는 과정으로, 훈련 초기 모델이 과소적합(Underfitting) 되었다면 최적화를 위해 성능을 올리되 모델이 과대적합(Overfitting) 되지 않게 신경망 축소, 가중치 규제, 드롭아웃 등으로 일반화시켜야 한다.
- 최적화와 일반화
- 최적화(Optimization): 훈련데이터에서 최고의 성능을 얻기 위해 모델을 조정(하이퍼 파라미터 튜닝)
- 일반화(Generalization): 훈련된 모델이 이전에 본 적 없는 데이터에서도 성능 확보

- 과대적합(Overfitting): 훈련데이터에 과도하게 최적화되어 훈련 데이터에 특화된 표현만 학습하므로 검증세트 및 다른 데이터에는 일반화되지 못함.
- 학습 데이터 증가
- 네트워크 크기 축소
- 가중치 규제(Weight Regularization): L1 규제, L2 규제
- 드롭아웃(dropout)
- 과소적합(Underfitting): 아직 네트워크가 훈련데이터의 관련 특성을 모두 학습하지 못하여 모델의 성능이 개선될 여지가 있음.
- 학습 데이터 증가
- 더 깊은 네트워크 사용
- 하이퍼 파라미터 조정
* 출처: 케라스 창시자에게 배우는 딥러닝 / 프랑소와 숄레 / 길벗

'교재 리뷰 > 케라스 창시자에게 배우는 딥러닝' 카테고리의 다른 글
케라스 창시자에게 배우는 딥러닝 - 6. 텍스트와 시퀀스를 위한 딥러닝 (1) | 2020.12.03 |
---|---|
케라스 창시자에게 배우는 딥러닝 - 5. 컴퓨터 비전을 위한 딥러닝 (0) | 2020.11.16 |
케라스 창시자에게 배우는 딥러닝 - 3. 신경망 시작하기 (3) | 2020.08.31 |
케라스 창시자에게 배우는 딥러닝 - 2. 시작하기 전에: 신경망의 수학적 구성 요소 (0) | 2020.08.18 |
케라스 창시자에게 배우는 딥러닝 - 1. 딥러닝이란 무엇인가? (0) | 2019.12.04 |
댓글