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

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

2
LSTM:時系列を予測するときに非定常性を処理する方法
LSTMを使用して、時系列の1ステップ先の予測を行いたい。アルゴリズムを理解するために、私はおもちゃの例を作成しました:単純な自己相関プロセス。 def my_process(n, p, drift=0, displacement=0): x = np.zeros(n) for i in range(1, n): x[i] = drift * i + p * x[i-1] + (1-p) * np.random.randn() return x + displacement 次に、この例に従ってKerasでLSTMモデルを作成しました。p=0.99長さの自己相関が高いプロセスをシミュレートn=10000し、その最初の80%でニューラルネットワークをトレーニングし、残りの20%に対して1ステップ先の予測を実行させました。 私が設定した場合drift=0, displacement=0、すべてが正常に動作します: それから私は設定しdrift=0, displacement=10、物事は洋ナシ形になりました(y軸の異なるスケールに注意してください): [ - 1 、1 ][−1、1][-1, 1] 次に、を設定しdrift=0.00001, displacement=10、データを再度正規化して、その上でアルゴリズムを実行しました。これはよく見えません: バツt− Xt − 1バツt−バツt−1X_{t} - X_{t-1}バツtバツtX_t …

1
Kerasを使用して多層パーセプトロンニューラルネットワークを構築するためのプロパティ?
私は、初めてどの郡でどの大統領が勝ったかを正確に予測する多層パーセプトロンニューラルネットワークを構築してトレーニングしようとしています。トレーニングデータに関する次の情報があります。 総人口年齢中央値%BachelorsDeg以上失業率1人あたりの所得総世帯平均世帯サイズ%所有者が占有する住宅%借家が占有する住宅%空いている住宅住宅価格の中央値人口増加率世帯数増加率1人当たり所得増加率勝者 これは14列のトレーニングデータで、15列目は出力です。 Kerasを使用して多層パーセプトロンニューラルネットワークを構築しようとしていますが、いくつかのプロパティと、これらのプロパティのさまざまなオプションを選択することの短所を理解するための助けが必要です。 アクティベーション機能 私の最初のステップはアクティベーション機能を考案することです。私は常に、シグモイド活性化関数を使用したニューラルネットワークを研究していました。シグモイド活性化関数は最高ですか?どれを使用するかをどうやって知っていますか?Kerasはさらに、softmax、softplus、relu、tanh、linear、またはhard_sigmoidアクティベーション関数を使用するオプションを提供します。何を使っても大丈夫ですが、理由と長所と短所を理解できるようにしたいだけです。 確率の初期化 初期化は、Kerasレイヤーの初期ランダムウェイトを設定するために使用される確率分布を定義することを知っています。Kerasが提供するオプションは、ユニフォームlecun_uniform、normal、identity、直交、ゼロ、glorot_normal、glorot_uniform、he_normal、およびhe_uniformです。ここでの選択は、最終結果またはモデルにどのように影響しますか?ランダムモデルを開始し、さらに最適なレイヤーの重み付けを考え出すため、どのようなモデルでも "トレーニング"しているので、問題になりませんか?

1
指定された変数に直交する(相関しない)予測を生成する
私が持っているXマトリックス、y変数、および他の変数をORTHO_VAR。私はをy使用して変数を予測する必要がありますXが、そのモデルからの予測は、可能な限りORTHO_VAR相関する一方で、直交する必要がありますy。 私は予測がノンパラメトリックな方法で生成されることを望みxgboost.XGBRegressorますが、どうしても必要な場合は線形法を使用できます。 このコード: import numpy as np import pandas as pd from sklearn.datasets import make_regression from xgboost import XGBRegressor ORTHO_VAR = 'ortho_var' TARGET = 'target' PRED = 'yhat' # Create regression dataset with two correlated targets X, y = make_regression(n_features=20, random_state=245, n_targets=2) indep_vars = ['var{}'.format(i) for i in range(X.shape[1])] # …
8 correlation  machine-learning  dataset  logistic-regression  prediction  linear-regression  prediction  dummy-variables  neural-network  image-classification  python  k-nn  python  neural-network  neural-network  deep-learning  keras  tensorflow  image-classification  tensorflow  reinforcement-learning  policy-gradients  machine-learning  decision-trees  neural-network  overfitting  data-analysis  metric  python  scikit-learn  distance  scipy  machine-learning  python  scikit-learn  decision-trees  logistic-regression  keras  image-classification  implementation  machine-learning  python  scikit-learn  random-forest  decision-trees  machine-learning  feature-selection  feature-engineering  word2vec  word-embeddings  natural-language-process  scikit-learn  time-series  clustering  k-means  python  cross-validation  pyspark  statistics  cross-validation  multiclass-classification  evaluation  machine-learning  nlp  machine-translation  neural-network  deep-learning  keras  tensorflow  image-classification  machine-learning  python  similarity  distance  lstm  text  named-entity-recognition  machine-learning  keras  optimization  gan  learning-rate  neural-network  data-mining  dataset  databases  books  neural-network  rnn 

1
時系列データを分類する最良の方法は何ですか?LSTMまたは別の方法を使用する必要がありますか?
生の加速度計データx、y、zを対応するラベルに分類しようとしています。 最良の結果を得るための最良のアーキテクチャは何ですか? または、入力ノードと出力ノードを備えたケラ上に構築されたLSTMアーキテクチャについて何か提案はありますか?

1
ディスクからバッチでデータをトレーニングする方法は?
画像分類のための畳み込みニューラルネットワークに取り組んでいます。トレーニングデータセットが大きすぎて自分のコンピューターのメモリ(4GB)にロードできないため、クラスのバランスをとるためにいくつかの拡張を試す必要もあります。 使用していkerasます。私は多くの例を調べましたが、私の問題の解決策は見つかりませんでした。model.fit「バッチ処理」を行う関数またはジェネレーターを渡すことで、呼び出しのパラメーターを置き換えることを考えています。この関数は、ディスクからインポートして拡張を適用するように設計します。 それを実装する方法がわかりません。助言がありますか?

3
mnistの例でのReLUとシグモイド
注意してください:私は次の例を改善しようとはしていません。99%以上の精度が得られることは知っています。コード全体が問題です。この単純なコードを試したところ、約95%の精度が得られました。アクティベーション関数をシグモイドからreluに変更すると、50%未満に低下します。これが起こる理論的な理由はありますか? 次の例をオンラインで見つけました。 from keras.datasets import mnist from keras.models import Sequential from keras.layers.core import Dense, Activation from keras.utils import np_utils (X_train, Y_train), (X_test, Y_test) = mnist.load_data() X_train = X_train.reshape(60000, 784) X_test = X_test.reshape(10000, 784) Y_train = np_utils.to_categorical(Y_train, classes) Y_test = np_utils.to_categorical(Y_test, classes) batch_size = 100 epochs = 15 model = Sequential() …

3
KerasバックエンドTensorflowをGPUに切り替える
CPUオプションがインストールされたKeras-Tensorflowコンボ(より堅牢であると言われていました)を使用していますが、GPUバージョンで試してみたいと思います。切り替える便利な方法はありますか?または、Tensorflowを完全に再インストールしますか?GPUバージョンは信頼できますか?
8 tensorflow  keras  gpu 

1
CNNでflow_from_directoryを使用する場合のデータ拡張
小さなデータセットを使用してCNNモデルを作成したい。それで、私は訓練データセットを増やすためにデータ増強を使用しています。ここにリストされているすべての拡張手法(引数)を使用する必要がありますか? 多くの引数を追加すると、モデルの精度が低下し、トレーニングセットがテストセットよりも難しくなることに気づきました。 使用時にデータ拡張を使用するためのベストプラクティスは何flow_from_directoryですか?

1
ケラスとLSTMを使用したマルチステップ先予測の複数の出力
私はディープラーニングとLSTM(ケラを使用)を初めて使用します。私は、マルチステップ先の時系列予測を解決しようとしています。A、B、Cの3つの時系列があり、Cの値を予測したいと思います。LSTMをトレーニングして、データポイントを3ステップ戻し、将来の3ステップを予測しています。入力データは次のようになります。 X = [[[A0, B0, C0],[A1, B1, C1],[A2, B2, C2]],[[ ...]]] 寸法:(1000, 3, 3)。出力は次のとおりです。 y = [[C3, C4, C5],[C4, C5, C6],...] 寸法:(1000, 3)。 1つの非表示レイヤー(50ニューロン)を持つ単純なLSTMを使用しています。私はケラスを使ってLSTMを次のように設定しました: n_features = 3 neurons = 50 ahead = 3 model = Sequential() model.add(LSTM(input_dim=n_features, output_dim=neurons)) model.add(Dropout(.2)) model.add(Dense(input_dim=neurons, output_dim=ahead)) model.add(Activation('linear')) model.compile(loss='mae', optimizer='adam') model.fit(X, y, epochs=50) このモデルは正常に動作します。ここで、(同じ入力を使用して)Bの値も予測したいと思います。したがって、複数の機能を持つトレーニングの場合と同じように、出力を再形成しようとしました。 y = …

1
Kerasの埋め込みレイヤーを適切に使用するには?
seq2seqの目的でKerasの埋め込み層の適切な使用法を少し混乱しています(KerasでTensorFlow se2seq機械翻訳チュートリアルを再構築したいと思います)。私の質問は次のとおりです。 埋め込みレイヤーが文の単語値を固定次元長表現に変換することを理解しています。しかし、埋め込みレイヤーの2つの異なる使用法を観察します。1つは(Keras ブログのこのチュートリアルのように)、weightsパラメーターを介して外部の事前トレーニング済みのword2vecベクトルを利用します。 from keras.layers import Embedding embedding_layer = Embedding(len(word_index) + 1, EMBEDDING_DIM, weights=[embedding_matrix], input_length=MAX_SEQUENCE_LENGTH, trainable=False)` 他のケースでは、そのような外部出力はありませんが、ユーザーは、埋め込みベクトルに進んで表現ベクトルを決定します。望ましい結果に関するこれらのアプローチの実際の違いは何ですか?たぶん内部のみのソリューションは意味論的表現ではありませんか?行がすでに固定長である外部マトリックスに埋め込み層を適用するポイントは何ですか? さらに、trainable埋め込みレイヤーのパラメーターの目的/効果は何ですか?これをTrueに設定すると、Embeddingレイヤーがインポートされたword2vecの重みを実際のトレーニング例を考慮に入れるように微調整できると思いますか? さらに、「メタ文字」を適切にエンコードするように埋め込みレイヤーに指示するにはどうすればよいですか?mask_zeroパラメータをTrueに設定すると、パディングゼロを組み込むことができますが、UNK(不明)、EOS(文の終わり)はどうなりますか?(ちなみに、文ベースの入力で文の終わりに明示的に署名するポイントが何であるか理解できません...) そして最後に、トレーニングセットで表されていない単語の翻訳をモデルがどのように予測できるでしょうか。語彙で「最も近い」ものと近似しようとしていますか?

1
音素認識のためのCNN
私は現在、このドキュメントを研究しています。CNNは、ログメルフィルターバンクの視覚的表現を使用した音素認識、および制限された重み共有スキームに適用されます。 ログメルフィルターバンクの視覚化は、データを表現および正規化する方法です。彼らは私が使用してそれをプロットすることであろうと出てくる可能性が最も近いRGBの色とスペクトログラムとして可視化することをお勧めmatplotlibsカラーマップをcm.jet。それらは(紙であるため)、各フレームを[静的デルタdelta_delta]フィルターバンクエネルギーでスタックする必要があることも示唆しています。これは次のようになります。 15フレームセットの画像パッチで構成される[静的デルタdelta_detlta]入力形状は、(40,45,3)になります。 制限された重みの共有は、重みの共有を特定のフィルターバンク領域に制限することで構成されます。これは、音声が異なる周波数領域で異なって解釈されるため、通常の畳み込みが適用されるため、完全な重みの共有は機能しません。 制限された重み共有の実装は、各畳み込み層に関連付けられた重み行列の重みを制御することで構成されます。したがって、完全な入力に畳み込みを適用します。複数を使用すると、たたみ込み層から抽出された特徴マップの局所性が破壊されるため、紙はたった1つのたたみ込み層のみを適用します。それらが通常のMFCC係数ではなくフィルターバンクエネルギーを使用する理由は、DCTがフィルターバンクエネルギーの局所性を破壊するためです。 畳み込み層に関連付けられた重み行列を制御する代わりに、複数の入力を使用してCNNを実装することを選択します。したがって、各入力は(小さなフィルターバンク範囲、total_frames_with_deltas、3)で構成されます。したがって、たとえば、用紙サイズは8のフィルターサイズが適切であると述べたため、フィルターバンクの範囲を8に決定しました。したがって、各小さな画像パッチのサイズは(8、45、3)です。小さな画像パッチのそれぞれは、ストライドが1のスライディングウィンドウで抽出されます。そのため、各入力間に多くのオーバーラップがあり、各入力には独自の畳み込み層があります。 (input_3、input_3、input3、input_1、input_2、input_3 ...である必要があります) この方法を使用すると、複数の畳み込み層を使用できるようになります。これは、局所性が問題にならないためです。フィルターバンク領域内に適用されるため、これは私の理論です。 紙はそれを明示的に述べていませんが、彼らが複数のフレームで音素認識を行う理由は、いくつかの左コンテキストと右コンテキストがあるため、中央のフレームのみが予測/トレーニングされているためです。したがって、私の場合、最初の7フレームは左のコンテキストウィンドウに設定されています。中央のフレームはトレーニングされており、最後の7フレームは右のコンテキストウィンドウに設定されています。したがって、複数のフレームが与えられた場合、1つの音素だけが中央であると認識されます。 私のニューラルネットワークは現在、次のようになっています。 def model3(): #stride = 1 #dim = 40 #window_height = 8 #splits = ((40-8)+1)/1 = 33 next(test_generator()) next(train_generator(batch_size)) kernel_number = 200#int(math.ceil(splits)) list_of_input = [Input(shape = (window_height,total_frames_with_deltas,3)) for i in range(splits)] list_of_conv_output = [] list_of_conv_output_2 = [] list_of_conv_output_3 = [] …

1
ケラスの事前学習済みモデルの特徴抽出
Kerasには、事前トレーニングされたモデルの機能を抽出する方法があります。ここで説明しますhttps://keras.io/applications/ from keras.applications.vgg16 import VGG16 from keras.preprocessing import image from keras.applications.vgg16 import preprocess_input import numpy as np model = VGG16(weights='imagenet', include_top=False) img_path = 'elephant.jpg' img = image.load_img(img_path, target_size=(224, 224)) x = image.img_to_array(img) x = np.expand_dims(x, axis=0) x = preprocess_input(x) features = model.predict(x) いくつかのサンプル画像でこれを試しました。私のベクトルxは、100回の観測で形状(100、3、224、224)、RGBで3、ピクセルサイズが224x224です。はpreprocess_inputVGGモデルのこれを再形成します(別の順序を想定しています)。 ただし、の出力形状featuresは(100、512、7、7)です。この形は何ですか?これらの機能をロジスティック回帰の入力として使用したい。したがって、(100、n)のような形状が必要です。観測ごとに1行と列の特徴です。出力をこの次元に再形成するにはどうすればよいですか? 今、自分のシンプルなConvnetを構築したいとします。 from keras.models import Sequential from …

1
ケラスの畳み込み層のborder_mode
Kerasには、convolution2Dの2つのborder_modeがあり、同じで有効です。「同じ」とは何かを説明したり、ドキュメントを指摘したりできますか?私はネット上でドキュメントを見つけることができませんでした(theanoにも実装することを求める人々を除いて)。
7 convnet  keras 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.