TensorFlow のための深層学習ライブラリ Kerasを始めよう(翻訳)

TensorFlow のための深層学習ライブラリ Kerasを始めよう(翻訳)

本記事は、Kerasのドキュメンテーションのトップページを翻訳(適宜意訳)したものです。誤り等あればご指摘いただけたら幸いです。

Kerasとは

Kerasは、Pythonで書かれた、TensorFlowCNTKTheanoの上で実行可能な高水準のニューラルネットワークライブラリです。これは、迅速な実験を可能にすることに重点を置いて開発されました。アイデアから結果へできる限り早く到達することができることは、良い研究をする上で重要です。

次のような深層学習ライブラリを必要とするならば、是非Kerasを使ってみてください。

  • 簡単で素早いプロトタイプを作成可能(ユーザーフレンドリー、モジュール性、拡張性)
  • 畳み込みネットワークと再帰ネットワークの両方、およびこれら2つの組み合わせをサポート
  • CPUとGPU上でシームレスに実行可能

詳細はKeras.ioのドキュメントを参照してください。

KerasはPython 2.7-3.5と互換性があります。

ガイダンスの原則

ユーザーフレンドリー

Kerasは、人間ではなく機械向けに設計されたAPIです。ユーザーエクスペリエンスをフロントとセンターに置きます。Kerasは、負荷を軽減するためのベストプラクティスに従っています。一貫性のあるシンプルなAPIを提供し、一般的な利用事例に必要なアクションの数を最小限に抑え、エラー時に明確で実用的なフィードバックを提供します。

モジュール性

モデルとは、できるだけ制限をかけずにプラグインできる、完全に構成可能なスタンドアロンのモジュールのシーケンス(またはグラフ)として理解されます。特に、ニューラル層、コスト関数、オプティマイザ、初期化スキーム、活性化関数、正規化スキームはすべて、新しいモデルを作成するために結合できるスタンドアロン・モジュールです。

容易な拡張性

新しいモジュールは(新しいクラスや関数として)簡単に追加することができます。また、既存のモジュールは十分な例を提供します。新しいモジュールを簡単に作成できるので、表現力を最大限に発揮させ、高度な研究に適しています。

Pythonで作業する

宣言形式の別個のモデル構成ファイルはありません。モデルはPythonコードで記述されており、コンパクトでデバッグや拡張を容易にします。

30秒でKerasを始めよう!

Kerasのコアとなるデータ構造はモデルであり、層(レイヤー)をまとめる方法です。最も単純なモデルのタイプは、一連のレイヤーであるSequentialモデルです。もっと複雑なアーキテクチャの場合は、Keras functional APIを使用する必要があります。これにより、レイヤの任意のグラフを作成することができます。

これは Sequential モデルです。

層を重ねるのは .add() のように簡単です。

モデルが良さそうならば、.compile()を使用して学習プロセスを設定します。

必要に応じて、オプティマイザをさらに構成することができます。Kerasの核となる原則は、ものごとを合理的にシンプルにすることですが、ユーザーが必要なときに完全にコントロールできるようにすることが可能です。(究極の制御はソースコードの容易な拡張性です)

トレーニングデータをバッチで繰り返し処理可能です。

また、モデルに手動でバッチを提することもできます。

一行でパフォーマンスを評価します。

または、新しいデータに対して予測を生成します。

質問応答システム、画像分類モデル、神経チューリングマシン、またはその他のモデルを構築するのは高速です。深層学習の背後にあるアイデアは単純です。実装に苦労するはずはありません。

Kerasに関する詳細なチュートリアルについては、次を参照してください。

リポジトリのexamplesフォルダには、より高度なモデルがありますので参考にしてみてください。(メモリネットワークでの質問応答、スタックされたLSTMによるテキスト生成など)

Related Post

ポッドキャスト配信中

SE社長アライの「海外スタートアップ研究室」
今、何よりも必要なのは「多様化するマーケットを読み解く力」です。
海外スタートアップの研究や、そこから学んだビジネスのヒントを共有しています。

お問合せはこちら

サービスに関する質問や記事に関するお問合せなど、お気軽にご連絡ください。お問合せをいただいてから原則24時間以内に返信させていただきます。