기계 학습 엔지니어: 신화 대 현실

게시 됨: 2018-05-08

머신 러닝은 컴퓨터가 학습하고 반복적으로 작업을 더 잘할 수 있는 능력을 제공합니다. 새로운 데이터 세트에 노출될 때 스스로 변경(수정)할 수 있는 동적 알고리즘 개발에 중점을 둡니다. 간단히 말해서, 머신 러닝은 Facebook이 "이 사진에서 친구를 태그하시겠습니까?" , 단체 사진을 업로드할 때마다 이 모든 일이 가능하도록 뒤에서 일하는 사람들을 겸손하게 기계 학습 엔지니어라고 합니다.
이제 광범위한 데이터 과학 아래의 다른 모든 영역과 마찬가지로 머신 러닝에도 이에 대해 많은 오해가 있습니다. 그리고 그것들을 지우는 것이 오늘날 우리의 목표입니다. 그러나 먼저 그들이 보유한 기술과 도구를 포함하여 기계 학습 엔지니어의 삶을 안내하는 것이 중요합니다.
기계 학습 엔지니어
먼저 머신 러닝과 데이터 과학을 명확하게 구분해 보겠습니다.

목차

기계 학습 엔지니어는 데이터 과학자입니까?

데이터 과학은 모든 것을 포함하는 용어이지만 기계 학습이 작동하는 방식에는 근본적으로 다른 것이 있습니다. 데이터 과학 및 분석가는 기본적으로 데이터를 탐색하고 비즈니스 요구 사항에 맞는 접근 방식이나 모델을 찾으려고 노력합니다.
반면에 머신 러닝은 이 모델을 완전히 바꿉니다. 기계 학습 엔지니어는 데이터를 직접 다루지 않습니다. 그들은 그들이 원하는 결과를 알고 있지만 알고리즘이 그들을 위해 일하게 합니다. 기계 학습은 바둑 챔피언을 능가하거나 사진에 태그를 지정하거나 언어 간에 번역하는 기계를 구축합니다. 이러한 목표는 데이터 분석의 경우와 달리 데이터의 신중한 탐색을 통해 달성되지 않습니다. 탐색해야 할 데이터는 많고 다루기에는 너무 많은 차원이 있습니다(예: 바둑 게임의 차원은 무엇입니까? 또는 언어는 무엇입니까?). 머신 러닝의 약속은 모델 자체를 구축한다는 것입니다. 데이터 탐색을 수행합니다. 그리고 튜닝.
데이터 과학, 머신 러닝, 빅 데이터의 차이점!

결과적으로 기계 학습 엔지니어는 데이터 과학자나 분석가만큼 "탐색"하지 않습니다. 그들의 목표는 데이터에서 중요성을 찾는 것이 아니라 그 중요성이 이미 존재한다고 믿습니다. 대신 데이터를 분석하고 결과를 산출할 수 있는 모델/알고리즘/기계/시스템을 구축하는 것을 목표로 합니다. 또는 작동하는 신경망을 만들기 위해 모든 입력 데이터 세트에서 신뢰할 수 있는 결과를 생성하도록 조정할 수 있습니다.
기계 학습 엔지니어와 관련된 몇 가지 중요한 사항을 살펴보겠습니다.

  • 그들은 일반적인 데이터 분석가/과학자보다 더 강력한 소프트웨어 엔지니어링 기술을 가지고 있습니다. 기계 학습 엔지니어는 생산 시스템 유지 관리를 담당하는 엔지니어와 협력합니다. 따라서 그들은 소프트웨어 개발 방법론, 애자일 관행 및 가장 현대적인 소프트웨어 개발 도구를 이해해야 합니다. Eclipse 또는 IntelliJ와 같은 IDE에서 소프트웨어 배포 파이프라인의 구성 요소에 이르기까지 모든 것에 대해 철저해야 합니다.
  • 머신 러닝 엔지니어는 데이터 제품이 프로덕션 환경에서 작동하도록 하는 데 중점을 둡니다. 결과적으로 그들은 접근 방식에 있어 총체적입니다. 그들은 모든 소프트웨어 개발 팀의 핵심 부분을 구성하므로 A/B 테스트가 무엇인지 알고 있습니다. 그들은 그것을 "이해"할 뿐만 아니라 프로덕션 시스템에서 A/B 테스트를 수행하는 방법도 알고 있습니다. 그들은 모든 애플리케이션의 운명에 대한 로깅 및 보안의 중요성을 이해합니다.
  • 그들은 프로덕션에서 데이터 제품을 모니터링할 때 발을 떼고 있습니다. 애플리케이션 모니터링 프로세스를 자동화할 수 있는 리소스가 많이 있지만 머신 러닝의 요구 사항은 한 단계 더 나아갑니다. 데이터 파이프라인, 모델, 알고리즘 또는 시스템이 오래되어 재교육이 필요할 수 있습니다. 머신 러닝 시스템은 이를 제공하는 데이터 파이프라인을 손상시켜 쉽게 왜곡될 수 있습니다. 따라서 기계 학습 엔지니어는 항상 이러한 손상을 감지하는 방법을 알아야 합니다.
인형을 위한 신경망: 종합 가이드

성공적인 기계 학습 엔지니어에게 필요한 몇 가지 기술:

  • 컴퓨터 과학 및 프로그래밍의 기본 지식
  • 확률과 통계
  • 데이터 모델링 및 평가
  • 사용할 올바른 ML 라이브러리 찾기 및 필요할 때 조정
  • 소프트웨어 엔지니어링 및 모델링

통념 #1: 기계 학습 엔지니어는 시스템이 인간과 똑같이 생각하도록 만듭니다.

이것이 궁극적인 최종 목표이지만 현재로서는 진실과는 거리가 멀다. 어린이의 학습 과정을 기계의 학습 과정과 간단히 비교하면 기계 학습이 아직 초기 단계에 있다는 것을 알게 될 것입니다. 예를 들어, 아기는 걷거나 먹는 것과 같은 단순한 일을 위해 수백 명의 인간을 관찰할 필요가 없습니다. 자신의 목표를 설정하고, 주변 사람을 인지하고, 직관적으로 학습 전략을 만들고, 성공할 때까지 시행착오를 통해 개선합니다. 많은 외부 개입이나 안내가 없어도 아기는 다른 필수 사항과 함께 걷는 방법을 성공적으로 배울 수 있습니다.
반면에 기계는 학습의 각 단계에서 감독이 필요합니다. 또한 여러 감각 기관에서 받은 다양한 입력을 아이가 쉽게 전체적이고 효율적으로 결합합니다. 예를 들어, 아이는 그림을 순식간에 인식할 수 있고 그 위에 쓰여진 텍스트도 이해할 수 있습니다. 그러나 기계에게 동일한 것을 가르치기 위해서는 각각 데이터를 인식하고, 소음을 식별하고, 텍스트를 이해하기 위한 별도의 정교한 알고리즘이 필요합니다.

오해 #2: 모든 데이터는 기계 학습 엔지니어에게 유용합니다.

머신 러닝 엔지니어에게도 데이터가 필요하다는 것은 의심의 여지가 없지만 모든 데이터가 머신 러닝과 관련이 있는 것은 아닙니다. 그들은 시스템이 처리해야 하는 패턴과 결과를 다루는 대표적인 데이터가 필요합니다. 머신 러닝 모델이 관련 없는 패턴을 반영하고 사용할 데이터에서 찾기 때문에 데이터에 관련 없는 패턴이 포함되어서는 안 됩니다.
훈련에 사용하는 모든 데이터는 많은 작업이 필요한 기계 학습 시스템에 질문할 질문과 일치하는 기능으로 레이블을 잘 지정하고 레이블을 지정해야 합니다. 이 모든 데이터는 시스템에 제기할 질문과 일치하는 기능으로 레이블을 잘 지정해야 합니다. 또한 깨끗하고 불일치나 오류가 없어야 합니다. 따라서 모든 데이터는 기계 학습 엔지니어에게 가치가 없습니다. 관련 데이터만 있습니다!
차세대 혁신: 머신 러닝을 주시하세요

신화 #3: 기계 학습 엔지니어는 기존 지식을 무시합니다.

많은 분야의 전문가들은 학습 알고리즘에서 "백지 상태" 접근 방식을 취하는 기계 학습을 일축합니다. 그들은 모든 기계 학습 알고리즘이 기존 데이터에 대한 지식 없이 기초부터 시작한다고 가정합니다. 기계 학습 엔지니어는 학습이 지속적인 모니터링이 필요한 긴 프로세스라는 것을 더 잘 이해하고 있습니다. 데이터를 알고리즘에 입력하는 것만으로는 모방할 수 없습니다. 따라서 모든 학습 알고리즘이 백지 상태로 시작하는 것은 아닙니다. 일부는 데이터 세트를 사용하여 기존 지식 풀을 개선합니다. 결국 조직의 비즈니스 요구 사항에 따라 다릅니다.
신화 #4: 기계 학습 모델이 더 단순할수록 항상 더 정확합니다.

이것은 Occam의 면도날과 일치합니다. 하지만 면도날은 이유가 아니라 단순한 설명이 더 낫다는 말만 해준다고 합시다. 이해하고 기억하고 다루기 쉽기 때문에 선호됩니다. 그러나 기계 학습의 경우 데이터와 일치하는 가장 단순한 가설이 더 복잡한 가설보다 예측 정확도가 떨어지는 경우가 있습니다. 가장 강력한 학습 알고리즘 중 일부는 불필요할 정도로 정교해 보이는 모델을 출력합니다. 때로는 데이터를 올바르게 맞춘 후에도 계속 추가하기도 하지만 이것이 덜 강력한 모델을 능가하는 방법입니다.

세계 최고의 대학에서 온라인으로 ML 과정을 배우십시오. 석사, 이그 제 큐 티브 PGP 또는 고급 인증 프로그램을 획득하여 경력을 빠르게 추적하십시오.

기계 학습 엔지니어에게 수학은 필수입니까?

기계 학습은 컴퓨터 과학과 수학이 결합된 데이터 과학의 일부이므로 기계 학습 엔지니어에게 수학 지식은 필수입니다. 기계 학습의 알고리즘을 만들고 이해하려면 선형 대수, 미적분, 최적화, 확률 및 통계와 같은 수학적 개념에 대한 지식이 필요합니다. 더 정확히 말하면 데이터 분석에 도움이 되는 수학 연산에 대한 기본 개념이 필요합니다. 그러나 가장 좋은 점은 이러한 기본 수학 개념을 머신 러닝을 배우면서 시간이 지남에 따라 배울 수 있고 이러한 개념의 대부분은 이해하기 쉬운 수준이라는 것입니다.

데이터 과학자에게 기계 학습이 필요합니까?

우리는 데이터 과학과 머신 러닝이 불가분의 관계에 있다는 것을 알고 있습니다. 따라서 머신 러닝은 주어진 데이터와 이를 수집하는 알고리즘의 능력만큼만 훌륭할 것입니다. 데이터 과학자는 기계 학습에 대한 기본적인 이해가 필요합니다. 데이터 과학자는 방대한 양의 데이터에서 유용한 지식을 추출합니다. 트렌드를 파악하고 특정 비즈니스 운영을 자동화하는 솔루션 개발을 지원합니다. 정확한 예측과 추정을 위해 데이터 과학자는 기계 학습을 파악해야 합니다. 이는 로봇이 인간의 상호 작용 없이 실시간으로 더 나은 판단을 내리고 더 현명한 조치를 취하는 데 도움이 될 수 있습니다. 데이터 마이닝 및 해석은 머신 러닝에 의해 변환되고 있습니다. 전통적인 통계 절차는 보다 정확한 자동화된 일반 알고리즘 세트로 대체되었습니다.

ML 엔지니어가 선호하는 코딩 언어는 무엇입니까?

Python은 데이터 분석 및 기계 학습에 가장 많이 사용되는 언어입니다. 대다수의 머신 러닝 엔지니어는 NLP 챌린지에 Python을 선택하고 감정 분석 작업에는 R 또는 Python을 선호하며 보안 및 위협 탐지와 같은 기타 머신 러닝 애플리케이션에는 Java를 사용합니다. Python은 머신 러닝 전문가가 데이터에 쉽게 액세스, 관리, 변환 및 분석할 수 있는 광범위한 라이브러리 에코시스템으로 인해 데이터 분석, 머신 러닝 및 인공 지능(AI)에 선호되는 언어가 되었습니다. Python은 플랫폼 독립성, 단순성 및 가독성 때문에 기계 학습 개발자들 사이에서 인기가 있습니다.