머신러닝 알고리즘을 선택하기 위한 데이터 기반의 접근

사용할 알고리즘 또는 알고리즘 구성을 알고 있다면 머신러닝을 사용할 필요가 없습니다.


최상의 머신러닝 알고리즘 또는 알고리즘 매개 변수는 없습니다. 그럼에도 이런 질문들을 많이 받게 됩니다.

  • 최고의 머신러닝 알고리즘은 무엇입니까?
  • 머신러닝 알고리즘과 문제간의 매핑은 무엇입니까?
  • 머신러닝 알고리즘에 가장 적합한 매개 변수는 무엇입니까?


이러한 질문에는 패턴이 있습니다.

일반적으로 이러한 질문에 대한 답은 미리 알지 못하며 알 수도 없습니다. 경험적 연구를 통해 발견해야 합니다.

이러한 질문에 답할 수있는 광범위한 브러시 휴리스틱이 있지만 알고리즘이나 문제를 최대한 활용하려는 경우 이러한 휴리스틱조차도 당신을 당황하게 할 수 있습니다.

이 게시물에서는 이러한 사고 방식에서 벗어나 머신러닝에 접근하는 방식을 바꿀 데이터 기반 접근 방식을 유지하도록 권장하고 싶습니다.


최고의 머신러닝 알고리즘

일부 알고리즘은 다른 알고리즘보다 더 많은 ““을 가지고 있습니다. 매개변수가 없거나 매우 유연하고 적응력이 뛰어나거나 고도로 자체 조정되거나 이 모두에 해당됩니다.

일반적으로 이 성능은 구현하기 어렵고, 매우 큰 데이터 세트의 필요성, 제한된 확장성 또는 과잉 맞춤을 초래할 수 있는 많은 계수의 대가로 발생합니다.

데이터 세트가 커짐에 따라 확장 가능하고 성능이 뛰어난 더 간단한 방법에 대한 관심이 새로워졌습니다.

어떤 알고리즘이 항상 시도하고 배우는 데 가장 많은 시간을 할애해야 하는 알고리즘입니까?

여기에 대해 가장 현명한 대답은 “없음“과  “모두” 둘다입니다.


최고의 머신러닝 알고리즘 없음

어떤 알고리즘이 문제에 가장 적합한 지선험적으로 알 수 없습니다.

위의 내용을 다시 읽고 생각해 보시기 바랍니다.

  • 좋아하는 알고리즘을 적용할 수 있습니다.
  • 책이나 논문에서 권장하는 알고리즘을 적용할 수 있습니다.
  • 현재 가장 많은 Kaggle 대회에서 우승한 알고리즘을 적용할 수 있습니다.
  • 테스트 장비, 인프라, 데이터베이스 등에 가장 적합한 알고리즘을 적용할 수 있습니다.


이것은 편견이고 시간을 절약하는 생각의 지름길입니다. 일부는 실제로 매우 유용한 지름길일 수 있지만 어떤 지름길일지는 알 수 없습니다. 정의에 따르면 편향은 달성할 수 있는 솔루션, 달성할 수 있는 정확성, 궁극적으로 가질 수 있는 영향을 제한합니다.


문제에 대한 알고리즘 매핑

분류 및 회귀와 같은 지도 문제와 다양체 학습 및 클러스터링과 같은 비지도 문제와 같은 일반적인 문제 클래스가 있습니다.

컴퓨터 비전, 자연어 처리 및 음성 처리와 같은 머신러닝의 하위 분야에서 이러한 문제의 보다 구체적인 사례가 있습니다. 우리는 또한 다른 방법으로, 더 추상적 인 방향으로 갈 수 있으며 이러한 모든 문제를 함수 근사 및 함수 최적화의 인스턴스로 간주 할 수 있습니다.

알고리즘을 문제 클래스에 매핑할 수 있습니다. 예를 들어, 감독 회귀 문제와 지도 분류 문제 및 두 가지 유형의 문제를 처리할 수 있는 알고리즘이 있습니다.

알고리즘 카탈로그를 구성할 수도 있으며 시도할 알고리즘에 대해 영감을 얻는 데 유용 할 수 있습니다.

문제에 대해 알고리즘을 경합하고 결과를 보고할 수 있습니다. 때때로 이것을 베이크 오프라고하며 새로운 알고리즘을 제시하기 위한 일부 회의 절차에서 인기가 있습니다.


알고리즘 결과의 제한된 전송 가능성

일반적으로 레이싱 알고리즘은 반 지성적입니다. 사과와 사과를 비교하는 식의 엄격한 과학적 접근을 기대하기 힘듭니다.

레이싱 알고리즘의 주요 문제는 결과를 한 문제에서 다른 문제로 쉽게 전송할 수 없다는 것입니다. 이 진술이 사실이라고 생각한다면 논문과 블로그에서 알고리즘 경주에 대해 읽어도 문제에 대해 어떤 알고리즘을 시도해야 하는지 알려주지 않습니다.

알고리즘 A가 문제X에서 알고리즘 B를 종료하면 문제Y에서 알고리즘 A와 B에 대해 무엇을 알 수 있습니까? 문제 X와 Y를 연관시키기 위해 노력해야 합니다. 연구중인 알고리즘에 의해 악용되는 동일하거나 유사한 속성 (속성, 속성 분포, 기능적 형식)이 있습니까?

우리는 한 머신러닝 알고리즘이 다른 알고리즘보다 더 잘 작동하는 경우에 대한 세분화된 이해가 없습니다.


최상의 알고리즘 매개 변수

머신러닝 알고리즘은 매개 변수화되어 동작과 결과를 문제에 맞게 조정할 수 있습니다.

문제는 조정을 수행하는 “방법“이 거의 설명되지 않는다는 것입니다. 종종 알고리즘 개발자 자신조차도 제대로 이해하지 못합니다.

일반적으로 확률적 요소가 있는 머신러닝 알고리즘은 복잡한 시스템이므로 그렇게 연구해야 합니다. 첫 번째로, 매개 변수가 복잡한 시스템에 미치는 영향을 설명 할 수 있습니다. 그렇다면 알고리즘을 시스템으로 구성하는 방법에 대한 몇 가지 추론을 사용할 수 있습니다.

그것은 두 번째 순서이며, 알려지지 않은 결과에 어떤 영향을 미칠까요? 때로는 시스템으로서의 알고리즘에 대한 매개 변수의 영향과 이것이 문제의 클래스로 변환되는 방법에 대해 일반적으로 이야기 할 수 있습니다.


최상의 알고리즘 매개 변수 없음

새로운 알고리즘 구성 세트는 본질적으로 문제에 도전 할 수있는 새로운 알고리즘 인스턴스입니다 (달성할 수있는 결과가 상대적으로 제한되거나 유사하지만).

문제에 가장 적합한 알고리즘 매개 변수를 선험적으로 알 수는 없습니다.

  • 중요한 논문에 사용 된 매개 변수를 사용할 수 있습니다.
  • 책에서 매개 변수를 사용할 수 있습니다.
  • 내가 한 방법” kaggle 게시물에 나열된 매개 변수를 사용할 수 있습니다.


좋은 경험 법칙? 그럴 수도 있고 아닐 수도 있습니다.


데이터 기반 접근 방식

우리는 절망의 더미에 빠질 필요가 없습니다. 우리는 과학자입니다.

알고리즘 선택 및 알고리즘 매개 변수 선택에 대한 결정을 단축할 수 있는 편향이 있습니다. 많은 경우에 그것은 당신에게 도움이 되었습니다.

휴리스틱과 모범 사례를 포기하고 알고리즘 선택에 대한 데이터 기반 접근 방식을 취하기 위해 이에 도전하기를 바랍니다.

좋아하는 알고리즘을 선택하는 대신 10 개 또는 20 개의 알고리즘을 사용해보십시오.

성능, 견고성, 속도 또는 가장 관심있는 관심사에서 더 나은 징후를 보이는 것을 두 배로 늘리십시오.

공통 매개 변수를 선택하는 대신 그리드는 수십, 수백 또는 수천 개의 매개 변수 조합을 검색합니다.

객관적인 과학자가 되어 일화를 남기고 복잡한 학습 시스템과 문제 영역의 데이터 관찰의 교차점을 연구하십시오.


데이터 기반 접근 방식 실행

이는 사전 지식이 덜 필요하지만 훨씬 더 많은 백엔드 계산 및 실험이 필요한 강력한 접근 방식입니다.

따라서 결과를 빠르게 얻을 수 있도록 더 작은 데이터 세트 샘플로 작업해야 할 가능성이 큽니다. 당신은 완전한 믿음을 가질 수 있는 테스트 하네스를 원할 것입니다.

참고 사항: 테스트 하네스를 어떻게 완전히 신뢰할 수 있습니까?

선택한 구성이 신뢰할 수 있다는 객관적인 확신을 주는 데이터 기반 방식으로 테스트 옵션을 선택하여 신뢰를 구축합니다. 추정 방법의 유형(분할, 부스팅, k-폴드 교차 검증 등)과 구성(k의 크기 등).


빠르고 강력한 결과

좋은 결과를 빠르게 얻을 수 있습니다.

랜덤 포레스트가 가장 좋아하는 알고리즘이라면 문제에 대한 알고리즘을 최대한 활용하기 위해 며칠 또는 몇 주를 헛되이 보낼 수 있습니다. 데이터 기반 방법론을 사용하면 (상대적인) 저성과 요인을 조기에 제거할 수 있습니다. 실패하려면 빨리 실패하는 편이 낫습니다.

편견과 선호하는 알고리즘 및 구성에 의존하지 않으려면 규율이 필요합니다. 훌륭하고 강력한 결과를 얻는 것은 어려운 일입니다.

결과적으로 알고리즘 과대 광고에 더 이상 신경 쓰지 않고 스팟체킹 제품군에 포함하는 또 다른 방법 일뿐입니다. 알고리즘또는 또는 구성 또는 B (손실에 대한 두려움)를 사용하지 않음으로써 놓치고 있는지 더 이상 걱정하지 않아도 됩니다.


자동화 활용

데이터 기반 접근 방식은 검색의 문제입니다. 자동화를 활용할 수 있습니다.

시작하기 전에 재사용 가능한 스크립트를 작성하여 문제에 대한 가장 신뢰할 수 있는 테스트 도구를 검색할 수 있습니다. 더 이상 임시 추측이 필요 없습니다.

재사용 가능한 스크립트를 작성하여 다양한 라이브러리 및 구현에서 10, 20, 100 알고리즘을 자동으로 시도 할 수 있습니다. 더 이상 좋아하는 알고리즘이나 라이브러리가 없습니다.

서로 다른 알고리즘 사이의 경계가 사라졌습니다. 새 매개 변수 구성은 새 알고리즘입니다. 재사용 가능한 스크립트를 그리드로 작성하거나 각 알고리즘을 임의로 검색하여 해당 기능을 실제로 샘플링할 수 있습니다.

전면에 기능 엔지니어링을 추가하여 데이터에 대한 각 “보기”가 알고리즘에 도전해야 하는 새로운 문제가 되도록 합니다. 마지막에 볼트 온 앙상블을 사용하여 일부 또는 모든 결과 (메타 알고리즘)를 결합합니다.


요약

이 게시물에서는 알고리즘 및 알고리즘 매개 변수 선택에 대한 일반적인 휴리스틱 및 모범 사례 접근 방식을 살펴 보았습니다.

우리는 이러한 접근 방식이 우리의 사고에 한계를 초래한다고 생각했습니다. 우리는 뭐든 다 해결해 주는 최상의 알고리즘을 갈망합니다.

  • 최고의 범용 머신러닝 알고리즘은 없습니다.
  • 최상의 범용 머신러닝 알고리즘 매개 변수는 없습니다.
  • 한 문제에서 다른 문제로 알고리즘에 대한 기능의 이전 가능성은 의심 스럽습니다.


해결책은 과학자가 되어 우리의 문제에 대한 알고리즘을 연구하는 것입니다. 데이터 기반 문제를 해결하고, 알고리즘을 스팟 체크하고, 알고리즘 매개 변수를 그리드화하고, 안정적이고 빠르게 좋은 결과를 산출하는 방법을 빠르게 찾아야 합니다.

네피리티
No Comments

Sorry, the comment form is closed at this time.