2020年版 Deep Learning ライブラリの選び方

2020年版 Deep Learning ライブラリの選び方

概要

ディープラーニングは今日、最も発展が著しい技術の1つであり、画像認識、音声認識、言語処理など幅広い分野で利用されています。 この数年で著しく発展した理由の1つとして、プログラミングに詳しくない人でも簡単にディープラーニングを利用できるライブラリが開発されたことがあります。 この記事では、2020年1月現在、おすすめできるディープラーニングライブラリを紹介します。

Advertisement

ディープラーニングライブラリの変遷

2012年に画像分類のコンペティションでディープラーニングを使ったモデルが優勝したことは、ディープラーニングが注目される1つのきっかけとなりました。 当時のモデルは、いくつかの層を順々に重ねたシンプルな構造でした。その後、物体検出や姿勢推定などより難しいタスクを解くために、ディープラーニングライブラリに要求される機能も多様化し、これまでに多くのライブラリが開発されてきました。 以下に2012年から現在までの主要なライブラリの一覧を整理します。

ディープラーニングライブラリの歴史

図を見るとわかるように、これまで多くのライブラリが登場してきましたが、現在は TensorFlowPyTorch の2つが人気となっていますので、次節でこの2つを詳しくみていきます。

Pytorch と TensorFlow の比較

TensorFlow

Google によって2015年に公開されたディープラーニングライブラリです。 ブラウザ上で動作する TensorFlow.js やモバイルやエッジデバイス向けの TensorFlow Lite も提供されており、ディープラーニングを使った製品の開発が行いやすい環境が整っています。 TensorFlow は計算グラフを理解する必要がある事と API が低レベルのため、記載するコード量が多くなってしまう事が難点でしたが、高レベルの API を提供する Keras が統合されたことで、TensorFlow の複雑な仕様を理解していなくても、簡単なモデルではれば、短いコードでかけるようになりました。 また、ネット上の情報量が多い事もメリットの1つです。

Pytorch

Pytorch は Facebook によって2016年に公開されたディープラーニングライブラリです。 後発のライブラリだけあり、既存のライブラリの欠点の解決が図られています。 最近、人気が急上昇しており、研究分野では Pytorch の利用が主流となっています。また PyTorch Mobile の公開など産業分野でのサポートも強化されてきています。 API が直感的で、わかりやすいため、初心者にもおすすめできるライブラリです。

Advertisement

個人的には Pytorch がオススメ

自分はこれまで TensorFlow (Keras) を主に使ってきましたが、最近は Pytorch に移行しました。 以下に Pytorch が優れていると感じた点を記載します。

  • NumPy に似たインタフェース。添字操作も numpy と同様にできる。
  • デバッグが容易。テンソルを print() すると、その場で値が確認できる。
  • API の粒度がちょうどいいため、簡単なモデルから複雑なモデルまで柔軟に記述できる。
  • 活発なコミュニティ。わからない事は検索すると、大抵、PyTorch Forums に情報がある。
  • 今後も発展が期待できる。開発元が Facebook であることに加え、人気も TensorFlow を追い抜きそうな勢いで急上昇している。
  • Python らしい、シンプルで読みやすい書き方ができる。

まとめ

TensorFlow、Pytorch は、使い方の違いはありますが、能力的には大差はないのでどちらを選んでも問題ないでしょう。 情報量としては TensorFlow (Keras) のほうが若干多いですが、最近は Pytorch の情報も増えており、今後はシェアが逆転するかもしれません。 新規にディープラーニングを始めるのであれば、Pytorch をおすすめします。

参考文献

  1. PyTorch vs. TensorFlow、ディープラーニングフレームワークはどっちを使うべきか問題 (1/2):気になるニュース&ネット記事 – @IT
    Pytorch と TensorFlow の2つのライブラリの人気を Google トレンドや Github を参考に比較されています。
  2. Comparison of deep-learning software – Wikipedia
    ディープラーニングライブラリの一覧が表でまとめられています。