월간 보관물: 2015 12월

텐서플로우 튜토리얼 – 2

이 글은 Illia Polosukhin 가 쓴 TensorFlow Tutorial – Part 2 을 번역한 글 입니다. (update: 2016-04-19) 텐서플로우 0.8 버전에 맞추어 코드를 수정하였고 번역을 다듬었습니다. 아래 예제를 쥬피터 노트북으로 작성하여 깃허브에 올려 놓았습니다.

이전 튜토리얼 – 1 에서 텐서플로우(TensorFlow)와 사이킷플로우(Scikit Flow)를 소개하고 타이타닉 데이터셋을 이용하여 간단한 로지스틱 회귀분석(Logistic Regression)의 예를 보였습니다.

여기에서는 사이킷플로우를 이용하여 컨볼루션 네트워크(convolutional networks, 합성곱신경망 또는 CNN)를 만드는 여러개의 레이어(multi-layer)가 완전히 연결된(fully connected) 뉴럴 네트워크를 만들어 보겠습니다.

다층 완전연결 신경망(Multi-layer fully connected neural network)

당연히 텐서플로우가 또 다른 선형 회귀분석(Linear Regression)나 로지스틱 회귀분석(Logistic Regression) 프레임워크라면 큰 의미가 없습니다. 텐서플로우의 이면에 있는 아이디어는 미분 가능한 모델들을 연결하여 하나의 코스트 함수(cost function or loss function)를 이용하여 최적화할 수 있는 것입니다.

계속 읽기

머신 러닝 튜토리얼 총집합

머신 러닝과 딥러닝 튜토리얼, 아티클 등 엄선된 리소스를 정리해 놓은 깃허브를 소개합니다.

Machine Learning Tutorials

좋은 AI, OpenAI.com

엘론 머스크와 페이팔 공동창업자인 피터 틸, 링크드인 CEO인 리드 호프만 등이 OpenAI.com설립한다고 발표했습니다. OpenAI 는 비영리 단체로 AI 관한 모든 연구 결과물을 공개할 것이라고 하고 이를 위해 10억달러를 투자한다고 합니다. 물론 초기 몇년 동안은 이 금액의 일부만 실제 펀딩될 것으로 보입니다.

엘론 머스크는 스티븐 호킹과 함께 AI 에 매우 민감하게 반응한 인사 중 한명입니다. 인터뷰를 보면 구글, 페이스북, 마이크로소프트, 애플 같은 IT 공룡들이 주도하는 인공지능 연구에 대해 많이 우려하고 있습니다. 지금은 각 회사들이 연구 결과의 많은 부분을 공개하고 서로 경쟁하고 있습니다만 어느 순간 인간의 지능에 거의 가까운 혹은 인간의 지능을 넘어서는 기술이 개발된다면 과연 그때에도 이를 공개할 것인지는 의문이라는 것입니다.

일부 몇몇 회사나 국가에서 인공지능을 독점하는 병폐를 막기위해  OpenAI 를 설립했다고 합니다. 하지만 OpenAI 가 인공지능을 올바르게 사용하는데 어떤 영향을 끼칠지는 명확하지 않습니다. 오히려 엘론이 자기 회사내부에서 연구하기 부담스러운 영역을 공익재단 형태로 구현하고자 하는 것아닌가 하는 생각이 듭니다. 실제로 엘론은 DeepMind 라는 인공지능 회사에 투자를 했고 추후 구글로 매각되면서 큰 이익을 얻은 것으로 알려지고 있습니다. 물론 엘론은 매각 이익을 얻기 위해서 투자한 것은 아니라고 주장하고 있습니다.

OpenAI 가 초기 집중할 연구영역은 인공지능 분야로 딥러닝(Deep Learning)에 관한 연구입니다. 연구 인원은 수백명 수준이 될 것으로 알려지고 있습니다. OpenAI 의 초기 설립에 아마존 웹 서비스가 포함되어 있습니다. 아마도 딥러닝을 위한 하드웨어 인프라를 아마존에서 제공하는 것 같습니다. 이미 아마존 웹 서비스에는 인공 신경망 연구에 적합한 고성능 GPU 를 제공하는 EC2 인스턴스 서비스가 있습니다. 얼마전 페이스북은 인공 신경망 연구에 적합한 하드웨어 구성을 오픈 소스로 공개하였습니다. 이는 구글이 발표한 텐서플로우에 대한 경쟁 심리로 파악할 수 있을 것 같지만 또 한편으로는 딥러닝 분야에서 GPU 와 하드웨어에 대한 성능이 중요시 되고 있다는 것을 시사합니다.

어느때 보다도 딥러닝에 대한 관심이 뜨거운 것 같습니다. OpenAI 의 결과물이 구글의 텐서플로우과 다른 어떤 색다른 점을 제공해 줄 지 기대가 됩니다.

[Update] OpenAI 가 두명의 주요 설립자인 엘론과 알트만(Y 인큐베이터)에게 공공의 이익 그 이상의 것을 가져다 줄 것이라는 기사가 나왔습니다.  Y 인큐베이터는 드롭박스나 에어비앤비 등에 투자하고 있고 엘론은 테슬러와 스페이스X 의 CEO 입니다. 이들 회사들 모두 머신러닝 연구자들을 보유하고 있지만 앞으로 더 많은 연구자들이 필요합니다. 하지만 구글이나 페이스북에 맞서 좋은 연구인력을 잡긴 쉽지 않습니다.

이런 상황을 타개하기 위해 OpenAI 라는 공공성을 내세우고 구글, 페이스북 등으로부터 좋은 연구인력을 모을 것 같습니다. 그리고 그 연구결과는 모두에게 공개되겠지만 테슬라와 Y 인큐베이터에서 가장 잘 활용될 것이라는 점은 의심할 여지가 없을 것 같습니다.

메소드 체이닝 스타일의 텐서플로우 래퍼(Wrapper) 프리티 텐서(Pretty Tensor)

구글이 skflow 에 이어서 텐서플로우의 래퍼(Wrapper) 모듈을 하나 더 발표하였습니다. 바로 프리티 텐서(Pretty Tensor) 입니다.

프리티 텐서는 메소드 체이닝 형태로 쓸 수 있는 가벼운 래퍼 라이브러리입니다. 간단한 예를 살펴 보면 금방 이해할 수 있습니다.

result = (pretty_tensor.wrap(input_data, m)
          .flatten()
          .fully_connected(200, activation_fn=tf.nn.relu)
          .fully_connected(10, activation_fn=None)
          .softmax(labels, name=softmax_name))

프리티 텐서는 skflow 와는 다르게 pypi 에 등록되어 있어 pip 를 이용해 바로 설치할 수 있습니다.

$ pip install prettytensor

사용자들이 텐서플로우를 보다 쉽게 이용할 수 있도록 구글이 많은 노력을 기울이는 것 같습니다. 보다 자세한 내용은 프리티 텐서 기트허브 페이지를 참고하세요.

https://github.com/google/prettytensor

(추가) Pretty Tensor는 0.6 버전이 되었습니다.

텐서플로우 0.6 릴리즈

텐서플로우 0.6버전이 릴리즈 되었습니다. 설치방법은 0.5 버전과 동일합니다. 만약 0.5 버전이 이미 설치되어 있었다면 자동으로 삭제되고 0.6버전이 설치됩니다.

$ pip install https://storage.googleapis.com/tensorflow/mac/tensorflow-0.6.0-py2-none-any.whl

설치과정 중에 의존성에 의해 protobuf 3.0 버전이 설치됩니다. 아마도 메세징 성능향상을 위해 이번 버전에 도입된 것으로 보입니다.

0.6 버전에서 주요하게 변경된 점은 아래와 같습니다.

그외 여러 버그가 수정되었습니다. 자세한 릴리즈 노트는 기트허브를 참고해 주세요.

https://github.com/tensorflow/tensorflow/blob/0.6.0/RELEASE.md

페이스북과 구글이 바둑을 두고 경쟁한다.

체스는 꽤 오래전에 사람보다 프로그램이 앞서기 시작했습니다. 대부분의 게임에서 사람은 컴퓨터에 졌지만 유독 바둑만은 예외였죠. 여러 사람들이 바둑은 컴퓨터가 사람을 이기기 힘들다고 예상했습니다. 경우의 수가 너무 많거든요. 가장 최근으로는 크레이지 스톤이라는 프로그램이 4점을 먼저 두고 작년에 유명한 프로 기사(요다 노리모토 9단)를 이겼습니다.  한 점당 보통 6~7집 정도를 덤으로 계산하면 25집 정도차이가 나므로 실제로는 꽤 큰 실력 차이입니다.

지난 달 페이스북에서 바둑에 관한 인공지능 논문을 발표했습니다. 지금까지 게임 인공지능은 몬테 카를로 트리 탐색이 주류를 이루었습니다. 페이스북의 논문은 여기에 인공신경망 알고리즘의 딥러닝 기술을 적용해서 성능 향상을 꾀했습니다.

재미있는 것은 페이스북에 이어 구글이 수개월안에 바둑과 관련하여 놀라운 것을 발표하겠다고 말한 것 입니다. 바둑을 놓고 구글과 페이스북이 경쟁 아닌 경쟁을 하는 셈이죠. 사실 바둑의 AI 문제는 단순히 바둑만의 문제가 아닙니다. 바둑을 정복할 수 있다면 보다 더 고도화된 AI 로 나아가는 전환점이 될 수 있을 것이라고 생각합니다.

와이어드 기사에서는 구글이 딥러닝에 더해 강화학습 알고리즘을 이용할 것이라고 내다 보았습니다. 구글이 발표할 내용이 어떤 것인지는 모르겠지만 딥러닝을 이용한 것이라면 텐서플로우를 이용할 가능성이 매우 높을 것으로 보입니다.

흥미로운 경쟁을 기대해 보시죠 ; )

 

머신 러닝 타임즈 2015

2015년은 머신러닝의 해라고 불릴만큼 머신러닝 기술이 많이 회자되고 큰 회사부터 스타트업까지 많은 기사를 토해낸 한 해였습니다. 어낼리틱스 비댜(Analytics Vidhya)에서는 2015년 중요한 머신러닝 이슈들을 한 곳에 모아서 발표하였습니다.

눈에 띄이는 2015년 이슈는 무엇이 있을까요? 페이스북이 토치(Torch)를 이용한 툴들을 공개했고 다토(Dato)가 본격적으로 머신러닝 시장에 참여하기 시작했습니다. 다토는 제 1의 Mooc 사이트인 코세라(Cousera)에도 머신러닝 강의를 올해부터 시작했습니다. 마이크로소프트가 머시러닝 툴킷 DMTK를 오픈소스로 공개하고 자사의 클라우드인 아주르(Azure)에 머신러닝 플랫폼을 런칭했습니다. 또 유명한 Mooc인 유다시티(Udacity)에도 머신러닝과 데이터사이언스에 관한 강좌를 제공하고 있습니다. 애플이 지속적으로 머신러닝 인재를 영입하고 관련 회사들을 사들이는 기사도 보도되었습니다. 머신러닝과는 직접 관계는 없지만 스위프트(Swift) 언어를 오픈소스로 공개한 것도 올해 입니다.

계속 읽기

데이터 엔지니어링 에코시스템

Insight Data Science 에서 데이터 엔지니어링 에코시스템 을 새로 발표하였습니다.

스크린샷 2015-12-04 오후 11.52.26

이 맵은 데이터 사이언스 분야의 관심 기술들을 한눈에 조망할 수 있고 인터렉티브 맵으로 만들어져 있어서 마우스를 올리면 간단한 소개와 공식 사이트로 링크를 제공하고 있습니다.

금번에 새로운 트렌드로는 메모리 가격이 낮아지면서 인메모리 데이터베이스와 관련된 새로운 제품들이 많이 생겼다는 것과 스파크(Spark) 보다 스트리밍 데이터 처리에 보다 좋은 성능을 발휘하는 플링크(Flink)가 빠르게 퍼지고 있다는 것 입니다.

혹 이 맵에서 낯설은 단어들이 보이신다면 시간을 갖고 천천히 둘러보시길 추천합니다.

텐서플로우 튜토리얼 – 1

이 글은 Illia Polosukhin 가 쓴 TensorFlow Tutorial – Part 1 을 번역한 글 입니다.
(update: 2016-04-18) 텐서플로우 0.8 버전에 맞추어 코드를 수정하였고 번역을 다듬었습니다. 아래 예제를 쥬피터 노트북으로 작성하여 깃허브에 올려 놓았습니다.
(update: 2016-08-29) 일리아 폴러서킨(Illia Polosukhin)이 주로 TF.Learn에 관해 수정한 내용을 반영하였습니다. 일리아의 코드는 TF 0.10에 맞춰진 것으로 정식버전이 릴리즈 되면 깃허브의 내용을 수정하겠습니다.

구글이 텐서플로우 머신러닝 프레임워크를 공개하고 나서 광풍이 휘몰아치고 있습니다. 깃허브에는 만개가 넘는 별이 달리고 인공지능 연구자들 사이에서 이미 큰 관심을 모으고 있습니다

그럼 데이터 과학자들이 할 법한 일들을 위해 텐서플로우를 어떻게 사용할 수 있을까요? (그리고 당신이 인공지능 연구자라면-앞으로 흥미로운 문제들과 마주하게 될 것입니다.)

왜 텐서플로우인가?

당연한 질문입니다. 데이터 과학자로서 이미 R, Scikit Learn 등 여러 툴들을 사용하고 있는데 왜 또 다른 프레임워크를 다루어야 하는걸까요?

계속 읽기