알고리즘 개발을 확장하는 방법?


18

탐색 적 데이터 분석 및 알고리즘 개발에서 대부분의 시간은 시각화, 코드 작성, 작은 데이터 세트에서 실행, 반복의주기에 소비됩니다. 내가 데이터는 컴퓨터 비전 / 센서 융합 유형 인 경향이 있고, 알고리즘은 시력이 무겁고 (예를 들어 객체 감지 및 추적 등), 기성 알고리즘은이 맥락에서 작동하지 않습니다. 나는 이것이 많은 반복 (예 : 알고리즘 유형을 다이얼하거나 알고리즘의 매개 변수를 조정하거나 시각화를 올바르게 얻는 데)이 필요하며 작은 데이터 세트에서도 실행 시간이 상당히 길다는 것을 알았습니다. 모두 함께 시간이 걸립니다.

알고리즘 개발 자체의 속도를 높이고 확장 성을 높일 수있는 방법은 무엇입니까?

몇 가지 구체적인 과제 :

반복 횟수를 어떻게 줄일 수 있습니까? (예를 들어, 알고리즘의 특성은 말할 것도없고 어떤 버전의 알고리즘이 다른 버전을 시도하고 그들의 행동을 조사하지 않고 쉽게 예측할 수없는 것처럼 보일 때)

개발 중에 더 큰 데이터 세트를 실행하는 방법은 무엇입니까? (종종 작은 데이터에서 큰 데이터 세트로가는 것은 많은 새로운 행동과 새로운 문제가 보이는 경우입니다)

알고리즘 매개 변수를 어떻게 더 빠르게 조정할 수 있습니까?

기계 학습 유형 도구를 알고리즘 개발 자체에 적용하는 방법은 무엇입니까? (예를 들어, 알고리즘을 직접 작성하는 대신 간단한 빌딩 블록을 작성하고 문제 등에서 배운 방식으로 결합하십시오.)

답변:


7

우선, 데이터에 대처하기 위해 단일 전략을 적용하기 어렵도록 시간, 컨텍스트 및 기타 기능에 따라 데이터에 많은 변형이있는 경우 이전의 일시적 / 컨텍스트 /를 수행하는 데 관심이있을 수 있습니다. 데이터 세트의 특성화. 데이터의 특성화, 즉 일부 기준에 따라 컨텐츠의 양 또는 내용이 어떻게 다른지에 대한 정보를 추출하는 것은 일반적으로 단순히 무차별 방식으로 알고리즘을 유추하는 것보다 더 나은 이해 (보다 간결하고 정확한)를 제공합니다.

따라서 각 질문에 대답하십시오.

  1. 특성화는 특정 데이터에 적합한 알고리즘을 선택하는 동안 반복 횟수 를 줄이는 수단입니다 .
  2. 데이터가 변하는 개별 기준 세트가있는 경우 더 간단한 / 특정 솔루션이 적용된 경우 어떤 정보를 얻거나 잃을 지 알기 때문에 솔루션 을 확장 하는 것이 훨씬 쉬워집니다 .
  3. 특성화 후에는 처리 할 특정 데이터의 종류를 알고 있으므로 매개 변수를 쉽게 선택할 수 있어야합니다 .
  4. 마지막으로 데이터 마이닝 / 기계 학습 알고리즘을 사용하여이 특성을 지원할 수 있습니다. 여기에는 다음이 사용됩니다.
    • 데이터의 차원을 줄이기위한 클러스터링 알고리즘;
    • 시간 / 문맥 / ...의 기능으로 데이터가 특정 속성을 결정하는데 도움을주는 분류 알고리즘;
    • 데이터 세트로부터 특정 지식을 예측하는 동시에 추후 분석에 사용되는 데이터를 개선 / 미립화하는 연관 규칙;
    • 그리고 다른 가능한 전략과 분석.

그리고 여기 당신이 도움이 될 수있는 데이터를 분석 할 수있는 몇 가지 CRITERIAS의 목록입니다.


5

유용한 두 가지 :

  1. 메타 학습 을 통해 올바른 모델과 최적의 매개 변수를 빠르게 검색 할 수 있습니다. 메타 학습은 기계 학습 도구를 문제에 적합한 기계 학습 도구 / 매개 변수를 찾는 문제에 적용하는 것으로 구성됩니다. 예를 들어이 문서 는 실제적인 예입니다.

  2. 더 큰 데이터 세트에서 알고리즘 속도를 높이기 위한 gpucomputing 예를 들어 OpenCV는 이미지 / 비디오 처리에 매우 효과적인 GPU를 사용할 수 있으며 CPU와 관련하여 10 ~ 100 개의 속도를 높일 수 있습니다. 컴퓨터에 GPU 컴퓨팅 GPU가있을 가능성이 높으므로이를 사용하면 많은 시간을 얻을 수 있습니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.