Exabyte.io Tutorial: Train Machine Learning Model

기계 학습 모델 학습서 교육 작업 디자이너 페이지로 이동하여 시뮬레이션을 작성하십시오

그런 다음 훈련 세트를 구성하는 실리콘과 게르마늄으로 구성된 재료 세트를 선택하여 가져옵니다 그런 다음 Workflow (워크 플로) 탭으로 이동하여 Exabyte Machine Learning을 사용하여 실리콘과 게르마늄으로 구성된 재료의 전자 밴드 갭을 예측하기 위해 기계 학습 모델을 훈련하는 데 사용되는 'ML Train Model'워크 플로를 선택합니다 엔진 이제 '입력'계산 단위를 검사하겠습니다 훈련 된 모델에 의해 예측 될 속성은이 장치에서 틱된 대상 속성,이 경우 밴드 갭입니다

그런 다음 작업 이름을 설정하십시오 여기서는 SiGe Band Gap ML Train이라고합니다 다음으로 작업을 저장하십시오 그런 다음 실행을 위해 선택하여 계산 대기열에 제출할 수 있습니다 작업이 완료되면 작업을 열고 훈련 된 결과 모델 워크 플로우를 검사하십시오

이 훈련 된 워크 플로우의 '점수'단위를 열겠습니다 여기서 모델 계수와 중요도는 모델 정밀도의 표시와 함께 저장됩니다 이제 웹 인터페이스의 왼쪽 사이드 바를 통해 워크 플로우 콜렉션으로 돌아갑니다 따라서 훈련 된 모델을 포함하는 생성 된 워크 플로는 컬렉션 항목 중에서 검색 할 수 있습니다 이것으로 본 튜토리얼을 마칩니다

Train an Image Classifier with TensorFlow for Poets – Machine Learning Recipes #6

안녕하세요? 다시 뵙겠습니다 이번에는 이미지 디렉토리 하나만 가지고 이미지 분류자를 훈련시키는 방법을 보여 드리겠습니다

예를 들면 분류자를 만들어서 T렉스와 트리케라톱스를 구분한다고 합시다 아니면 모네와 피카소의 그림을 구분한다고 합시다 그러려면 시인을 위한 텐소플로우라는 코드 랩을 사용해야 합니다 이것은 이미지 분류를 배우고 사용하기 시작할 때 대단히 좋은 방법이기도 합니다

우선 두 가지부터 시작합시다 첫째, 이 코드 랩은 하이레벨입니다 분류자를 훈련시키려면 단지 몇 개의 스크립트만 실행하면 됩니다 놀라운 것은 몇 년 전에 비해 훨씬 좋아졌다는 것입니다 앞으로 코드 랩이 어떻게 작동하는지를 보고 잘 작동되는 맥락과 배경을 덧붙이도록 하겠습니다

그럼 시작해 볼까요? 시인을 위한 텐소플로우로 이미지 분류자를 훈련시키려면 오직 훈련 데이터 하나만 제공하면 됩니다 이것은 이미지로 가득한 디렉토리입니다 제가 하려는 것은 분류자를 생성하고 다섯 가지 종류의 꽃을 구분하게 하는 것입니다 장미, 해바라기 등등 훈련 데이터는 이와 같습니다

다섯 개의 디렉토리가 있는데 한 디렉토리에 한 가지 꽃이 있습니다 디렉토리 안에는 많은 사진들이 있지요 꽃들을 가지고 시작하는 이유는 우리가 코드 랩에 데이터 셋을 미리 제공하고 바로 시작할 수 있도록 하기 위함입니다 만일 여러분이 자신의 이미지로 가령 공룡이나 그림 등을 가지고 하고 싶다면 디렉토리를 만들어 웹에서 사진을 받아 넣으면 됩니다 디렉토리마다 약 100개의 사진이 처음에 필요합니다

훈련 데이터를 마련했다면 그 다음 단계는 분류자를 훈련시키는 것입니다 그러기 위해 텐소플로우를 사용하겠습니다 텐소플로우는 오픈소스 머신 러닝 라이브러리입니다 특히 머신 러닝의 일종인 딥 러닝이라는 것을 할 때 유용합니다 딥 러닝은 지난 몇 년 동안 괄목할 성과를 냈는데 특히 이미지 분류와 같은 분야에서 그렇습니다

바로 오늘 다루려는 것이 이미지 분류입니다 또 한가지 이유가 있습니다 제1편에서 사과와 오랜지의 차이를 구분했던 것을 기억해 보세요 너무나 변수가 많은 현실에서는 일일이 사람 손으로 할 수 없다는 것을 확인했지요 그러나 이제는 분류자가 특징들을 입력 받을 수 있습니다

더구나 이미지의 경우 그 특징을 사람 손으로 입력한다는 것은 결코 가능한 일이 아닙니다 예를 들어 과일 껍질의 결을 감지하는 코드는 결코 작성하고 싶지 않을 것입니다 이를 피하기 위해서는 딥 러닝을 사용해야 합니다 딥 러닝은 이미지를 다룰 때 큰 이점이 있습니다 이것입니다

특징을 수작업으로 뽑아 낼 필요가 없습니다 이미지의 특징으로 픽셀 데이터를 사용하면 그 나머지는 분류자가 수행합니다 훈련 데이터의 모습이 어떻게 다른지 보기 위해 아이리스 데이터 셋과 이미지의 디렉토리들을 비교해 보도록 하겠습니다 아이리스에서는 각 칼럼은 특징으로서 꽃을 설명하고 있습니다 이런 특징들은 수작업으로 작성할 수 있지요

가령 자로 재는 방법처럼요 반면에 이것은 시인을 위한 텐소플로우의 트레이닝 데이터입니다 단지 이미지에 라벨을 붙인 것입니다 분류자는 단지 함수입니다 f(x)=y 여기서 x는 이미지를 구성하는 픽셀의 2차원 배열이지요

y는 장미와 같은 라벨입니다 딥 러닝에 대해 이야기할 때 분류자는 신경망이라는 것을 사용하게 됩니다 하이 레벨에서는 단지 또 다른 분류자로서, 지난 번에 작성했던 것과 거의 비슷한 것입니다 차이는 신경망은 더 복잡한 기능을 배울 수 있다는 것입니다 이 코드 랩에서는, 시인을 위한 텐소플로우가 배후에서 신경망을 설정하고 훈련시키는 역할을한다는 것입니다

이 말은 텐소플로우가 그동안 썼던 것보다 더 어렵다는 이야기는 아닙니다 실제로 저는 텐소플로우 프로그램을 TF런으로 작성합니다 TF런은 상위 레벨 머신 러닝 라이브러로서, 텐소플로우를 기반으로 합니다 구문은 그동안 봐 왔던 사이킷-런과 비슷합니다 예를 들어, 여기 짧은 코드가 있습니다

이것은 신경망을 임포트하여 훈련시키고 새로운 데이터를 분류하는 법을 보여줍니다 이미 배운 기술을 가지고 하면 됩니다 지금 당장 더 자세히 알고 싶다면 여러분이 확인할 수 있도록 해설부에 링크를 넣도록 하겠습니다 그럼 시인을 위한 텐서플로우로 돌아가서 분류자를 훈련시켜 봅시다 그러기 위해 이 스크립트를 실행해야 합니다

자세한 사용법은 코드 랩에 있으므로 여기서는 깊이 다루지는 않겠습니다 다만 여러분이 알아야 할 것 두 가지만 지적하겠습니다 첫 째는 이 스크립트는 분류자를 훈련시키는데 20분 정도 걸립니다 긴 시간일까요? 한 번 생각해 보세요 답은 '아니오' 입니다

내부적으로 시인을 위한 텐소플로우는 아예 밑바닥부터 분류자를 훈련시키는 게 아닙니다 인셉션이라고 하는 기존의 분류자에서 시작하는 것입니다 인셉션은 구글의 최고의 이미지 분류자입니다 오픈소스이기도 합니다 내가 가지고 있는 훈련 데이타에는 많아야 수천 장의 이미지이지만 인셉션은120만 장의 이미지에 대해 훈련을 했습니다

종류도 1000개의 카테고리에 달합니다 8개의 GPU가 달린 빠른 데스크탑에서도 인셉션 훈련은 2주가 걸립니다 시인을 위한 텐소플로우에서는 인셉션을 가지고 시작하고 재훈련이라는 기술을 사용하여 여러분의 이미지에 작동하도록 조정됩니다 이렇게 해서 인셉션이 이전에 학습했던 매개 변수들의 일부를 재사용함으로써 작은 훈련 데이터를 가지고도 정확도 높은 분류자를 새로 만들 수 있지요 그럼 빨리 훈련을 마쳐봅시다

분류자를 훈련시키고 나면 사용해 볼 수 있습니다 그럼 위키피디아 코먼스에서 장미꽃 이미지를 다운로드하고 분류자를 사용하여 어떤 꽃인지를 예측하겠습니다 보다시파 정확히 맞춥니다 다른 종류의 꽃에 대해서도 높은 적중률을 봅니다 명심할 것은 분류자가 훈련 데이터만을 알고 있다는 사실입니다

그래서 로마의 콜로세움을 분류하라고 명령하면 분류자는 꽃의 일종으로 추측할 것입니다 그러면 적중률이 떨어집니다 몇 가지 생각을 정리해 보고자 합니다 훌륭한 이미지 분류자를 훈련시키려면 다양성과 수량이 관건이 됩니다 다양성이란 다른 형태의 장미꽃 이미지가 많을 수록 더 좋다는 것입니다

예를 들어 훈련 데이터에 빨강, 하얀, 노랑 장미가 있는 것입니다 다른 각도에서 즉 위에서 혹은 옆으로 찍은 사진이 포함돼 있어야 합니다 전경에 놓인 장미와 배경에 놓인 장미도 있어야 합니다 수량이란 더 많은 훈련 데이터가 있으면 더 나은 분류자를 생성할 수 있다는 의미입니다 장미 폴더 속에는 수백 장의 장미 이미지가 있습니다

그정도면 인셉션을 재교육시키는데 충분합니다 더 작은 수량으로도 가능은 하겠지만 정확성은 떨어질 것입니다 여기가지입니다 다음 단계로 텐소플로우를 더 깊이 탐구하고 여러분의 코드를 만들고 싶을 것입니다 그 방법을 보여 주는 강좌의 링크가 여기 있습니다

여기서 봤던 똑같은 기술을 여러분도 사용할 수 있습니다 시청해 주셔서 감사합니다 다음 시간에 뵙겠습니다