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

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

20
ニューラルネットワークにおけるバイアスの役割は何ですか?
勾配降下法と逆伝播アルゴリズムを知っています。私が得られないのは、バイアスを使用することが重要で、それをどのように使用するかです。 たとえば、AND関数をマッピングするときに、2つの入力と1つの出力を使用すると、正しい重みが得られませんが、3つの入力(そのうちの1つはバイアス)を使用すると、正しい重みが得られます。


6
サポートベクターマシンに対する人工ニューラルネットワークの利点は何ですか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。事実、参考文献、専門知識によって回答が裏付けられることを期待していますが、この質問は、討論、議論、投票、または拡張ディスカッションを求める可能性があります。この質問を改善でき、再開できると思われる場合は、ヘルプセンターにアクセスしてください。 7年前休業。 ANN(人工ニューラルネットワーク)とSVM(サポートベクターマシン)は、教師あり機械学習と分類の2つの一般的な戦略です。特定のプロジェクトにどちらの方法が適しているかはよくわからないことが多く、答えは常に「依存している」と確信しています。多くの場合、両方の組み合わせとベイジアン分類が使用されます。 Stackoverflowに関するこれらの質問は、ANNとSVMに関してすでに尋ねられています。 ANNおよびSVM分類 分類の質問におけるANN、SVM、KNNの違い テキスト処理用のサポートベクターマシンまたは人工ニューラルネットワーク? この質問では、ANN(具体的には、マルチレイヤーパーセプトロン)のどの側面がSVMを介して使用することが望ましいと思われるかを具体的に知りたいのですが?私が尋ねる理由は、反対の質問に答えるのが簡単だからです。サポートベクターマシンは、ANNの2つの主要な弱点を回避するため、ANNより優れていることがよくあります。 (1)ANN は、グローバルな最小値ではなくローカルな最小値に収束することがよくあります。つまり、ANN は、本質的に「全体像を見落としている」(または森の森を見逃している)ことを意味します (2)トレーニングが長すぎると、ANNはしばしばオーバーフィットします。つまり、特定のパターンについて、ANNはノイズをパターンの一部と見なし始める可能性があります。 SVMはこれらの2つの問題のどちらにも悩まされません。ただし、SVMがANNの完全な代替になることを意図していることはすぐにはわかりません。それでは、ANNはSVMに対して特定の利点を持っているため、特定の状況に適用できる可能性があります。ANNに対するSVMの特定の利点を挙げましたが、ANNの利点(ある場合)のリストを確認したいと思います。

1
ニューラルネットワークのトレーニングで非常に小さい値またはNaN値が表示される
Haskellでニューラルネットワークアーキテクチャを実装し、MNISTで使用しようとしています。 hmatrix線形代数のパッケージを使用しています。私のトレーニングフレームワークは、pipesパッケージを使用して構築されています。 私のコードはコンパイルされ、クラッシュしません。ただし、問題は、レイヤーサイズ(たとえば、1000)、ミニバッチサイズ、および学習率の特定の組み合わせによってNaN、計算に値が生じることです。いくつかの検査の後、非常に小さな値(次数1e-100)が最終的にアクティベーションに表示されることがわかります。しかし、それが起こらなくても、トレーニングはまだ機能しません。その損失や精度に改善はありません。 私は自分のコードをチェックして再チェックしましたが、問題の根本が何であるかについて途方に暮れています。 各レイヤーのデルタを計算するバックプロパゲーショントレーニングは次のとおりです。 backward lf n (out,tar) das = do let δout = tr (derivate lf (tar, out)) -- dE/dy deltas = scanr (\(l, a') δ -> let w = weights l in (tr a') * (w <> δ)) δout (zip (tail $ toList n) das) return (deltas) …

2
Keras入力の説明:input_shape、units、batch_size、dimなど
任意のKeras層(の場合はLayerクラス)、缶誰かが違いを理解する方法を説明しinput_shape、units、dim、などを? たとえば、ドキュメントにはunits、レイヤーの出力形状を指定すると書かれています。 下のニューラルネットの画像にhidden layer1は4ユニットあります。これunitsはLayerオブジェクトの属性に直接変換されますか?それともunitsケラスでは、隠しレイヤーのすべてのウェイトの形状にユニット数を掛けたものに等しいですか? 簡単に言うと、下の画像を使用して、モデルの属性、特にレイヤーをどのように理解/視覚化するのですか?

11
TensorFlowでロジットという単語の意味は何ですか?
次のTensorFlow関数では、最終層の人工ニューロンの活性化をフィードする必要があります。私が理解していること。しかし、それがロジットと呼ばれる理由がわかりませんか?それは数学関数ではありませんか? loss_function = tf.nn.softmax_cross_entropy_with_logits( logits = last_layer, labels = target_output )

3
機械学習モデルの「損失」と「正確さ」を解釈する方法
TheanoまたはTensorflowでニューラルネットワークをトレーニングすると、エポックごとに「損失」と呼ばれる変数が報告されます。 この変数をどのように解釈すればよいですか?損失が大きいほど良くなったり悪くなったりしますか、それとも私のニューラルネットワークの最終的なパフォーマンス(精度)にはどのような意味がありますか?

7
KerasのBatchNormalization関数はどこで呼び出しますか?
KerasでBatchNormalization関数を使用したい場合、最初に一度だけ呼び出す必要がありますか? 私はそれについてこのドキュメントを読みました:http : //keras.io/layers/normalization/ どこに呼ぶべきかわかりません。以下はそれを使用しようとしている私のコードです: model = Sequential() keras.layers.normalization.BatchNormalization(epsilon=1e-06, mode=0, momentum=0.9, weights=None) model.add(Dense(64, input_dim=14, init='uniform')) model.add(Activation('tanh')) model.add(Dropout(0.5)) model.add(Dense(64, init='uniform')) model.add(Activation('tanh')) model.add(Dropout(0.5)) model.add(Dense(2, init='uniform')) model.add(Activation('softmax')) sgd = SGD(lr=0.1, decay=1e-6, momentum=0.9, nesterov=True) model.compile(loss='binary_crossentropy', optimizer=sgd) model.fit(X_train, y_train, nb_epoch=20, batch_size=16, show_accuracy=True, validation_split=0.2, verbose = 2) バッチ正規化を含む2行目でコードを実行すると、2行目なしでコードを実行すると、同様の出力が得られるため、私は尋ねます。したがって、適切な場所で関数を呼び出していないか、それほど大きな違いはないと思います。

11
binary_crossentropyとcategorical_crossentropyが同じ問題に対して異なるパフォーマンスを提供するのはなぜですか?
CNNをトレーニングして、テキストをトピックごとに分類しようとしています。バイナリクロスエントロピーを使用すると、最大80%の精度が得られます。カテゴリカルクロスエントロピーでは、最大50%の精度が得られます。 なぜなのかわかりません。これはマルチクラスの問題です。それは、カテゴリクロスエントロピーを使用する必要があり、バイナリクロスエントロピーを使用した結果は無意味であることを意味しませんか? model.add(embedding_layer) model.add(Dropout(0.25)) # convolution layers model.add(Conv1D(nb_filter=32, filter_length=4, border_mode='valid', activation='relu')) model.add(MaxPooling1D(pool_length=2)) # dense layers model.add(Flatten()) model.add(Dense(256)) model.add(Dropout(0.25)) model.add(Activation('relu')) # output layer model.add(Dense(len(class_id_index))) model.add(Activation('softmax')) 次にcategorical_crossentropy、損失関数として次のようにコンパイルします。 model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy']) または model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy']) 直観的には、カテゴリカルクロスエントロピーを使用する理由は理にかなっていますが、バイナリで良い結果が得られ、カテゴリで悪い結果が得られる理由がわかりません。


7
ニューラルネットワークにおけるトレーニング、検証、テストセットの違いは何ですか?
このライブラリを使用して、学習エージェントを実装しています。 トレーニングケースを生成しましたが、検証セットとテストセットが何であるかわかりません。 先生は言う: 70%はトレーニングケース、10%はテストケース、残りの20%は検証ケースです。 編集する 私にはトレーニング用のこのコードがありますが、いつトレーニングを停止するかわかりません。 def train(self, train, validation, N=0.3, M=0.1): # N: learning rate # M: momentum factor accuracy = list() while(True): error = 0.0 for p in train: input, target = p self.update(input) error = error + self.backPropagate(target, N, M) print "validation" total = 0 for p …

9
人工ニューラルネットワークの入力を正規化する必要があるのはなぜですか?
ニューラルネットワークの理論に関して、これは主要な質問です。 ニューラルネットワークの入力を正規化する必要があるのはなぜですか? たとえば、入力値が非数値の場合、特定の変換を実行する必要があることもありますが、数値入力がある場合はどうでしょうか。なぜ数値は一定の間隔でなければならないのですか? データが正規化されていないとどうなりますか?

8
ニューラルネットワークではなく、遺伝的アルゴリズムをいつ使用すればよいですか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。事実、参考文献、専門知識によって回答が裏付けられることを期待していますが、この質問は、討論、議論、投票、または拡張ディスカッションを求める可能性があります。この質問が改善され、場合によっては再開できると思われる場合は、ヘルプセンターにアクセスしてください。 7年前休業。 問題を解決するためにニューラルネットワーク(またはその逆)とは対照的に、遺伝的アルゴリズムをいつ使用するかを決定するための経験則(または一連の例)はありますか? 両方の方法を混在させることができる場合があることは承知していますが、2つの方法の大まかな比較を探しています。

7
ビジュアル入力を使用してDiablo 2を再生するように人工ニューラルネットワークをトレーニングする方法
私は現在、ANNにビデオゲームをプレイしてもらうことを目指しています。ここのすばらしいコミュニティから助けを借りたいと思っていました。 私はディアブロ2に落ち着きました。したがって、ゲームのプレイはリアルタイムで、アイソメトリックの観点から、プレーヤーはカメラの中心にある1つのアバターを制御します。 物事を具体的にするために、タスクは、ヘルスを0に落とさずにキャラクターx経験値を取得することです。この場合、経験値はモンスターを倒すことによって獲得されます。これはゲームプレイの例です: 今、私はネットを画面上のピクセルから取得した情報のみに基づいて動作させたいので、効率的に再生するためには非常に豊かな表現を学習する必要があります。ゲームの世界をオブジェクトに分割し、それらと対話する方法。 そして、これらすべての情報はどういうわけかネットに教えられなければなりません。私の人生では、これをどのように訓練するかを考えることはできません。私の唯一のアイデアは、画面からゲームの本質的に良い/悪いもの(健康、ゴールド、経験など)を視覚的に抽出し、その統計を強化学習手順で使用する別のプログラムを用意することです。それは答えの一部になると思いますが、それで十分だとは思いません。生の視覚的入力から目標指向の動作までの抽象化のレベルが多すぎて、私の生涯でネットを訓練するにはそのような限られたフィードバックがありません。 だから、私の質問:このタスクの少なくとも一部を実行するようにネットをトレーニングするには、他にどのような方法が考えられますか?何千ものラベル付けされた例を作成せずに。 もう少し方向付けをします。この設定で有用な情報を抽出するために、強化学習の他のソースや、監視されていない方法を探しています。または、手動でラベル付けする必要なしに、ゲームの世界からラベル付けされたデータを取得する方法を考えることができる場合は、監視付きアルゴリズム。 更新(12/04/27): 不思議なことに、私はまだこれに取り組んでおり、進歩しているようです。ANNコントローラを機能させる最大の秘訣は、タスクに適した最新のANNアーキテクチャを使用することです。したがって、時間差の逆伝播(つまり、標準の強化学習)で微調整する前に、教師なしで(ゲームをプレイしているビデオで)訓練した因数分解された制限付きボルツマンマシンで構成される深い信念ネットを使用してきましたフィードフォワードANN)。 ただし、特にリアルタイムでのアクション選択の問題と、ANN処理用にカラー画像をエンコードする方法について、さらに価値のある入力を探しています:-) 更新(10/21/15): 私がこの質問を過去にしたことを思い出しただけで、これはもうおかしな考えではないことを述べておかなければならないと思いました。前回の更新以降、DeepMindは、ニューラルネットワークで視覚入力からAtariゲームをプレイできるようにするためのネイチャーペーパーを公開しました。確かに、私が彼らのアーキテクチャを使用してDiablo 2の限られたサブセットをプレイするのを妨げている唯一のことは、基礎となるゲームエンジンへのアクセスの欠如です。画面にレンダリングしてからネットワークにリダイレクトするのは、適度な時間でトレーニングするには遅すぎるだけです。したがって、おそらくこのようなボットがディアブロ2をプレイするのはすぐにはわかりませんが、それは、オープンソースまたはレンダリングターゲットへのAPIアクセスで何かをプレイするためです。(おそらく地震?)

12
逆伝播ニューラルネットワークで非線形活性化関数を使用する必要があるのはなぜですか?
私はニューラルネットワークについていくつか読んでおり、単層ニューラルネットワークの一般的な原理を理解しています。追加のレイヤーの必要性を理解しましたが、なぜ非線形活性化関数が使用されるのですか? この質問の後に、次の質問が続きます。逆伝搬で使用されるアクティベーション関数の派生物は何ですか?

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