기계 학습 알고리즘 설명

머신 러닝과 딥 러닝은 널리 수용되어 왔으며 훨씬 더 널리 오해되고 있습니다. 이 기사에서는 뒤로 물러나 기계 학습과 딥 러닝을 기본 용어로 설명하고, 가장 일반적인 기계 학습 알고리즘에 대해 논의하고, 이러한 알고리즘이 예측 모델을 만드는 퍼즐의 다른 부분과 어떻게 관련되는지 설명하겠습니다. 과거 데이터에서.

기계 학습 알고리즘이란 무엇입니까?

머신 러닝은 데이터에서 모델을 자동으로 생성하는 방법 클래스라는 점을 기억하십시오. 기계 학습 알고리즘은 기계 학습의 엔진입니다. 즉, 데이터 세트를 모델로 바꾸는 알고리즘입니다. 어떤 종류의 알고리즘이 가장 잘 작동하는지 (감독, 비지도, 분류, 회귀 등)는 해결하려는 문제의 종류, 사용 가능한 컴퓨팅 리소스 및 데이터의 특성에 따라 다릅니다.

기계 학습의 작동 원리

일반적인 프로그래밍 알고리즘은 컴퓨터에 간단하게 무엇을해야하는지 알려줍니다. 예를 들어 정렬 알고리즘은 정렬되지 않은 데이터를 일부 기준 (종종 데이터에있는 하나 이상의 필드의 숫자 또는 알파벳 순서)에 따라 정렬 된 데이터로 변환합니다.

선형 회귀 알고리즘 일반적으로 선과 데이터 사이의 제곱 오차를 최소화하기 위해 행렬 반전을 수행 하여 직선 또는 다항식과 같은 매개 변수가 선형 인 다른 함수 를 숫자 데이터에 맞 춥니 다 . 회귀선이 데이터 포인트 위 또는 아래에 있는지 상관하지 않기 때문에 제곱 오차가 메트릭으로 사용됩니다. 선과 점 사이의 거리에만 관심이 있습니다.

매개 변수가 선형이 아닌 곡선을 data에 맞추는 비선형 회귀 알고리즘 은 선형 회귀 문제와 달리 결정 론적 방법으로 해결할 수 없기 때문에 조금 더 복잡합니다. 대신, 비선형 회귀 알고리즘은 일종의 반복 최소화 프로세스를 구현하며, 종종 가장 가파른 하강 방법에 대한 일부 변형을 구현합니다.    

가파른 하강은 기본적으로 현재 매개 변수 값에서 제곱 오차와 그 기울기를 계산하고, 단계 크기 (학습률이라고도 함)를 선택하고, "언덕 아래로"경사 방향을 따른 다음, 제곱 오차와 기울기를 새로 계산합니다. 매개 변수 값. 결국 운이 좋으면 프로세스가 수렴됩니다. 가장 가파른 하강의 변형은 수렴 속성을 개선하려고합니다.

기계 학습 알고리즘은 비선형 회귀보다 덜 간단합니다. 부분적으로는 기계 학습이 다항식과 같은 특정 수학 함수에 적합해야하는 제약을 없애기 때문입니다. 머신 러닝으로 해결되는 문제에는 회귀와 분류라는 두 가지 주요 범주가 있습니다. 회귀는 숫자 데이터 (예 : 주어진 주소와 직업을 가진 사람의 예상 소득은 얼마입니까?)에 대한 것이고 분류는 숫자가 아닌 데이터에 대한 것입니다 (예 : 신청자가이 대출을 불이행합니까?).

예측 문제 (예 : 내일 Microsoft 주식의 시가는 얼마입니까?)는 시계열 데이터에 대한 회귀 문제의 하위 집합입니다. 분류 문제는 때때로 이진 (예 또는 아니오) 및 다중 범주 문제 (동물, 야채 또는 미네랄)로 나뉩니다.

지도 학습 대 비지도 학습

이러한 구분과는 별개로 감독 및 비 감독의 또 다른 두 종류의 기계 학습 알고리즘이 있습니다. 지도 학습 에서는 동물 이름과 함께 동물 사진 세트와 같은 답변이 포함 된 훈련 데이터 세트를 제공합니다. 그 훈련의 목표는 이전에 보지 못했던 그림 (훈련 세트에 포함 된 동물의 종류)을 정확하게 식별 할 수있는 모델이 될 것입니다.

에서 자율 학습 알고리즘은 의미있는 결과를 가지고 올 데이터 자체와 시도를 통해 이동합니다. 예를 들어 결과는 각 클러스터 내에서 관련 될 수있는 데이터 포인트의 클러스터 세트 일 수 있습니다. 클러스터가 겹치지 않을 때 더 잘 작동합니다.

훈련 및 평가는 매개 변수를 최적화하여 데이터의 기준 사실과 가장 일치하는 값 세트를 찾아지도 학습 알고리즘을 모델로 전환합니다. 알고리즘은 종종 옵티 마이저에 대한 가장 가파른 하강 변형에 의존합니다. SGD의 일반적인 개선은 운동량에 따라 기울기 방향을 수정하거나 데이터를 통과하는 한 단계 (에포크라고 함)에서 다음 단계로의 진행 상황에 따라 학습률을 조정하는 요소를 추가합니다.

기계 학습을위한 데이터 정리

야생에는 깨끗한 데이터가 없습니다. 기계 학습에 유용하려면 데이터를 적극적으로 필터링해야합니다. 예를 들어 다음을 수행 할 수 있습니다.

  1. 데이터를보고 누락 된 데이터가 많은 열을 제외합니다.
  2. 데이터를 다시보고 예측에 사용할 열을 선택합니다. (반복 할 때 변경할 수 있습니다.)
  3. 나머지 열에서 여전히 누락 된 데이터가있는 모든 행을 제외합니다.
  4. 명백한 오타를 수정하고 동등한 답변을 병합합니다. 예를 들어, US, US, USA 및 America는 단일 카테고리로 병합되어야합니다.
  5. 범위를 벗어난 데이터가있는 행을 제외합니다. 예를 들어 뉴욕시 내 택시 여행을 분석하는 경우 대도시 지역 경계 상자 외부에있는 픽업 또는 하차 위도와 경도가있는 행을 필터링 할 수 있습니다.

할 수있는 일이 훨씬 더 많지만 수집 된 데이터에 따라 다릅니다. 이는 지루할 수 있지만 머신 러닝 파이프 라인에서 데이터 정리 단계를 설정하면 원하는대로 수정하고 반복 할 수 있습니다.

기계 학습을위한 데이터 인코딩 및 정규화

기계 분류에 범주 형 데이터를 사용하려면 텍스트 레이블을 다른 형식으로 인코딩해야합니다. 두 가지 일반적인 인코딩이 있습니다.

하나는 레이블 인코딩으로 각 텍스트 레이블 값이 숫자로 대체됨을 의미합니다. 다른 하나원-핫 인코딩 입니다. 즉, 각 텍스트 레이블 값이 이진 값 (1 또는 0)이있는 열로 변환됩니다. 대부분의 기계 학습 프레임 워크에는 변환을 수행하는 기능이 있습니다. 일반적으로 레이블 인코딩이 기계 학습 알고리즘을 혼동하여 인코딩 된 열이 정렬되었다고 생각할 수 있으므로 원-핫 인코딩이 선호됩니다.

기계 회귀에 숫자 데이터를 사용하려면 일반적으로 데이터를 정규화해야합니다. 그렇지 않으면 범위가 더 큰 숫자가 특징 벡터 사이의 유클리드 거리를 지배하는 경향이있을 수 있으며, 다른 필드를 희생시키면서 그 효과가 확대 될 수 있으며, 가장 가파른 하강 최적화는 수렴하기 어려울 수 있습니다. 최소-최대 정규화, 평균 정규화, 표준화 및 단위 길이에 대한 확장을 포함하여 ML에 대한 데이터를 정규화 및 표준화하는 방법에는 여러 가지가 있습니다. 이 프로세스를 종종 기능 확장 이라고 합니다 .

기계 학습 기능은 무엇입니까?

이전 섹션에서 특징 벡터를 언급 했으므로 그것들이 무엇인지 설명해야합니다. 우선, 특징 은 개별적으로 측정 가능한 속성 또는 관찰되는 현상의 특징입니다. "특징"의 개념은 선형 회귀와 같은 통계 기법에 사용되는 설명 변수의 개념과 관련이 있습니다. 특징 벡터는 단일 행의 모든 ​​특징을 숫자 벡터로 결합합니다.

기능을 선택하는 기술의 일부 는 문제를 설명 하는 최소한의 독립 변수 집합을 선택하는 것 입니다. 두 변수가 상관 관계가 높은 경우 단일 기능으로 결합하거나 하나를 삭제해야합니다. 때때로 사람들은 주성분 분석을 수행하여 상관 된 변수를 선형 적으로 상관되지 않은 변수 세트로 변환합니다.

사람들이 새로운 특징을 구성하거나 특징 벡터의 차원을 줄이는 데 사용하는 일부 변환은 간단합니다. 예를 들어, 빼기 Year of Birth에서 Year of Death당신은 구성 Age at Death수명과 사망률 분석을위한 주요 독립 변수이다. 다른 경우에는 기능 구성 이 그렇게 명확하지 않을 수 있습니다.

일반적인 기계 학습 알고리즘

선형 회귀 및 로지스틱 회귀에서 심층 신경망 및 앙상블 (다른 모델의 조합)에 이르기까지 복잡성에 이르는 수십 가지 기계 학습 알고리즘이 있습니다. 그러나 가장 일반적인 알고리즘은 다음과 같습니다.

  • 선형 회귀, 일명 최소 제곱 회귀 (숫자 데이터의 경우)
  • 로지스틱 회귀 (이진 분류 용)
  • 선형 판별 분석 (다중 카테고리 분류 용)
  • 의사 결정 트리 (분류 및 회귀 용)
  • Naïve Bayes (분류 및 회귀 용)
  • K-Nearest Neighbors, 일명 KNN (분류 및 회귀 용)
  • 학습 벡터 양자화, 일명 LVQ (분류 및 회귀 모두)
  • 지원 벡터 머신, 일명 SVM (이진 분류 용)
  • "배깅"앙상블 알고리즘의 한 유형 인 Random Forests (분류 및 회귀 모두)
  • AdaBoost 및 XGBoost를 포함한 부스팅 방법은 각 새 모델이 이전 모델의 오류를 수정하려고 시도하는 일련의 모델을 생성하는 앙상블 알고리즘입니다 (분류 및 회귀 모두)

우리가 많이 듣는 신경망과 심층 신경망은 어디에 있습니까? GPU 또는 기타 특수 하드웨어가 필요할 때까지 컴퓨팅 집약적 인 경향이 있으므로 이미지 분류 및 음성 인식과 같은 특수한 문제에만 사용해야하며 단순한 알고리즘에는 적합하지 않습니다. "깊다"는 것은 신경망에 숨겨진 레이어가 많다는 것을 의미합니다.

신경망 및 딥 러닝에 대한 자세한 내용은 "딥 러닝의 진정한 의미"를 참조하십시오.

기계 학습 알고리즘을위한 초 매개 변수

기계 학습 알고리즘은 데이터를 학습하여 예측 된 값 또는 클래스에 영향을주는 각 독립 변수에 대한 최상의 가중치 집합을 찾습니다. 알고리즘 자체에는 하이퍼 파라미터라고하는 변수가 있습니다. 가중치가 결정되는 대신 알고리즘의 작동을 제어하기 때문에 매개 변수와 달리 하이퍼 파라미터라고합니다.

가장 중요한 하이퍼 파라미터는 최적화 할 때 시도 할 다음 가중치 집합을 찾을 때 사용되는 단계 크기를 결정하는 학습률입니다. 학습률이 너무 높으면 경사 하강 법이 안정기 또는 최적이 아닌 지점에서 빠르게 수렴 할 수 있습니다. 학습률이 너무 낮 으면 경사 하강 법이 멈추고 완전히 수렴되지 않을 수 있습니다.

다른 많은 일반적인 하이퍼 파라미터는 사용 된 알고리즘에 따라 다릅니다. 대부분의 알고리즘에는 최대 Epoch 수, 최대 실행 시간 또는 Epoch에서 Epoch 로의 최소 개선과 같은 중지 매개 변수가 있습니다. 특정 알고리즘에는 검색 형태를 제어하는 ​​하이퍼 파라미터가 있습니다. 예를 들어, Random Forest Classifier에는 잎당 최소 샘플, 최대 깊이, 분할시 최소 샘플, 잎에 대한 최소 가중치 비율 및 약 8 개 이상의 하이퍼 파라미터가 있습니다.

초 매개 변수 조정

이제 여러 프로덕션 머신 러닝 플랫폼에서 자동 초 매개 변수 조정을 제공합니다. 기본적으로 변경하려는 하이퍼 파라미터와 최적화 할 메트릭을 시스템에 알려 주면 시스템은 허용되는 한 많은 실행에서 해당 하이퍼 파라미터를 스윕합니다. (Google Cloud 초 매개 변수 조정은 TensorFlow 모델에서 적절한 측정 항목을 추출하므로 지정할 필요가 없습니다.)

스위핑 하이퍼 파라미터를위한 검색 알고리즘에는 베이지안 최적화, 그리드 검색 및 임의 검색의 세 가지가 있습니다. 베이지안 최적화가 가장 효율적인 경향이 있습니다.

가능한 한 많은 하이퍼 파라미터를 조정하면 최상의 답을 얻을 수 있다고 생각할 것입니다. 그러나 개인 하드웨어에서 실행하지 않는 한 비용이 많이들 수 있습니다. 어쨌든 감소하는 수익이 있습니다. 경험을 통해 데이터와 알고리즘 선택에 가장 중요한 하이퍼 파라미터를 발견 할 수 있습니다.

자동화 된 기계 학습

알고리즘 선택에 대해 말하자면, 어떤 알고리즘이나 알고리즘 앙상블이 데이터에 가장 적합한 모델을 제공하는지 알 수있는 유일한 방법은 모두 시도해 보는 것입니다. 가능한 모든 정규화와 기능 선택을 시도하면 조합 폭발에 직면하게됩니다.

모든 것을 수동으로 시도하는 것은 비실용적이므로 물론 머신 러닝 도구 제공 업체는 AutoML 시스템을 출시하는 데 많은 노력을 기울였습니다. 최고의 기능은 기능 엔지니어링과 알고리즘 및 정규화를 통한 스위프를 결합합니다. 최상의 모델 또는 모델의 하이퍼 파라미터 튜닝은 종종 나중을 위해 남겨집니다. 그러나 특성 추출은 자동화하기 어려운 문제이며 모든 AutoML 시스템이이를 처리하는 것은 아닙니다.

요약하면 기계 학습 알고리즘은 기계 학습 퍼즐의 한 조각 일뿐입니다. 알고리즘 선택 (수동 또는 자동) 외에도 옵티 마이저, 데이터 정리, 기능 선택, 기능 정규화 및 (선택 사항) 하이퍼 파라미터 튜닝을 처리해야합니다.

이 모든 것을 처리하고 데이터에 적합한 모델을 구축했으면 모델을 배포 한 다음 조건이 변경되면 업데이트해야합니다. 그러나 프로덕션에서 기계 학습 모델을 관리하는 것은 완전히 다른 웜일 수 있습니다.