2017.12.14

텐서플로우 머신러닝을 시작하기 전에 알아야 할 것

Matt Asay | InfoWorld
머신러닝은 사는 것이 아니라 하는 것이다. DNA에 새길 수 있도록 텐서플로우를 사용해 머신러닝을 실험하라.

머신러닝은 대부부의 조직에 여전히 뜬구름이다. 가트너는 머신러닝을 성공적으로 프로덕션에 도입한 기업을 15% 미만으로 추산한다. 그렇지만 기업은 지금 머신러닝 실험을 시작해 DNA에 새겨야 한다.

맵알(MapR)의 최고 애플리케이션 설계자인 테드 더닝은 이것이 쉬운 일은 아니지만, “완성된 상품을 그냥 돈을 주고 사면 된다고 생각한다면” 애초에 머신러닝 기술을 구입할 자격이 없는 것이라고 지적한다. 더닝은 “머신러닝과 이를 프로덕션에 적용하는 방법을 이미 알고 있는 상태가 아니면 회사의 라이프사이클에 추가되는 복잡성을 제대로 이해하지 못할 가능성이 높다. 반면 이미 경험을 했다면 잘 구성된 머신러닝은 예상 이상의 큰 차별화 요소가 될 수 있다”고 말했다.

Image Credit : GettyImagesBank

텐서플로우와 같은 오픈소스 프로젝트는 기업의 머신러닝 성공 가능성을 비약적으로 높여준다. 텐서플로우의 의미는 고급 수학 교육을 받지 않은 사람도 복잡하고 유용한 모델을 구축할 수 있게 해준다는 데 있다. 따라서 텐서플로우 또는 다른 비슷한 프로젝트는 대부분의 조직에 머신러닝을 향한 최적의 진입로가 된다.

머신러닝과 예측의 어려움
더닝은 머신러닝의 성공률이 낮은 이유에 대해 “머신러닝으로 인해 보편적인 소프트웨어 엔지니어링 방식으로는 해결하기 어려운 새로운 장애물이 발생하기 때문”이라고 말했다. 성공적인 데이터옵스 팀에는 복잡한 커뮤니케이션 라인과 다면적인 개발 프로세스가 따른다.

이러한 복잡성 외에도 머신러닝 시스템에는 “숨겨진, 그리고 극히 모호한 종속성이 쉽게 발생한다”는 점까지 추가되면 일을 그르칠 만한 조건은 완벽히 갖춰진다.

머신러닝의 혜택과 함정을 어느 기업보다 잘 아는 구글은 머신러닝을 사용하는 시스템으로 인해 발생하는 숨겨진 기술적 빚에 대한 글을 게시했다. 이 글에서 저자가 강조하듯이 실제 환경의 머신러닝 시스템에는 막대한 유지보수 비용이 지속적으로 발생하는 경우가 흔하다. 머신러닝에 따르는 위험에는 “경계 침식, 복잡하게 얽힌 관계, 숨겨진 피드백 루프, 선언되지 않은 소비 주체, 데이터 종속성, 구성 문제, 외부 환경의 변화, 다양한 시스템 수준 안티패턴” 등이 포함된다.

게다가 이는 시작에 불과하다.

일반적으로 소프트웨어 엔지니어링 팀은 이러한 복잡성에 효과적으로 대처할 준비가 충분히 되지 않은 상태이므로 결과적으로 큰 실패로 이어질 수 있다. 더닝은 이러한 복잡성을 일부 극복하기 위해서는 “어려움 없이 확장이 가능한, 우수하고 견고하며 종합적인 플랫폼이 핵심 구성 요소”라면서 “고객을 위한 가치를 확립하는 데 집중해야 한다. 필요한 모든 기능을 갖춘 플랫폼, 데이터와 그 데이터가 고객이 인지하는 가치로 어떻게 연결될 수 있는가에 집중할 수 있게 해주는 플랫폼이 없으면 이는 불가능한 일”이라고 강조했다..

여기에 텐서플로우의 가치가 있다.

텐서플로우가 머신러닝을 가능하게 해주는 4가지 방법
개발자들의 공동 화폐인 오픈소스는 빅 데이터에서 중요한 역할을 맡고 있다. 그러나 더닝은 “오픈소스 프로젝트가 프로덕션 머신러닝의 최첨단까지 진출한 것은 극히 최근의 일”이라고 말했다. 구글이 텐서플로우를 출시하면서 지각변동이 시작됐다.

그러나 더닝의 관점에서 텐서플로우(그 외에 Caffe, MXNet, CNTK)로 인해 머신러닝 정설의 근간이 뒤흔들린다는 점은 중요치 않다. 더닝은 “정말 중요한 점은 1. 이제 상당한 규모의 프로젝트를 할 수 있을 만큼 강력하고 2. 폭넓게 도입되고 폭넓게 사용되며 3. 기반 고급 연산으로부터 충분한 추상화를 제공하는 프레임워크가 있다는 점”이라고 말했다.

첫 번째, 즉 실질적인 머신러닝 프로젝트를 할 수 있는 성능은 당연한 요소다. 극히 단순한 모델로 제한된다면 머신러닝 혁명을 제대로 추진할 수 없다.

그러나 두 번째는 다소 의외다. 더닝은 “요점은 많은 사람들이 초보자를 위한 단순한 예제를 작성하도록 하려면 다양한 문제를 다루는 다양한 팀이 시스템을 사용해야 한다는 것이다. 머신러닝 문서와 구현을 동반하는 표준 시스템이 필요하다. 그래야 문서에서 생략된 세부 사항이 어디인지 알 수 있다”고 말했다.

추상화에 대한 세 번째 항목도 매우 중요하다. 더닝은 “프로그램 변환으로 도함수를 효율적으로 구현하는 코드를 생산할 수 있다는 사실은 불과 얼마 전까지만 해도 명확하지 않았다”고 말했다. 그러나 이것은 중요하다. 더닝은 “이 기능은 고급 수학 교육을 받지 못한 사람도 복잡하고 때로는 유용한 모델을 구축할 수 있게 하는 데 있어 딥 러닝을 포함한 다른 무엇보다 큰 역할을 했다”고 말했다.

텐서플로우 및 이와 유사한 다른 오픈소스 프로젝트는 반복과 실험을 통해 머신러닝을 성공적으로 구축하기 위한 새로운 기술을 습득할 수 있게 해준다. 오픈소스 코드를 만지며 기꺼이 손에 흙을 묻힐 의지가 바로 더닝의 네 번째 요소다. “성공적인 머신러닝 구축을 위해서는 내부 원리를 깊이 들여다볼 의지가 있어야 한다”는 것이다.

즉, 진정한 머신러닝의 성공은 완성품 형태로 판매되는 소프트웨어 패키지로는 얻을 수 없다. 그 제품을 판매하는 회사가 아무리 그럴듯하게 마케팅한다 해도 그 사실에는 변함이 없다. (IBM의 왓슨을 생각해 보라.)

진정한 머신러닝을 위한 권고
진정한 머신러닝 여정에 오를 준비가 된 이들에게 텐서플로우는 훌륭한 시작 지점이다. 더닝은 이 여정에 오른 사람을 위해 두 가지를 권장한다.

첫째, 실행 계획 문제, 모델 제공 프레임워크, 메트릭, 모델 평가의 우선 순위를 정한다. 더닝은 “모델만 있고 좋은 데이터와 모델 실행 파이프라인이 없으면 실패할 수밖에 없다”고 말했다.

둘째, “만능 모델에 관한 헛된 믿음을 즉각 버려야 한다. 프로덕션에서는 한 가지 함수를 위한 한 가지 모델은 없다. 여러 함수를 위한 여러 모델이 사용되고 상호작용은 모호하다. 제대로 작동할 준비가 되었는지 확인하기 위해 상당한 시간 동안 모델을 실행해야 한다. 완벽한 입력 레코드 내역이 필요하다. 입력에 응답할 가능성이 있는 모든 모델에 대해 알아야 한다.” editor@itworld.co.kr


2017.12.14

텐서플로우 머신러닝을 시작하기 전에 알아야 할 것

Matt Asay | InfoWorld
머신러닝은 사는 것이 아니라 하는 것이다. DNA에 새길 수 있도록 텐서플로우를 사용해 머신러닝을 실험하라.

머신러닝은 대부부의 조직에 여전히 뜬구름이다. 가트너는 머신러닝을 성공적으로 프로덕션에 도입한 기업을 15% 미만으로 추산한다. 그렇지만 기업은 지금 머신러닝 실험을 시작해 DNA에 새겨야 한다.

맵알(MapR)의 최고 애플리케이션 설계자인 테드 더닝은 이것이 쉬운 일은 아니지만, “완성된 상품을 그냥 돈을 주고 사면 된다고 생각한다면” 애초에 머신러닝 기술을 구입할 자격이 없는 것이라고 지적한다. 더닝은 “머신러닝과 이를 프로덕션에 적용하는 방법을 이미 알고 있는 상태가 아니면 회사의 라이프사이클에 추가되는 복잡성을 제대로 이해하지 못할 가능성이 높다. 반면 이미 경험을 했다면 잘 구성된 머신러닝은 예상 이상의 큰 차별화 요소가 될 수 있다”고 말했다.

Image Credit : GettyImagesBank

텐서플로우와 같은 오픈소스 프로젝트는 기업의 머신러닝 성공 가능성을 비약적으로 높여준다. 텐서플로우의 의미는 고급 수학 교육을 받지 않은 사람도 복잡하고 유용한 모델을 구축할 수 있게 해준다는 데 있다. 따라서 텐서플로우 또는 다른 비슷한 프로젝트는 대부분의 조직에 머신러닝을 향한 최적의 진입로가 된다.

머신러닝과 예측의 어려움
더닝은 머신러닝의 성공률이 낮은 이유에 대해 “머신러닝으로 인해 보편적인 소프트웨어 엔지니어링 방식으로는 해결하기 어려운 새로운 장애물이 발생하기 때문”이라고 말했다. 성공적인 데이터옵스 팀에는 복잡한 커뮤니케이션 라인과 다면적인 개발 프로세스가 따른다.

이러한 복잡성 외에도 머신러닝 시스템에는 “숨겨진, 그리고 극히 모호한 종속성이 쉽게 발생한다”는 점까지 추가되면 일을 그르칠 만한 조건은 완벽히 갖춰진다.

머신러닝의 혜택과 함정을 어느 기업보다 잘 아는 구글은 머신러닝을 사용하는 시스템으로 인해 발생하는 숨겨진 기술적 빚에 대한 글을 게시했다. 이 글에서 저자가 강조하듯이 실제 환경의 머신러닝 시스템에는 막대한 유지보수 비용이 지속적으로 발생하는 경우가 흔하다. 머신러닝에 따르는 위험에는 “경계 침식, 복잡하게 얽힌 관계, 숨겨진 피드백 루프, 선언되지 않은 소비 주체, 데이터 종속성, 구성 문제, 외부 환경의 변화, 다양한 시스템 수준 안티패턴” 등이 포함된다.

게다가 이는 시작에 불과하다.

일반적으로 소프트웨어 엔지니어링 팀은 이러한 복잡성에 효과적으로 대처할 준비가 충분히 되지 않은 상태이므로 결과적으로 큰 실패로 이어질 수 있다. 더닝은 이러한 복잡성을 일부 극복하기 위해서는 “어려움 없이 확장이 가능한, 우수하고 견고하며 종합적인 플랫폼이 핵심 구성 요소”라면서 “고객을 위한 가치를 확립하는 데 집중해야 한다. 필요한 모든 기능을 갖춘 플랫폼, 데이터와 그 데이터가 고객이 인지하는 가치로 어떻게 연결될 수 있는가에 집중할 수 있게 해주는 플랫폼이 없으면 이는 불가능한 일”이라고 강조했다..

여기에 텐서플로우의 가치가 있다.

텐서플로우가 머신러닝을 가능하게 해주는 4가지 방법
개발자들의 공동 화폐인 오픈소스는 빅 데이터에서 중요한 역할을 맡고 있다. 그러나 더닝은 “오픈소스 프로젝트가 프로덕션 머신러닝의 최첨단까지 진출한 것은 극히 최근의 일”이라고 말했다. 구글이 텐서플로우를 출시하면서 지각변동이 시작됐다.

그러나 더닝의 관점에서 텐서플로우(그 외에 Caffe, MXNet, CNTK)로 인해 머신러닝 정설의 근간이 뒤흔들린다는 점은 중요치 않다. 더닝은 “정말 중요한 점은 1. 이제 상당한 규모의 프로젝트를 할 수 있을 만큼 강력하고 2. 폭넓게 도입되고 폭넓게 사용되며 3. 기반 고급 연산으로부터 충분한 추상화를 제공하는 프레임워크가 있다는 점”이라고 말했다.

첫 번째, 즉 실질적인 머신러닝 프로젝트를 할 수 있는 성능은 당연한 요소다. 극히 단순한 모델로 제한된다면 머신러닝 혁명을 제대로 추진할 수 없다.

그러나 두 번째는 다소 의외다. 더닝은 “요점은 많은 사람들이 초보자를 위한 단순한 예제를 작성하도록 하려면 다양한 문제를 다루는 다양한 팀이 시스템을 사용해야 한다는 것이다. 머신러닝 문서와 구현을 동반하는 표준 시스템이 필요하다. 그래야 문서에서 생략된 세부 사항이 어디인지 알 수 있다”고 말했다.

추상화에 대한 세 번째 항목도 매우 중요하다. 더닝은 “프로그램 변환으로 도함수를 효율적으로 구현하는 코드를 생산할 수 있다는 사실은 불과 얼마 전까지만 해도 명확하지 않았다”고 말했다. 그러나 이것은 중요하다. 더닝은 “이 기능은 고급 수학 교육을 받지 못한 사람도 복잡하고 때로는 유용한 모델을 구축할 수 있게 하는 데 있어 딥 러닝을 포함한 다른 무엇보다 큰 역할을 했다”고 말했다.

텐서플로우 및 이와 유사한 다른 오픈소스 프로젝트는 반복과 실험을 통해 머신러닝을 성공적으로 구축하기 위한 새로운 기술을 습득할 수 있게 해준다. 오픈소스 코드를 만지며 기꺼이 손에 흙을 묻힐 의지가 바로 더닝의 네 번째 요소다. “성공적인 머신러닝 구축을 위해서는 내부 원리를 깊이 들여다볼 의지가 있어야 한다”는 것이다.

즉, 진정한 머신러닝의 성공은 완성품 형태로 판매되는 소프트웨어 패키지로는 얻을 수 없다. 그 제품을 판매하는 회사가 아무리 그럴듯하게 마케팅한다 해도 그 사실에는 변함이 없다. (IBM의 왓슨을 생각해 보라.)

진정한 머신러닝을 위한 권고
진정한 머신러닝 여정에 오를 준비가 된 이들에게 텐서플로우는 훌륭한 시작 지점이다. 더닝은 이 여정에 오른 사람을 위해 두 가지를 권장한다.

첫째, 실행 계획 문제, 모델 제공 프레임워크, 메트릭, 모델 평가의 우선 순위를 정한다. 더닝은 “모델만 있고 좋은 데이터와 모델 실행 파이프라인이 없으면 실패할 수밖에 없다”고 말했다.

둘째, “만능 모델에 관한 헛된 믿음을 즉각 버려야 한다. 프로덕션에서는 한 가지 함수를 위한 한 가지 모델은 없다. 여러 함수를 위한 여러 모델이 사용되고 상호작용은 모호하다. 제대로 작동할 준비가 되었는지 확인하기 위해 상당한 시간 동안 모델을 실행해야 한다. 완벽한 입력 레코드 내역이 필요하다. 입력에 응답할 가능성이 있는 모든 모델에 대해 알아야 한다.” editor@itworld.co.kr


X