자세히 보기

Martin Heller
Contributing Writer

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

머신러닝은 데이터로부터 자동으로 모델을 생성하는 알고리즘이 포함된 인공지능의 한 지류다. 머신러닝의 종류는 크게 지도학습(Supervised L

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

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

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

손실 함수는 모델의 ‘나쁨’을 반영하기 위해 선택한다. 최고의 모델을 찾기 위해 손실을 최소화한다. 수치적 (회귀) 문제의 경우 손실 함수는 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. 데이터가 범위를 벗어난 행을 제외한다. 예를 들어, 뉴욕 시내 택시 이동량을 분석하려면 대도시 지역의 테두리 박스를 벗어난 탑승 또는 하차 위도 및 경도를 가진 행을 필터링한다.

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

머신러닝을 위한 데이터 인코딩 및 정규화
머신 분류를 위해 범주 문법 데이터를 사용하려면 텍스트 레이블을 다른 형식으로 인코딩해야 한다. 보편적인 인코딩은 2가지다.

하나는 각 텍스트 레이블값과 함께 숫자를 배치하는 레이블 인코딩이며, 다른 하나는 각 텍스트 레이블값을 2진수 값(1 또는 0)을 가진 열로 바꾸는 원핫(One-hot) 인코딩이다. 대부분의 머신러닝 프레임워크는 변화를 수행하는 기능이 있다. 일반적으로 레이블 인코딩 때문에 머신러닝 알고리즘이 인코딩된 열을 지시했다고 착각할 수 있기 때문에 원핫 인코딩을 선호한다.

머신 회귀에 수치 데이터를 사용하려면 일반적으로 데이터를 정규화해야 한다. 그렇지 않으면 범위가 더 큰 숫자는 기능 벡터들 사이의 유클리드 거리를 지배하는 경향이 있을 수 있으며, 다른 필드를 희생하면서 영향이 증폭되고 가장 가파른 하강 최적화가 수렴하는 데 어려움이 있을 수 있다. 최소-최대 정규화, 평균 정규화, 표준화, 단위 길이로 확장 등 머신러닝을 위해 데이터를 정규화 및 표준화할 방법이 많다. 이 과정을 ‘특징 확장‘이라 부르곤 한다.

머신러닝을 위한 특징 엔지니어링
특징은 관찰되는 현상의 개별적인 측정 가능한 속성 또는 특성이다. ‘특징’의 개념은 선형 회귀 등의 통계 기법에 사용되는 설명 변수의 그것과 관련되어 있다. 특징 벡터는 단일 행의 모든 특징을 수치 벡터로 결합한다.

특징을 선택할 때의 핵심은 문제를 설명하는 최소한의 독립적인 변수 세트를 선택하는 것이다. 2개의 변수가 상호 긴밀히 관련된 경우 단일 특징으로 결합하거나 하나를 포기해야 한다. 상호 관련된 변수들을 상호 선형적으로 관련되지 않은 변수의 세트로 변환하는 주성분 분석을 수행할 때가 있다.

새로운 특징을 구성하거나 특징 벡터의 차원수를 줄이기 위해 사용하는 변형 일부는 단순하다. 예를 들어, <사망 연도(Year of Death)>에서 <출생 연도(Year of Birth)>를 빼고 <사망 당시의 연령(Age at Death)>을 구성하는 것은 수명 및 사망 분석을 위한 기본적인 독립적 변수다. 특징 구성이 그렇게 확실하지 않을 수도 있다.

보편적인 머신러닝 알고리즘
선형 회귀와 로지스틱 회귀부터 심층 신경망과 앙상블(기타 모델의 조합)까지 다양한 복잡성을 가진 수십 개의 머신러닝 알고리즘이 존재한다. 하지만 가장 보편적인 알고리즘은 다음과 같다.

• 선형 회귀, 일명 LSR(Least Squares Regression)(수치 데이터용)
• 로지스틱 회귀(2진 분류용)
• 선형 판별 분석(다중 카테고리 분류용)
• 결정 트리(분류 및 회귀용)
• 나이브 베이즈(Naïve Bayes)(분류 및 회귀용)
• KNN(K-Nearest Neighbors)(분류 및 회귀용)
• LVQ(Learning Vector Quantization)(분류 및 회귀용)
• SVM(Support Vector Machines)(2진 분류용)
• 랜덤 포레스트, 일종의 “배깅(Bagging)”(Bootstrap Aggregation) 앙상블 알고리즘(분류 및 회귀용)
• AdaBoost와 XGBoost 등의 부스팅 방법은 각각의 점진적인 모델이 이전 모델의 오류를 교정하려 시도하는 일련의 모델을 생성하는 앙상블 알고리즘이다(분류 및 회귀용).
• 신경망(분류 및 회귀용)

하이퍼파라미터 튜닝
하이퍼파라미터는 머신러닝 모델 안에서 튜닝 되는 웨이트와는 다른 자유 변수이다. 하이퍼파라미터는 알고리즘마다 다르지만 각 배치의 오류를 계산한 후 적용되는 교정의 규모를 통제하기 위해 사용하는 학습 계수가 포함되는 경우가 많다.

현재 많은 생산 머신러닝 플랫폼들이 자동 하이퍼파라미터 튜닝을 제공하고 있다. 기본적으로 시스템에 변경하고 싶은 하이퍼파라미터와 최적화하고 싶은 지표를 말하면 시스템이 이 하이퍼파라미터를 허용되는 횟수만큼 정리한다. (구글 클라우드 머신러닝 엔진의 하이퍼파라미터 튜닝은 텐서플로 모델에서 적절한 지표를 추출하기 때문에 이를 지정할 필요가 없다.)

하이퍼파라미터를 정리하는 주요 검색 알고리즘은 베이스 최적화, 그리드 검색, 무작위 검색 등 3가지이다. 베이스 최적화가 가장 효율적인 경향이 있다. 사용하고 있는 플랫폼이 자동화하지 않더라도 코드에서 자신만의 하이퍼파라미터 정리를 이행할 수 있다.

요약하자면 지도학습은 레이블이 적용된 훈련 데이터를 튜닝 된 예측 모델로 바꾼다. 그 과정에서 데이터를 정제하고 정규화하며 일련의 선형적으로 상호 연관되지 않은 특징을 엔지니어링하고 여러 알고리즘을 사용해 최고의 모델을 찾아야 한다. dl-ciokorea@foundryco.com

Martin Heller

Martin Heller is a contributing writer at InfoWorld. Formerly a web and Windows programming consultant, he developed databases, software, and websites from his office in Andover, Massachusetts, from 1986 to 2010. From 2010 to August of 2012, Martin was vice president of technology and education at Alpha Software. From March 2013 to January 2014, he was chairman of Tubifi, maker of a cloud-based video editor, having previously served as CEO.

Martin is the author or co-author of nearly a dozen PC software packages and half a dozen Web applications. He is also the author of several books on Windows programming. As a consultant, Martin has worked with companies of all sizes to design, develop, improve, and/or debug Windows, web, and database applications, and has performed strategic business consulting for high-tech corporations ranging from tiny to Fortune 100 and from local to multinational.

Martin’s specialties include programming languages C++, Python, C#, JavaScript, and SQL, and databases PostgreSQL, MySQL, Microsoft SQL Server, Oracle Database, Google Cloud Spanner, CockroachDB, MongoDB, Cassandra, and Couchbase. He writes about software development, data management, analytics, AI, and machine learning, contributing technology analyses, explainers, how-to articles, and hands-on reviews of software development tools, data platforms, AI models, machine learning libraries, and much more.

이 저자의 추가 콘텐츠