기계학습 알고리즘 종류 - gigyehagseub algolijeum jonglyu

머신러닝(Machine Learning) 즉, 기계학습이란 컴퓨터가 학습을 통해서, 기계에게 지식을 주입하는 것을 말한다. 우리가 어떠한 사람에게 "우리나라 수도인 서울은 대한민국에서 가장 인구가 많은 도시야"라고 누군가에게 지식을 전달 했을 때, 그 지식을 습득한 당사자는 "한 나라에서 인구가 가장 많은 도시는 수도일 확률이 높겠군"이라고 생각할 수 있다. 즉 이러한 어찌보면 확률을 컴퓨터에게 심어주는 것이 머신러닝이다.

기계학습의 종류는 크게 지도학습과 비지도학습으로 나뉘는데 최근에는 딥러닝으로 인해서 강화학습이 추가되어 3가지로 나뉘는 경우가 많다. 그럼 각각의 학습에 대한 정의는 무엇이고, 어떠한 알고리즘이 있는지 확인해보도록 하자


1. 지도학습(Supervised Learning)

가장 기본이 되고, 가장 구현하기 쉬운 알고리즘이 지도학습으로 일단 컴퓨터에게 문제(Feature)와 정답(Label)이 있는 데이터(Training Set)를 학습 시킨 후, 운영 데이터(Test Set)를 분류하거나 맞추는 것이 지도 학습이다.

예를 들어서, 어떤 지역의 원룸 매매 가격을 맞추는 지도학습을 만들어보고자 한다. 그래서 현재 거래가 완료된 데이터를 학습을 시켜서, 현재 등장한 매물을 보고 정가에 팔릴 것인지를 예측하는 시스템을 만들고자 한다.

이때 매매가 이미 완료된 데이터가 학습에 사용되는 학습 데이터(Training Set)이다. 이 학습 데이터는 Feature와 Label이 있어야 하는데 Feature는 지역, 층수, 엘레베이터유무, 평수, 방수, 화장실 개수, 건축년도 등등 상당히 많은 수가 있을 것이고, Label은 매매가격이다.

이렇게 컴퓨터에게 Feature를 학습하여, 새로운 Feature값을 넣으면 컴퓨터가 계산을 통해서 매매가격을 예측하는 것이다. 이렇게 학습하는 것이 바로 지도학습이다.

지도 학습에는 상당히 많은 알고리즘이 존재하는데 대표적인 알고리즘으로 의사결정 트리(Desicion Tree), KNN(K-nearest neighbor), 신경망(Neural Network), SVM(Support Vector Machine) 등과 같은 알고리즘이 있다. 데이터의 예측을 어느정도 할 수 있다보니 튜닝하기에도 어느정도 용이하다.

기계학습 알고리즘 종류 - gigyehagseub algolijeum jonglyu

svm 알고리즘

2. 비지도 학습(Unsupervised Learning)

비지도 학습은 비지도 한다는 말처럼 사람의 개입이 없이 컴퓨터가 알아서 어떠한 결과를 도출해 내는 것을 뜻한다. 지도 학습은 우리가 결과를 안다는 가정하에 컴퓨터가 그에 맞춰서 문제를 해결하는 것을 원한다고 한다면 비지도는 우리도 뭔지 모르는 무언가를 컴퓨터가 해결하길 바라는 것이다.

예를 들어, 어떤 로그 파일에 대한 데이터 분석을 수행했는데 아무런 Insight를 못찾았다고 했는데 컴퓨터의 비지도 학습 알고리즘을 돌려보니 사람들이 인지하지 못했던 어떤 분류를 했다던지, 문제를 풀어버리는 행위이다. 

비지도 학습에 대표적인 방법이 클러스터링(Clustering) 즉 군집화가 존재한다. 너무도 많은 Feature로 인해서 인간이 어떤식으로 분류를 해야 할지 모르는 상태에서 Clustering 알고리즘을 활용하여 컴퓨터에게 맡기면 새로운 방식으로 인간이 알지 못하는 방식의 분류를 수행할 수 있다.

clustering에 대표적인 k-means 알고리즘

물론 클러스터링이 언제나 정답은 아니다. 간혹 왜 이렇게 분류를 했지? 아무리 찾아도 모르는 경우가 있고 그럴 때는 다시 어느정도의 Feature들을 컴퓨터가 이해하기 쉽게 선작업을 해야 하는 경우가 있다.  

비지도 학습은 인간이 인지하지 못하는 부분에 많이 쓰이기 때문에 금융권에서 FDS 시스템(금융 위험 이상 탐지 시스템)에서도 많이 쓰이고, 해커들이 침입했을 때의 패턴을 스스로 분석하여 해커들의 침입을 인지할 수도 있다. 즉 지도 학습을 사용하기 힘든 부분에 컴퓨터의 머리를 빌려 학습을 해 나가는 것이 비지도 학습이라고 쉽게 생각하면 된다

3. 강화 학습(Reinforcement Learning)

사실 강화 학습은 상당히 애매한 영역이다. 2가지로 분류해야 한다면 지도학습의 카테고리에 들어가야 하는 기법인데 최근 들어서 알파고의 학습으로 유명해진 기법이다.

강화 학습의 핵심은 바로 보상(Reward)이다. 컴퓨터는 이 보상을 받는 행위를 위해서 스스로 문제점을 찾아나가게 되는데 초반에는 인간의 어느정도의 개입이 들어갈 수 있다. 

지도학습과 비지도학습은 컴퓨터가 스스로 성장하는 모습이 쉽지 않는 모양이지만, 강화학습은 목표가 보상의 최대치가 되는 행동을 하자라는 것이다. 예를 들어, 게임을 한다면 최종스코어(Max Score)를 최대치를 만드는 것이 임무일 수 있고, 이 최대치를 만들기 위해서 끊임없이 노력을 하게 된다. 

알파고 같은 경우는 초반에 바둑 프로들이 둔 기보를 통해서 성장을 하다가 나중에 알파고 대 알파고의 대결로 새로운 기보를 만들어 내고, 끊임없이 성장해 나가게 되는데 이 이유는 지도 학습이 아닌 강화 학습이기 때문에 가능한 것이다.

강화학습에서 사용되는 대표적인 기법은 딥러닝(Deep Learning)이다. 참고로 딥러닝이 강화학습에 좋은 기법이지만 딥러닝이라는 말이 어떠한 하나의 알고리즘을 말하는 것이 아닌 신경망이 매우 깊은 것을 말하는 것이기에 지도학습, 비지도학습에서도 딥러닝은 사용된다.

주요 콘텐츠로 건너뛰기

이 브라우저는 더 이상 지원되지 않습니다.

최신 기능, 보안 업데이트, 기술 지원을 이용하려면 Microsoft Edge로 업그레이드하세요.

Azure Machine Learning을 위한 알고리즘을 선택하는 방법

  • 아티클
  • 10/13/2022
  • 읽는 데 17분 걸림

이 문서의 내용

일반적인 질문은 "어떤 기계 학습 알고리즘을 사용해야 하나요?"입니다. 선택하는 알고리즘은 주로 데이터 과학 시나리오의 두 가지 서로 다른 측면에 따라 결정됩니다.

  • 데이터로 어떤 작업을 수행할 예정인가요? 구체적으로, 과거 데이터에서 학습하여 답변하고 싶은 비즈니스 질문은 무엇인가요?

  • 데이터 과학 시나리오의 요구 사항은 무엇인가요? 구체적으로, 정확도, 학습 시간, 선형성, 매개 변수 수 및 솔루션이 지원하는 기능 수는 어떻게 되나요?

기계학습 알고리즘 종류 - gigyehagseub algolijeum jonglyu

비즈니스 시나리오 및 Machine Learning 알고리즘 치트 시트

Azure 기계 학습 알고리즘 치트는 첫 번째 고려 사항인 데이터로 어떤 작업을 수행할 예정인가요? 에 도움이 됩니다. Machine Learning 알고리즘 치트 시트에서 수행하려는 작업을 찾은 다음 예측 분석 솔루션을 위한 Azure Machine Learning 디자이너 알고리즘을 찾습니다.

Machine Learning 디자이너는 다중 클래스 의사 결정 포리스트, 추천 시스템, 신경망 회귀, 다중 신경망 및 K-평균 클러스터링과 같은 포괄적인 알고리즘 포트폴리오를 제공합니다. 각 알고리즘은 다양한 유형의 기계 학습 문제를 해결하기 위해 고안되었습니다. 각 알고리즘의 작동 방식 및 알고리즘을 최적화하기 위해 매개 변수를 튜닝하는 방법에 대한 문서와 함께 전체 목록은 Machine Learning 디자이너 알고리즘 및 구성 요소 참조를 참고하세요.

Azure Machine Learning 알고리즘 치트 시트의 지침과 함께 솔루션에 대한 기계 학습 알고리즘을 선택할 때는 다른 요구 사항을 염두에 두어야 합니다. 다음은 정확도, 학습 시간, 선형성 매개 변수 수 및 기능 수와 같은 고려해야 할 추가 요소입니다.

기계 학습 알고리즘 비교

참고

디자이너는 두 가지 유형의 구성 요소, 즉 미리 빌드된 클래식 구성 요소와 사용자 지정 구성 요소를 지원합니다. 이러한 두 가지 유형의 구성 요소는 호환되지 않습니다.

클래식 미리 빌드된 구성 요소는 주로 데이터 처리 및 회귀 및 분류와 같은 기존 기계 학습 작업을 위해 미리 빌드된 구성 요소를 제공합니다. 이 유형의 구성 요소는 계속 지원되지만 새 구성 요소는 추가되지 않습니다.

사용자 지정 구성 요소를 사용하면 사용자 고유의 코드를 구성 요소로 제공할 수 있습니다. 작업 영역 간에 공유를 지원하고 Studio, CLI 및 SDK 인터페이스에서 원활한 제작을 지원합니다.

이 문서는 클래식 미리 빌드된 구성 요소에 적용됩니다.

일부 학습 알고리즘에서는 데이터 구조 또는 원하는 결과에 대해 특수한 가정을 합니다. 사용자 요구에 적합한 것을 찾을 수 있는 경우 보다 유용한 결과, 보다 정확한 예측 또는 단축된 교육 시간을 제공할 수 있습니다.

다음 표에는 분류, 회귀 및 클러스터링 제품군에서 알고리즘의 가장 중요한 특성이 요약되어 있습니다.

알고리즘정확도(Accuracy)학습 시간선형성매개 변수참고
분류 제품군
2클래스 로지스틱 회귀 좋음 빠름 4
2클래스 의사 결정 포리스트 우수 보통 5 더 느린 채점 시간을 표시합니다. 누적 트리 예측의 스레드 잠금으로 인한 더 느린 채점 시간 때문에 일대다 다중 클래스를 사용하지 않는 것이 좋습니다.
2클래스 향상된 의사 결정 트리 우수 보통 6 큰 메모리 공간
2클래스 인공신경망 좋음 보통 8
2클래스 평균 퍼셉트론 좋음 보통 4
2클래스 서포트 벡터 머신 좋음 빠름 5 큰 기능 집합의 적합
다중 클래스 로지스틱 회귀 좋음 빠름 4
다중 클래스 의사 결정 포리스트 우수 보통 5 더 느린 채점 시간 표시
다중 클래스 향상된 의사 결정 트리 우수 보통 6 적은 범위의 약간의 위험으로 정확도를 향상시키는 경향이 있습니다.
다중 클래스 신경망 좋음 보통 8
일대다 다중 클래스 - - - - 선택된 2클래스 메서드의 속성을 참조하세요.
회귀 제품군
선형 회귀 좋음 빠름 4
의사 결정 포리스트 회귀 우수 보통 5
향상된 의사 결정 트리 회귀 우수 보통 6 큰 메모리 공간
인공신경망 회귀 좋음 보통 8
클러스터링 제품군
K-평균 클러스터링 우수 보통 Yes 8 클러스터링 알고리즘

데이터 과학 시나리오에 대한 요구 사항

데이터를 사용하여 수행할 작업을 확인한 후에는 솔루션에 대한 추가 요구 사항을 확인해야 합니다.

다음 요구 사항을 절충하여 선택합니다.

  • 정확도
  • 학습 시간
  • 선형성
  • 매개 변수 수
  • 기능 수

정확도

기계 학습의 정확도는 전체 사례에 대한 실제 결과의 비율로 모델의 효율성을 측정합니다. 기계 학습 디자이너에서 모델 평가 구성 요소는 일련의 업계 표준 평가 메트릭을 계산합니다. 이 구성 요소를 사용하여 학습된 모델의 정확도를 측정할 수 있습니다.

항상 가장 정확한 응답을 얻어야 하는 것은 아닙니다. 용도에 따라 근사치가 적절한 경우도 있습니다. 이 경우 더 근접한 방법을 사용하여 처리 시간을 크게 줄일 수 있습니다. 또한 대략적인 방법은 자연스럽게 과잉 맞춤을 방지하는 경향이 있습니다.

모델 평가 구성 요소를 사용하는 방법에는 세 가지가 있습니다.

  • 모델을 평가하기 위해 학습 데이터에 대한 점수 생성
  • 모델에 점수를 생성하지만 이러한 점수를 예약된 테스트 집합의 점수와 비교합니다.
  • 동일한 데이터 세트를 사용하여 서로 다른 두 개의 관련 모델에 대한 점수를 비교합니다.

기계 학습 모델의 정확성을 평가하는 데 사용할 수 있는 메트릭 및 접근 방식의 전체 목록은 모델 평가 구성 요소를 참조하세요.

학습 시간

감독 학습에서 학습은 기록 데이터를 사용하여 오류를 최소화하는 기계 학습 모델을 작성하는 것을 의미합니다. 모델을 학습하는 데 필요한 시간 또는 분은 알고리즘에 따라 크게 다릅니다. 학습 시간은 대체로 정확도와 밀접하게 연결되어 일반적으로 서로를 수반합니다.

또한 일부 알고리즘은 다른 항목보다 데이터 요소 수에 보다 민감합니다. 특히 데이터 세트가 큰 경우 시간 제한이 있기 때문에 특정 알고리즘을 선택할 수 있습니다.

Machine Learning 디자이너에서 기계 학습 모델을 만들고 사용하는 과정은 일반적으로 다음 세 단계로 진행됩니다.

  1. 특정 알고리즘 유형을 선택한 다음 매개 변수 또는 하이퍼 매개 변수를 정의하여 모델을 구성합니다.

  2. 레이블이 지정되고 알고리즘과 호환되는 데이터가 있는 데이터 세트를 제공합니다. 데이터와 모델을 모두 모델 학습 구성 요소에 연결합니다.

  3. 학습을 완료한 후 채점 구성 요소 중 하나와 학습된 모델을 사용하여 새 데이터에 대한 예측을 만듭니다.

선형성

통계 및 기계 학습의 선형성은 데이터 세트의 변수와 상수 간에 선형 관계가 있음을 의미합니다. 예를 들어 선형 분류 알고리즘은 클래스를 직선(또는 더 높은 차원의 아날로그)으로 구분할 수 있다고 가정합니다.

많은 기계 학습 알고리즘에서 선형성을 활용합니다. Azure Machine Learning 디자이너에는 다음이 포함됩니다.

  • 다중 클래스 로지스틱 회귀
  • 2클래스 로지스틱 회귀
  • 지원 벡터 머신

선형 회귀 알고리즘은 데이터가 직선을 따르는 경향이 있다고 가정합니다. 이러한 가정은 일부 문제에 대해서는 나쁘지 않지만 다른 경우에는 정확도가 떨어집니다. 이러한 단점에도 불구하고 선형 알고리즘은 첫 번째 전략으로 널리 사용됩니다. 알고리즘 방식으로 간단하고 학습 시간이 빠른 경향이 있습니다.

기계학습 알고리즘 종류 - gigyehagseub algolijeum jonglyu

..............비선형 클래스 경계: 선형 분류 알고리즘에 의존하며 결과의 정확도가 떨어집니다.

기계학습 알고리즘 종류 - gigyehagseub algolijeum jonglyu

..............비선형 추세 반영 데이터: 선형 회귀 방법을 사용하면 필요한 것보다 훨씬 많은 오류가 생성됩니다.

매개 변수 수

매개 변수는 데이터 과학자가 알고리즘을 설정할 때 전환하기 위한 노브입니다. 허용 오차, 반복 횟수 또는 알고리즘이 동작하는 방식의 변형 간 옵션 등 알고리즘의 동작에 영향을 주는 숫자입니다. 알고리즘의 학습 시간과 정확도는 때때로 올바른 설정을 얻는 데 민감할 수 있습니다. 일반적으로 많은 수의 매개 변수를 포함하는 알고리즘에서 좋은 조합을 찾기 위해서는 많은 수의 평가판 및 오류가 자주 발생합니다.

또는 Machine Learning 디자이너에 모델 하이퍼 매개 변수 튜닝 구성 요소가 있습니다. 이 구성 요소의 목표는 기계 학습 모델을 위한 최적의 하이퍼 매개 변수를 결정하는 것입니다. 구성 요소는 다양한 설정 조합을 사용하여 여러 모델을 빌드하고 테스트합니다. 모든 모델에 대한 메트릭을 비교하여 설정 조합을 얻습니다.

이 방법은 매개 변수 공간을 스팬하는 데는 좋지만 모델을 학습하는 데 필요한 시간이 매개 변수 수에 따라 기하급수적으로 증가한다는 단점이 있습니다. 장점은 일반적으로 매개 변수를 많이 포함할수록 알고리즘의 유연성이 향상된다는 것입니다. 매개 변수 설정의 올바른 조합을 찾을 수 있다면 매우 좋은 정확도를 얻을 수 있는 경우가 많습니다.

기능 수

기계 학습에서 기능은 분석하려는 현상의 정량화 가능한 변수입니다. 특정 데이터 형식의 경우 데이터 요소에 비해 기능 수가 매우 클 수 있습니다. 보통 genetics 또는 텍스트 데이터가 그렇습니다.

기능 수가 많으면 일부 학습 알고리즘이 교착 상태에 빠질 수 있으며 이로 인해 학습 시간이 상당히 길어집니다. 지원 벡터 머신은 기능 수가 많은 시나리오에 특히 적합합니다. 이러한 이유로 대부분의 애플리케이션에서는 텍스트 및 이미지 분류에 대한 정보 검색에서 사용되었습니다. 지원 벡터 컴퓨터는 분류 및 회귀 작업 모두에 사용할 수 있습니다.

지정된 출력의 경우 기능 선택은 입력에 통계 테스트를 적용하는 프로세스를 의미합니다. 목표는 출력 예측 능력이 더 뛰어난 열을 확인하는 것입니다. Machine Learning 디자이너의 필터 기반 기능 선택 구성 요소는 선택할 수 있는 여러 기능 선택 알고리즘을 제공합니다. 구성 요소에는 피어슨 상관 관계, 카이 제곱 값과 같은 상관 관계 메서드가 포함되어 있습니다.

순열 기능 중요도 구성 요소를 사용하여 데이터 세트의 기능 중요도 점수 세트를 계산할 수도 있습니다. 그런 다음 이러한 점수를 모델에서 사용하기에 가장 적합한 기능을 결정하는 데 활용할 수 있습니다.

다음 단계

  • Azure Machine Learning 디자이너에 대해 자세히 알아보기
  • Azure Machine Learning 디자이너에서 사용할 수 있는 모든 기계 학습 알고리즘에 대한 설명은 Machine Learning 디자이너 알고리즘 및 구성 요소 참조를 참조하세요.
  • 딥 러닝, 기계 학습, AI 간의 관계를 알아보려면 딥 러닝과 기계 학습을 참조하세요.