머신러닝 문제를 정의하는 방법

모든 프로젝트의 첫 번째 단계는 문제를 정의하는 것입니다. 이 게시물에서는 시작하기 전에 문제에 대해 깊이 생각하는 과정을 배우게됩니다. 이것은 틀림없이 머신러닝을 적용하는 가장 중요한 측면입니다.


무엇이 문제입니까?


문제 정의 프레임워크

머신러닝으로 해결할 새로운 문제를 정의 할 때 간단한 프레임워크를  사용합니다. 이 프레임워크는 문제에 대한 요소와 동기 부여, 머신러닝이 적합한지 여부를 신속하게 이해하는 데 도움이 됩니다.

이 프레임워크는 다음 세 가지 질문에 답하는 것을 포함합니다.

  • 1 단계 : 문제는 무엇입니까?
  • 2 단계 : 왜 문제를 해결해야합니까?
  • 3 단계 : 문제를 어떻게 해결할 수 있습니까?

1 단계 : 문제는 무엇입니까?

첫 번째 단계는 문제를 정의하는 것입니다. 저는 이  정보를 수집하기 위해 여러 가지 전술을 사용합니다.

비공식적인 설명

문제를 친구나 동료에게 설명하는 것처럼 설명하십시오. 이렇게 하면 문제를 나열하기 위한 좋은 출발점이 될 수 있습니다. 

예 : 어떤 트윗이 리트윗을 받을지 알려주는 프로그램이 필요합니다.


형식주의

머신러닝을 정의하는 이전 블로그 게시물에서 Tom Mitchell의 머신러닝 형식주의에 대해 배웠습니다. 기억을 상기해 봅시다.

컴퓨터 프로그램은 P로 측정 된 T의 작업에서의 성능이 경험 E로 향상되면 일부 작업 T 및 성능 측정 P와 관련하여 경험 E에서 학습한다고 합니다.

이 형식주의를 사용하여 문제에 대한 TP 및 E를 정의하십시오.

예를 들어:

  • 작업(T): 게시되지 않은 트윗을 리트윗을 받을 것인지 아닌지로 분류합니다.
  • 경험 (E) : 일부는 리트윗을하고 일부는 리트윗하지 않는 계정에 대한 트윗 모음입니다.
  • 성능 (P) : 분류 정확도, 백분율로 간주되는 모든 트윗 중에서 올바르게 예측된 트윗 수.

가정

문제에 대한 가정 목록을 만드는 부분입니다.

실제 데이터에 대해 테스트 할 수 있는 질문은 유용할 수 있습니다. 왜냐하면 가정과 모범 사례가 실제 데이터에 직면했을 때 돌파구와 혁신이 발생하기 때문입니다. 또한 문제 사양의 도전, 완화 또는 강화해야 할 수 있는 영역을 강조 표시하는 것도 유용할 수 있습니다.

예를 들어:

  • 트윗에 사용된 특정 단어는 모델에 중요합니다.
  • 리트윗하는 특정 사용자는 모델에 중요하지 않습니다.
  • 리트윗 수는 모델에 중요할 수 있습니다.
  • 오래된 트윗은 최근 트윗보다 예측력이 떨어집니다.

모든 것에 의문을 제기하십시오.


비슷한 문제

다른 어떤 문제를 보았거나 해결하려는 문제와 같다고 생각할 수 있습니까? 다른 문제는 시간 차원 및 개념적 드리프트 (모델링되는 개념이 시간에 따라 변경되는 경우)와 같은 문제에 대한 구문의 한계를 강조하여 해결하려는 문제를 알릴 수 있습니다. 다른 문제는 또한 성능 검사를 위해 채택될 수 있는 알고리즘 및 데이터 변환을 가리킬 수 있습니다.

예: 관련 문제는 문자 메시지를 입력 데이터로 사용하고 이진 분류 결정이 필요한 이메일 스팸 차별입니다.


2 단계 : 문제를 해결해야하는 이유는 무엇입니까?

두 번째 단계는 왜 문제 해결을 원하거나 필요로 하는지에 대해 깊이 생각하는 것입니다.

동기

문제를 해결하려는 동기를 고려하십시오. 문제가 해결되면 어떤 니즈가 충족됩니까? 또는 직장에서의 업무의 일환으로 문제를 해결해야 할 수도 있습니다.


솔루션 이점

문제를 해결할 때의 이점을 고려하십시오. 어떤 기능을 사용할 수 있습니까?

해결되는 문제의 이점에 대해 분명히 하는 것이 중요합니다. 이러한 혜택은 프로젝트를 동료 및 경영진에게 판매하하고 추가 시간 또는 예산 자원을 확보하는 데 사용할 수 있습니다.

그것이 당신에게 개인적으로 유익하다면, 그 혜택이 무엇인지, 그리고 당신이 그들을 얻었을 때 어떻게 알 수 있는지 분명히 하십시오. 예를 들어, 도구나 유틸리티 인 경우 지금 할 수 없는 유틸리티로 무엇을 할 수 있으며 왜 그것이 당신에게 의미가 있습니까?


솔루션 사용

문제에 대한 해결책이 어떻게 사용될 것인지, 그리고 그 해결책이 얼마나 지속성이 있을지 생각해 보시기 바랍니다. 프로그래머로서 우리는 종종 프로그램이 작성되는 즉시 작업이 완료되었다고 생각하지만 실제로 프로젝트는 유지 보수 사이클이 막 시작된 것입니다.

솔루션이 사용되는 방식은 채택하는 솔루션의 성격과 요구 사항에 영향을 미칩니다.

결과를 제공하기 위해 보고서를 작성하려는 것인지 또는 솔루션을 운영할지 여부를 고려하십시오. 솔루션을 운영하려면 소프트웨어 프로젝트와 마찬가지로 솔루션에 대한 기능 및 비기능 요구 사항을 고려하십시오.


3 단계 : 문제를 어떻게 해결할 수 있습니까?

문제 정의의 세 번째이자 마지막 단계에서 문제를 수동으로 해결하는 방법을 살펴봅니다.

수집할 데이터, 준비 방법 및 문제를 해결하기 위한 프로그램을 설계하는 방법을 단계별로 나열합니다. 여기에는 프로토 타입과 실험이 포함될 수 있는데, 이를 통해 문제에 대한 질문과 불확실성을 보여줄 수 있습니다.

수동으로 구현된 솔루션은 강력한 도구입니다. 이것을 사용하여 실제로 만족스럽게 해결할 수 있는 문제를 드러낼 수 있습니다. 또한 데이터가 실제로 저장되는 위치, 유용한 기능 유형 및 기타 많은 세부 사항과 같이 지금까지 몰랐던 중요한 지식을 알게 됩니다.


요약

이 게시물에서 당신은 해결하려는 문제를 정의하는 것의 가치를 배웠습니다. 그리고 문제를 정의하기위한 세 단계 프레임워크를 발견했습니다.

  • 1 단계 : 문제는 무엇입니까? 문제를 비공식적이고 공식적으로 설명하고 가정과 유사한 문제를 나열하십시오.
  • 2 단계 : 문제를 해결해야하는 이유는 무엇입니까? 문제 해결에 대한 동기, 솔루션이 제공하는 이점 및 솔루션이 어떻게 사용될 것인지를 나열하십시오.
  • 3 단계 : 문제를 어떻게 해결할 수 있습니까? 관련분야의 지식을 얻기 위해 수동으로 문제를 해결하는 방법을 설명하십시오.

머신러닝에 대한 문제를 어떻게 정의합니까? 위의 전술 중 하나를 사용했으며 그렇다면 경험은 무엇입니까? 코멘트를 남겨주세요.

네피리티
No Comments

Sorry, the comment form is closed at this time.