ホーム » Keras » Keras: Theano と TensorFlow のための深層学習ライブラリ

Keras: Theano と TensorFlow のための深層学習ライブラリ

(翻訳)Keras: Theano と TensorFlow のための深層学習ライブラリ
翻訳 : (株)クラスキャット セールスインフォメーション
日時 : 02/11/2016

* 本ページは、Keras の本家サイト http://keras.io/ のトップページを翻訳したものです。
原題は: Keras: Deep Learning library for Theano and TensorFlow

* ご自由にリンクを張って頂いてかまいませんが、sales-info@classcat.com までご一報いただけると嬉しいです。

 

You have just found Keras.

Keras は最小限主義で、高度にモジュール化されたニューラルネットワーク・ライブラリで、Python で書かれ、TensorFlow か Theano のいずれかの上で動作することができます。速い実験を可能にすることに重点を置いて開発されました。アイデアから結果へできる限り早く至ることは良い研究を行うための鍵となります。

貴方が次のような深層学習ライブラリを必要とするならば Keras を使ってください :

  • (総合的なモジュール化、最小主義そして拡張性を通じて)簡単で早いプロトタイピングを見込む。
  • 畳み込みネットワークとリカレント・ネットワークの両者、そして2つの組み合わせをサポートする。
  • (マルチ入力とマルチ出力訓練を含む)任意の結合スキームをサポートする。
  • CPU と GPU 上でシームレスに実行する。

Keras は Python 2.7-3.5 互換です。

 

指針

  • モジュール化 (Modularity) – モデルはスタンドアロンのグラフのシーケンス、殆ど制限なく一緒に接続可能な完全に構成可能なモジュールとして理解されます。特に、ニューラル層、コスト関数、オプティマイザ、初期化スキーム、活性化関数、regularization スキームは全てスタンドアロン・モジュールで、新しいモデルを作成するために結合することができます。
  • 最小主義 (Minimalism) – 各モジュールは短く単純なものとして保持されるべきです。コードの全てのピースは初見で透過であるべきです。黒魔術はありません: それは反復速度と革新する能力を傷つけます。
  • 簡単な拡張性 – 新しいモジュールは(新しいクラスや関数として)追加が超簡単です、そして既存のモジュールは十分な例を提供します。簡単に新しいモデルを作成できるということは総合的な表現力に寄与し、進んだ研究のために Keras を最適化します。
  • Python と共に作業 – 切り離された、宣言形式 (declarative format) のモデル構成ファイルはありません。モデルは Python コードで記述され、コンパクトで、デバッグがより簡単で、そして拡張性を簡単にします。
 

Getting started: 30 秒で Keras

Keras の核となるデータ構造はモデルで、層をまとめる方法です。2つのタイプのモデルがあります: SequentialGraph です。

これは Sequential モデル(層の線形的な積み重ね (a linear pile of layers))です。

from keras.models import Sequential

model = Sequential()

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

from keras.layers.core import Dense, Activation

model.add(Dense(output_dim=64, input_dim=100, init="glorot_uniform"))
model.add(Activation("relu"))
model.add(Dense(output_dim=10, init="glorot_uniform"))
model.add(Activation("softmax"))

モデルが良さそうならば、.compile() で学習プロセスを構成します:

model.compile(loss='categorical_crossentropy', optimizer='sgd')

必要であれば、オプティマイザを更に構成することができます。Keras の核となる指針は物事を合理的に単純にすることですが、必要な時にはユーザが完全に制御可能です。(究極の制御はソースコードの簡単な拡張性です。)

from keras.optimizers import SGD
model.compile(loss='categorical_crossentropy', optimizer=SGD(lr=0.01, momentum=0.9, nesterov=True))

今貴方はバッチの訓練データ上で反復可能です。

model.fit(X_train, Y_train, nb_epoch=5, batch_size=32)

他の方法として、貴方のモデルに手動でバッチを提供することもできます:

model.train_on_batch(X_batch, Y_batch)

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

objective_score = model.evaluate(X_test, Y_test, batch_size=32)

あるいは新しいデータについて予測を生成します:

classes = model.predict_classes(X_test, batch_size=32)
proba = model.predict_proba(X_test, batch_size=32)

LTSM、深層 CNN、ニューラル・チューリング・マシン、word2vec embedder(埋め込み)あるいは他のモデルのネットワーク構築は同程度に速いです。深層学習の背後にあるアイデアは単純です、その実装が何故痛みを伴うべきなのでしょうか?

starter examples を見てください。

repo の examples フォルダ で、より進んだモデルを見つけるでしょう:メモリネットワークによる質疑応答、stacked LSTM によるテキスト生成、ニューラル・チューリング・マシン etc.

 

以上

AI導入支援 #2 ウェビナー

スモールスタートを可能としたAI導入支援   Vol.2
[無料 WEB セミナー] [詳細]
「画像認識 AI PoC スターターパック」の紹介
既に AI 技術を実ビジネスで活用し、成果を上げている日本企業も多く存在しており、競争優位なビジネスを展開しております。
しかしながら AI を導入したくとも PoC (概念実証) だけでも高額な費用がかかり取組めていない企業も少なくないようです。A I導入時には欠かせない PoC を手軽にしかも短期間で認知度を確認可能とするサービの紹介と共に、AI 技術の特性と具体的な導入プロセスに加え運用時のポイントについても解説いたします。
日時:2021年10月13日(水)
会場:WEBセミナー
共催:クラスキャット、日本FLOW(株)
後援:働き方改革推進コンソーシアム
参加費: 無料 (事前登録制)
人工知能開発支援
◆ クラスキャットは 人工知能研究開発支援 サービスを提供しています :
  • テクニカルコンサルティングサービス
  • 実証実験 (プロトタイプ構築)
  • アプリケーションへの実装
  • 人工知能研修サービス
◆ お問合せ先 ◆
(株)クラスキャット
セールス・インフォメーション
E-Mail:sales-info@classcat.com