Channi Studies

Machine Learning | 머신 러닝 본문

Data Science/개념과 용어

Machine Learning | 머신 러닝

Chan Lee 2024. 5. 18. 11:43

Machine Learning (ML) 은 무엇일까요?

머신 러닝은 컴퓨터에게 우리의 데이터에 가장 잘 활용될 수 있는 분석 모델을 찾을 수 있도록 하는 알고리즘을 제작해주고, 컴퓨터의 모델을 활용하여 매우 정확한 예측을 할 수 있는 일련의 과정을 말합니다.

 

지난 포스트에서 살펴본 전통적 방법들과는 다르게, 우리는 컴퓨터에게 모델을 찾는 방법에 대한 정보는 주지 않습니다.

(우리도 모르니까요)

우리가 컴퓨터에게 주는 것은 모델을 찾기 위한 알고리즘입니다.

 

컴퓨터는 주어진 데이터를 학습하여 모델을 발전시킵니다.

최적의 모델을 찾는 행위는 컴퓨터의 몫입니다.

여기서 '최적'의 기준을 어떻게 정하냐에 따라서 학습 반복의 횟수가 변하겠죠?

 

머신 러닝의 과정을 쉽게 요약하면, Trial-and-Error 과정, 즉 시도와 에러의 과정입니다.

각 연속적인 시도(학습)는 '무조건' 지난 시도(학습)과 동일하거나 더욱 뛰어난 성능을 보이게 됩니다.

 

이러한 머신 러닝에는 크게 4가지의 필수 구성 요소가 존재합니다.

1. 데이터 

2. 모델

3. Objective Function (목적 함수)

4. Optimization Algorithm (최적화 알고리즘)

입니다.

 

컴퓨터의 모델이 제공된 데이터목적 함수를 사용하여 그 결과를 평가하고, 평가된 결과를 기반으로 최적화 알고리즘을 거쳐 더욱 나은 모델을 derive하는 과정의 반복을 머신 러닝이라고 할 수 있겠습니다.

 

예시를 들어볼까요?

로봇에게 활과 여러 종류의 화살들을 제공한 뒤, 표적의 중앙에 가장 잘 맞출 수 있도록 머신 러닝을 시켰다고 합시다.

여기서 데이터는 여러 종류의 화살이 될 것이고, 모델은 컴퓨터가 적용하는 화살을 쏘는 방법이 되겠습니다.

그리고 목적 함수는 평균적인 표적 중앙에서의 화살 거리라고 보고, 이게 0에 가까울 수록 좋은 것이겠죠?

그렇다면 각 학습을 통해 여러가지 방법으로 활을 쏘는 것을 수많이 반복한 기계가, 각 trial 이후에 목적 함수의 값을 기반으로 모델을 평가하여 최적화 알고리즘을 수많이 적용하게 되고, 조금씩 더 나은 모델을 만들 수 있게 되는 것 입니다.

 

여기서 주목할 점은 우리가 목적을 제시해 주었을 뿐, 우리도 활을 가장 잘 쏘는 최적의 방법은 모른다는 것 입니다.

혹시 기계가 우리가 인류 역사동안 한번도 사용하지 않았던 엄청난 방법을 알게 될 수도 있다는 점을 인지해야 합니다.

 

 

이러한 머신 러닝의 종류들은 다음과 같습니다.

Types of Machine Learning:

1. Supervised Learning (지도 학습)

알고리즘 학습의 과정이 선생이 학생을 지도학습 하는 과정과 닮아 있다고 하여 붙은 이름입니다.

위의 활쏘기 모델 예시가 바로 이 지도 학습의 예시입니다.

실제와 더 같아지기 위해서, 우리는 예시의 표적을 여러개로 바꾸고, 화살의 종류에 따라서 (긴 화살, 짧은 화살, 중간 화살) 다른 위치에 있는 표적을 맞추기로 했다고 합시다.

이 경우, 우리는 표적들을 labelling 해서 화살을 쏘기 전에 맞춰야 하는 표적을 확인하고, 쏜 이후 해당 화살과 표적을 연관지여 부정확도를 측정하여 (목적 함수), 이를 최적화 알고리즘을 통해 개선합니다.

즉, 화살(데이터)과 표적(목적)을 라벨링하여 묶어서, 학습 시키는 방법입니다.

 

하지만 우리는 자원과 시간의 제한 때문에 항상 이 labelling을 할 수 있지는 않습니다.

이런 경우, 우리는 다른 형태의 학습을 적용합니다.

 

지도 학습의 종류들은 Support Vector Machines (SVMs), Neural Networks (NNs), Deep Learning, Random Forests, Boyesian Networks가 있습니다.

 

2. Unsupervised Learning (비지도 학습)

위의 활쏘기 예시에서, 우리는 표적을 기계에서 알려주었었습니다. 

이번에는 표적을 주어주지 않고, 그냥 발사하게 합니다. 

이 경우, 우리는 물론이고 컴퓨터도 당연히 화살(데이터)들의 종류와 특성을 모르기 때문에, 컴퓨터는 우선 수많은 시행착오를 거치며 화살(데이터)들을 특성에 따라 분류할 수 있게 됩니다.

가령 긴 화살, 중간 화살, 짧은 화살로 분류(clustered)하였다고 가정하고, 지도 학습에서 학습한 것 처럼 이어서 학습하게 됩니다.

 

만약 데이터의 크기가 너무나도 크다면, 우리는 비지도 학습을 하게 될 것 입니다.

지도 학습과 비지도 학습은 같이 적용되어 답해야 하는 질문에 맞추어 활용될 수 있습니다.

우리의 예시에서, 비지도 학습을 통해 데이터를 클러스터화 하고, 이 분류와 라벨링을 통해 화살과 표적을 식별하여 지도 학습을 진행한 것 처럼, 두가지 방법은 함께 사용될 수 있습니다.

 

비지도 학습의 종류들에는 k-mean, 그리고 deep learning이 있습니다.

 

지도 학습과 비지도 학습의 핵심 차이, Labelling의 유무는 다음 그림으로 훌륭하게 묘사가 되어있습니다.

출처: https://www.researchgate.net/figure/Supervised-and-unsupervised-machine-learning-a-Schematic-representation-of-an_fig3_351953193

 

3. Reinforcement Learning (강화 학습)

강화 학습에서, 우리는 Reward System (보상 시스템)을 적용하게 됩니다.

우리의 활쏘기 로봇이 표적에 더욱 가까운 활을 쏠 때 마다 (더욱 좋은 모델을 구현할 때 마다), 초콜릿(보상)을 준다고 합시다.

그리고 우리는 전보다 활을 못쏘면 초콜릿(보상)을 주지 않는다고 합시다.

 

이 경우, 우리는 에러를 최소화하는 것이 아니라, 보상을 최대화 하려고 하고 있습니다.

다시 말하자면, Objective Function (목적 함수)를 최대화 하려고 합니다.

 

활쏘기 로봇의 관점에서 해석해보겠습니다.

로봇이 활을 쐈는데, 저번보다 잘 쐈고 보상을 얻었다면, 로봇은 이 보상을 다음에도 얻기 위해서 이번에 어떤 걸 더 잘 했는지를 분석하여 학습합니다.

반대로 저번보다 못 쏴서 보상을 얻지 못했다면, 로봇은 어떤걸 다르게 해서 더 못 쏜건지를 분석하고, 반복하지 않도록 학습합니다.

이 과정을 우리는 Positive Reinforcement (긍정 강화) 라고 부릅니다

 

 

제가 이 글에서 예시로 든 화살쏘는 로봇(machine)의 비유를 풀어서 설명하자면,

기계의 활 쏘는 방법은 기계의 모델을 뜻하며, 현실에서는 매우 복잡한 수식으로 구조됩니다.

기계가 학습하기 위해 사용한 화살들은 다양한 데이터셋이며, 화살을 맞추려고 한 표적들은 다양하고 수량화할 수 있는 목적들입니다.

 

 

주의깊게 보신 분들은 지도 학습과 비지도 학습에 모두 딥 러닝이 포함되는 것을 인지하셨을 것 입니다.

딥 러닝은 그동안의 다른 머신 러닝 방법과는 근본적으로 다른 접근 방식을 사용합니다.

그리고 더욱 넓은 범용성과 실용성, 그리고 매우 높은 정확도를 자랑합니다.

 

중요한 점은 이러한 딥 러닝도 지도, 비지도, 강화 학습으로 나누어집니다.

즉, 딥 러닝도 머신 러닝과 동일한 문제를 풀지만, 개념적으로 다른 방법을 사용한다고 이해하면 되겠습니다.

 

 

실생활의 예시를 살펴볼까요?

사기 감지 (Fraud Detection)은 머신 러닝의 매우 좋은 예시입니다.

 

은행과 금융계는 어마어마한 크기의 신용 카드 거래 데이터를 보유하고 있습니다.

은행은 고객의 자산을 사기로부터 보호하기 위해서 머신 러닝 알고리즘을 사용합니다.

 

은행은 과거의 거래들을 정상적인 거래와 사기 거래로 분류할 수 있습니다. (과거의 일이니까요)

즉, 거래들을 라벨링을 할 수 있습니다.

 

라벨링을 했기 때문에 은행들은 Supervised Learning, 지도 학습을 진행할 수 있습니다.

이로써 탄생한 모델을 사용해서, 실시간으로 조금이라도 사기 거래의 위험도가 감지되면 이에 대처를 합니다.