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

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

2
ニューラルネットワーク:SGDのエポックはミニバッチのエポックと同じですか?
SGDでは、エポックはトレーニングデータの完全なプレゼンテーションであり、エポックごとにN個の重み更新があります(トレーニングセットにN個のデータ例がある場合)。 代わりにミニバッチを実行する場合、たとえば20のバッチで実行します。1つのエポックはN / 20の重みの更新で構成されますか、それとも同じ数の重みの更新が含まれるように20ずつ「延長」されるエポックですか? いくつかの論文のように私はこれを尋ねます学習は述べられた時代の数に対して速すぎるようです。

1
KerasでLSTMまたはGRUをトレーニングすると、突然精度が低下する
私のリカレントニューラルネットワーク(LSTM、またはGRU)は、私が説明できない方法で動作します。トレーニングが開始され、突然精度が低下する(そして、損失が急速に増加する)ときに、トレーニングとテストの両方のメトリックが適切にトレーニングされます(結果はかなり良く見えます)。時々、ネットはおかしくなり、ランダムな出力を返し、時々(与えられた3つの例の最後のように)、すべての入力に同じ出力を返し始めます。 あなたが持っています。この動作のための任意の説明を?どんな意見でも大歓迎です。以下のタスクの説明と図を参照してください。 タスク:単語からword2vecベクトルを予測する 入力:独自のword2vecモデル(正規化済み)があり、ネットワークに単語(文字で文字)を入力します。単語にパディングします(下の例を参照)。 例:フットボールという単語があり、100次元幅のword2vecベクトルを予測したいとします。次に、入力は$football$$$$$$$$$$です。 動作の3つの例: 単層LSTM model = Sequential([ LSTM(1024, input_shape=encoder.shape, return_sequences=False), Dense(w2v_size, activation="linear") ]) model.compile(optimizer='adam', loss="mse", metrics=["accuracy"]) 単層GRU model = Sequential([ GRU(1024, input_shape=encoder.shape, return_sequences=False), Dense(w2v_size, activation="linear") ]) model.compile(optimizer='adam', loss="mse", metrics=["accuracy"]) 二重層LSTM model = Sequential([ LSTM(512, input_shape=encoder.shape, return_sequences=True), TimeDistributed(Dense(512, activation="sigmoid")), LSTM(512, return_sequences=False), Dense(256, activation="tanh"), Dense(w2v_size, activation="linear") ]) model.compile(optimizer='adam', loss="mse", …

2
バッチ正規化やReLuユニットを使用せずに、非線形性を飽和させるための消失勾配に対処する方法はありますか?
私は、消滅(または主に消滅しているが、勾配問題の爆発)に苦しむ非線形性を持つネットワークを訓練したかった。(現在の)標準的な方法は、バッチ正規化1 [BN] 1を使用するか、単に非線形性を放棄してReLu 整流器/ ReLuユニットを使用することです。 私は2つのことを望んでいました: 私の非直線性に固執するので、それを放棄してReLuを使用したくありません(つまり、ReLuは許可されません!)。非線形性の再パラメータ化は問題ありません。たとえば、ようにその前に乗法を置くとしましょう。θ (s )θ(s)\theta(s) 理想的には、あまりにも多くのバッチ正規化に依存したくなかった(または、少なくともそれが使用された場合、元の論文での使用方法以外の新しい方法で使用するか、多くの非直線性に一般化する必要がある)。バッチ正規化を避けたかった理由の1つは、特定の非線形性に対してのみ機能するように見えるためです。たとえば、シグモイドの場合、tanhですが、他の非線形性に対してどのように機能するかは不明です、とガウシアンは言います。 これらの制約がある理由は、特定の非線形性に対してのみ機能するソリューションをハッキングしたり、単に問題を回避することで問題を回避したりするのではなく、直接問題を数えることによって勾配を消失または爆発させる問題に対処したいためですReLu。 これらの2つの制約があるため、勾配の消失問題に対処するための代替方法は何ですか?(考慮される別の非線形性は、ユークリッドノルムの事前アクティブ化、シグモイド、tanhなどのRBFガウスカーネルです) 私が考えていた(漠然とした)考えられるアイデアは次のとおりです。 飽和状態の非線形性が既に飽和状態にならないように、適切な初期化を行ってください(飽和状態の非線形性により、勾配がゼロに近くなります)。 RBFの場合も同様に、ガウシアンは主に0に近い大きな値を持っているため(つまり、フィルターがそのアクティブ化またはデータに類似している場合)、適切な初期化が重要になる場合があります。したがって、大きすぎたり小さすぎたりすると、同様の勾配の問題が消えます。 これが制約が強すぎるかどうかは本当にわかりませんが、元の論文での従来の提案(またはおそらく、より大きな非線形性、現在のところ、ほとんどの研究は、私が知る限り、シグモイドで機能することを示すことです)。 もう1つのアイデアは、非線形性を使用する代わりにするです。場合以前のレイヤーで「消失」するのを避けるために、非線形性がレイヤーごとに逆方向に複数回乗算されないことを意味します。学習ルールが不安定になる可能性があるため、レギュラライザーを使用することをお勧めします。θ (Z )A ∈ R A &gt; 1θ (z)θ(z)\theta(z)θ (Z)aθ(z)a \theta(z) a∈Ra∈Ra \in \mathbb{R}a&gt;1a&gt;1a > 1 本質的に消滅勾配を処理する(または少なくとも各パラメーターを別々に更新する)オプティマイザー。たとえば、その層が入力に近い場合、学習ステップは大きくなるはずです。学習アルゴリズムがこれを単独で考慮に入れて、消失勾配に対処するのは良いことです。 バッチノルムまたはReLu以外の消失勾配に対処する方法について提案がある場合は、それらについてお聞かせください。 勾配の消失は主に非線形性がという特性を持っているために発生するようです であり、で、それを何度も掛けた後、爆発または消失します。問題を明示的に言って解決するのに役立つかもしれません。問題は、下位層が更新されないか、ネットワークを介した信号を妨害することです。順方向パスと逆方向パスの間(および初期化時だけでなくトレーニング中も)、この信号がネットワークを流れるように維持するとよいでしょう。| θ ′(s )| &lt; 1|a|&lt;1|a|&lt;1 |a| < 1|θ′(s)|&lt;1|θ′(s)|&lt;1 | \theta'(s) | < 1 1:Ioffe …

1
最適に設計されたニューラルネットワークには、トレーニングされたときに「死んだ」ReLUニューロンが含まれていませんか?
一般に、死んだReLUニューロンが少なくなるように、ニューロンを減らしてニューラルネットワークを再トレーニングする必要がありますか?死んだReLUについて対立する意見を読みました。死んだReLUはスパース性を促進するので良いと言う情報源もあります。他の人たちは、死んだReLUは永遠に死んでいて学習を妨げているので悪いと言います。幸せな媒体はありますか?

1
異なる周波数の正弦波を学習するRNN
再帰型ニューラルネットワークのウォームアップとして、別の周波数の別の正弦波から正弦波を予測しようとしています。 私のモデルは単純なRNNであり、そのフォワードパスは次のように表すことができます。 rtzt= σ(WI N⋅バツt+WR E C⋅rt − 1))=WO U T⋅rtrt=σ(W私ん⋅バツt+Wrec⋅rt−1))zt=Woあなたt⋅rt \begin{aligned} r_t &= \sigma(W_{in} \cdot x_t + W_{rec} \cdot r_{t-1}))\\ z_t &= W_{out} \cdot r_t \end{aligned} どこ σσ\sigma sigmoïd関数です。 入力と期待される出力の両方が同じ周波数の2つの正弦波であるが(おそらく)位相シフトがある場合、モデルは適切な近似に適切に収束できます。 ただし、次の場合、モデルは極小値に収束し、常にゼロを予測します。 入力: x = s i n (t )バツ=s私ん(t)x = sin(t) 予想される出力: y= s i n (t2)y=s私ん(t2)y = sin(\frac{t}{2}) …

3
SVDを実行して欠損値を代入する方法、具体例
SVDを適用する前に欠損値を処理する方法に関する素晴らしいコメントを読みましたが、簡単な例でどのように機能するか知りたいです。 Movie1 Movie2 Movie3 User1 5 4 User2 2 5 5 User3 3 4 User4 1 5 User5 5 1 5 上記のマトリックスを考えると、NAの値を削除すると、User2とUser5しかなくなります。これは、私のUが2×kになることを意味します。しかし、欠損値を予測する場合、Uは5×kである必要があります。これは、特異値とVで乗算できます。 上記のマトリックスで、最初に欠損値のあるユーザーを削除してからSVDを適用して、欠損値を記入する人はいますか?数学記号を使いすぎずに、適用した手順の非常に簡単な説明を提供し、答えを実用的なものにしてください(つまり、数値に別の数値を掛けると答えが得られます)。 次のリンクを読みました。 stats.stackexchange.com/q/33142 stats.stackexchange.com/q/31096 stats.stackexchange.com/q/33103
8 r  missing-data  data-imputation  svd  sampling  matlab  mcmc  importance-sampling  predictive-models  prediction  algorithms  graphical-model  graph-theory  r  regression  regression-coefficients  r-squared  r  regression  modeling  confounding  residuals  fitting  glmm  zero-inflation  overdispersion  optimization  curve-fitting  regression  time-series  order-statistics  bayesian  prior  uninformative-prior  probability  discrete-data  kolmogorov-smirnov  r  data-visualization  histogram  dimensionality-reduction  classification  clustering  accuracy  semi-supervised  labeling  state-space-models  t-test  biostatistics  paired-comparisons  paired-data  bioinformatics  regression  logistic  multiple-regression  mixed-model  random-effects-model  neural-networks  error-propagation  numerical-integration  time-series  missing-data  data-imputation  probability  self-study  combinatorics  survival  cox-model  statistical-significance  wilcoxon-mann-whitney  hypothesis-testing  distributions  normal-distribution  variance  t-distribution  probability  simulation  random-walk  diffusion  hypothesis-testing  z-test  hypothesis-testing  data-transformation  lognormal  r  regression  agreement-statistics  classification  svm  mixed-model  non-independent  observational-study  goodness-of-fit  residuals  confirmatory-factor  neural-networks  deep-learning 

2
Recurrent Neural Network(RNN)トポロジ:なぜ常に完全に接続されているのですか?
私は、リカレントニューラルネットワーク(RNN)と長期短期記憶(LSTM)について読み始めました... 取得できないことが1つあります。非表示層の各インスタンスのニューロンは、以前のself /自分自身(そしておそらく他のカップル)。 完全に接続されていることが本当に必要ですか?ストレージと実行時間を大幅に節約でき、必要がない場合はさらに「ルックバック」できるようです。 これが私の質問の図です... これは、反復する非表示レイヤー間の「シナプス」の「W ^ hh」行列に対角線(または対角線に近い)要素のみを保持してもよいかどうかを尋ねることに相当すると思います。私はこれを実行中のRNNコード(Andrew Traskの2進加算のデモに基づく)を使用して実行しました-つまり、すべての非対角項をゼロに設定しました-ひどく実行されましたが、対角線に近い項、つまりバンド線形システム3要素幅-完全に接続されたバージョンと同じように機能するように見えました。入力と非表示レイヤーのサイズを増やしたときでも...運が良かったのでしょうか? 私はLai Wan Chanの論文を見つけました。彼は、線形活性化関数の場合、ネットワークを「ヨルダンの標準形式」(つまり、対角要素と近くの要素)に縮小することが常に可能であることを示しています。しかし、そのような証明はシグモイドやその他の非線形活性化には利用できないようです。 また、「部分的に接続された」RNNへの参照は、2003年頃にほとんど姿を消しているように見え、過去数年間に読んだ処理はすべて完全に接続されていると想定しているようです。それで...それはなぜですか?


1
ニューラルネットワークの内部動作の幾何学的直観を理解するにはどうすればよいですか?
私は最近ANNの背後にある理論を研究しており、非線形マルチクラス分類の能力の背後にある「魔法」を理解したいと思いました。これにより、この近似がどのようにして達成されるかを幾何学的に説明するこのウェブサイトに私を導きました。 ここに私がそれを(3Dで)理解した方法があります。非表示のレイヤーは、次のような3Dステップ関数(またはタワー関数)を出力すると考えることができます。 著者は、そのような複数のタワーを使用して、任意の関数を近似することができると述べています。次に例を示します。 これは理にかなっているようですが、著者の構成は、概念の背後にある直感を提供するようにかなり工夫されています。 しかし、任意のANNが与えられた場合、これをどのように正確に検証できますか?これが私が知りたい/理解したいことです: 私の知る限り、近似は滑らかな近似ですが、この「直感」は離散近似を提供するようですが、それは正しいですか? 塔の数は隠れ層の数に基づいているようです-上記の塔は2つの隠れ層の結果として作成されています。これを(3Dの例で)1つの非表示レイヤーだけで確認するにはどうすればよいですか? タワーは、いくつかの重みがゼロに強制されて作成されますが、これまでに試してみた一部のANNがこれに該当することはありません。それは本当にタワー機能でしょうか?4から辺でほぼ円に近いものは何ですか?(著者はそれが事実であると言いますが、それを自己学習として残します)。んんn ANNを単一の非表示レイヤーで近似できる任意の3D関数の3Dでのこの近似機能を本当に理解したいと思います。この近似が多次元の直感を定式化するためにどのように見えるかを確認したいですか? これが私が助けることができると私が考えていることです: ような任意の3D関数を取ります。f(x1、x2)= x21+ x22+ 3f(バツ1、バツ2)=バツ12+バツ22+3f(x_1,x_2) = x^2_1 + x^2_2 + 3 のトレーニングセットを生成します。たとえば、1000データポイントの多くのポイントが、曲線の上と下のいくつかにあります。曲線上のものは「陽性クラス」としてマークされ(1)、「陰性クラス」としてマークされないもの(0)(x1、x2)(バツ1、バツ2)(x_1,x_2) このデータをANNに送り、1つの隠れ層(約2〜6個のニューロン)で近似を視覚化します。 この構成は正しいですか?これはうまくいくでしょうか?これを行うにはどうすればよいですか?私はこれを自分で実装するための逆伝播にまだ熟達しておらず、この点についてより明確で方向性を模索しています。これを示す既存の例が理想的です。

3
TensorFlowの計算モデルで、一般的な機械学習アルゴリズムを実装することは可能ですか?
https://www.tensorflow.org/ GitHubで見たTensorFlowのプロジェクトはすべて、ある種のニューラルネットワークモデルを実装しています。TensorFlowがDAGよりも改善されていることを考えると(これはもはや非循環ではありません)、いくつかの固有の欠点により一般的な機械学習モデルに適さなくなるのではないかと思っていましたか? TensorFlowの計算モデルで、一般的な機械学習アルゴリズムを実装することは可能ですか?

3
数値勾配チェック:どれくらい近いですか?
たたみ込みニューラルネットワークを作成し、数値勾配チェックを使用して勾配が正しく計算されていることを確認したいと思いました。問題は、どれだけ近いかということです。 私のチェック機能は、計算された導関数、数値的に近似された導関数、2つの値の差、および2つの値が同じ符号を持っているかどうか(1つは正でもう1つは負であるかどうか)重量。 私の主な懸念は、完全に接続されたすべてのレイヤーと最初のレイヤーを除くすべての畳み込みレイヤーの違いが似ていることです。2つの数字の最初の9〜13文字が一致します。いいですね。しかし、最初の畳み込み層の重みでは、一致する小数点以下の桁数が最大で12になる場合がありますが、3の場合もあります。それで十分ですか、それともエラーの可能性がありますか? 注意すべき1つの良い点は、2つの値の符号が常に一致していることです。これは、動きの大きさが少しずれていても、ネットワークは常に正しい方向に動きます。しかし、それが問題です...それがオフになっている可能性はありますか?

1
問題固有の損失関数の作成
問題の説明 単純なMSE回帰よりもはるかに洞察に富んだ損失関数が存在する可能性があると感じている問題について、ネットワーク構築を開始しています。 私の問題は、マルチカテゴリ分類を扱います(これについて私が何を意味するかについては、SOに関する私の質問を参照してください)。ここで、考慮すべきカテゴリ間の距離または関係が定義されています。 もう1つのポイントは、存在する発砲カテゴリーの数によってエラーが影響を受けることはないということです。つまり、0.1ずつずれた5つの発砲カテゴリのエラーは、0.1ずつずれた1つの発砲カテゴリと同じになります。(発砲とは、それらがゼロ以外、またはあるしきい値を超えていることを意味します) キーポイント マルチカテゴリー分類(一度に複数発火) カテゴリー間の関係 発砲カテゴリーの数は損失に影響しないはずです: 私の試み 平均二乗誤差は、開始するのに適しているようです: これは、カテゴリーごとに考慮しているだけです。これは、私の問題では依然として価値がありますが、全体像の大部分を見逃しています。 これが、カテゴリー間の距離の考えを修正するための私の試みです。次に、発火するカテゴリの数を考慮します(これを v と呼びます)。 私の質問 私は統計学の背景が非常に弱いです。その結果、このような問題を解決するためのツールはベルトにあまりありません。私が求めていることの包括的なトピックは、「コスト関数を形成するとき、どのようにしてコストの複数の測定値を組み合わせるのですか?それとも、どのような手法を適用できるのですか?」。また、私の思考プロセスに欠陥があった場合は、それを公開して改善していただければ幸いです。 説明せずに誰かが単独で修正するのではなく、なぜ私の間違いが間違いなのかを教えられることを大切にしています。 この質問の一部が明確でないか、改善できる場合は、お知らせください。

1
2つ以上のRStudioセッションを同時に実行しても安全ですか?[閉まっている]
閉まっている。この質問はトピックから外れています。現在、回答を受け付けていません。 この質問を改善してみませんか? 質問を更新することがありますので、話題のクロス検証済みのため。 4年前休業。 私はいくつかのニューラルネットワークのベンチマークに取り組んでおり、完了するまでにかなりの時間がかかります。そのため、複数のRStudioセッションを使用してそれらを同時に実行しています。これは安全ですか?つまり、ニューラルネットワークのパラメーターをわずかに変更して同じスクリプトを実行したため、変数の観点からは安全です。変数はこれらのセッションの影響を受けていますか?それらは重なりますか? たとえば、カウンター変数がある場合、両方のセッションから増加しますか?

1
ディープラーニングが少量のデータでうまく機能しないのはなぜですか?
私はディープラーニングが初めてなので、これは簡単な質問かもしれません。しかし、ディープラーニング(またはニューラルネットワーク)が小さなラベル付きデータでうまく機能しないのはなぜでしょうか。私が読んだ研究論文が何であれ、それらのデータセットは巨大です。私たちの脳はそれ自体を訓練するのに多くの時間を費やすので、直感的には驚くことではありません。しかし、そのような場合にニューラルネットワークがうまく機能しない数学的証明や理由はありますか?

2
勾配は、展開されたリカレントニューラルネットワークでどのように伝播しますか?
簡単な例を通して、rnnを使用してシーケンスを予測する方法を理解しようとしています。これは、1つの入力、1つの非表示のニューロン、1つの出力で構成される、私の単純なネットワークです。 隠れたニューロンはシグモイド関数であり、出力は単純な線形出力と見なされます。したがって、ネットワークは次のように機能すると思います:隠しユニットが状態sで始まり、長さシーケンスであるデータポイントを処理している場合、、それから:(x 1、x 2、x 3)333(x1、x2、x3)(バツ1、バツ2、バツ3)(x_1, x_2, x_3) 時間1で、予測値はp1p1p^1 p1= u × σ(w s + v x1)p1=あなた×σ(ws+vバツ1)p^1 = u \times \sigma(ws+vx^1) 時に2、私たちは持っています p2= u × σ( w × σ(w s + v x1)+ v x2)p2=あなた×σ(w×σ(ws+vバツ1)+vバツ2)p^2 = u \times \sigma\left(w \times \sigma(ws+vx^1)+vx^2\right) 時に3、私たちは持っています p3= u × σ( w × σ( w × …

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