タグ付けされた質問 「keras」

Kerasは、Pythonで書かれたミニマリストで高度にモジュール化されたニューラルネットワークライブラリです。

2
Kerasで「1対多」および「多対多」のシーケンス予測を実装する方法は?
1対多(たとえば、単一の画像の分類)と多対多(たとえば、画像シーケンスの分類)のシーケンスのラベル付けについて、Kerasコーディングの違いを解釈するのに苦労しています。2種類のコードが頻繁に表示されます。 タイプ1では、TimeDistributedは次のように適用されません。 model=Sequential() model.add(Convolution2D(nb_filters, kernel_size[0], kernel_size[1], border_mode="valid", input_shape=[1, 56,14])) model.add(Activation("relu")) model.add(Convolution2D(nb_filters, kernel_size[0], kernel_size[1])) model.add(Activation("relu")) model.add(MaxPooling2D(pool_size=pool_size)) model.add(Reshape((56*14,))) model.add(Dropout(0.25)) model.add(LSTM(5)) model.add(Dense(50)) model.add(Dense(nb_classes)) model.add(Activation("softmax")) タイプ2は、TimeDistributedが次のように適用される場所です。 model = Sequential() model.add(InputLayer(input_shape=(5, 224, 224, 3))) model.add(TimeDistributed(Convolution2D(64, (3, 3)))) model.add(TimeDistributed(MaxPooling2D((2,2), strides=(2,2)))) model.add(LSTM(10)) model.add(Dense(3)) 私の質問は: タイプ1は1対多の種類であり、タイプ2は多対多の種類であるという私の仮定は正しいですか?それともTimeDistributed、この側面に関連性はありませんか? 1対多または多対多のいずれの場合も、最後の密な層は1ノードの「長い」(順番に1つの値のみを放出する)と想定され 、前の反復層は 1 対多の数を決定する責任があります。放出する値?または、最後の高密度層はN個のノードで構成されているはずN=max sequence lengthです。もしそうなら、 N個の並列「バニラ」推定器を 使用して複数の出力を持つ同様の入力を生成できる場合、ここでRNN を使用するポイントは何ですか? RNNのタイムステップ数を定義する方法は?それはどういうわけか 出力シーケンスの長さと相関していますか、それとも単に 調整するハイパーパラメータですか? …
13 keras  rnn  lstm  sequence 

9
Kerasで1つのインスタンスのみの予測を取得するにはどうすればよいですか?
Kerasに、次のようなラベルのない新しいデータセットにフィットモデルを使用した予測を適用するように要求すると、 model1.predict_classes(X_test) それは正常に動作します。しかし、1行だけを予測しようとすると失敗します。 model1.predict_classes(X_test[10]) Exception: Error when checking : expected dense_input_6 to have shape (None, 784) but got array with shape (784, 1) なんでかしら?

4
ドロップアウトによりモデルの一部のニューロンが抑制されるため、ドロップアウトレイヤーを追加するとディープ/機械学習のパフォーマンスが向上するのはなぜですか?
いくつかのニューロンを削除すると、モデルのパフォーマンスが向上する場合は、そもそも層数とニューロン数が少ない単純なニューラルネットワークを使用してみませんか?最初に大きくて複雑なモデルを作成し、後でその一部を抑制するのはなぜですか?

1
多次元および多変量時系列予測(RNN / LSTM)Keras
Keras(またはTensorFlow)を使用して多次元および多変量の時系列予測を作成するためにデータを表現および形成する方法を理解しようとしてきましたが、正しい形状(ほとんどの例はわずかに少ない 私のデータセット: いくつかの都市 温度、車の交通量、湿度などの情報があります たとえば、過去2年間(毎日1レコード) 私がやりたいこと: 温度、車の交通量、湿度の遅れの可能性のあるバージョンを使用して、来年に期待できる気温を各都市で予測したい(もちろん、さらにいくつかの機能がありますが、これは単に思考の例)。 混乱していること: 2つの都市がある場合、365日間に3つの機能を記録しました。モデルがこれら2つの都市の365日間の予測を出力できるように、入力をどのように整形する必要があります(つまり、365日間の2つの時系列温度)。 直感的には、テンソルの形状は(?, 365, 3)365日間と3つの機能になります。しかし、私は何を第一次元に固執するのか定かではありません。そして最も重要なことは、それが多くの都市のためでなければならないとしたら驚かれるでしょう。しかし、同時に、寸法を適切に理解する必要があることをモデルに指定する方法がわかりません。 任意のポインターが役立ちます。私は他のニューラルネットワークでこれを行ったので、Kerasなどでネットワークをどのように構築するか、より具体的には所望の入力のシーケンスをエンコードするのに最適な方法で、残りの問題にかなり精通しています。 ああ、また、私は各都市を独立して訓練し予測することができたと思いますが、誰もがおそらくどの都市にも特有ではないが、それらのいくつかを検討した場合にのみ見ることができる学習すべきことがあることに同意するでしょうそのため、モデルにエンコードすることが重要だと思う理由です。
12 python  keras  rnn  lstm 

1
Kerasでのマルチタスク学習
Kerasで共有レイヤーを実装しようとしています。Kerasにはがあることがわかりますがkeras.layers.concatenate、その使用に関するドキュメントからはわかりません。複数の共有レイヤーを作成するために使用できますか?以下に示すように、Kerasを使用して単純な共有ニューラルネットワークを実装する最良の方法は何でしょうか? 3つのNNすべての入力、出力、共有レイヤーの形状はすべて同じであることに注意してください。3つのNNには複数の共有レイヤー(および非共有レイヤー)があります。色付きのレイヤーは各NNに固有であり、同じ形状を持っています。 基本的に、この図は、複数の共有非表示層が続く3つの同一のNNを表し、その後に複数の非共有非表示層が続きます。 Twitterの例のように複数のレイヤーを共有する方法がわかりません。共有レイヤーは1つしかありません(APIドキュメントの例)。

4
ニューラルネットワークを使用した異常の検出
毎日生成される大規模な多次元データセットがあります。 過去と比較して、あらゆる種類の「異常」を検出するための優れたアプローチは何でしょうか?これは、ニューラルネットワークで対処できる適切な問題ですか? どんな提案も大歓迎です。 追加情報:例はないため、メソッドは異常自体を検出する必要があります

2
検証の損失がまだ低下している場合でも、過剰適合は発生しますか?
Kerasには、Kaggleコンテストに使用している畳み込み+ LSTMモデルがあります(参照1)。アーキテクチャを以下に示します。ラベル付けされた11000サンプルのセットでトレーニングしました(2つのクラス、初期有病率は〜9:1であるため、1を約1/1の比率にアップサンプリングしました)。しばらくの間、私はそれがノイズとドロップアウト層で制御下にあると思った。 モデルは見事にトレーニングされているように見え、最終的にトレーニングセット全体で91%を獲得しましたが、テストデータセットでテストすると、絶対ゴミになりました。 注意:検証の精度は、トレーニングの精度よりも高くなっています。これは、「典型的な」過剰適合の反対です。 私の直感では、検証の分割がわずかであるため、モデルは依然として入力セットにあまりにも強く適合し、一般化を失っています。もう1つの手がかりは、val_accがaccよりも大きいことです。これが最も可能性の高いシナリオですか? これが過剰に適合している場合、検証分割を増やすことでこれをまったく軽減できますか、それとも同じ問題に遭遇しますか? モデル: Layer (type) Output Shape Param # Connected to ==================================================================================================== convolution1d_19 (Convolution1D) (None, None, 64) 8256 convolution1d_input_16[0][0] ____________________________________________________________________________________________________ maxpooling1d_18 (MaxPooling1D) (None, None, 64) 0 convolution1d_19[0][0] ____________________________________________________________________________________________________ batchnormalization_8 (BatchNormal(None, None, 64) 128 maxpooling1d_18[0][0] ____________________________________________________________________________________________________ gaussiannoise_5 (GaussianNoise) (None, None, 64) 0 batchnormalization_8[0][0] ____________________________________________________________________________________________________ lstm_16 (LSTM) (None, …

2
検証の損失と精度は一定のまま
このペーパーを一連の医療画像に実装しようとしています。ケラスでやってます。ネットワークは基本的に4つのconvおよびmax-poolレイヤーで構成され、その後に完全に接続されたレイヤーとソフト最大分類子が続きます。 私の知る限り、私はこの論文で言及されているアーキテクチャに従っています。ただし、検証の損失と正確さは、全体を通して一定のままです。精度は〜57.5%に固定されているようです。 私がどこで間違っているのかについてのどんな助けも大歓迎です。 私のコード: from keras.models import Sequential from keras.layers import Activation, Dropout, Dense, Flatten from keras.layers import Convolution2D, MaxPooling2D from keras.optimizers import SGD from keras.utils import np_utils from PIL import Image import numpy as np from sklearn.utils import shuffle from sklearn.cross_validation import train_test_split import theano import os import glob …

2
KerasのEarly Stoppingコールバックで使用されるメトリックを変更する方法はありますか?
KerasトレーニングでEarly Stoppingコールバックを使用すると、一部のメトリック(通常は検証の損失)が増加しないときに停止します。検証損失の代わりに別のメトリック(精度、再現率、fメジャーなど)を使用する方法はありますか?これまでに見たすべての例は、次の例に似ています:callbacks.EarlyStopping(monitor = 'val_loss'、patience = 5、verbose = 0、mode = 'auto')

1
LSTMセルはいくつ使用すればよいですか?
使用する必要があるLSTMセルの最小、最大、および「妥当な」量に関する経験則(または実際の規則)はありますか?具体的には、TensorFlowとプロパティのBasicLSTMCellに関連していnum_unitsます。 私が定義する分類問題があると仮定してください: t - number of time steps n - length of input vector in each time step m - length of output vector (number of classes) i - number of training examples たとえば、トレーニングの例の数は次の数よりも多い必要がありますか? 4*((n+1)*m + m*m)*c cセルの数はどこですか?これに基づいています:LSTMネットワークのパラメーターの数を計算する方法?私が理解しているように、これはパラメータの総数を与えるはずであり、トレーニング例の数よりも少なくなければなりません。
12 rnn  machine-learning  r  predictive-modeling  random-forest  python  language-model  sentiment-analysis  encoding  machine-learning  deep-learning  neural-network  dataset  caffe  classification  xgboost  multiclass-classification  unbalanced-classes  time-series  descriptive-statistics  python  r  clustering  machine-learning  python  deep-learning  tensorflow  machine-learning  python  predictive-modeling  probability  scikit-learn  svm  machine-learning  python  classification  gradient-descent  regression  research  python  neural-network  deep-learning  convnet  keras  python  tensorflow  machine-learning  deep-learning  tensorflow  python  r  bigdata  visualization  rstudio  pandas  pyspark  dataset  time-series  multilabel-classification  machine-learning  neural-network  ensemble-modeling  kaggle  machine-learning  linear-regression  cnn  convnet  machine-learning  tensorflow  association-rules  machine-learning  predictive-modeling  training  model-selection  neural-network  keras  deep-learning  deep-learning  convnet  image-classification  predictive-modeling  prediction  machine-learning  python  classification  predictive-modeling  scikit-learn  machine-learning  python  random-forest  sampling  training  recommender-system  books  python  neural-network  nlp  deep-learning  tensorflow  python  matlab  information-retrieval  search  search-engine  deep-learning  convnet  keras  machine-learning  python  cross-validation  sampling  machine-learning 

3
Python用のすぐに使える優れた言語モデルはありますか?
私はアプリケーションのプロトタイプを作成していますが、生成されたいくつかの文の複雑さを計算するための言語モデルが必要です。 すぐに使用できるPythonのトレーニング済み言語モデルはありますか?のような単純なもの model = LanguageModel('en') p1 = model.perplexity('This is a well constructed sentence') p2 = model.perplexity('Bunny lamp robert junior pancake') assert p1 < p2 一部のフレームワークを確認しましたが、必要なものが見つかりませんでした。私は次のようなものを使用できることを知っています: from nltk.model.ngram import NgramModel lm = NgramModel(3, brown.words(categories='news')) これはブラウンコーパスの優れたチューリング確率分布を使用していますが、1bワードデータセットなどの大きなデータセットで巧妙に作成されたモデルを探していました。一般的なドメイン(ニュースだけでなく)の結果を実際に信頼できるもの
11 python  nlp  language-model  r  statistics  linear-regression  machine-learning  classification  random-forest  xgboost  python  sampling  data-mining  orange  predictive-modeling  recommender-system  statistics  dimensionality-reduction  pca  machine-learning  python  deep-learning  keras  reinforcement-learning  neural-network  image-classification  r  dplyr  deep-learning  keras  tensorflow  lstm  dropout  machine-learning  sampling  categorical-data  data-imputation  machine-learning  deep-learning  machine-learning-model  dropout  deep-network  pandas  data-cleaning  data-science-model  aggregation  python  neural-network  reinforcement-learning  policy-gradients  r  dataframe  dataset  statistics  prediction  forecasting  r  k-means  python  scikit-learn  labels  python  orange  cloud-computing  machine-learning  neural-network  deep-learning  rnn  recurrent-neural-net  logistic-regression  missing-data  deep-learning  autoencoder  apache-hadoop  time-series  data  preprocessing  classification  predictive-modeling  time-series  machine-learning  python  feature-selection  autoencoder  deep-learning  keras  tensorflow  lstm  word-embeddings  predictive-modeling  prediction  machine-learning-model  machine-learning  classification  binary  theory  machine-learning  neural-network  time-series  lstm  rnn  neural-network  deep-learning  keras  tensorflow  convnet  computer-vision 

1
Kerasを使用して時系列の将来の値を予測する方法
KerasでこのLSTMニューラルネットワークを構築しました import numpy as np import pandas as pd from sklearn import preprocessing from keras.layers.core import Dense, Dropout, Activation from keras.activations import linear from keras.layers.recurrent import LSTM from keras.models import Sequential from matplotlib import pyplot #read and prepare data from datafile data_file_name = "DailyDemand.csv" data_csv = pd.read_csv(data_file_name, delimiter = ';',header=None, …

3
ニューラルネットワーク-最も類似した画像を見つける
私はPython、scikit-learn、kerasを使用しています。次のような前面時計の画像が30万枚あります: Watch_1、Watch_2、Watch_3。 入力として実際の時計の写真を受け取って、上の写真よりも理想的ではない状況で撮影したプログラム(異なる背景色、暗い稲妻など)を書き、それに3000の時計の中で最も類似している時計を見つけたいと思います。同様に、薄いレースの丸い茶色の時計の写真を入力として与えると、丸い形の暗い色の薄いレースの出力時計として期待されます。 これを行うための最も効率的な機械学習アルゴリズムは何ですか? たとえば、このリンクをたどることで、2つの異なる解決策を考えています。 1)CNNを特徴抽出器として使用し、入力画像を参照して、画像のすべてのペアについてこれらの特徴間の距離を比較します。 2)シャムニューラルネットワークで2つのCNNを使用して画像を比較する。 これらの2つのオプションは、このタスクに最適なオプションですか、それとも他のことを提案しますか? このタスクについて、事前にトレーニングされたニューラルネットワーク(事前に定義されたハイパーパラメーターを使用)を知っていますか? これについてStackOverflowで興味深い投稿をいくつか見つけましたが、それらはかなり古いです:Post_1、Post_2、Post_3。

1
Kerasでカスタムパフォーマンスメトリックを定義する方法
以下に従ってKeras(Tensorflowバックエンド)でカスタム指標関数(F1-Score)を定義しようとしました: def f1_score(tags, predicted): tags = set(tags) predicted = set(predicted) tp = len(tags & predicted) fp = len(predicted) - tp fn = len(tags) - tp if tp>0: precision=float(tp)/(tp+fp) recall=float(tp)/(tp+fn) return 2*((precision*recall)/(precision+recall)) else: return 0 これまでのところ、とても良いですが、モデルのコンパイルに適用しようとすると: model1.compile(loss="binary_crossentropy", optimizer=Adam(), metrics=[f1_score]) エラーが発生します: TypeError Traceback (most recent call last) <ipython-input-85-4eca4def003f> in <module>() 5 model1.add(Dense(output_dim=10, …

1
ジェスチャー認識システムでのRNN(LSTM)の使用
私はASL(アメリカ手話)ジェスチャーを分類するためのジェスチャー認識システムを構築しようとしているので、入力はカメラまたはビデオファイルからの一連のフレームであると想定されており、シーケンスを検出して対応するものにマッピングしますクラス(睡眠、助け、食べる、走るなど) 問題は、私がすでに同様のシステムを構築したことですが、静止画像(モーションは含まれません)の場合、手があまり動かず、CNNの構築が単純なタスクであるアルファベットの翻訳にのみ役立ちました。データセットの構造も私がケラスを使用していて、おそらくそうするつもりだったので管理可能でした(すべてのフォルダーには特定の標識の画像のセットが含まれており、フォルダーの名前はこの標識のクラス名です:A、B、C 、..) ここでの私の質問、データセットを整理してケラのRNNに入力できるようにするにはどうすればよいですか?モデルと必要なパラメーターを効果的にトレーニングするためにどの特定の関数を使用すればよいですか?TimeDistributedクラスの使用を提案した人もいますが私の好みに合わせてそれを使用する方法について明確なアイデアを持ち、ネットワーク内のすべてのレイヤーの入力形状を考慮に入れます。 また、私のデータセットが画像で構成されることを考えると、たぶん畳み込み層が必要になるでしょう。どのようにしてconv層をLSTM層に組み合わせることが実現可能でしょうか(つまり、コードの観点から)。 たとえば、私は私のデータセットがこのようなものであると想像します 「Run」という名前のフォルダーには3つのフォルダー1、2、3が含まれ、各フォルダーはシーケンスのフレームに対応しています だからRUN_1は、最初のフレームの画像のいくつかのセットが含まれます、RUN_2は、 2フレーム目のためにRun_3第三のために、私のモデルの目的は、単語を出力する。このシーケンスで訓練されるファイル名を指定して実行。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.