티스토리 뷰
머신러닝의 4가지 핵심 개념
1. 모델 : 데이터를 바라보는 시점과 가정
2. 손실함수 : 모델의 수식화된 학습목표
3. 최적화 : 손실함수로 표현된 모델을 실제로 학습
4. 모델 평가 : 모델의 성능이 실제 상황에서 어떨지 추정
2.1 모델 : 문제를 바라보는 관점
현재 상태를 어떠한 시각으로 바라보고 어떠한 기대를 하고 있는가 하는 것이 모델이다.
** 머신러닝의 과정
: 모델 정하기 -> 모델 수식화하기 -> 모델 학습하기 -> 모델 평가하기
모델이란 가정에 따라 생성될 수 있는 함수들의 집합이다. 이런 의미에서 보면 '모델이 바뀐다'는 것은 어떤 함수의 꼴이 완전히 달라진다는 것이다. 정해진 함수 안에서 함수의 파라미터를 데이터를 통해 추측하는 것을 학습이라고 한다. 머신러닝의 러닝이 바로 이 학습을 뜻한다. 그리고 학습이라는 것은 그 모델이 표현하는 함수 집합 중에서 가장 데이터에 적합한 함수를 고르는 과정이다.
1) 간단한 모델
데이터가 복잡하지 않고 간단하게 생겼다고 가정한다.
결과를 이해하기 쉽다.
학습이 쉽다.
가정 자체가 강력해서 모델의 표현 능력에 제약이 많다.
2) 복잡한 모델
데이터가 어떻게(간단하거나 복잡하게) 생겻을 것이라는 가정 자체가 별로 없다.
결과를 이해하기 어려울 수도 있다.
학습이 복잡하다.
한정된 데이터에서만의 변화를 그대로 학습하므로 새로운 데이터에 대해 성능이 떨어질 수 있다.
3) 구조가 있는 모델
구조가 있다 = 입력과 출력 요소가 서로 연관 관계가 있다
- 순차 모델
연속된 관측값이 서로 연관성이 있을 때 주로 사용한다. (ex. 문서의 텍스트, 시간과 관련된 데이터 분석)
대표적인 예) CRF(조건부 랜덤 필드, 조건부 무작위장) / RUN(순환 신경망, 재귀 신경망)
: 특정 시점에서 상태를 저장하고, 상태가 각 시점의 입력과 출력에 따라 변화한다.
- 그래프 모델
그래프를 이용해서 순차 모델보다 좀 더 복잡한 구조를 모델링한다. (ex. 문서의 문법 구조(보통 트리 형태)를 직접 모델링하거나 이미지의 픽셀 사이의 관계를 네트워크로 보고 그래프로 표현하여 모델링한다.)
대표적인 예) MRF(마르코프 랜덤 필드)
** 좋은 모델이란?
쉽게 생각하면 '데이터의 패턴을 잘 학습한 모델'이라고 할 수 있다.
1) 편향-분산 트레이드 오프(모델의 복잡도와 표현력에 대한 균형을 다룸)
- 모델이 데이터를 예측할 때 생기는 오류가 편향의 제곱과 분산으로 쪼개진다. 즉, 모델이 더 나은 성능을 내려면 편향을 줄이거나 분산을 줄여야 한다는 뜻이다.
- 편향은 데이터로 학습한 결과와 이상적인 모델 간의 차이이다. 데이터로 학습한 결과가 표현력이 부족해서 이상적인 모델과 많은 차이를 보인다면 값이 커지게 된다. 간단한 모델일수록 가정이 강하다. 따라서 표현력이 부족하므로 편향이 크게 나타난다. 물론 약한 가정을 하는 복잡한 모델이라 할지라도 데이터와 터무니없이 맞지 않으면 편향이 강하게 나타날 수 있다.
- 분산은 데이터를 이용해서 얻은 모델이 학습할 때마다 얼마나 달라질 수 있는지 나타낸다. 일반적으로 모델이 복잡할수록 학습할 때마다 나타나는 모델 편차가 크다. 즉, 모델이 복잡할수록 분산이 더 크게 나타난다.
따라서 모델의 성능을 극대화하기 위해서는 편향이 너무 크지 않아 적당히 유연하면서 너무 복잡하지 않아 분산이 작게 나오는 모델이 적합할 것이다. 편향이나 분산을 직접적으로 줄이는 대표적인 예로는 부스팅(간단한 모델을 여러 개 조합하여 편향을 줄이는 방법)과 랜덤 포레스트(복잡한 모델인 결정 트리를 여러 개 조합하여 분산을 줄이는 방법)이 있다.
2) 정규화(균형을 자동으로 학습하게 함)
** 모델의 복잡도 줄이는 방법
- 모델 변경 : 데이터를 표현하는 방법을 완전히 새롭게 전환해서 적합한 모델을 찾는 방법
- 정규화 : 모델에 들어 있는 인자에 제한을 두어 모델이 필요 이상으로 복잡해지지 않게 하는 방법
2.2 손실함수 : 모델의 수식화된 학습목표
모델이 실제로 데이터를 바르게 표현했는지 혹은 얼마나 예측이 정확한지 수학적으로 표현하는 것이 손실함수이다. 손실함수의 값이 작을수록 모델이 더 정확하게 학습된 것이다. 이때 손실함수로 얻은 결괏값을 보통 에러라고 부른다.
- 거의 같은 모델을 대상으로 하더라도 중요하게 생각하는 데이터의 특성에 따라 변형될 수 있다.
- 데이터 전체에 대해 계산하는 함수지만, 간단하게 표시하기 위해 한 개의 데이터에 대해서만 정의하기도 한다. 이때 각 데이터에 대한 손실함수 계산 결과의 총합이 그 모델과 데이터 전체에 대한 손실함수 결과이다. 물론 이런 경우에는 몇 가지 가정이 추가된다. 예를 들어, 데이터셋에서 각각의 데이터가 서로 확률적 독립이고 같은 분포를 가진다는 i.i.d 가정(independent and identically distributed; 독립항등분포)이 대표적이다.
1) 산술 손실함수 : 모델로 산술값을 예측할 때 데이터에 대한 예측값과 실제 관측값을 비교하는 함수. 주로 회귀 문제에서 사용.
2) 확률 손실함수 : 모델로 항목이나 값에 대한 예측하는 경우에 사용. 매우 유연하기 때문에 보편적으로 사용.
3) 랭킹 손실함수 : 모델로 순서를 결정할 때 사용. 추천 시스템에서 주로 사용.
4) 모델 복잡도와 관련된 손실함수 : 보통 위 손실함수들과 합쳐져서 모델이 필요 이상으로 복잡해지지 않도록 방지하는 손실함수. 정규화의 일종.
'Study > 처음 배우는 머신러닝' 카테고리의 다른 글
[ Part Ⅱ] Chapter 6. 영화 추천 시스템 만들기 (0) | 2021.07.25 |
---|---|
[ Part Ⅱ] Chapter 5. 문서 분석 시스템 만들기 (0) | 2021.07.15 |
[ Part Ⅱ] Chapter 4. 구매 이력 데이터를 이용한 사용자 그룹 만들기 (0) | 2021.07.11 |
[ Part Ⅱ] Chapter 3. 데이터와 문제 (0) | 2021.07.08 |
[ Part Ⅰ] Chapter 1. 머신러닝 시작하기 (0) | 2021.06.26 |
- Total
- Today
- Yesterday
- 10971
- 11051
- 프로그래머스
- heapq
- 1759
- 덱
- 10845
- 1182
- 백준
- 1358
- 자료구조
- 조합
- 딕셔너리
- 1715
- 러스트
- 파이썬
- 스택
- 2805
- 17478
- 백트래킹
- 10816
- 수학
- dp
- 브루트포스
- 빌림
- 싸피
- 삼성청년소프트웨어아카데미
- 큐
- 10815
- 1764
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |