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

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

2
CNNザビエル重みの初期化
一部のチュートリアルで、「Xavier」の重みの初期化(論文:ディープフィードフォワードニューラルネットワークのトレーニングの難しさを理解する)がニューラルネットワークの重みを初期化する効率的な方法であると述べたことがわかりました。 完全に接続されたレイヤーの場合、これらのチュートリアルには経験則がありました。 Var(W)=2nin+nout,simpler alternative:Var(W)=1ninVar(W)=2nin+nout,simpler alternative:Var(W)=1ninVar(W) = \frac{2}{n_{in} + n_{out}}, \quad \text{simpler alternative:} \quad Var(W) = \frac{1}{n_{in}} ここで、は、正規分布で初期化されたレイヤーの重みの分散で、、は、親と現在のレイヤーのニューロンの量です。Var(W)Var(W)Var(W)ninninn_{in}noutnoutn_{out} 畳み込み層にも同様の経験則がありますか? 畳み込み層の重みを初期化するのに最適な方法を見つけるのに苦労しています。たとえば、重みの形状がであり(5, 5, 3, 8)、カーネルサイズがであるレイヤーでは5x5、3つの入力チャネル(RGB入力)をフィルタリングし、8特徴マップを作成します... 3入力ニューロンの量と見なされますか?またはむしろ75 = 5*5*3、入力は5x5各カラーチャネルのパッチなので、 問題を明確にする具体的な回答か、重みの適切な初期化を見つけ、できればソースをリンクする一般的なプロセスを説明する、より一般的な回答の両方を受け入れます。

2
合計ではなくバッチの平均損失を最小限に抑えることは一般的な方法ですか?
Tensorflowには、CIFAR-10の分類に関するサンプルチュートリアルがあります。チュートリアルでは、バッチ全体の平均クロスエントロピー損失が最小化されます。 def loss(logits, labels): """Add L2Loss to all the trainable variables. Add summary for for "Loss" and "Loss/avg". Args: logits: Logits from inference(). labels: Labels from distorted_inputs or inputs(). 1-D tensor of shape [batch_size] Returns: Loss tensor of type float. """ # Calculate the average cross entropy loss across the …


3
パラメトリックモデルとノンパラメトリックモデルの違いは何ですか?
このリンクのパラメトリックモデルとノンパラメトリックモデルを読み、別の質問のコメントに回答した後、ノンパラメトリックモデルの定義と混同されています。 元々、「パラメトリックvsノンパラメトリック」とは、モデルに分布仮定があるかどうかを意味すると思っていました(パラメトリックまたはノンパラメトリック仮説検定と同様)。しかし、どちらのリソースも、「パラメトリックvsノンパラメトリック」は、モデルのパラメーターの数がデータマトリックスの行の数に依存しているかどうかによって判断できます。 カーネル密度推定(ノンパラメトリック)の場合、このような定義を適用できます。しかし、この定義の下では、モデル内のパラメーターの数はデータマトリックスの行数ではなくニューラルネットワーク構造に依存しているため、ニューラルネットワークをノンパラメトリックモデルにするにはどうすればよいでしょうか。 パラメトリックモデルとノンパラメトリックモデルの違いは何ですか?

2
ニューラルネット:ワンホット変数圧倒的連続?
約20列(20フィーチャ)の未加工データがあります。それらのうちの10個は連続データであり、10個はカテゴリカルです。一部のカテゴリデータには、50個の異なる値(米国の州)が含まれる場合があります。データを前処理した後、10個の連続した列が10個の準備された列になり、10個のカテゴリ値が200個のワンホットエンコード変数のようになります。これらの200 + 10 = 210の機能すべてをニューラルネットに入れると、200の1ホットフィーチャ(10のカテゴリ列)が10の連続フィーチャを完全に支配するのではないかと心配しています。 おそらく、1つの方法は、列などを「グループ化」することです。これは有効な懸念事項ですか?この問題に対処する標準的な方法はありますか? (私はKerasを使用していますが、それほど重要ではないと思います。)

1
深層強化学習が不安定なのはなぜですか?
DeepMindの深層強化学習に関する2015年の論文では、「RLをニューラルネットワークと組み合わせる以前の試みは、学習が不安定であったために大部分失敗しました」と述べています。次に、この論文では、観測全体の相関に基づいて、この原因の一部をリストしています。 誰かがこれが何を意味するのか説明してもらえますか?ニューラルネットワークは、トレーニングには存在するがテストには存在しない可能性のある構造を学習する、過剰適合の形式ですか?それとも別の意味ですか? 論文は次の場所にあります:http : //www.nature.com/nature/journal/v518/n7540/full/nature14236.html そして、私が理解しようとしているセクションは次のとおりです。 強化学習は、ニューラルネットワークなどの非線形関数近似器を使用してアクション値(Qとも呼ばれる)関数を表す場合、不安定であるか、発散することさえ知られています。この不安定性にはいくつかの原因があります。一連の観測に存在する相関関係、Qの小さな更新がポリシーを大幅に変更し、それによってデータ分布を変更する可能性、およびアクション値とターゲット値の相関関係。 これらの不安定性に対処するには、2つの重要なアイデアを使用するQラーニングの新しいバリアントを使用します。最初に、データをランダム化するエクスペリエンスリプレイと呼ばれる生物学的にヒントを得たメカニズムを使用して、観測シーケンスの相関を削除し、データ分布の変化を平滑化しました。第二に、定期的にのみ更新されるターゲット値に向かってアクション値(Q)を調整する反復更新を使用し、それによりターゲットとの相関を減らしました。

2
ニューラルネットワークが簡単にだまされるのはなぜですか?
ニューラルネットワークを「だます」ために手動で画像を作成することに関するいくつかの論文を読みました(以下を参照)。 これは、ネットワークが条件付き確率のみをモデル化するためですか? ネットワークが結合確率p (y 、x )をモデル化できる場合、そのようなケースは引き続き発生しますか?p (y| x)p(y|バツ)p(y|x)p (y、x )p(y、バツ)p(y,x) 私の推測では、そのような人為的に生成された画像はトレーニングデータとは異なるため、確率が低くなります。したがって、p (y | x )がそのような画像に対して高くても、p (y 、x )は低くなければなりません。p (x )p(バツ)p(x)p (y、x )p(y、バツ)p(y,x)p (y| x)p(y|バツ)p(y|x) 更新 私はいくつかの生成モデルを試してみましたが、役に立たないことが判明したので、おそらくこれはMLEの結果でしょうか? 私はKL発散は、損失関数の値として使用した場合の平均ここで、P D A T A(X )損失に影響を与えない小さいです。だから、一致していない不自然な画像のためのpをD A T Aの値のp θは任意とすることができます。pθ(x )pθ(バツ)p_{\theta}(x)pdトンのA(x )pdata(バツ)p_{data}(x)pdトンのApdatap_{data}pθpθp_{\theta} 更新 Andrej Karpathyによるブログを見つけました。 これらの結果は画像、ConvNetsに固有のものではなく、ディープラーニングの「欠陥」でもありません。 ADVERSARIALの例の説明と活用ディープニューラルネットワークは簡単にだまされます:認識できない画像の高信頼性予測

2
オートエンコーダニューラルネットワークの起源は何ですか?
Google、Wikipedia、Google scholarなどで検索しましたが、オートエンコーダーの起源を見つけることができませんでした。おそらく、それは非常に徐々に進化した概念の1つであり、明確な出発点をさかのぼることはできませんが、それでも開発の主なステップの何らかの要約を見つけたいと思います。 オートエンコーダについての章イアン・グッドフェロー、ヨシュア・ベンジオとアーロンCourvilleの深い学習帳には言います: オートエンコーダーのアイデアは、数十年にわたりニューラルネットワークの歴史的景観の一部でした(LeCun、1987; Bourlard and Kamp、1988; Hinton and Zemel、1994)。従来、次元の削減または機能の学習にはオートエンコーダーが使用されていました。 パスカルビンセントによるこのプレゼンテーションは次のように述べています。 実際には、古典的なオートエンコーダーを使用したノイズ除去は、ホップフィールドネットワーク(Hopfield、1982)に代わるものとして、はるか以前に導入されました(LeCun、1987; Gallinari et al。、1987)。 これは、その前に「古典的なオートエンコーダー」が存在していたことを暗示しているようです。LeCunとGallinariはそれらを使用しましたが、発明しませんでした。1987年以前の「クラシックオートエンコーダー」の痕跡は見当たりません。 何か案は?


2
ニューラルネットワークで重みを初期化する際の切り捨てられた正規分布の利点は何ですか?
フィードフォワードニューラルネットワークで接続の重みを初期化する場合、学習アルゴリズムが破れない対称性を避けるために、それらをランダムに初期化することが重要です。 さまざまな場所(TensorFlowのMNISTチュートリアルなど)で見た推奨事項は、標準偏差1を使用して切り捨てられた正規分布を使用することです。、ここでNは特定のニューロン層への入力の数です。1N−−√1N\dfrac{1}{\sqrt{N}}NNN 標準偏差の式により、バックプロパゲーションされた勾配が急速に溶解または増幅されないことが保証されます。しかし、通常の正規分布ではなく、切り捨てられた正規分布を使用している理由がわかりません。まれな異常値の重みを避けるためですか?

2
ニューラルネットワークのバッチ学習方法で重みはどのように更新されますか?
バッチ方式を使用してニューラルネットワークを構築する方法を教えてください。 バッチモードで、トレーニングセットのすべてのサンプルについて、ネットワーク内の各ニューロンの誤差、デルタ、したがってデルタの重みを計算し、重みをすぐに更新する代わりに、それらを累積してから開始することを読みました次のエポックでは、重みを更新します。 また、バッチ方式はオンライン方式に似ていますが、違いはトレーニングセット内のすべてのサンプルのエラーを合計し、平均を取り、それを使用して重みを更新することだけです次のようにオンラインの方法で行います(違いはちょうどその平均です)。 for epoch=1 to numberOfEpochs for all i samples in training set calculate the errors in output layer SumOfErrors += (d[i] - y[i]) end errorAvg = SumOfErrors / number of Samples in training set now update the output layer with this error update all other previous layers go …

1
ディープネットワークのLSTMレイヤーをトレーニングする方法
テキストを分類するために、lstmおよびフィードフォワードネットワークを使用しています。 テキストをワンホットベクトルに変換し、それぞれをlstmにフィードして、単一の表現として要約できるようにします。次に、他のネットワークにフィードします。 しかし、LSTMをトレーニングするにはどうすればよいですか?テキストを順番に分類したいだけです。トレーニングせずにフィードする必要がありますか?分類子の入力レイヤーにフィードできる単一のアイテムとしてパッセージを表したいだけです。 これに関するアドバイスをいただければ幸いです! 更新: lstmと分類子があります。lstmのすべての出力を取得し、それらを平均プールしてから、その平均値を分類器に送ります。 私の問題は、lstmまたは分類子をトレーニングする方法がわからないことです。入力がlstmに対して何であり、分類器の出力がその入力に対して何であるかを知っています。これらは順番にアクティブ化される2つの独立したネットワークであるため、lstmの理想的な出力が何であるかを知る必要があります。これは分類子の入力にもなります。これを行う方法はありますか?

3
畳み込みニューラルネットワークは、行列乗算の代わりに畳み込みをどのように正確に使用しますか?
ディープラーニングに関するヨシュアベンジオの本を読んでいたところ、224ページに次のように書かれています。 畳み込みネットワークは、少なくとも1つの層で一般的な行列乗算の代わりに畳み込みを使用する単純なニューラルネットワークです。 しかし、数学的に正確な意味で「畳み込みによる行列乗算を置き換える」方法を100%確信していませんでした。 本当に関心私は(のように1次元での入力ベクトルのためにこれを定義しているx∈Rdx∈Rdx \in \mathbb{R}^d Iが画像として入力を持っており、2Dでの畳み込みを回避しようとしませんので、)。 たとえば、「通常の」ニューラルネットワークでは、Andrew Ngのメモのように、操作とフィードワードパターンを簡潔に表現できます。 W(l)a(l)=z(l+1)W(l)a(l)=z(l+1) W^{(l)} a^{(l)} = z^{(l+1)} f(z(l+1))=a(l+1)f(z(l+1))=a(l+1) f(z^{(l+1)}) = a^{(l+1)} ここで、z(l)z(l)z^{(l)}は、非線形性を通過する前に計算されたベクトルfffです。非線形性は、ベクトル peroエントリに作用しz(l)z(l)z^{(l)}、a(l+1)a(l+1)a^{(l+1)}は、問題のレイヤーの非表示ユニットの出力/アクティブ化です。 行列の乗算は明確に定義されているため、この計算は明らかですが、行列の乗算を畳み込みに置き換えるだけでは不明確に思えます。すなわち W(l)∗a(l)=z(l+1)W(l)∗a(l)=z(l+1) W^{(l)} * a^{(l)} = z^{(l+1)} f(z(l+1))=a(l+1)f(z(l+1))=a(l+1) f(z^{(l+1)}) = a^{(l+1)} 上記の方程式を数学的に正確に理解するようにします。 行列の乗算を畳み込みに置き換えることに関する最初の問題は、通常、 1行をドット積で識別することです。したがって、a (l )全体が重みにどのように関係し、W (l )で示される次元のベクトルz (l + 1 )にマッピングされるかが明確にわかります。ただし、畳み込みに置き換えた場合、どの行または重みが(l )のどのエントリに対応するかはわかりませんW(l)W(l)W^{(l)}a(l)a(l)a^{(l)}z(l+1)z(l+1)z^{(l+1)}W(l)W(l)W^{(l)}a(l)a(l)a^{(l)}。重みを行列として表すことは実際にはもう理にかなっていることは私にとっても明らかではありません(その点を後で説明する例を提供します) 入力と出力がすべて1Dである場合、その定義に従ってたたみ込みを計算し、特異点を通過させますか? たとえば、入力として次のベクトルがある場合: x=[1,2,3,4]x=[1,2,3,4]x = [1,2,3,4] そして、次の重みがありました(backpropで学習したのかもしれません): W=[5,6,7]W=[5,6,7]W …

2
Rを使用した時系列分析の手順と方法
私は、今後6か月間、商品(石油、アルミニウム、錫など)の価格を予測しようとする小さなプロジェクトに取り組んでいます。予測するそのような変数は12個あり、2008年4月から2013年5月までのデータがあります。 予測についてはどうすればいいですか?私は次のことをしました: Timeseriesデータセットとしてインポートされたデータ すべての変数の季節性はトレンドによって異なる傾向があるため、乗法モデルを使用します。 加算モデルに変換する変数のログを取りました 各変数について、STLを使用してデータを分解しました Holt Winters指数平滑法、ARIMAおよびニューラルネットを使用して予測する予定です。トレーニングとテストとしてデータを分割しました(80、20)。MAE、MPE、MAPE、MASEの少ないモデルを選択する計画。 私はそれを正しくやっていますか? また、ARIMAまたはニューラルネットに渡す前に、データを平滑化する必要がありましたか?はいの場合、何を使用しますか?データは、季節性と傾向の両方を示しています。 編集: 時系列のプロットとデータの添付 Year <- c(2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008, 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2011, 2011, 2011, …

1
ニューラルネットワークから実数値の連続出力を取得する方法
これまでにニューラルネットワークで見たほとんどの例では、ネットワークは分類に使用され、ノードはシグモイド関数で変換されます。ただし、ニューラルネットワークを使用して連続的な実数値を出力したいと思います(現実的には、出力は通常-5〜+5の範囲になります)。 私の質問は: 1. Should I still scale the input features using feature scaling? What range? 2. What transformation function should I use in place of the sigmoid? 私は最初にこれらのレイヤータイプを記述するPyBrainを実装したいと考えています。 だから私は、すべての線形レイヤーである3つのレイヤー(入力、非表示、および出力レイヤー)を開始する必要があると考えていますか?それは合理的な方法ですか?または、シグモイド関数を-5〜5の範囲で「ストレッチ」できますか?

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