카테고리 보관물: Deep Learning

TensorFlow 1.4.0 Release

텐서플로 1.4.0 버전이 정식 릴리즈되었습니다. 이번 버전에서 tf.keras와 tf.data가 코어 API로 들어왔습니다. 이제 대기하고 있던 케라스 책들이 슬슬 나오기 시작할 것 같네요. 🙂

1.4.0 버전에 관한 좀 더 자세한 내용은 릴리즈 노트를 참고해 주세요. 텐서플로는 다음과 같이 pip 명령으로 간단히 설치할 수 있습니다.

$ pip install --upgrade tensorflow
$ pip install --upgrade tensorflow-gpu

TensorFlow Eager Execution

오늘 다이나믹 그래프를 지원하는 텐서플로의 Eager Execution 기능이 소개되었습니다. 올해 초에 명령형imperative 스타일의 기능이 텐서플로에 추가되었습니다(TensorFlow 1.1.0 RC2 and Imperative Style). 다음 버전인 1.5.0에서 이 기능이 빠지고 새롭게 Eager Execution으로 추가되는 것 같습니다.

텐서플로의 텐서는 연산 노드를 가리키는 핸들과 같았습니다(TF의 텐서와 상수, 변수, 플레이스홀더). Eager Execution에서 텐서는 데이터를 직접 포인팅합니다. 그래서 tf.Session을 시작하지 않고 직접 값을 얻을 수 있습니다.

>>> import tensorflow.contrib.eager as tfe
>>> tfe.enable_eager_execution()
>>> c = tf.constant(1)
>>> c
<tf.Tensor: id=0, shape=(), dtype=int32, numpy=1>

텐서 c를 확인해 보면 numpy 속성이 생긴 것을 알 수 있습니다.

>>> c.numpy()
1
>>> type(c)
EagerTensor
>>> type(c.numpy())
numpy.int32

Eager Execution은 NumPy와 호환성을 크게 높인 것 같습니다. 계산 그래프의 생성과 실행 단계가 구분되지 않으므로 파이썬의 조건문으로 계산 그래프를 동적으로 조직할 수 있습니다. 이외에도 그래디언트 계산과 동적 모델에 관한 기능들이 많이 추가되었습니다.

Eager Execution은 한번 설정하면 취소할 수 없어서 파이썬 세션을 새로 시작해야 합니다. 또 tf.data와 tf.layers 밑의 클래스를 사용해야 합니다. 아직 파이토치PyTorch 만큼은 자유도가 높아 보이지는 않지만 점점 다른 프레임워크의 장점을 흡수하는 모습은 기대가 됩니다. 텐서플로에 비하면 파이토치 사용자가 극히 적을 텐데도 상당히 의식하는 것 같습니다. 🙂

… we’re looking for feedback from the community to guide our direction.

텐서플로의 종전 API가 그랬듯이 Eager Execution도 향후에 상당히 변화가 많이 있을 것으로 예상됩니다. 좀 더 자세한 내용은 깃허브의 가이드 문서예제를 참고하세요.

Eager Execution을 사용해 보려면 다음 명령으로 텐서플로의 Nightly 빌드를 설치하면 됩니다.

$ pip install tf-nightly
$ pip install tf-nightly-gpu

Intel Nervana Neural Network Processors(NNP)

intel-nervana-chip-2-showcase

인텔에서 인수한 너바나Nervana와 함께 새로운 딥러닝 칩을 연말에 공개한다고 발표하였습니다. 일명 너바나 뉴럴 네트워크 프로세서(NNP)입니다. 이 칩은 온전히 딥러닝을 위하여 고안되었으며 아직 어떤식으로 공개될지는 미지수입니다. 하지만 글의 마지막 코멘트로 미루어 보아 페이스북과 함께 협업을 하고 있는 것으로 보입니다. 그렇다면 파이토치PyTorch나 카페2Caffe2에서 이 칩을 지원하지 않을까 생각이 듭니다. 적절한 가격으로 좋은 성능을 낸다면 텐서플로에서 지원할지가 큰 화두가 될 것 같습니다.

TensorFlow 1.4.0 RC0 Release

텐서플로 1.4.0 RC0 버전이 릴리즈되었습니다. 1.4.0 버전에서 tf.contrib.data가 tf.data로 바뀌면서 텐서플로 코어로 들어왔습니다. 좀 자세한 내용은 릴리즈 노트를 참고해 주세요.

$ pip install --upgrade --pre tensorflow

$ pip install --upgrade --pre tensorflow-gpu

또 이제부터는 nightly 빌드가 PyPI로 제공됩니다! 깃허브 소스를 직접 컴파일하지 않아도 최신 패치의 텐서플로를 사용해 볼 수 있습니다.

$ pip install --upgrade tf-nightly 
$ pip install --upgrade tf-nightly-gpu

Theano 1.0 and No More

몬트리올 대학 밀라MILA 연구소의 요수아 벤지오Yoshua Bengio 교수가 씨아노Theano 구글 유저 그룹에 씨아노 1.0이 몇 주내로 릴리즈된 다는 것과 그 이후에 더 이상 개발이 지속되지 않는다는 내용을 공개하였습니다. 뉴럴 네트워크와 딥러닝의 온라인 강좌로 유명한 neuralnetworksanddeeplearning.com은 씨아노 라이브러리로 예제가 만들어져 있는데 씨아노의 래퍼인 Lasagne와 함께 한 풀 인기가 줄어들 것 같습니다.

구글, 페이스북이 서포팅하는 텐서플로TensorFlow나 파이토치PyTorch 같은 프레임워크와 경쟁한다는 것은 쉽지 않은 일입니다. 그렇지만 씨아노의 개발 중단은 아쉬워할 수 밖에 없습니다. 하지만 씨아노가 딥러닝과 연구 커뮤니티에 미친 영향은 오랫동안 기억될 것 같습니다.

Thanks Theano!

(업데이트) 역시 Lasagne도 씨아노와 함께 역사속에 남을 것 같습니다. Lasagne의 백엔드를 다른 씨아노말고 다른 것으로 대체할 수도 있겠지마 다른 라이브러리들은 이미 고수준 API를 갖추고 있고 기존의 Lasagne의 API도 일관성을 유지하기 힘들 거라고 하네요. Lasagne의 개발자 Jan Schlüter가 구글 그룹에 남긴 포스트를 참고하세요.

DL & RL Summer School Video Out!

몬트리올 대학의 MILA 랩이 주관하는 2017 DL & RL 서머 스쿨 강의 동영상이 VideoLectures를 통해 공개되었습니다. 이번 서머 스쿨의 강의는 총 36개로 이 중에 2개는 공개되지 못하고 딥러닝 25개와 강화학습 9개가 공개되었습니다. 강의자들의 이름만 봐도 후덜덜하네요. : )

Python ML 2nd Edition

cover_1세바스찬 라쉬카Sebastian RaschkaPython Machine Learning2판이 준비되고 있습니다. scikit-learn을 중심으로 쓰여진 파이썬 머신러닝 도서로 인기가 많았던 1판에 비해 여러가지 내용이 추가되어 페이지도 많이 늘어 났습니다(501 페이지 600 페이지가 넘네요).

가장 큰 변화는 구글 텐서플로TensorFlow에 대한 소개와 CNN, RNN 챕터를 추가한 것입니다. 아래 목차를 참고하세요.

  1. Machine Learning – Giving Computers the Ability to Learn from Data
  2. Training Machine Learning Algorithms for Classification
  3. A Tour of Machine Learning Classifiers Using Scikit-Learn
  4. Building Good Training Sets – Data Pre-Processing
  5. Compressing Data via Dimensionality Reduction
  6. Learning Best Practices for Model Evaluation and Hyperparameter Optimization
  7. Combining Different Models for Ensemble Learning
  8. Applying Machine Learning to Sentiment Analysis
  9. Embedding a Machine Learning Model into a Web Application
  10. Predicting Continuous Target Variables with Regression Analysis
  11. Working with Unlabeled Data – Clustering Analysis
  12. Implementing a Multi-layer Artificial Neural Network from Scratch
  13. Parallelizing Neural Network Training with TensorFlow
  14. Going Deeper: The Mechanics of TensorFlow
  15. Classifying Images with Deep Convolutional Neural Networks
  16. Modeling Sequential Data Using Recurrent Neural Networks

이 책은 9월에 출간될 예정이지만 소스 코드는 깃허브에서 주피터 노트북으로 읽으실 수 있습니다.

TensorFlow 1.3.0 Release

텐서플로 1.3.0 버전이 릴리즈되었습니다. 1.3.0 버전에 대한 자세한 내용은 릴리즈 노트를 참고해 주세요. 1.4.0 버전부터는 cuDNN 7를 사용해 패키징될 예정입니다. 텐서플로 1.3.0 버전은 이미 PyPI에 등록되어 있어 pip 명령으로 간단하게 설치할 수 있습니다.(tensorflow-gpu에는 macOS 버전이 없습니다)

$ pip install --upgrade tensorflow

$ pip install --upgrade tensorflow-gpu

CS231n new lectures(Spring 2017)!

가장 인기 높은 인공지능 관련 강의 중 하나인 스탠포드 대학의 CS231n(Convolutional Neural Networks for Visual Recognition)이 드디어 온라인으로 공개되었습니다! 스탠포드 대학 내에서도 아주 인기있는 강좌이고 온라인 수강권의 비용도 아주 비쌌기 때문에 공개가 되지 않을까 걱정하기도 했었습니다. 작년에 비해 강화학습이나 생성 모델 등이 추가되었습니다. 이 강의의 슬라이드와 강의 노트는 여기에서 볼 수 있습니다.

cs231n_2017

전문가의 손길이 느껴지는 영상입니다. : )

Andrew Ng launch New DL Courses!

바이두에서 나온 앤드류 응이 세가지 프로젝트를 진행한다고 합니다. 그 중에 먼저 첫 번째로 선을 보이는 것deeplearning.ai로 예고했던 코세라의 Deep Learning Specialization 코스입니다! 파이썬과 텐서플로를 사용하는 이 커리큘럼은 총 다섯개의 코스로 이루어져 있습니다.

  1. Neural Networks and Deep Learning
  2. Improving Deep Neural Networks: Hyperparameter tuning, Regularization and Optimization
  3. Structuring Machine Learning Projects
  4. Convolutional Neural Networks
  5. Sequence Models

작년부터 시작한 코세라의 구독 모델이 적용되는 specialization으로 월 $49를 내고 빠른 속도(!)로 주파를 하면 Certificate를 받을 수 있습니다. 돈을 내지 않고 청강을 할 수도 있는데요. 각 코스의 링크로 직접 들어가서 Enroll을 하면 팝업 화면 아래 조그맣게 쓰인 Audit 링크를 누르시면 됩니다. 자세히는 아직 모르지만 전체 커리큘럼의 수준은 intermediate 정도로 보입니다.

deeplearningai

눈에 익은 책상과 모니터네요! 🙂