기계 학습 문제에 접근하는 방법
게시 됨: 2022-03-11컴퓨터의 주요 작업 중 하나는 사람의 작업을 자동화하는 것입니다. 이러한 작업 중 일부는 "X를 A에서 B로 이동"과 같이 단순하고 반복적입니다. 컴퓨터가 공식화하기 훨씬 더 어려운 문제에 대해 결정을 내려야 할 때 훨씬 더 흥미로워집니다. 여기서 우리는 기본적인 기계 학습 문제에 직면하기 시작합니다.
역사적으로 그러한 알고리즘은 해당 분야에 대한 친밀한 지식을 갖고 있고 주로 규칙을 기반으로 하는 과학자 또는 전문가에 의해 구축되었습니다. 컴퓨팅 성능의 폭발적인 증가와 크고 다양한 데이터 세트의 가용성으로 인해 초점은 보다 컴퓨팅적인 접근 방식으로 이동했습니다.
요즘 가장 대중화된 기계 학습 개념은 신경망과 관련이 있으며 내 경험에 따르면 신경망이 모든 추론 문제에 대한 일종의 기적의 무기라는 인상을 많은 사람들에게 만들었습니다. 사실 이것은 사실과 거리가 멉니다. 통계학자의 관점에서, 그것들은 관련된 강점과 약점과 함께 한 종류의 추론 접근 방식을 형성하며, 신경망이 최상의 솔루션이 될 것인지 아닌지는 전적으로 문제에 달려 있습니다.
종종 더 나은 접근 방식이 있습니다.
이 기사에서는 기계 학습 문제를 공격하기 위한 구조를 간략하게 설명합니다. 특정 기계 학습 모델에 대해 너무 자세히 설명할 여지는 없지만 이 기사가 관심을 불러일으키면 후속 기사에서 흥미로운 기계 학습 문제에 대한 자세한 솔루션을 제공할 수 있습니다.
그러나 먼저 기계 학습 문제에 직면했을 때 "신경망"을 자동으로 생각하는 것보다 더 신중해야 하는 이유를 보여주기 위해 약간의 노력을 기울이겠습니다.
신경망의 장단점
신경망에서 추론은 가중치가 적용된 "네트워크"를 통해 수행됩니다. 가중치는 소위 "학습" 프로세스 동안 보정된 다음 결과를 입력에 할당하는 데 적용됩니다.
간단하게 들릴지 모르지만 모든 가중치는 보정된 네트워크에 대한 매개변수이며 일반적으로 이는 인간이 이해하기에는 너무 많은 매개변수를 의미합니다.
따라서 신경망을 특정 모델 없이 입력과 출력을 연결하는 일종의 추론 블랙박스로 간주하는 것이 좋습니다.
이 접근 방식의 장단점을 자세히 살펴보겠습니다.
신경망의 장점
- 입력은 데이터 자체입니다. 기능 엔지니어링이 거의 또는 전혀 없이도 사용 가능한 결과.
- 훈련 가능한 스킬. 기능 엔지니어링이 없으면 직관이나 도메인 전문 지식과 같이 개발하기 어려운 기술이 필요하지 않습니다. 일반 추론에 표준 도구를 사용할 수 있습니다.
- 정확도는 데이터의 양에 따라 향상됩니다. 입력이 많을수록 신경망의 성능이 향상됩니다.
- 모델에 대한 전체 정보가 없는 경우 기존 모델보다 성능이 좋을 수 있습니다. 대중의 감정을 한 번 생각해 보십시오.
- 개방형 추론은 알려지지 않은 패턴을 발견할 수 있습니다. 모델을 사용하고 고려하지 않으면 해당 현상을 감지하지 못합니다. 신경망은 그럴 수 있습니다.
성공적인 신경망 사례: Google의 AI는 축적된 망원경 데이터를 분석하여 NASA가 찾지 못한 먼 별 주위를 도는 행성을 발견했습니다.
신경망의 단점
- 그들은 많은 (주석이 있는!) 데이터를 필요로 합니다. 첫째, 이 양의 데이터를 항상 사용할 수 있는 것은 아닙니다. 수렴이 느립니다. 견고한 모델(예: 물리학에서)은 몇 번의 관찰 후에 보정할 수 있습니다. 신경망에서는 이것이 문제가 되지 않습니다. 주석 자체가 완전하지 않다는 것은 말할 것도 없고 많은 작업이 필요합니다.
- 데이터의 내부 구조에 대한 정보가 없습니다. 추론의 근거가 무엇인지 관심이 있으십니까? 운이 없습니다. 데이터를 수동으로 조정하면 추론이 비약적으로 향상되는 상황이 있지만 신경망은 이를 도울 수 없습니다.
- 과적합 문제. 네트워크에 데이터가 정당화하는 것보다 더 많은 매개변수가 있는 경우가 종종 발생하여 차선의 추론으로 이어집니다.
- 성능은 정보에 따라 다릅니다. 문제에 대한 완전한 정보가 있는 경우 솔리드 모델이 신경망보다 성능이 우수한 경향이 있습니다.
- 샘플링 문제가 있습니다. 샘플링은 항상 섬세한 문제이지만 모델을 사용하면 문제가 있는 샘플링 개념을 빠르게 개발할 수 있습니다. 신경망은 데이터에서만 학습하므로 편향된 데이터를 얻으면 편향된 결론을 얻게 됩니다.
실패의 예: 항공 사진에서 군용 차량을 감지하는 작업을 하고 있는 대기업(이름을 밝힐 수 없음)에 대해 한 개인적 관계가 말했습니다. 그런 차량이 있는 곳과 없는 곳의 이미지가 있었습니다. 전자는 대부분 비오는 날 촬영한 것이고 후자는 맑은 날씨에 촬영한 것이다. 결과적으로 시스템은 빛과 그림자를 구별하는 법을 배웠습니다.
요약하자면, 신경망은 장단점이 있는 한 종류의 추론 방법을 형성합니다.
대중의 눈에 그들의 인기가 다른 모든 통계적 방법을 능가한다는 사실은 다른 어떤 것보다 기업 지배구조와 더 많은 관련이 있습니다.
표준 도구와 표준화된 신경망 방법을 사용하도록 사람들을 교육하는 것은 다양한 분야의 도메인 전문가와 아티스트를 찾는 것보다 훨씬 더 예측 가능한 프로세스입니다. 그러나 이것은 간단하고 잘 정의된 문제에 신경망을 사용하는 것이 실제로는 대포로 참새를 쏘는 것이라는 사실을 변경하지 않습니다. 솔리드 모델과 비교할 때 성능이 저하됩니다. 최고의 패키지는 아닙니다.

그래도 통계 지식을 '민주화'한다는 사실에는 엄청난 힘이 있습니다. 신경망 기반 추론 솔루션이 단순한 프로그래밍 도구로 인식되면 복잡한 알고리즘에 익숙하지 않은 사람들에게도 도움이 될 수 있습니다. 따라서 필연적으로 정교한 모델로만 작동할 수 있었다면 존재하지 않았을 많은 것들이 지금 만들어지고 있습니다.
머신 러닝 문제 접근
기계 학습 문제에 접근할 때 거쳐야 하는 단계는 다음과 같습니다.
- 수락 기준 설정
- 데이터 정리 및 ist 정보 콘텐츠 최대화
- 가장 최적의 추론 접근 방식 선택
- 훈련, 테스트, 반복
이러한 항목을 자세히 살펴보겠습니다.
수락 기준 설정
가능한 한 빨리 목표 정확도를 파악해야 합니다. 이것이 당신이 목표로 하는 목표가 될 것입니다.
데이터 정리 및 정보 콘텐츠 극대화
이것은 가장 중요한 단계입니다. 우선, 데이터에 오류가 없거나 거의 없어야 합니다. 이것들을 정화하는 것이 필수적인 첫 번째 단계입니다. 누락된 값을 대체하고, 명백히 가짜인 패턴을 식별하고, 중복 및 발견할 수 있는 기타 이상을 제거합니다.
정보의 경우, 데이터가 매우 유익하다면(선형적 의미에서) 거의 모든 추론 방법이 좋은 결과를 줄 것입니다. 필요한 정보가 없으면 결과는 노이즈가 됩니다. 정보를 최대화한다는 것은 주로 데이터에서 유용한 비선형 관계를 찾아 선형화하는 것을 의미합니다. 입력을 크게 개선하면 좋습니다. 그렇지 않은 경우 더 많은 변수를 추가해야 할 수 있습니다. 이 모든 것이 결실을 맺지 못하면 표적 정확도가 떨어질 수 있습니다.
운이 좋으면 유용한 단일 변수가 있을 것입니다. 예를 들어 학습 목표 변수에 대해 플롯하고 기능과 유사한 플롯을 찾으면 유용한 변수를 식별할 수 있습니다(즉, 입력의 좁은 범위가 출력의 좁은 범위에 해당함). 그런 다음 이 변수를 선형화할 수 있습니다. 예를 들어 포물선으로 표시되는 경우 일부 값을 빼고 제곱근을 취합니다.
잡음이 있는 변수(입력의 좁은 범위가 출력의 넓은 범위에 해당함)의 경우 다른 변수와 결합해 볼 수 있습니다.
정확도에 대한 아이디어를 얻으려면 각 변수에 대한 조건부 클래스 확률을 측정하거나(분류 문제의 경우) 선형 회귀(예측 문제의 경우)와 같은 매우 간단한 형태의 회귀를 적용할 수 있습니다. 입력의 정보 내용이 향상되면 추론도 향상되며 데이터가 아직 준비되지 않았을 때 모델을 보정하는 이 단계에서 너무 많은 시간을 낭비하고 싶지 않습니다. 따라서 가능한 한 간단하게 테스트하십시오.
가장 최적의 추론 접근 방식 선택
데이터가 적절한 모양이 되면 추론 방법을 사용할 수 있습니다(필요한 경우 나중에 데이터를 다듬을 수 있음).
모델을 사용해야합니까? 글쎄, 당신이 작업에 대한 좋은 모델을 구축할 수 있다고 믿을 만한 충분한 이유가 있다면 아마도 그렇게 해야 할 것입니다. 그렇게 생각하지 않지만 주석이 포함된 충분한 데이터가 있는 경우 신경망을 사용하여 핸즈프리로 이동할 수 있습니다. 그러나 실제 기계 학습 응용 프로그램에서는 이를 위한 데이터가 충분하지 않은 경우가 많습니다.
정확성 대 엄폐는 종종 엄청난 성과를 거둡니다. 하이브리드 접근 방식은 일반적으로 완전히 좋습니다. 간단한 모델로 데이터의 80%에서 거의 100% 정확도를 얻을 수 있다고 가정해 봅시다. 즉, 결과를 신속하게 시연할 수 있으며 시스템이 80% 우호적인 영역에서 작동할 때 식별할 수 있다면 기본적으로 대부분의 문제를 처리한 것입니다. 귀하의 고객은 아직 완전히 만족하지 않을 수 있지만 이는 귀하의 신뢰를 빠르게 얻을 수 있습니다. 나머지 데이터에 대해 유사한 작업을 수행하는 것을 방지할 수 있는 방법은 없습니다. 이제 합리적인 노력으로 97%의 정확도로 데이터의 92%를 처리할 수 있습니다. 사실, 나머지 데이터에서는 동전 던지기이지만 이미 유용한 것을 생성했습니다.
대부분의 실용적인 응용 프로그램에서 이것은 매우 유용합니다. 예를 들어, 당신이 대출 사업을 하고 있고 누구에게 대출을 제공할지 결정하고 싶어하는데, 당신이 알고 있는 것은 70%의 클라이언트에서 알고리즘이 매우 정확하다는 것뿐입니다. 좋습니다. 사실, 다른 30%의 지원자는 더 많은 처리가 필요하지만 70%는 완전히 자동화될 수 있습니다. 또는: 콜 센터의 교환원 작업을 자동화하려고 하는 경우 가장 간단한 작업만 훌륭하게(빠르고 더러운) 작업을 수행할 수 있지만 이러한 작업이 통화의 50%를 처리한다고 가정해 보겠습니다. 좋습니다. 콜 센터가 통화의 50%를 안정적으로 자동화할 수 있다면 비용을 절감할 수 있습니다.
요약하자면: 데이터가 충분히 유익하지 않거나 문제가 너무 복잡하여 전체를 처리할 수 없는 경우 상자 밖에서 생각하십시오. 더 나은 아이디어가 나올 때까지 유용하고 해결하기 쉬운 하위 문제를 식별합니다.
시스템이 준비되면 결과에 만족할 때까지 배우고 테스트하고 반복하십시오.
훈련, 테스트, 반복
이전 단계 후에는 관심이 거의 남지 않습니다. 데이터가 있고 기계 학습 방법이 있으므로 학습을 통해 매개변수를 추출한 다음 테스트 세트에 대한 추론을 테스트할 때입니다. 문헌에 따르면 기록의 70%는 교육용으로, 30%는 테스트용으로 사용해야 합니다.
결과에 만족하면 작업이 완료된 것입니다. 그러나 절차 중에 몇 가지 새로운 아이디어를 개발했을 가능성이 높으며 이러한 아이디어는 정확성을 높이는 데 도움이 될 수 있습니다. 데이터가 더 필요할까요? 아니면 더 많은 데이터 정리? 아니면 다른 모델? 어느 쪽이든, 당신은 꽤 오랫동안 바쁠 것입니다.
그럼 행운을 빕니다. 앞으로의 일을 즐기십시오!
- 기계와 신뢰: AI 편향을 완화하는 방법
- 별 재정렬: IMDb 등급 시스템 개선