概要
ディープラーニングは今日、最も発展が著しい技術の1つであり、画像認識、音声認識、言語処理など幅広い分野で利用されています。 この数年で著しく発展した理由の1つとして、プログラミングに詳しくない人でも簡単にディープラーニングを利用できるライブラリが開発されたことがあります。 この記事では、2020年1月現在、おすすめできるディープラーニングライブラリを紹介します。
ディープラーニングライブラリの変遷
2012年に画像分類のコンペティションでディープラーニングを使ったモデルが優勝したことは、ディープラーニングが注目される1つのきっかけとなりました。 当時のモデルは、いくつかの層を順々に重ねたシンプルな構造でした。その後、物体検出や姿勢推定などより難しいタスクを解くために、ディープラーニングライブラリに要求される機能も多様化し、これまでに多くのライブラリが開発されてきました。 以下に2012年から現在までの主要なライブラリの一覧を整理します。
図を見るとわかるように、これまで多くのライブラリが登場してきましたが、現在は TensorFlow と PyTorch の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 が直感的で、わかりやすいため、初心者にもおすすめできるライブラリです。
個人的には Pytorch がオススメ
自分はこれまで TensorFlow (Keras) を主に使ってきましたが、最近は Pytorch に移行しました。 以下に Pytorch が優れていると感じた点を記載します。
- NumPy に似たインタフェース。添字操作も numpy と同様にできる。
- デバッグが容易。テンソルを print() すると、その場で値が確認できる。
- API の粒度がちょうどいいため、簡単なモデルから複雑なモデルまで柔軟に記述できる。
- 活発なコミュニティ。わからない事は検索すると、大抵、PyTorch Forums に情報がある。
- 今後も発展が期待できる。開発元が Facebook であることに加え、人気も TensorFlow を追い抜きそうな勢いで急上昇している。
- Python らしい、シンプルで読みやすい書き方ができる。
まとめ
TensorFlow、Pytorch は、使い方の違いはありますが、能力的には大差はないのでどちらを選んでも問題ないでしょう。 情報量としては TensorFlow (Keras) のほうが若干多いですが、最近は Pytorch の情報も増えており、今後はシェアが逆転するかもしれません。 新規にディープラーニングを始めるのであれば、Pytorch をおすすめします。
参考文献
- PyTorch vs. TensorFlow、ディープラーニングフレームワークはどっちを使うべきか問題 (1/2):気になるニュース&ネット記事 – @IT
Pytorch と TensorFlow の2つのライブラリの人気を Google トレンドや Github を参考に比較されています。 - Comparison of deep-learning software – Wikipedia
ディープラーニングライブラリの一覧が表でまとめられています。
コメント