ichou1のブログ

主に音声認識、時々、データ分析のことを書く

Keras

Kerasメモ(XLNet)その4

前回の続き。PositionalEmbeddingレイヤを見てみる。 keras_xlnet/xlnet.py def build_xlnet(...): ... pos_embed = PositionalEmbedding( output_dim=units, clamp_len=clamp_len, directional=attention_type == 'uni', name='Embed-Pos', )([token_embed,…

Kerasメモ(XLNet)その3

前回の続き。AttentionレイヤがBERTとどう変わるのか見てみる。 work-in-progress.hatenablog.com前々回のmodel.summaryの抜粋 model.summary Layer (type) Output Shape Param # Connected to ======================= ===================== ======== ====…

Kerasメモ(XLNet)その2

前回のつづき。Memoryレイヤについて確認してみる。このレイヤが生まれた背景となる問題点と、その利点については、Transformer-XLの論文で以下のとおり述べられている。問題点。 事前定義された長さを超えるコンテキストを扱えない。 As a consequence of t…

Kerasメモ(XLNet)その1

XLNetのKeras実装を試してみる。keras-xlnet · PyPIload_trained_model_from_checkpoint関数でpre-trainedモデルをロードする。 BaseとLargeの両方のモデルに対応。 cased_L-12_H-768_A-12 cased_L-24_H-1024_A-16 モデルの構成は、"in_train_phase"パラメー…

Kerasメモ(強化学習)その3

前回の続き。DQN(Deep Q Learning)の中身について見ていく。AgentとしてDQNAgentを使う場合、指定しなければデフォルトで「Double DQN」が有効になる。 rl/agents/dqn.py class DQNAgent(AbstractDQNAgent): def __init__(self, model, policy=None, test_…

Kerasメモ(強化学習)その2

前回の続き。OpenAI gymの「CartPole-v0」(倒立振り子)を試してみる。ソースコード(keras-rl) keras-rl/dqn_cartpole.py at master · keras-rl/keras-rl · GitHubまずは、どのようなゲームなのかの確認。 ゲームオーバの条件は2つ。 「棒の角度」または…

Kerasメモ(Style Transfer)その1

「Style Transfer」を試していて、結果がイメージどおりにならかったのでメモしておく。Input画像 / Style画像 うまく変換できていると思われる出力結果 GitHub - gsurma/style_transfer: CNN image style transfer . Iteration: 10 最初に試したときの出力…

Kerasメモ(Optimizer)

optimizerに関するメモ。これまでに見たサンプルでは、Neural Style Transferで準ニュートン法(L-BFGS-B)が出てくる以外は、「Adam」または「AdamWarmup」が多かった。Keras公式 Optimizers - Keras DocumentationRに出てくるようなoptimizerは出てこない…

kerasメモ(トレーニング中の進捗表示)

トレーニング中の進捗表示で出力される"ETA"に関するメモ。 1500/2416 [=================>............] - ETA: 18:09 - loss: 6.9411 この出力は、fitメソッドの"vervose"オプションでコントロールされる。 fitメソッドに関するドキュメントより抜粋 verbo…

Kerasメモ(BERTその4)

前回の続き。Transformerを構成するFeedForwardレイヤを見てみる。論文「Attention Is All You Need」からの抜粋。 In addition to attention sub-layers, each of the layers in our encoder and decoder contains a fully connected feed-forward network,…

Kerasメモ(BERTその3)

前々回の続き。Transformerを構成するMultiHeadAttentionレイヤを見てみる。MultiHeadAttentionレイヤのインプットの形状が(bathc_size, 512, 768)、「head_num」が「12」である場合、並列化は下図のとおりとなる。 図中の「Wq」、「Wk」、「Wv」、「Wo」はM…

Kerasメモ(BERTその2)

前回の続き。Position Embeddingレイヤを見てみる。 model.summary Layer (type) Output Shape Param # ========================================================================== Embedding-Position (PositionEmbedding) (None, 512, 768) 393216 ====…

Kerasメモ(BERTその1)

BERT(Bidirectional Encoder Representations from Transformers)を試してみる。論文には2種類のモデルが掲載されている。 the number of layers (i.e., Transformer blocks) as L the hidden size as H the number of self-attention heads as ABERT(BASE)…

Kerasメモ(OpenFace)

Keras-OpenFaceを試してみる。モデルを通すと、顔画像を128次元の特徴量に落とし込める。 類似度が計算できるので、本人確認や似ている人物の検索ができる。学習済みのモデルは4種類ある。 Models and Accuracies - OpenFacelandmarkIndicesは2種類。 INNER_…

Kerasメモ(強化学習)

Deep Reinforcement Learningを試してみる。今回、使ったソース Deep-Learning-with-Keras/rl-network-train.py at master · PacktPublishing/Deep-Learning-with-Keras · GitHubゲーム内容は、プレイヤーが「paddle」を動かして、落下してくる「ball」をキ…

Kerasメモ(GANその2)

前回の続きDCGANを使ってCIFAR-10の画像を生成してみる。 class6のfrog(カエル)を指定。MNISTからの変更点は以下のとおり。 画像サイズを「32 x 32」に変更 チャンネル数を「3」に変更 discriminatorでのDropoutレイヤをSpatialDropout2Dレイヤに変更(チ…

Kerasメモ(GAN)

敵対的生成ネットワーク(Generative adversarial Network)を使ったイメージ生成を試してみる。今回試したソース。 Keras-GAN/dcgan.py at master · eriklindernoren/Keras-GAN · GitHubモデルの全体像 モデルに関するメモ。 以下、生成モデルGeneratorを"G…

Kerasメモ(Memory network)

「bAbI」データセットを使ったMemory networkを試してみる。 論文 arxiv.org ソースコード keras/babi_memnn.py at master · keras-team/keras · GitHub データ Single Supporting Facts tasks_1-20_v1-2/en-10k/qa1_single-supporting-fact_train.txt 1 Mar…

Kerasメモ(VAE)

変分オートエンコーダ(Variational Autoencoder)を使ったイメージ生成を試してみる。 (「RとKerasによるディープラーニング」) ソースコード Generating images モデル 6epochのトレーニングが終わった状態のdecoderからイメージを生成してみる。latent …

Kerasメモ(時系列データの学習サンプル生成)

(「RとKerasによるディープラーニング」)イエナ天候データセットから学習用の入力データを生成する部分のメモ。このデータセットは、10分ごとに、気温や気圧といった14種類の数値を記録したものになる。 (1時間で6サンプル、1日で144サンプル集まる)1時…

Kerasメモ(Embeddingレイヤ) その3

(「RとKerasによるディープラーニング」)書籍を読んでいて、コードの誤りと思われる部分があったのでメモしておく。 例6-11 GloVe 単語埋め込み行列の準備 embedding_dim <- 100 embedding_matrix <- array(0, c(max_words, embedding_dim)) for (word in …

Kerasメモ(Embeddingレイヤ) その2

既に学習済みの単語埋め込みベクトルを使ってみる。 Using pre-trained word embeddings in a Keras model今回はGloVe word embeddingsを選択。 Specifically, we will use the 100-dimensional GloVe embeddings of 400k words computed on a 2014 dump of …

Kerasメモ(テキストデータ操作)

(「RとKerasによるディープラーニング」より) 未加工のIMDBデータセットを学習用に準備する操作のメモ。データセットは、ラベル(pos : 好意的/ neg : 否定的)ごとのフォルダにレビュー記事が格納されている。aclImdb/train/pos : 12,500記事 aclImdb/tra…

Kerasメモ(seq2seqで日付フォーマット変換) その2(Attention)

前回の続き。Kerasで書いたモデルにAttentionレイヤを追加してみる。 カスタムレイヤを定義して、書籍のコードを移植。Encoder側のLSTMレイヤについては、"return_sequences=True"とし、各timestepごとの出力を返すようにする。 encoder = LSTM(units=n_unit…

Kerasメモ(seq2seqで日付フォーマット変換)

前回の足し算に引き続き、以下の書籍を参考にして、seq2seqを使った日付フォーマット変換を試してみる。 O'Reilly Japan - ゼロから作るDeep Learning ❷データの長さは固定で「40」、値がない部分はブランクで埋める。 変換前の長さ : 「29」固定 変換後の長…

Kerasメモ(seq2seqで足し算)

以下の書籍を参考に、seq2seqを使った足し算を試してみる。 O'Reilly Japan - ゼロから作るDeep Learning ❷データの長さは固定で「12」、値がない部分はブランクで埋める。 式部分の長さ : 「7」固定 答え部分の長さ : 「5」固定(イコールにあたる"_"含む)…

Kerasメモ(Embeddingレイヤ)

(「RとKerasによるディープラーニング」より)Kerasネットワークは、入力として数値テンソルだけを受け付ける。テキストはそのままの形では渡せないため、変換が必要になる。 テキストを数値テンソルに変換することをベクトル化(vectorizing)と呼ぶ。全て…

Kerasメモ(seq2seqで文字レベル機械翻訳)その2

前回のモデル。 one-hot表現の入力テキストをEncoderに渡し、モデルの隠れ状態(h)および記憶セル(c)をDecoderのインプットとした。 ここで、入力テキストは順方向でEncoderに渡している。今回、入力テキストを逆方向にしたものをEncoderに渡し、その出力をDe…

Kerasメモ(seq2seqで文字レベル機械翻訳)

「Sequence to sequence example in Keras (character-level)」を試してみる。 環境 tensorflowに統合されたKerasを使用、tensorflowのバージョンは「1.5.1」今回、試したソースコード。 https://github.com/keras-team/keras/blob/master/examples/lstm_seq…