2019.06.21

딥러닝의 한 갈래 '지도학습'이란?

Martin Heller | InfoWorld
머신러닝은 데이터로부터 자동으로 모델을 생성하는 알고리즘이 포함된 인공지능의 한 지류다. 머신러닝의 종류는 크게 지도학습(Supervised Learning), 비지도학습(Unsupervised Learning), 강화학습(Reinforcement Learning), 능동적 머신러닝(Active Machine Learning) 등 4가지가 있다. 강화학습과 능동적 머신러닝은 상대적으로 새롭기 때문에 이런 종류의 목록에서 생략될 때도 있다. 또한 반 지도학습(Semi-supervised Learning)도 목록에 포함해야 한다.
 
ⓒDreamstime


지도학습이란 무엇인가?
지도학습은 올바른 답변(목표 값)으로 태그된 학습 데이터부터 출발한다. 학습 과정 후 이미 태그되지 않은 유사한 데이터에 대한 답을 예측할 수 있는 조정된 웨이트를 가진 모델을 얻게 된다.

오버피팅이나 언더피팅 없이 정확도가 높은 모델을 훈련해야 한다. 정확도가 높다는 것은 손실 함수를 최적화했다는 뜻이다. 분류 문제 맥락에서 정확도는 모델이 올바른 출력을 생성하는 예의 비율이다.

오버피팅이란 모델이 관찰한 데이터와 너무 긴밀하게 연관되어 있어서 관찰하지 않은 데이터로 일반화하지 않는다는 뜻이다. 언더피팅은 모델이 데이터의 기본 트렌드를 포착할 만큼 충분히 복잡하지 않다는 뜻이다.

손실 함수는 모델의 ‘나쁨’을 반영하기 위해 선택한다. 최고의 모델을 찾기 위해 손실을 최소화한다. 수치적 (회귀) 문제의 경우 손실 함수는 MSE(Mean Square Error)인 경우가 많으며 RMSE(Root Mean Squared Error)나 RMSD(Root Mean Square Deviation)으로도 표현된다. 이는 데이터 포인트와 모델 곡선 사이의 유클리드 거리에 해당한다. 분류 (비수치적) 무제의 경우 손실 함수는 ROC 곡선 아래의 영역(AUC), 평균 정확도, 정밀도 기억, 로그 손실 등 일련의 조치 중 하나에 기초할 수 있다. (AUC와 ROC 곡선에 대한 설명은 아래를 참조한다).

오버피팅을 방지하기 위해 태그된 데이터를 두 세트로 분리하는 경우가 많으며, 다수는 훈련을 위한 것이고 소수는 검증이나 시험을 위한 것이다. 검증 세트 손실은 일반적으로 훈련 세트 손실보다 높지만, 모델에 대한 편향이 나타나면 안 되기 때문에 주의해야 한다.

소규모 데이터 세트의 경우 시험 검증을 위해 고정된 홀드아웃 세트를 사용하면 통계가 낮아질 수 있다. 이를 우회하는 방법은 다양한 폴드(Fold, 데이터 서브세트)가 순서대로 다양한 훈련 시기를 위한 홀드아웃 세트가 되는 교차 검증 스키마를 사용하는 것이다.

AUC가 ROC 곡선 아래의 영역이라고 언급했다. ROC는 수신기 작동 특성 곡선이며, 이 용어는 무선 신호 분석에 사용되지만 기본적으로 ROC 곡선은 FP(False Positive)의 비율에 대한 TP(True Positive)의 비율을 표시함으로써 분류자의 민감도를 보여준다. ROC 곡선 아래의 높은 영역은 좋은 것이기 때문에 이를 손실 함수를 위한 기초로 사용하는 경우 실제로 AUC를 극대화해야 한다.
 

머신러닝을 위한 데이터 정제
세상에 클린 데이터라는 것은 없다. 머신러닝에 활용하려면 데이터를 공격적으로 필터링해야 한다. 예를 들어, 다음을 수행해야 한다.

1. 데이터를 살펴보고 누락된 데이터가 많은 열을 제외한다.
2. 데이터를 다시 살펴보고 예측에 사용하고 싶은 열을 선택한다(특징 선택). 특징 선택은 반복할 때 변경할 수 있는 것이다.
3. 나머지 열에서 여전히 데이터가 누락된 행을 제외한다.
4. 확실한 오타를 교정하고 같은 의미의 답변을 병합한다. 예를 들어, U.S., US, USA, America는 하나의 카테고리로 병합해야 한다.
5. 데이터가 범위를 벗어난 행을 제외한다. 예를 들어, 뉴욕 시내 택시 이동량을 분석하려면 대도시 지역의 테두리 박스를 벗어난 탑승 또는 하차 위도 및 경도를 가진 행을 필터링한다.

더 많은 것을 할 수 있지만 수집된 데이터에 따라 달라진다. 지루할 수 있지만 머신러닝 파이프라인에 데이터 정제 단계를 설정하면 원하는 대로 수정하여 반복할 수 있다.

 




2019.06.21

딥러닝의 한 갈래 '지도학습'이란?

Martin Heller | InfoWorld
머신러닝은 데이터로부터 자동으로 모델을 생성하는 알고리즘이 포함된 인공지능의 한 지류다. 머신러닝의 종류는 크게 지도학습(Supervised Learning), 비지도학습(Unsupervised Learning), 강화학습(Reinforcement Learning), 능동적 머신러닝(Active Machine Learning) 등 4가지가 있다. 강화학습과 능동적 머신러닝은 상대적으로 새롭기 때문에 이런 종류의 목록에서 생략될 때도 있다. 또한 반 지도학습(Semi-supervised Learning)도 목록에 포함해야 한다.
 
ⓒDreamstime


지도학습이란 무엇인가?
지도학습은 올바른 답변(목표 값)으로 태그된 학습 데이터부터 출발한다. 학습 과정 후 이미 태그되지 않은 유사한 데이터에 대한 답을 예측할 수 있는 조정된 웨이트를 가진 모델을 얻게 된다.

오버피팅이나 언더피팅 없이 정확도가 높은 모델을 훈련해야 한다. 정확도가 높다는 것은 손실 함수를 최적화했다는 뜻이다. 분류 문제 맥락에서 정확도는 모델이 올바른 출력을 생성하는 예의 비율이다.

오버피팅이란 모델이 관찰한 데이터와 너무 긴밀하게 연관되어 있어서 관찰하지 않은 데이터로 일반화하지 않는다는 뜻이다. 언더피팅은 모델이 데이터의 기본 트렌드를 포착할 만큼 충분히 복잡하지 않다는 뜻이다.

손실 함수는 모델의 ‘나쁨’을 반영하기 위해 선택한다. 최고의 모델을 찾기 위해 손실을 최소화한다. 수치적 (회귀) 문제의 경우 손실 함수는 MSE(Mean Square Error)인 경우가 많으며 RMSE(Root Mean Squared Error)나 RMSD(Root Mean Square Deviation)으로도 표현된다. 이는 데이터 포인트와 모델 곡선 사이의 유클리드 거리에 해당한다. 분류 (비수치적) 무제의 경우 손실 함수는 ROC 곡선 아래의 영역(AUC), 평균 정확도, 정밀도 기억, 로그 손실 등 일련의 조치 중 하나에 기초할 수 있다. (AUC와 ROC 곡선에 대한 설명은 아래를 참조한다).

오버피팅을 방지하기 위해 태그된 데이터를 두 세트로 분리하는 경우가 많으며, 다수는 훈련을 위한 것이고 소수는 검증이나 시험을 위한 것이다. 검증 세트 손실은 일반적으로 훈련 세트 손실보다 높지만, 모델에 대한 편향이 나타나면 안 되기 때문에 주의해야 한다.

소규모 데이터 세트의 경우 시험 검증을 위해 고정된 홀드아웃 세트를 사용하면 통계가 낮아질 수 있다. 이를 우회하는 방법은 다양한 폴드(Fold, 데이터 서브세트)가 순서대로 다양한 훈련 시기를 위한 홀드아웃 세트가 되는 교차 검증 스키마를 사용하는 것이다.

AUC가 ROC 곡선 아래의 영역이라고 언급했다. ROC는 수신기 작동 특성 곡선이며, 이 용어는 무선 신호 분석에 사용되지만 기본적으로 ROC 곡선은 FP(False Positive)의 비율에 대한 TP(True Positive)의 비율을 표시함으로써 분류자의 민감도를 보여준다. ROC 곡선 아래의 높은 영역은 좋은 것이기 때문에 이를 손실 함수를 위한 기초로 사용하는 경우 실제로 AUC를 극대화해야 한다.
 

머신러닝을 위한 데이터 정제
세상에 클린 데이터라는 것은 없다. 머신러닝에 활용하려면 데이터를 공격적으로 필터링해야 한다. 예를 들어, 다음을 수행해야 한다.

1. 데이터를 살펴보고 누락된 데이터가 많은 열을 제외한다.
2. 데이터를 다시 살펴보고 예측에 사용하고 싶은 열을 선택한다(특징 선택). 특징 선택은 반복할 때 변경할 수 있는 것이다.
3. 나머지 열에서 여전히 데이터가 누락된 행을 제외한다.
4. 확실한 오타를 교정하고 같은 의미의 답변을 병합한다. 예를 들어, U.S., US, USA, America는 하나의 카테고리로 병합해야 한다.
5. 데이터가 범위를 벗어난 행을 제외한다. 예를 들어, 뉴욕 시내 택시 이동량을 분석하려면 대도시 지역의 테두리 박스를 벗어난 탑승 또는 하차 위도 및 경도를 가진 행을 필터링한다.

더 많은 것을 할 수 있지만 수집된 데이터에 따라 달라진다. 지루할 수 있지만 머신러닝 파이프라인에 데이터 정제 단계를 설정하면 원하는 대로 수정하여 반복할 수 있다.

 


X