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

人工ニューラルネットワーク(ANN)は、生物学的ニューラルネットワークに大まかに基づいた広範なクラスの計算モデルです。これらには、フィードフォワードNN(「ディープ」NNを含む)、畳み込みNN、反復NNなどが含まれます。

4
ニューラルネットワークを回帰用にトレーニングすると、常に平均が予測されます
私は回帰のための単純な畳み込みニューラルネットワークをトレーニングしています。ここでのタスクは、画像内のボックスの(x、y)位置を予測することです。例: ネットワークの出力には、x用とy用の2つのノードがあります。ネットワークの残りの部分は、標準の畳み込みニューラルネットワークです。損失は​​、ボックスの予測位置とグラウンドトゥルースの位置との間の標準的な平均二乗誤差です。私はこれらの画像の10000でトレーニングをしており、2000で検証しています。 私が抱えている問題は、重要なトレーニングを行った後でも、損失が実際には減少しないことです。ネットワークの出力を観察すると、両方の出力ノードで、ネットワークがゼロに近い値を出力する傾向があることに気付きました。そのため、ボックスの位置の予測は常に画像の中心になります。予測には多少のずれがありますが、常にほぼゼロです。以下は損失を示しています: このグラフに示されているよりも多くのエポックでこれを実行しましたが、損失はまだ減少していません。ここで興味深いことに、実際にはある時点で損失が増加しています。 したがって、ネットワークは、適切な適合を学習するのではなく、トレーニングデータの平均を予測しているだけのようです。なぜこれがそうなのかについてのアイデアはありますか?Adamをオプティマイザとして使用しています。初期学習率は0.01で、relusをアクティベーションとして使用しています。 私のコード(Keras)の一部に興味がある場合は、以下に示します。 # Create the model model = Sequential() model.add(Convolution2D(32, 5, 5, border_mode='same', subsample=(2, 2), activation='relu', input_shape=(3, image_width, image_height))) model.add(Convolution2D(64, 5, 5, border_mode='same', subsample=(2, 2), activation='relu')) model.add(Convolution2D(128, 5, 5, border_mode='same', subsample=(2, 2), activation='relu')) model.add(Flatten()) model.add(Dense(100, activation='relu')) model.add(Dense(2, activation='linear')) # Compile the model adam = Adam(lr=0.01, beta_1=0.9, …

1
LSTMトポロジーについて
他の多くの人がそうであるように、私はこことここのリソースがLSTMセルを理解するのに非常に役立つことがわかりました。値がどのように流れて更新されるかを理解していると確信しており、前述の「のぞき穴の接続」なども追加できると確信しています。 私の例では、各時間ステップで長さの入力ベクトルと長さiの出力ベクトルがoありo < iます。 どちらのページでも実際にカバーされていないのは、これらがどのように配置およびトレーニングされるかです。 2つの質問があります。 私のトレーニングデータには、多くの時間単位に対応する多くの入力/出力ベクトルのペアがあります。すべてのデータを使用してLSTMをトレーニングするとします。その後、任意の長さの入力セットを実行できますか?たとえば、2015年と2016年全体のトレーニングデータがある場合、2017年のデータをネットワーク経由で実行できますか?それとも2017年から2020年か? 私が読んだことによると、時間単位ごとに1つのLSTMセルがあるように感じるので、多くの時間単位がある場合は、多くの連鎖LSTMセルがあります。チェーンの長さはネットワークを介して実行したいデータの長さに依存し、おそらく任意であるため、数を複製する単一のLSTMセルのみをトレーニングしない限り、これをトレーニングする方法がわかりません回。だから、私は単一のLSTMセルをトレーニングし、nそれらを長さの指定された入力ベクトルリストに対して一緒にチェーンするように思われnますか?単一のLSTMセルには多くの要素と機能が含まれていますが、それほど多くの情報を非常に小さなものにキャプチャするだけでは十分ではないように感じますか? ありがとう。実装の詳細を理解するのに役立つ、(比較的迅速に)消費できる他のリソースはありますか?上記の2つのリンクは、何が起こっているのかについてのすばらしい高レベルの画像を提供しましたが、これらの詳細をキャプチャできませんでした。

1
スキップグラムword2vecのグラデーション
スタンフォード大学NLPディープラーニングクラスの課題の問題http://cs224d.stanford.edu/assignment1/assignment1_soln 私は3aの答えを理解しようとしています。ここで、彼らは中心語のベクトルの派生物を探しています。 あなたが予測単語ベクトル与えられていると仮定し、中心ワードに対応するC skipgramのために、と単語予測がword2vecモデルで見つかったソフトマックス関数で作られています。vcvcv_{c} y^o=p(o|c)=exp(uTovc)∑Ww=1exp(uTwvc)y^o=p(o|c)=exp(uoTvc)∑w=1Wexp(uwTvc)\hat{y}^{o} = p(o | c) = \frac {exp(u_{o}^{T} v_{c})}{\sum_{w=1}^{W}exp(u_{w}^{T} v_{c})} ここで、wはw番目の単語を表し、(w = 1、。。、W)は語彙内のすべての単語の「出力」単語ベクトルです。クロスエントロピーコストがこの予測に適用され、単語oが期待される単語であると仮定します。uwuwu_w ここで、すべての出力ベクトルの行列であり、およびlet yは単語のソフトマックス予測の列ベクトルであり、そしてyはワンホットラベルでいますも列ベクトルです。U=[u1,u2,⋅⋅⋅,uW]U=[u1,u2,···,uW]U = [u_1,u_2, · · · ,u_W ]y^y^\hat{y} クロスエントロピーでありCE(y,y^)=−∑iyilog(y^i)CE(y,y^)=−∑iyilog⁡(y^i)CE(y, \hat{y}) = − \sum_iy_i\log(\hat{y}_i) だから、中心ベクトルのための勾配のための答えがある∂J∂vc=UT(y^−y).∂J∂vc=UT(y^−y).\frac{∂J}{∂v_c}= U^T(\hat{y} − y). UT(y^−y).UT(y^−y).U^T(\hat{y} − y).

3
scikit-learnで多層パーセプトロンのアクティベーション機能としてSoftmaxを適用する方法 [閉まっている]
閉まっている。この質問はトピックから外れています。現在、回答を受け付けていません。 この質問を改善してみませんか? 質問を更新することがありますので、話題のクロス検証済みのため。 10か月前に閉鎖。 Softmaxアクティベーション機能をscikitの多層パーセプトロンに適用する必要があります。ニューラルネットワークモデル(教師あり)のトピックに関するscikitのドキュメントでは、「MLPClassifierは出力関数としてSoftmaxを適用することにより、マルチクラス分類をサポートしています」と述べています。問題は、関数をどのように適用するかです。 以下のコードスニップで、アクティベーションパラメーターの下にSoftmaxを追加すると、受け入れられません。 MLPClassifier(activation='Softmax', alpha=1e-05, batch_size='auto', beta_1=0.9, beta_2=0.999, early_stopping=False, epsilon=1e-08, hidden_layer_sizes=(15,), learning_rate='constant', learning_rate_init=0.001, max_iter=200, momentum=0.9, nesterovs_momentum=True, power_t=0.5, random_state=1, shuffle=True, solver='lbfgs', tol=0.0001, validation_fraction=0.1, verbose=False, warm_start=False) エラーコードは: ValueError:アクティベーション「Softmax」はサポートされていません。サポートされるアクティベーションは( 'identity'、 'logistic'、 'tanh'、 'relu')です。 scikit-learnのマルチクラス分類にSoftmaxアクティベーション関数を適用する方法はありますか?

1
アクションごとに1つの出力ユニットがある場合、ニューラルネットワークでのQ学習はどの程度効率的ですか?
背景: 強化学習タスクでニューラルネットワークのQ値の近似を使用しています。アプローチは、この質問で説明したものとまったく同じですが、質問自体が異なります。 このアプローチでは、出力の数は、実行できるアクションの数です。簡単な言葉で言えば、アルゴリズムは次のとおりです。アクションAを実行し、報酬を調べ、NNにすべての可能なアクションのQ値を予測し、最大Q値を選択し、特定のアクションAのQをとして計算しR + max(new_state_Q)ます。予測されたQ値にモデルを近似し、そのうちの1つだけをに置き換えR + max(new_state_Q)ます。 質問:出力数が多い場合、このアプローチはどの程度効率的ですか? 試行:実行できるアクションが10あるとします。各ステップで、モデルに10個の値を予測するように依頼します。モデルの初期の年齢では、この予測は完全に混乱しています。次に、出力の1つの値を変更し、これらの値にモデルを適合させます。 私はこのアプローチがどのように良い/悪いかについて反対の考えを2つ持っており、どちらが正しいかを判断できません。 1つの観点から、ランダムデータで各ニューロンを9回トレーニングし、実際の値に近いデータで1回だけトレーニングします。NNが状態SのアクションAに対して5を予測したが、実際の値が-100の場合、NNを値5で9回、次に値-100で1回当てはめます。クレイジーですね。 他の観点から見ると、ニューラルネットワークの学習はエラーの逆伝播として実装されているため、モデルが5を予測して5でトレーニングしている場合、エラーは0であるため、新しい学習は行われません。重みは影響を受けません。そして、-100を計算してモデルに適合させる場合にのみ、重みの再計算を行います。 どのオプションが正しいですか?多分私が考慮していない他の何かがありますか? 更新: 「どれほど効率的」とは、1つの出力-予測報酬を伴うアプローチと比較することを意味します。もちろん、この場合、アクションは入力の一部になります。したがって、アプローチ#1はある状態に基づいてすべてのアクションの予測を行い、アプローチ#2はある状態で行われた特定のアクションの予測を行います。

1
ニューラルネットワークは効率的なコーディングを使用していますか?
私の質問は、効率的なコーディングに関するウィキペディアのページで概説されている効率的なコーディング仮説とニューラルネットワーク学習アルゴリズムとの関係に関係しています。 効率的なコーディング仮説とニューラルネットワークの関係は何ですか? 効率的なコーディング仮説に明確に触発されたニューラルネットワークモデルはありますか? それとも、すべてのニューラルネットワーク学習アルゴリズムは、少なくとも暗黙的に効率的なコーディングに基づいていると言えるでしょうか。

1
ディープラーニング用のデータ量はどれくらいですか?
ディープラーニング(特にCNN)について学習しています。これは、過剰適合を防ぐために通常は非常に多くのデータを必要とする方法です。ただし、モデルの容量やパラメータが多いほど、過剰適合を防ぐために必要なデータが増えることも知らされています。したがって、私の質問は次のとおりです。ディープニューラルネットワークのレイヤーあたりのレイヤー/ノードの数を減らし、より少ないデータ量で機能させることができないのはなぜですか?ニューラルネットワークが「キックイン」するまでに必要な基本的な「最小数のパラメータ」はありますか?特定の数のレイヤーの下では、ニューラルネットワークは、手作業でコーディングした機能ほど機能しないようです。

2
ニューラルネットワークの信頼度の予測
分類または回帰を実行するためにディープニューラルネットワークをトレーニングしたいとしますが、予測の信頼度を知りたいと考えています。どうすればこれを達成できますか? 私の考えは、上のニューラルメーターでの予測パフォーマンスに基づいて、すべてのトレーニングデータのクロスエントロピーを計算することです。次に、2つ目のニューラルネットワークを回帰用にトレーニングします。これは、各データを入力として受け取り、クロスエントロピーを出力(1つの出力ノード)として扱います。次に、実際には両方のネットワークを使用します。1つはラベル/値の予測用で、もう1つは最初のネットワークの信頼度の予測用です。(....しかし、2番目のネットワークの信頼度を予測するために3番目のネットワークが必要になる、など...?!) これは有効なアイデアですか?また、一般的に使用されている標準的なアイデアですか?そうでない場合、何を提案しますか?

2
単層ニューラルネットワークの勾配をその入力に対して導出する場合、チェーンルールの演算子は何ですか?
問題は: クロスエントロピー損失のある入力->非表示、非表示->出力にシグモイドを使用する単一の非表示層ニューラルネットワークの入力層に関する勾配を導出します。 チェーンルールを使用してほとんどの派生を通過できますが、実際にそれらを「チェーン」する方法については不明です。 いくつかの表記法を定義する r=xW1+b1r=xW1+b1 r = xW_1+b_1 h=σ(r)h=σ(r) h = \sigma\left( r \right) 、はシグモイド関数ですσσ\sigma θ=hW2+b2θ=hW2+b2 \theta = hW_2+b_2 、 y^=S(θ)y^=S(θ) \hat{y} = S \left( \theta \right) 、はソフトマックス関数SSS J(y^)=∑iylogy^iJ(y^)=∑iylog⁡y^i J\left(\hat{y}\right) = \sum_i y \log\hat{y}_i 、は実際のラベルのワンホットベクトルyyy 次に、連鎖ルールによって、 ∂J∂x=∂J∂θ⋅∂θ∂h⋅∂h∂r⋅∂r∂x∂J∂x=∂J∂θ⋅∂θ∂h⋅∂h∂r⋅∂r∂x \frac{\partial J}{\partial \boldsymbol{x}} = \frac{\partial J}{\partial \boldsymbol{\theta}} \cdot \frac{\partial \boldsymbol{\theta}}{\partial \boldsymbol{h}} \cdot \frac{\partial …

1
ReLUニューロンの入力正規化
LeCun et al(1998)による「Efficient Backprop」によれば、すべての入力が0を中心とし、最大2次導関数の範囲内になるように正規化することをお勧めします。たとえば、「Tanh」関数には[-0.5,0.5]を使用します。これは、ヘッセ行列がより安定したときの逆伝播の進行を助けるためです。 しかし、max(0、x)である整流器ニューロンをどうするかわかりませんでした。(それ以降、ロジスティック関数でも[0.1,0.9]のようなものが必要になりますが、0を中心としていません)

3
リカレントニューラルネットワークの構造(LSTM、GRU)
私はRNNのアーキテクチャを理解しようとしています。私は非常に役立つこのチュートリアルを見つけました:http : //colah.github.io/posts/2015-08-Understanding-LSTMs/ 特にこの画像: これはフィードフォワードネットワークにどのように適合しますか?この画像は、各レイヤーの別のノードですか?

1
このオートエンコーダーネットワークを正しく機能させることができません(畳み込みレイヤーとmaxpoolレイヤーを使用)
オートエンコーダネットワークは、通常の分類子MLPネットワークよりも扱いにくいようです。ラザニアを数回使用した後、再構成された出力で得られるすべてのものが、入力桁が実際に何であるかを区別せずに、MNISTデータベースのすべての画像のぼやけた平均化に最もよく似ているものです。 私が選択したネットワーク構造は、次のカスケードレイヤーです。 入力レイヤー(28x28) 2Dたたみ込み層、フィルターサイズ7x7 最大プーリングレイヤー、サイズ3x3、ストライド2x2 高密度(完全に接続された)平坦化層、10ユニット(これがボトルネックです) 高密度(完全接続)レイヤー、121ユニット レイヤーを11x11に変形 2Dたたみ込み層、フィルターサイズ3x3 2Dアップスケーリングレイヤーファクター2 2Dたたみ込み層、フィルターサイズ3x3 2Dアップスケーリングレイヤーファクター2 2Dたたみ込み層、フィルターサイズ5x5 機能の最大プーリング(31x28x28から28x28へ) すべての2Dたたみ込み層には、バイアスが解除された、シグモイドアクティベーションと31のフィルターがあります。 完全に接続されたすべての層には、シグモイドアクティベーションがあります。 使用される損失関数は二乗誤差であり、更新関数はadagradです。学習用のチャンクの長さは100サンプルで、1000エポックに乗算されます。 以下は問題の説明です:上の行はネットワークの入力として設定されたいくつかのサンプルで、下の行は再構成です: 完全を期すために、私が使用したコードは次のとおりです。 import theano.tensor as T import theano import sys sys.path.insert(0,'./Lasagne') # local checkout of Lasagne import lasagne from theano import pp from theano import function import gzip import numpy as np from …

1
オートエンコーダーと畳み込みニューラルネットワークで学習したフィルターの違いは何ですか?
CNNでは、フィルターを学習して、畳み込み層に特徴マップを作成します。 Autoencoderでは、各レイヤーの単一の非表示ユニットをフィルターと見なすことができます。 これら2つのネットワークで学習されたフィルターの違いは何ですか?

1
スパース入力でニューラルネットワークを使用する場合に従う必要があるガイドライン
入力画像の特定の特徴の場所など、入力が非常にまばらです。さらに、各機能は複数の検出を行うことができます(これがシステムの設計に影響するかどうかは不明です)。これは、その機能の存在を表すONピクセルを備えたkチャネル「バイナリイメージ」として提示するものとします。逆も同様です。このような入力は非常にまばらにバインドされていることがわかります。 それでは、ニューラルネットでスパースデータ、特に検出/位置を表すデータを使用する場合の推奨事項はありますか?

2
NNアーキテクチャを動的に調整する:不要なものを発明しますか?
私は博士課程の旅を始めており、私が自分の前に設定した究極の目標は、彼らが働く環境を監視し、アーキテクチャを当面の問題に動的に調整するANNを開発することです。明らかな影響は、データの一時性です。データセットが連続的でなく、時間とともに変化しない場合、なぜ調整するのでしょうか。 大きな問題は、ディープラーニングの最近の台頭で、それはまだ関連するトピックですか?FFNNは、概念のドリフト問題のニッチを見つけるチャンスですか? スレッドに過大な質問を詰め込むのは怖いですが、これは完全にトピック外ではありません。RNNは知っていますが、私はそれらに限られた(OK、なし、または純粋に理論的な)経験を持っています。動的なアーキテクチャの適応は、RNNのコンテキストでは関連するトピックでなければならない、と私は思います。問題は、すでに回答されているか、そして車輪を再発明するかということです。 PSがメタオプティマイズにクロスポスト

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