온라인으로 간편하게 들을 수 있는 엔비디아 딥 러닝 인스티튜트(이하 DLI) Self-Paced Lab은 전 세계 개발자, 데이터 과학자, IT업계 종사자 등 전문가들뿐만 아니라 딥 러닝 입문자 및 초급자들 또한 쉽게 들을 수 있는 교육을 제공합니다. DLI온라인 랩은 실습 플랫폼 Qwiklabs 상에서 무료, 또는 소정의 강의료를 지불하고 들을 수 있는데요.
오늘 엔비디아 블로그에서는 DLI Self-Paced Lab에서 들을 수 있는 다양한 실습강의 중 텐서플로우(TensorFlow) 기반 랩들을 소개합니다. 텐서플로우는 개발자들이 가장 널리 활용하는 딥 러닝 라이브러리로 익히 알려져 있는데요. 텐서플로우로 딥 러닝 솔루션을 구축하는 방법과 그 이점부터 먼저 살펴볼까요?
텐서플로우로 학습하는 딥 러닝
텐서플로우는 구글이 개발한 프레임워크로, 구글 내부의 다양한 연구 인력과 제품 그룹에서 사용되고 있습니다.
텐서플로우는 머신 인텔리전스용 오픈소스 소프트웨어 라이브러리입니다. 텐서플로우는 CPU 및 GPU에서 실행할 수 있고, 워크스테이션, 서버를 활용할 수 있으며, 모바일 플랫폼에도 모델을 배포할 수 있다는 점에서 이식성(portable)이 뛰어납니다. 또한 호환성도 좋은데요. 텐서플로우의 일반적인 사용법은 파이썬으로 트레이닝과 테스트를 수행하고, 모델을 최종 마무리하면 C++로 배포하는 것입니다.
텐서플로우는 CPU와 GPU 모두를 활용 가능하도록 설계 및 구축되어 있습니다. 때문에 텐서플로우를 단 한 번만 실행해도 필요한 경우 CPU와 GPU에 각기 다른 작업을 명시적으로 할당할 수 있으므로 상당한 유연성을 확보하게 됩니다. GPU에서 실행하는 경우에 텐서플로우는 cuDNN 등 다양한 GPU 라이브러리를 활용하므로 최신 GPU에서 제공하는 최고의 성능을 적극 이용할 수 있습니다.
그렇다면 엔비디아 DLI Self-Paced Lab에서는 이 텐서플로우를 사용해서 어떤 내용들을 배울 수 있을까요? 아래 각 강의 별 소개를 통해 확인해 보세요.
*아직 딥 러닝 입문 강의를 아직 듣지 않았다면, 가장 기본이 되는 강의이자 무료 강의인 <Applications of Deep Learning with Caffe, Theano, and Torch> 랩, 또는 <Image Classification with DIGITS >를 미리 들어보실 것을 권해드립니다. 해당 강의에 대한 설명은 엔비디아 블로그에서 확인할 수 있습니다.
<Linear Classification with TensorFlow>
https://nvidia.qwiklab.com/focuses/3045
- 강의 시간: 90분 (설치 소요 시간: 4분)
- 강의 대상: 초급자
- 프레임워크: 텐서플로우
강의 소개
이 튜토리얼에서는 텐서플로우의 TF.Learn API를 이용해 이진 분류(binary classification) 문제를 풀어볼 예정입니다.
연령, 성별, 교육수준 및 직업 등의 특징이 포함된 한 개인의 인적 데이터를 바탕으로 그가 연간 5만 달러 이상의 소득(목표 레이블)을 얻을 수 있는지에 대해 예측해 봅니다.
하나의 로지스틱 회귀(logistic regression) 모델을 트레이닝해, 한 사람의 정보에 대해 해당 모델이 0과 1 중에서 한 숫자로 표현되도록 할 것이며, 해당 숫자는 이 사람이 연간 5만 달러 이상의 소득을 올릴 가능성으로 해석할 수 있습니다.
학습 목표는 다음과 같습니다.
- 판다스(Pandas)를 활용해 데이터 독해, 보기 및 구조화하기
- 데이터를 학습용 텐서로 변환하기
- 선형 모델을 트레이닝하고 평가하기
- 데이터의 엔지니어링을 통해 성능 개선하기
- 하이퍼파라미터의 조정을 통해 성능 개선하기
이 모든 학습 목표를 잘 따라가면 자신만의 구조화된 데이터로부터 예측을 해낼 수 있습니다.
<Image Segmentation with TensorFlow>
https://nvidia.qwiklab.com/focuses/2193
- 강의 시간: 90분 (설치 소요 시간: 4분)
- 강의 대상: 초급자
- 프레임워크: 텐서플로우
- 본 강의 수강 전 <Image Classification with DIGITS> 우선 수강 권장
강의 소개
이 랩에서는 이미지 세그멘테이션을 다양하게 연습해보게 됩니다.
각각의 픽셀을 특정 클래스에 배치하는 작업으로, 전체 이미지가 아닌 픽셀 단위로 분류 해보는 튜토리얼입니다. 이 랩에서는 심장 MRI 영상 내 픽셀을 분류할 예정으로, 해당 픽셀이 좌심실에 속하는지 여부를 파악해 볼 수 있습니다.
이 랩은 딥 러닝의 입문자용 강의도, 컨볼루셔널 뉴럴 네트워크(CNN)의 수학적인 형식을 꼼꼼히 학습하는 과정도 아닙니다. 기본적으로 forward propagation 및 back propagation 등의 개념, 활성화(activations), SGD, 컨볼루션(convolution), 풀링(pooling), 바이어스(bias) 등 뉴럴 네트워크에 대한 어느 정도의 이해가 있다는 가정 하에 진행됩니다.
이미 CNN을 접해본 경험이 있거나 이미지 인식 작업에 대해 이해하고 있다면 강의를 더 잘 이해할 수 있습니다. 이 랩에서는 구글의 텐서플로우 머신 러닝 프레임워크를 이용하기에 파이썬 및 텐서플로우 사용 경험이 있다면 도움이 되지만 반드시 필요한 사항은 아닙니다. 이 랩에서 진행하게 될 작업의 대부분은 코딩이라기보다는 텐서플로우를 이용해 트레이닝 및 평가 작업을 설정하고 실행하는 과정이 될 것입니다.
이에 따라 강의가 끝날 때쯤이면 딥 러닝을 통해 대부분의 컴퓨터 비전 워크플로우를 설정할 수 있게 됩니다.
<Deep Learning Workflows with TensorFlow and MXNet and NVIDIA-Docker>
https://nvidia.qwiklab.com/focuses/2192
- 강의 시간: 90분 (설치 소요 시간: 7분)
- 강의 대상: 초급자
- 프레임워크: 텐서플로우
- 본 강의 수강 전 <Image Classification with DIGITS> 우선 수강 권장
강의 소개
이번 랩에서는 “도커(Docker)”에 대해 공부하고 도커를 활용하여 튜토리얼이 진행 됩니다.
서버에 접근하기란 결코 쉬운 작업이 아니라는 점은 누구나 공감하는 이야기일 텐데요. 이제는 아마존 웹서비스(AWS), 애저(Azure) 및 구글 GCE(Google GCE) 등의 플랫폼을 통해 온갖 종류와 구성의 온디맨드 서버를 런칭할 수 있습니다. 기업, 단체 및 기관은 이러한 프로그램식 인프라(IaaS)를 통해 시장 및 미션으로 인한 부담이 가중될 때 민첩하게 대응할 수 있습니다. 그러나 IaaS의 등장한 뒤에도 애플리케이션 패키징(packaging), 구성(configuration) 및 컴포지션(composition)은 구성 및 관리에 상당한 노력을 기울이면서도 발전하지 못했습니다. 도커(docker)는 이런 배경 하에 탄생했습니다.
도커는 완전 가상화(full virtualization)와 관련이 있다기보다는 리눅스 컨테이너(Linux containers)를 이용해 애플리케이션의 패키징 및 실행을 용이하게 하는 것입니다. 이는 도커컨테이너를 이용해 하나의 소프트웨어나 애플리케이션을 하나의 파일 시스템에 집어 넣는 것으로, 해당 파일 시스템에는 실행에 필요한 코드, 런타임, 시스템 도구, 시스템 라이브러리 등 서버에 설치될 수 있는 모든 것이 포함돼 있습니다. 이 경우, 해당 소프트웨어는 컨테이너를 실행하는 OS/연산 환경에 관계 없이 어디서든 항상 동일하게 실행됩니다.
텐서플로우를 이용한 MNIST
실제 도커컨테이너를 이용하면 얼마나 작업이 간단하게 이루어질 수 있는지 확인을 해볼 수 있는데요, 랩에서 진행되는 다양한 예제 중 텐서플로우를 통해 MNIST 데이터세트의 손글씨 숫자 0부터 9를 인식하는 작업을 수행해볼 수 있습니다.
랩 수강생들은 여기를 클릭해서 도커허브(DockerHub) 페이지를 방문하면 텐서플로우 이미지를 확보할 수 있습니다. 또한, 도커허브에서 이 텐서플로우 이미지를 생성하는데 사용된 실제 도커파일은 깃허브(github)에 공개되어 있답니다.
DLI SELF-PACED LAB 강의는 AWS 및 구글 클라우드가 제공하는 글로벌 핸즈온 소프트웨어 트레이닝 실습 플랫폼인 Qwiklabs을 기반으로 합니다. 아직 Qwiklabs 아이디를 생성하지 않았다면, 엔비디아 블로그에서 튜토리얼에 따라 가입부터 진행해 주세요. 가입을 마치면 Qwiklabs에서 현재 어떠한 딥 러닝 강의들을 들어볼 수 있는지 확인하고, 강의를 들을 수 있습니다.
- 강의 확인하러 가기: https://developer.nvidia.com/dli/onlinelabs