タグ付けされた質問 「neural-network」

生物学的ニューロン(脳細胞)の簡略化されたモデルに触発されたネットワーク構造。ニューラルネットワークは、監視ありおよび監視なしの手法で「学習」するようにトレーニングされており、最適化問題、近似問題の解決、パターンの分類、およびそれらの組み合わせに使用できます。

5
tensorflowでtf.nn.conv2dは何をしますか?
tf.nn.conv2d ここでテンソルフローのドキュメントを見ていました。しかし、私はそれが何をするのか、それが何を達成しようとしているのか理解できません。それはドキュメントで言う、 #1:フィルターを形状のある2次元行列に平坦化する [filter_height * filter_width * in_channels, output_channels]。 今それは何をしますか?その要素ごとの乗算ですか、それとも単なる行列乗算ですか?また、ドキュメントで言及されている他の2つのポイントも理解できませんでした。以下に書きました: #2:入力テンソルから画像パッチを抽出して、形状の仮想テンソルを形成します [batch, out_height, out_width, filter_height * filter_width * in_channels]。 #3:パッチごとに、フィルターマトリックスと画像パッチベクトルを右乗算します。 誰かが例を挙げ、コード(非常に役立つ)を多分提供し、そこで何が起こっているのか、なぜ操作がこのようになるのかを説明できれば非常に役立ちます。 小さな部分をコーディングして、操作の形を印刷してみました。それでも理解できません。 私はこのようなものを試しました: op = tf.shape(tf.nn.conv2d(tf.random_normal([1,10,10,10]), tf.random_normal([2,10,10,10]), strides=[1, 2, 2, 1], padding='SAME')) with tf.Session() as sess: result = sess.run(op) print(result) ビットと畳み込みニューラルネットワークの一部を理解しています。ここで勉強しました。しかし、テンソルフローの実装は私が期待したものではありません。それで問題を提起しました。 編集:それで、私ははるかに単純なコードを実装しました。しかし、私は何が起こっているのか理解できません。結果はこんな感じです。どのプロセスがこの出力を生成するかを誰かに教えてもらえれば、非常に役立ちます。 input = tf.Variable(tf.random_normal([1,2,2,1])) filter = tf.Variable(tf.random_normal([1,1,1,1])) op = …


9
バッチ正規化とドロップアウトの注文?
元々の質問は、特にTensorFlowの実装に関するものでした。ただし、答えは一般的な実装です。この一般的な答えは、TensorFlowの正しい答えでもあります。 TensorFlowでバッチ正規化とドロップアウトを使用する場合(具体的にはcontrib.layersを使用)、順序について心配する必要がありますか? ドロップアウトを使用してすぐにバッチ正規化を実行すると、問題が発生する可能性があります。たとえば、バッチ正規化のシフトがトレーニング出力のより大きなスケール数にトレーニングするが、テスト中にドロップアウトなしで同じシフトがより小さな(より多くの出力を持つための補正により)スケール数に適用される場合、シフトがオフになっている可能性があります。TensorFlowバッチ正規化レイヤーはこれを自動的に補正しますか?それとも私が行方不明になった何らかの理由でこれは起こりませんか? また、これら2つを一緒に使用するときに注意すべき他の落とし穴はありますか?たとえば、上記に関して正しい順序で使用していると仮定すると(正しい順序があると仮定して)、連続する複数のレイヤーでバッチ正規化とドロップアウトの両方を使用すると問題が発生する可能性がありますか?すぐに問題が発生することはありませんが、何か不足している可能性があります。 どうもありがとうございました! 更新: 実験的なテストでは、と思われる順序がことを示唆してい事柄。同じネットワークを2回実行しましたが、バッチノルムとドロップアウトリバースのみを使用しています。ドロップアウトがバッチノルムの前にある場合、トレーニングの損失が減少するにつれて検証の損失が増加するように見えます。他のケースでは、どちらも下がっています。しかし私の場合、動きが遅いので、トレーニングを重ねると状況が変わる可能性があり、それは1つのテストにすぎません。より決定的で情報に基づいた回答をいただければ幸いです。

4
Tensorflow Strides引数
tf.nn.avg_pool、tf.nn.max_pool、tf.nn.conv2dのストライド引数を理解しようとしています。 ドキュメントは繰り返し言います strides:長さが4以上の整数のリスト。入力テンソルの各次元のスライディングウィンドウのストライド。 私の質問は: 4以上の整数のそれぞれは何を表していますか? なぜconvnetに対してstrides [0] = strides [3] = 1にする必要があるのですか? で、この例で、私たちは見ますtf.reshape(_X,shape=[-1, 28, 28, 1])。なぜ-1? 悲しいことに、-1を使用して再形成するためのドキュメントの例は、このシナリオにうまく変換できません。

4
Pytorch、勾配の引数は何ですか
私はPyTorchのドキュメントを読んでいて、彼らが書く例を見つけました gradients = torch.FloatTensor([0.1, 1.0, 0.0001]) y.backward(gradients) print(x.grad) ここで、xは初期変数であり、そこからyが作成されました(3ベクトル)。問題は、勾配テンソルの0.1、1.0、0.0001引数は何ですか?ドキュメントについては、あまり明確ではありません。

3
sparse_softmax_cross_entropy_with_logitsとsoftmax_cross_entropy_with_logitsの違いは何ですか?
私は最近出会ったtf.nn.sparse_softmax_cross_entropy_with_logitsと私は違いが比較されているものを把握することはできませんtf.nn.softmax_cross_entropy_with_logits。 使用時にトレーニングベクトルyをワンホットエンコードする必要がある唯一の違いはありsparse_softmax_cross_entropy_with_logitsますか? APIを読んでも、と比較して他の違いを見つけることができませんでしたsoftmax_cross_entropy_with_logits。しかし、なぜ追加の機能が必要なのでしょうか。 ワンホットエンコードされたトレーニングデータ/ベクトルが提供されている場合softmax_cross_entropy_with_logits、と同じ結果を生成するべきではありませんsparse_softmax_cross_entropy_with_logitsか?

16
人工ニューラルネットワークについて学ぶための良いリソースは何ですか?[閉まっている]
閉まっている。この質問はスタックオーバーフローのガイドラインを満たしていません。現在、回答を受け付けていません。 この質問を改善してみませんか?Stack Overflowのトピックとなるように質問を更新します。 6年前休業。 この質問を改善する 私は人工神経回路網に本当に興味がありますが、出発点を探しています。 どのようなリソースがあり、どのような最初のプロジェクトが適切ですか?

5
Kerasでの "Flatten"の役割は何ですか?
FlattenKeras における関数の役割を理解しようとしています。以下は、単純な2層ネットワークである私のコードです。形状(3、2)の2次元データを取り込み、形状(1、4)の1次元データを出力します。 model = Sequential() model.add(Dense(16, input_shape=(3, 2))) model.add(Activation('relu')) model.add(Flatten()) model.add(Dense(4)) model.compile(loss='mean_squared_error', optimizer='SGD') x = np.array([[[1, 2], [3, 4], [5, 6]]]) y = model.predict(x) print y.shape これyは、形状(1、4)の出力です。ただし、Flatten線を削除すると、y形(1、3、4)のものが印刷されます。 分かりません。ニューラルネットワークについての私の理解から、このmodel.add(Dense(16, input_shape=(3, 2)))関数は、16ノードの完全に接続された非表示のレイヤーを作成しています。これらの各ノードは、3x2入力要素のそれぞれに接続されています。したがって、この最初のレイヤーの出力にある16個のノードはすでに「フラット」です。したがって、最初のレイヤーの出力形状は(1、16)になります。そして、第2層はこれを入力として、形状(1、4)のデータを出力する。 では、最初のレイヤーの出力がすでに「フラット」で形状(1、16)である場合、なぜさらにフラットにする必要があるのでしょうか。

2
Kerasでの多対一および多対多のLSTMの例
私はLSTMと、それらをKerasで構築する方法を理解しようとしています。私は、RNNを実行するために主に4つのモードがあることを発見しました(図の4つの正しいモード) 画像ソース:Andrej Karpathy さて、それぞれのミニマルなコードスニペットがKerasでどのように見えるのかと思います。だから何かのような model = Sequential() model.add(LSTM(128, input_shape=(timesteps, data_dim))) model.add(Dense(1)) 4つのタスクのそれぞれについて、少しの説明があるかもしれません。


9
ニューラルネットワークの重みを乱数に初期化する必要があるのはなぜですか?
私はニューラルネットワークをゼロから構築しようとしています。すべてのAI文献全体で、ネットワークの収束を速くするために、重みを乱数に初期化する必要があるというコンセンサスがあります。 しかし、なぜニューラルネットワークの初期の重みが乱数として初期化されるのでしょうか。 これは「対称性を壊す」ために行われ、これによりニューラルネットワークの学習が速くなることをどこかで読んだことがあります。対称性を壊すことで、学習がどのように速くなりますか? 重みを0に初期化した方がいいでしょうか?そのようにして、重みはそれらの値(正または負にかかわらず)をより速く見つけることができますか? 初期化時に重みが最適値に近いことを期待することとは別に、重みをランダム化する背後にある他の基本的な哲学はありますか?

4
多層パーセプトロン(MLP)アーキテクチャ:隠れ層の数と隠れ層のサイズを選択するための基準?
10個の固有ベクトルがある場合は、入力層に10個のニューラルノードがあります.5個の出力クラスがある場合は、出力層に5個のノードがあります。ただし、MLPの非表示層の数とニューラル数1つの非表示レイヤー内のノード?

6
トレーニング済みのKerasモデルを読み込んでトレーニングを続行する
部分的にトレーニングされたKerasモデルを保存し、モデルを再度ロードした後でトレーニングを続行できるかどうか疑問に思いました。 これは、将来的にトレーニングデータが増え、モデル全体を再トレーニングしたくないためです。 私が使用している機能は次のとおりです。 #Partly train model model.fit(first_training, first_classes, batch_size=32, nb_epoch=20) #Save partly trained model model.save('partly_trained.h5') #Load partly trained model from keras.models import load_model model = load_model('partly_trained.h5') #Continue training model.fit(second_training, second_classes, batch_size=32, nb_epoch=20) 編集1:完全に機能する例を追加 10エポック後の最初のデータセットでは、最後のエポックの損失は0.0748で、精度は0.9863です。 モデルを保存、削除、再ロードすると、2番目のデータセットでトレーニングされたモデルの損失と精度はそれぞれ0.1711と0.9504になります。 これは、新しいトレーニングデータまたは完全に再トレーニングされたモデルが原因ですか? """ Model by: http://machinelearningmastery.com/ """ # load (downloaded if needed) the MNIST dataset import …

10
TensorFlowで正則化を追加するにはどうすればよいですか?
TensorFlowを使用して実装された多くの利用可能なニューラルネットワークコードで、正則化用語はしばしば損失値に手動で追加の用語を追加することによって実装されることがわかりました。 私の質問は: 手動で行うよりも洗練された、または推奨される正則化の方法はありますか? 私はそれにもget_variable議論があると思いますregularizer。それはどのように使用すべきですか?私の観察によると、レギュラライザーをそれに渡すと(など)tf.contrib.layers.l2_regularizer、正則化された項を表すテンソルが計算され、という名前のグラフコレクションに追加されtf.GraphKeys.REGULARIZATOIN_LOSSESます。そのコレクションはTensorFlowによって自動的に使用されますか(たとえば、トレーニング時にオプティマイザーによって使用されます)?またはそのコレクションを自分で使用する必要があると思いますか?

3
ケラで2つのレイヤーを連結する方法は?
2つのレイヤーを持つニューラルネットワークの例があります。最初のレイヤーは2つの引数を取り、1つの出力を持ちます。2番目は、最初のレイヤーの結果として1つの引数と1つの追加の引数を取る必要があります。次のようになります。 x1 x2 x3 \ / / y1 / \ / y2 そのため、2つのレイヤーを持つモデルを作成してそれらをマージしようとしましたが、エラーが返されます:The first layer in a Sequential model must get an "input_shape" or "batch_input_shape" argument.行にresult.add(merged)。 モデル: first = Sequential() first.add(Dense(1, input_shape=(2,), activation='sigmoid')) second = Sequential() second.add(Dense(1, input_shape=(1,), activation='sigmoid')) result = Sequential() merged = Concatenate([first, second]) ada_grad = Adagrad(lr=0.1, epsilon=1e-08, …

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