Keres 応用 & 各種ドキュメント翻訳 | AI 導入コンサルティング/研修サービス

TensorFlow    PyTorch    CNTK    

Keras 2.2.1 & 2.2.2 リリースノート

Keras 2.2.1 そして続けて 2.2.2 が更新リリースされましたので、(短いですが) 併せてリリースノートを翻訳しておきました。

仕様上の大きな変更はなく、Keras 2.2.1 では Conv2DTranspose のシグネチャの拡張と CNTK バックエンドの機能拡張が含まれてはいますが、バグ修正が中心です。パフォーマンスの改良とドキュメントの改良も含まれています。

Keras 2.2.2 は単なるバグ修正リリースで、multi_gpu_model に関する重大なバグが修正されています。

[詳細] (07/30/2018)

 

Keras : Ex-Tutorials : Seq2Seq 学習へのイントロ

Keras には体系的なチュートリアルは用意されていませんが、効率的に学習するためのリソースは散在していますので順次紹介しています。

今回は Keras 実装による Sequence-to-Sequence モデル入門です。Sequence-to-Sequence モデルはあるドメインのシークエンス (e.g. 英語文) を他のドメインのシークエンス (e.g. 日本語への翻訳文) に変換するモデルです。

これは機械翻訳や (自然言語による) 自由形式の質問応答のために使用できて、このタスク処理のためには RNN や 1D ConvNet などの複数のアプローチがありますが、ここでは RNN をフィーチャーします。

[詳細] (07/03/2018)

 

Keras : Ex-Tutorials : LSTM リカレント・ネットワークで時系列予測

Keras には体系的なチュートリアルは用意されていませんが、効率的に学習するためのリソースは散在していますので順次紹介しています。

今回は (前回の) アルファベットの学習で利用した LSTM ネットワークを時系列予測問題に応用してみます。題材は定番の国際線の乗客数予測問題で、Keras で予測モデルを実装します。回帰問題として扱いウィンドウ・メソッド、タイムステップでモデル化した後、ステートフル LSTM を試してみます。今回は更に、スタック LSTM モデルも作成します。

[詳細] (06/29/2018)

 

Keras : Ex-Tutorials : ステートフル LSTM リカレント・ニューラルネットの理解

Keras には体系的なチュートリアルは用意されていませんが、効率的に学習するためのリソースは散在していますので順次紹介しています。

今回は LSTM とシークエンスを扱います。LSTM の実装はフレームワーク毎に差異が見られますが、ここでは Keras 実装の (ステートフル) LSTM の正当な利用方法について詳述されます。

題材はアルファベットの学習という単純なシークエンス予測問題ですが、時系列予測やシークエンス分類のような他のシークエンス予測問題に一般化できます。

Naive LSTM から始めてウィンドウ・メソッドに次いでタイムステップを導入し、ステートフル LSTM、更には可変長の入力シークエンスを許容して各種予測モデルを順次構築していきます。

[詳細] (06/26/2018)

 

Keras : Ex-Tutorials : TensorFlow へのシンプルな I/F としての Keras

Keras には体系的なチュートリアルは用意されていませんが、効率的に学習するためのリソースは散在していますので順次紹介しています。

今回のチュートリアルは、TensorFlow に精通したユーザがスムースに Keras に移行できるように配慮されていて、Keras 流儀のボイラープレートから始めるのではなく、Keras を TensorFlow への単純化されたインターフェイスとして見ることから始めます。

具体的には、最初に TensorFlow による MNIST 分類器のスニペットにおいて、TensorFlow のセッションや optimizer はそのまま流用し、Keras をモデル定義プロセスをスピードアップするための構文上のショートカットとして使用します。

そして TensorFlow ワークフローで Keras モデルを使用する方法や、マルチ GPU と分散訓練、TensorFlow-serving におけるモデルのエクスポート、TensorFlow 各種スコープ (名前/デバイス/変数/グラフ) との互換性についても詳述されます。

[詳細] (06/24/2018)

 

Keras : Ex-Tutorials : GloVe 単語埋め込みの活用

Keras には体系的なチュートリアルは用意されていませんが、効率的に学習するためのリソースは散在していますので順次紹介しています。

今回は、事前訓練された単語埋め込みを 1D 畳み込みニューラルネットと結合してテキスト分類問題を解いてみます。Keras が提供しているコードサンプルとその解説記事をベースに翻訳してまとめ直してみました。

事前訓練された単語埋め込みとしては Word2Vec や fastText が有名ですが、ここでは Stanford NLP の GloVe を活用します。

[詳細] (06/23/2018)

 

Keras : Ex-Tutorials : Keras でアヤメ分類 (scikit-learn との比較)

Keras には体系的なチュートリアルは用意されていませんが、効率的に学習するためのリソースは散在していますので順次紹介しています。

Keras は scikit-learn ライクな API で TF 等のバックエンドをラッピングしているので直感的に理解しやすいことが特徴の一つです。今回は Keras 開発チーム推奨の外部チュートリアル・リソースの一つから、アヤメ分類を scikit-learn のロジスティック回帰モデルと Keras のニューラルネットで実装して比較してみます。

[詳細] (06/22/2018)

 

Keras : Callbacks : コールバックの使用方法

Keras には TensorFlow のような体系的なチュートリアルは用意されていませんが、Keras を効率的に学習するためのリソースは散在していますので順次紹介しています。

今回は Keras のコールバックが詳述されている、リファレンスの中の Programmer’s Guide 的なページを翻訳しました。チェックポイントの自動セーブ、TensorBoard のためのロギング、学習率のスケジューリングと自動調整、early stopping のような便利な基本機能が用意されています。
カスタム・コールバックについては keras.callbacks.Callback のサブクラス化だけでなく、LambdaCallback による簡易手法も用意されています。

[詳細] (06/21/2018)

 

Keras : Models : Keras モデルについて

Keras には TensorFlow のような体系的なチュートリアルは用意されていませんが、Keras を効率的に学習するためのリソースは散在していますので順次紹介しています。

今回は Keras のモデル概要が説明されている、リファレンスの中の Programmer’s Guide 的なページを翻訳しました。 Sequential モデル、functional API で使用される Model クラスの共通メソッドと属性のまとめに加えて、Keras 2.2.0 で導入されました Model のサブクラス化の方法も説明されています。

[詳細] (06/19/2018)

 

Keras : Getting started : Keras FAQ

Keras には TensorFlow のような体系的なチュートリアルは用意されていませんが、Keras を効率的に学習するためのリソースは散在していますので順次紹介しています。

公式ドキュメントの Getting Started: Keras Sequential モデルと functional API の説明に続いては FAQ が用意されています。FAQ という題目になっていますが、実際には実践的なプログラミング・ノウハウ集になっています。

様々なトピックが扱われます – (マルチ) GPU の利用方法、モデルの各種セーブ/ロード方法、中間層のデバッグ、メモリに載らない巨大データセットの扱い、コールバックの使用方法、層の凍結、ステートフル RNN 等々。

[詳細] (06/17/2018)

 

Keras : Getting started : Keras functional API

Keras には TensorFlow のような体系的なチュートリアルは用意されていませんが、Keras を効率的に学習するためのリソースは散在していますので順次紹介しています。

先に公式ドキュメントの Getting Started で Keras Sequential モデルが説明されましたが、続いては functional API の説明になります。funcational API の利用は深層学習フレームワークでは定番ですが、ここでは比較的複雑なモデルを中心に扱います。特にマルチ入力/マルチ出力を伴うモデルについて VQA (Visual question answering) モデルの例を引き合いに出して説明され、また共有層を扱うモデルについても詳述されます。

[詳細] (06/15/2018)

 

Keras : Getting started : Keras Sequential モデル

Keras には TensorFlow のような体系的なチュートリアルは用意されていませんが、Keras を効率的に学習するためのリソースは散在していますので、順次紹介していきます (必要な場合には翻訳します)。

最初は公式ドキュメントの Getting Started から Keras Sequential モデルのドキュメントを翻訳しました。最も基本的な Sequential モデルを題材に Keras フレームワークの基本的な利用方法が説明されます。また、畳込みネットワークやリカレント・ネットワークのサンプルも用意されています。

[詳細] (06/13/2018)

 

Keras 2.2.0 リリースノート

Keras 2.2.0 が更新リリースされましたので、リリースノートを翻訳しておきました。
2.1 から 2.2 にアップグレードされたこともあり大きな変更も含まれています。

改良領域の中心は、Model サブクラス化による新しいモデル定義 API と新しい入力モード、そして Theano と CNTK バックエンドのサポートの強化です。

実践上は、モジュール applications と preprocessing が掃き出されたことにも注意してください。
その他にも、PlaidML のような外部バックエンドのロードが可能になったり、MobileNetV2 がサポートされたりしています。

[詳細] (06/08/2018)

 

Keras 2.1.6 リリースノート

  • Keras のマイナーアップデート 2.1.6 がリリースされましたので、リリースノートを翻訳しておきました。
  • 本リリースはバグ修正が中心です。仕様変更としては関数引数の追加が目立ちますが、
    特に multi_gpu_model 関数において、テンプレート・モデルの重みを CPU 上にあることを強制するか否か、merge 演算を CPU 上か GPU 上で動作するかを制御するための引数が追加されました。

[詳細] (04/24/2018)

 

TensorFlow.js : ガイド : Keras ユーザのための TensorFlow.js 層 API

TensorFlow.js は Google 社が新たに公開した機械学習 JavaScript ライブラリで、ブラウザ上でニューラルネットを訓練したり、訓練済みモデルを推論モードで実行できます。

チュートリアルとガイドを順次翻訳しています。既に Keras モデルのインポート方法については説明済みですが、このガイドでは TensorFlow.js 層 API を Keras と対比しながら解説しています。

TensorFlow.js の層 API は Keras を規範としてモデル化されていて、層 API を合理的に Keras に似せる努力がされています。これは Keras モデルを開発した経験を持つユーザが TensorFlow.js 層へマイグレートすることを容易にします。JavaScript と Python の幾つかの違い (例えばキーワード引数、あるいはキャメルケースとスネークケース) についても熟慮された上で仕様の決定が成されていることが分かります。更に、既に Eager Execution も考慮されています。

[詳細] (04/14/2018)

 

TensorFlow.js : チュートリアル : Keras モデルを TensorFlow.js にインポートする

TensorFlow.js は Google 社が新たに公開した機械学習 JavaScript ライブラリで、ブラウザ上でニューラルネットを訓練したり、訓練済みモデルを推論モードで実行できます。

チュートリアルとガイドを順次翻訳しています。具体例としてカーブ・フィッティングと MNIST 分類タスクを扱いましたが、本チュートリアルでは Keras モデルのインポートについて説明されています。

Keras モデルの一つを TensorFlow.js 層フォーマットに変換することが可能で、それは推論や更なる訓練のために TensorFlow.js に直接ロードできます。

[詳細] (04/11/2018)

 

Keras 2.1.5 リリースノート

Keras のマイナーアップデート 2.1.5 がリリースされましたので、リリースノートを翻訳しておきました。先の 2.1.4 リリースからまだ1ヶ月も経過していませんが、短いサイクルで更新する方針のようです。

新しいシークエンス生成 API TimeseriesGenerator と新しい畳込み層 DepthwiseConv2D の追加が主目的のようですが、ImageDataGenerator に brightness_range と validation_split が追加拡張されました。特に後者は必要性を感じていたかたも多いでしょう。

また、 (CPU 上の推論のため) keras.layers.CuDNNLSTM からの重みが keras.layers.LSTM 層にロード可能になりました。

[詳細] (03/10/2018)

 

Keras 2.1.3 & 2.1.4 リリースノート

今週、Keras 2.1.4 がリリースされましたので、(1月にリリースされました) Keras 2.1.3 と併せてリリースノートを翻訳しておきました。

Keras 2.1.3 では DenseNet と NASNet が利用可能になりました。
Keras 2.1.4 では大きな変更はありませんが、データ拡張の機能が洗練されてきています。

[詳細 (2.1.3)]   [詳細 (2.1.4)]   (02/16/2018)

 

Keras / TensorFlow : MobileNet と Inception-ResNet の概要と性能評価

MobileNet は 6 月に Google Research Blog でアナウンスされたモデルで、TF-Slim 用のモデルのチェックポイントも併せて公開されました。その名前から分かるように、モバイルや組み込み用アプリケーションのようなリソースに制約のある環境でも上手く動作するように設計されたモデルです。

Keras 実装の MobileNet も Keras 2.0.6 から利用可能になりましたので、今回は University of Oxford の VGG が提供している 102 Category Flower Dataset を題材にして、MobileNet の性能を評価してみます。
また、Keras 2.0.9 から Inception-ResNet の実装も提供されていますので、併せて評価します。
比較対象は定番の AlexNet, Inception-v3, ResNet-50, Xception を利用します。   [詳細] (12/09/2017)


 

Keras 2.1.2 リリースノート

先週末に keras 2.1.2 がリリースされました。Keras の更新頻度が上がっています。

大きな変更はありませんが、generator メソッドの仕様が少し変更されたので注意してください。
また、Keras applications の weights 引数にパスが指定できるようになりました。

いずれも以前から気になっていた箇所なので良い修正です。

[詳細] (12/05/2017)

 

Keras 2.1.0 & 2.1.1 リリースノート

Keras 2.1.0 及び 2.1.1 は今月中旬に続けてリリースされました。
バグ修正が中心のマイナーリリースと考えてかまいません。

[詳細] (11/26/2017)

 

Keras 2.0.9 リリースノート

少し遅くなりましたが、今月頭にリリースされました Keras 2.0.9 のリリースノートを翻訳しておきました。
幾つか興味深いポイントをあげておきますと :

  • 高速な GPU トレーニング & 推論のために CuDNNLSTM と CuDNNGRU 層を追加します、これはNVIDIA cuDNN ライブラリをバックエンドとします。
  • keras.utils.multi_gpu_model によるより容易なマルチ GPU データ並列処理。
  • “fashion mnist” を keras.datasets.fashion_mnist.load_data() として追加します。

[詳細] (11/26/2017)

 

Keras 2.0.7 & Keras 2.0.8 リリースノート

Keras 2.0.7 が 8月22日にリリースされましたので、リリースノートを翻訳しておきました。
Keras 2 はかなり洗練されてきた印象で、TensorFlow / TensorBoardとの整合性にも注意が払われ、TFRecords のサポートも改善されました。

更に立て続けに、Keras 2.0.8 が 8 月26日にリリースされました。
このリリースは TensorFlow 次期バージョン (1.4) との非互換性に対処する目的でのみリリースされたものです。

 

Keras : 画像分類 : Xception

同じ題材で Xception も試しておきます。 [詳細] (05/14/2017)

 

Keras : 画像分類 : GoogLeNet Inception v3

同じ題材で GoogLeNet Inception v3 も試しておきます。 [詳細] (05/12/2017)

 

Keras : 画像分類 : ResNet-50

同じ題材で ResNet-50 も試しておきます。 [詳細] (05/12/2017)

 

Keras : 画像分類 : AlexNet

先に Lenet を試したので、AlexNet も簡単に試しておきます。 [詳細] (05/09/2017)

 

Keras 2.0 リリースノート

03/16/2017 付けの Keras 2.0 のリリースノート rev.3 を翻訳しました。 [詳細] (05/08/2017)

 

Keras : 画像分類 : LeNet で MNIST, CIFAR-10, CIFAR-100

TensorFlow を backend として Keras を利用されている方も多いかと思いますが、復習の意味で、Keras による LeNet で基本的なデータセット – MNIST, CIFAR-10, CIFAR-100 – で試しておきます。再調整と転移学習も使用します。

LeNet-5 でも dropout を入れれば MNIST エラー率: 0.5 %、CIFAR-10 精度: 84 % 程度は達成可能です。 [詳細] (04/30/2017)

 

※ ClassCat は株式会社クラスキャットの登録商標です。
※ その他、記載されている会社名・製品名は各社の登録商標または商標です。