BLOG

인사이트/블로그

머신러닝의 기본 개념과 이해

루이
2022-03-06




1. 인공지능 vs 머신러닝 vs 딥러닝



인공지능의 하위 개념인 머신러닝

인공지능의 하위 개념인 머신러닝




#인공지능, #머신러닝, #딥러닝. 오늘을 살아가는 우리가 필연적으로 마주할 수 밖에 없는 개념입니다. 언뜻 서로 다른 개념인 듯 보이지만 실은 인공지능 ⊃ 머신러닝 ⊃ 딥러닝의 관계로, 상위 개념인 인공지능이 인간의 어떠한 개입 없이도 스스로 학습하고 판단할 수 있는 컴퓨터를 가리킨다면, 하위 개념인 머신러닝은 컴퓨터가 학습할 수 있도록 하는 하나의 방법론을 의미합니다.


구체적으로 이야기하자면, 데이터라는 학습의 재료와 알고리즘이라는 학습의 경로를 컴퓨터에게 제공함으로써 양자의 결합을 통해 학습된 컴퓨터가 별도의 코딩 없이도 스스로 판단을 내릴 수 있도록 하는 방법론입니다. 학습 과정에서 구체적인 지시는 수반되지 않지만, 학습 전후로 일정량의 코딩이 수반된다는 점에서 거시적 관점에서의 보편적 인공지능이라기 보다는 이를 달성하기 위한 방법론으로 인식됩니다.


딥러닝이란 그러한 머신러닝의 하위 개념으로, 보다 진보한 형태의 학습방식을 의미합니다. 알고리즘이 정한 경로를 따라 학습하는 것이 아닌 여러 계층으로 이루어진 신경망을 통해 데이터를 주체적으로 학습해 판단을 내릴 수 있는 것이 그 특징입니다.




다빈치랩스 모듈 중 하나인 시계열 분석 (Time Series Analysis)

다빈치랩스 모듈 중 하나인 시계열 분석 (Time Series Analysis)




다빈치랩스는 이 중 머신러닝의 영역을 자동화해 편의성을 극대화한 제품입니다. 딥러닝을 포함한 다양한 머신러닝 알고리즘을 사용자 개입을 최소화한 형태로 제공하며, 데이터 구비를 제외한 대부분의 학습 과정을 자동화해 오로지 마우스 클릭만으로 활용할 수 있습니다.


2. 알고리즘과 모델


앞서 언급한 것처럼 머신러닝은 컴퓨터에게 데이터와 알고리즘을 제공하는 학습 방법론입니다. 그러나 일반적으로 머신러닝하면 연상되는 개념은 알고리즘보다는 모델일 것입니다. 개념의 혼재로 인해 종종 헷갈리기도 하는 두 개념의 차이는 무엇일까요. 두 개념을 명확히 정의하고 넘어가봅시다.


알고리즘이란 문제 해결을 위해 필요한 단계의 순서를 구체적으로 명시하는 계산법/규칙의 조합을 의미합니다. 따라서 머신러닝에서의 알고리즘은 데이터를 해당 알고리즘을 통해 학습해 '예측'이라는 결론에 도달하는 것을 의미한다고 볼 수 있습니다.


그렇다면 모델은 무엇을 의미할까요? 직관적인 이해를 위해 모델을 공식으로 정리하면 아래와 같습니다.


데이터 + 알고리즘 = 모델


다시 말해 모델은 데이터 학습이 완료된 알고리즘을 의미합니다. 부품인 알고리즘이 또 다른 부품 데이터와 결합해 완성되는 완성품이 모델이며, 이 모델이 출력하는 예측값이 우리가 머신러닝을 통해 최종적으로 얻고자 하는 산출물인 것입니다.


다빈치랩스에 대입해 생각해보면, 사용자가 준비한 데이터를 다빈치랩스에 업로드하면, 다빈치랩스에 탑재된 다양한 머신러닝 알고리즘이 해당 데이터를 학습해 모델을 완성하고, 사용자는 개중 우수한 모델을 선택해 이를 예측에 활용하는 것이죠.




어떤 알고리즘을 조합해서 최상의 모델을 만들어볼까요?

어떤 알고리즘을 조합해서 최상의 모델을 만들어볼까요?




3. 지도학습 vs 비지도학습


앞선 두 항목을 통해 머신러닝이 컴퓨터가 데이터를 학습하는 행위라는 것을 알게 되었는데요, 인간이 다양한 방식으로 지식을 학습하듯 컴퓨터의 학습 또한 다양한 방식으로 세분화됩니다. 대표적으로 지도학습과 비지도학습으로 나뉘어 지는데요, 각각의 개념이 무엇을 의미하는지 알아보도록 하겠습니다.


인간의 예를 들어볼까요? 인간이 지식을 학습하는 방식에도 여러가지가 있겠으나 대부분의 학습은 과거에 선행된 경험의 기록으로부터 촉발되거나, 선행 사례가 없는 경우 직접 몸으로 부딪혀 다양한 시도 끝에 체득하는 방식으로 이루어집니다.


과거에 이미 경험되었던 지식은 그 결과와 함께 기록되어 전수됩니다. 즉, 그 기록을 학습하면 해당 케이스와 비슷한 유형의 상황을 마주했을 때 그 기록을 바탕으로 추론할 수 있는 것이죠. 그러나 모든 지식이 과거에 경험되었을 수는 없습니다. 완전히 새로운 지식의 경우 정답이 있는 것이 아니기에 그 지식을 하나하나 파헤쳐보는 것이 학습이 되는 것이죠.


이는 컴퓨터가 학습할 때에도 마찬가지인데요, '지식=데이터'라 가정해보겠습니다. 데이터 속에 과거의 히스토리가 존재한다면 컴퓨터는 그 히스토리를 학습해 비슷한 상황에서 적합한 결론을 도출해낼 수 있습니다. 이를 #지도학습(Supervised Learning)이라고 합니다. 말 그대로 과거의 기록을 학습해 미래의 가능성을 예측해볼 수 있는 것이죠.


반면, 과거의 히스토리가 존재하지 않는 데이터는 어떨까요? 컴퓨터는 정답을 모르기 때문에 데이터 자체에 근거해 그 패턴을 이해하고 비슷한 유형의 지식(데이터 샘플)끼리 분류하는 것을 목표로 하게 됩니다. 이를 우리는 #비지도학습(Unsupervised Learning)이라고 부릅니다.



지도학습과 비지도학습의 개념

지도학습과 비지도학습의 개념



이렇게 비슷한 유형의 지식이나 특성들을 군집별로 묶어주것을 머신러닝에서는 #클러스터링 이라고 부르고 있습니다. 초반에 설명드린 모델을 만드는 것을 #모델링 이라고 하고, 모델링의 목적이 예측하고 싶은 대상을 지정하여 알고리즘으로 추정하는 것이라면 반대로 클러스터링의 결과물은 예측 대상이 아니라 데이터의 군집화라고 할 수 있겠습니다.


일반적인 머신러닝에서 클러스터링은 비지도학습 클러스터링에 국한되는 경우가 많습니다. 즉 특별한 기준이나 대상을 지정하지 않고도 데이터를 군집화하여 군집별 특성을 파악하는 데에 활용되고 있습니다. 다빈치랩스에서는 Auto Clustering 이라는 모듈로 구현되고 있죠. 반면에 지도학습 클러스터링은 데이터를 군집화하는 기준을 정하고 출발하는 데에 차이가 있습니다. 예를 들어 대출상환여부라는 기준을 지정한 뒤, 대출상환율이 높은 고객들을 군집으로 묶어주었을 때 그 군집의 특성에는 무엇이 있는지 알아보는 식입니다.




지도학습 클러스터링 : Rule Generation

지도학습 클러스터링 : Rule Generation



다빈치랩스에서는 이러한 지도학습 클러스터링을 Rule Generation 이라는 모듈로 구현하고 있습니다. 군집의 크기, 군집에 따른 특성치가 잘 분류되어있죠? 향후에는 이 모듈이 어떤 방식으로 비즈니스에 활용될 수 있는지 다루어보도록 하겠습니다.