01. 기본적인 Machine Learning 의 용어와 개념 설명

2020. 3. 22. 17:10AI/모두를 위한 딥러닝

이 포스트는 모두를 위한 딥러닝 - Tensor Flow를 정리한 내용을 담았습니다.
누구나 이해할 수 있는 수준으로 설명하고자 하였으며 LAB의 코드는 TF2.0에 맞추어 재작성되었습니다.

· What is Machine Learning?

대부분의 소프트웨어는 사용자의 입력에 따라 데이터를 읽고 보여주는 등의 방식으로 동작합니다. 이는 프로그래머가 사용자의 입력(input)에 따라 반응이나 동작(output)을 하도록 일일이 프로그래밍했기 때문이며, 이를 Explicit Programming (개발자가 입력 조건과 프로그램 상태 조건에 따라 프로그램이 동작하는 방식을 모두 구현하는 프로그래밍 방식)이라고 합니다.

 

하지만 스팸메일을 분류하거나 자동차 자율주행 등의, 많은 양의 규칙성이 없는 입력에 대해 일일이 프로그래밍하는 것에 한계가 있음을 인지하고, 다음의 방법에 관한 고찰이 나옵니다.

Arthur Samuel(1959) : "Field of study that gives computers the ability to learn without being explicitly programmed". 다시 말해 프로그래머가 일일이 정하지 않고, 자료나 현상 등의 데이터에서 컴퓨터가 자동적으로 학습하는 것을 고안해 내었습니다. 이것이 지금의 머신러닝입니다.

 

· Supervised (지도 학습) / Unsupervised learning (비지도 학습)

 · Supervised learning (지도 학습)

 지도 학습은 특정 레이블을 정한 데이터 (흔히 training set이라고 합니다)들을 가지고 학습하는 것을 말합니다.

쉽게 말해 지도 학습은 이미 정답이 정해진, 이름이 붙여진 데이터로 학습하는 것을 말합니다.

 

예를 들어 수많은 고양이 사진을 "cat"이라는 레이블을 달아 데이터(training set)로 주면, 기계는 사진들을 토대로 학습합니다. 또한 "dog" 레이블을 달은 수많은 개 사진을 주면, 기계는 학습하여 사진들 간의 유사성을 토대로 다음 사진이 "cat"레이블에 속하는지, "dog"레이블에 속하는지를 구분 지을 수 있게 됩니다. 

출처 : http://cs231n.github.io/classification

 

다음은 위의 image labeling 이외의 사례들로 지도 학습의 유형에 대해 자세하게 살펴보겠습니다.

 

· binary classification

 - 스팸 메일 분류 : 다양한 이메일에 스팸 메일인지(spam), 스팸 메일이 아닌지(ham) 레이블을 정해, 학습을 하여 다음 메일에 대해 스팸메일인지 아닌지를 판단할 수 있습니다. 비트가 0인지 1인지를 판단하는 것처럼, 이진법적으로 분류하는 사례로 보시면 됩니다.

· regression

 - 부동산 가격 : 현재 부동산 시세, 집 평수, 아파트 층 등 부동산 가격에 영향을 미치는 많은 데이터들을 학습하여 새 부동산 매물에 대해 가격을 예측할 수 있습니다. (물론 현실에서는 부동산 가격은 연속적이므로 이를 예측하기 위해서는 훨씬 많은 요소들의 데이터가 필요합니다.)

· multi-label classification

 - 기말시험 성적 : 우리는 이제 중간시험에서의 성적, 공부 시간 등의 데이터를 학습하여 기말시험 성적을 예측할 수 있습니다. 또한 이를 A, B, C, D, F 학점으로 분류할 수 있습니다. (점수는 연속적인 값이지만, 일정한 기준에 따라 A ~ F 등급으로 나누기 때문에 위의 경우는 분류로 봅니다. 자세하게는 pass / non-pass의 이진법적인 기준이 아니라 A, B, C 등의 다양한 기준이 있다는 점에서 다중 분류의 유형입니다.)

 

- AlphaGo : 알파고 또한 지도 학습의 예시라고 할 수 있습니다. 수많은 바둑 기보를 학습한 알파고는 매번 최적의 지점을 계산하여 바둑돌을 놓습니다. 이는 수많은 training data set을 학습하고 상대방이 놓은 바둑돌을 입력으로 받아 승리 확률이 가장 높은 지점을 결괏값으로 내는 것으로 해석할 수 있습니다.

 

+) 예시에 "주어진 training data set을 학습하여",  "결괏값을 낸다. 값을 예측한다."라는 표현을 자주 사용하였습니다. 앞으로는 함수 차원에서 training data set을 "x", 결괏값을 "y"로 보는 것이 내용을 이해하는 것에 도움이 될 것입니다.

 

 · Unsupervised learning (비지도 학습)

  비지도 학습은 너무 많은 레이블이 필요하는 등 일일이 레이블을 정하기 힘든 경우, 데이터들 간의 유사성을 가지고 스스로 학습하여 grouping 또는 clustering 하는 것을 말합니다. 쉬운 예로 news grouping은 매일 업로드되는 뉴스들은 그 종류와 양이 방대하여 미리 레이블을 정하는 것이 어렵기 때문에, 기계는 스스로 학습하여 유사한 내용의 뉴스들끼리 그룹으로 묶어줍니다. (물론 관리자는 추후에 사용자들 보기에 편리하게 뉴스 그룹들을 특정 카테고리에 추가하는 작업을 합니다)

뉴욕타임즈의 Science를 클릭하면 그룹화 된 다양한 뉴스들을 볼 수 있습니다.