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

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

4
たたみ込みニューラルネットワークにはどのくらいのデータが必要ですか?
約1,000,000個のパラメーターを持つたたみ込みニューラルネットワーク(CNN)がある場合、いくつのトレーニングデータが必要ですか(確率的勾配降下を行っていると仮定します)?経験則はありますか? 追記事項:確率的勾配降下(たとえば、1回の反復で64個のパッチ)を実行した場合、〜10000回の反復の後、分類器の精度は大まかな定常値に達することがあります)。これは、多くのデータが必要ないという意味ですか?100k-1000kデータのように。

2
ニューラルネットワークを使用したQラーニングに関する質問
で説明されているようにQラーニングを実装しました。 http://web.cs.swarthmore.edu/~meeden/cs81/s12/papers/MarkStevePaper.pdf 約するために。Q(S、A)次のようなニューラルネットワーク構造を使用します。 活性化シグモイド 入力、入力数+アクションニューロンの1(すべての入力は0〜1にスケーリング) 出力、単一出力。Q値 N個のM隠しレイヤー。 探索方法random 0 <rand()<propExplore 次の式を使用した各学習反復で、 Q-Target値を計算してから、 error = QTarget - LastQValueReturnedFromNN ニューラルネットワークを介してエラーを逆伝播します。 Q1、私は正しい軌道に乗っていますか?私は、アクションごとに1つの出力ニューロンを持つNNを実装するいくつかの論文を見てきました。 Q2、私の報酬関数は-1と1の間の数を返します。アクティベーション関数がシグモイド(0 1)の場合、-1と1の間の数を返すことは問題ありませんか Q3、十分なトレーニングインスタンスが与えられたこの方法の理解から、最適なポリシーを見つけるために隔離する必要がありますか?XORのトレーニングでは、2k回の反復後に学習する場合がありますが、40k 50kの反復後でも学習しない場合があります。

3
ニューラルネットの隠された活性化関数の選択
NNの隠れ層アクティベーション関数の選択は必要に応じて行う必要があることを別の場所で読みました。つまり、-1から1の範囲の値が必要な場合はtanhを使用し、0から1の範囲にシグモイドを使用します 私の質問は、自分のニーズがどのようにわかるのかということです。入力レイヤーの範囲に基づいていますか。たとえば、入力レイヤーの値の全範囲を網羅できる関数を使用するか、入力レイヤーの分布を何らかの形で反映します(ガウス関数)。それとも、問題/ドメイン固有のニーズであり、この選択を行うには経験/判断が必要ですか?それとも単に、「相互検証された最良の最小トレーニングエラーを与えるものを使用する」か?

1
ニューラルネットワークでバイナリ入力と連続入力が混在する場合の対処方法
Rでnnetパッケージを使用して、コンドミニアム(個人プロジェクト)の不動産価格を予測するANNを構築しようとしています。私はこれに新しく、数学の背景を持っていないので、私と一緒に裸にしてください。 バイナリと連続の両方の入力変数があります。たとえば、元々はyes / noだった一部のバイナリ変数は、ニューラルネット用に1/0に変換されました。他の変数はのように連続していSqftます。 入力データのサンプル すべての値を0〜1のスケールで正規化しています。たぶん、Bedrooms及びBathroomsその範囲のみであるため、正規化すべきではありません0-4? これらの混合入力は、ANNに問題を引き起こしますか?私は大丈夫な結果を得ましたが、綿密な調査で、ANNが特定の変数に選択した重みは意味をなさないようです。私のコードは下にありますが、提案はありますか? ANN <- nnet(Price ~ Sqft + Bedrooms + Bathrooms + Parking2 + Elevator + Central.AC + Terrace + Washer.Dryer + Doorman + Exercise.Room + New.York.View,data[1:700,], size=3, maxit=5000, linout=TRUE, decay=.0001) 更新: バイナリ入力を各値クラスの個別のフィールドに分割することに関する以下のコメントに基づいて、私のコードは次のようになりました。 ANN <- nnet(Price ~ Sqft + Studio + X1BR + X2BR + …

3
ボルツマンマシンでの重みの学習
私はボルツマンマシンがどのように機能するかを理解しようとしていますが、重量がどのように学習されるかについてはよくわかりませんし、明確な説明を見つけることができませんでした。次は正しいですか?(また、適切なボルツマンマシンの説明へのポインターも素晴らしいでしょう。) 可視ユニットのセット(たとえば、画像の黒/白ピクセルに対応)と非表示ユニットのセットがあります。重みは何らかの方法で初期化され(たとえば、[-0.5、0.5]から均一に)、停止ルールに達するまで次の2つのフェーズを交互に繰り返します。 固定フェーズ-このフェーズでは、可視ユニットのすべての値が固定されているため、非表示ユニットの状態のみを更新します(ボルツマン確率的活性化規則に従って)。ネットワークが平衡に達するまで更新します。平衡に達すると、さらに回(定義済みの)更新を続け、(はノードおよび)の平均を追跡します。これらの平衡の更新後、を更新します。ここでNNNNNNバツ私バツjバツ私バツjx_i x_jバツ私、 xjバツ私、バツjx_i, x_j私私ijjjNNNw私j = w私j + 1CV E R A Ge (x私バツj)w私j=w私j+1CAverage(バツ私バツj)w_ij = w_ij + \frac{1}{C} Average(x_i x_j)CCCある程度の学習率です。(または、最後にバッチ更新を行う代わりに、平衡ステップ後に更新しますか?) フリーフェーズ-このフェーズでは、すべてのユニットの状態が更新されます。平衡に達したら、同様にN 'をさらに数回更新し続けますが、最後に相関を追加する代わりに、を引きます。w私はj= w私はj− 1CV E R A Ge (x私バツj)w私j=w私j−1CAverage(バツ私バツj)w_{ij} = w_{ij} - \frac{1}{C} Average(x_i x_j) 私の主な質問は次のとおりです。 クランプフェーズにいるときはいつでも、可視ユニットを学習したいパターンの1つにリセットします(そのパターンの重要性を表す頻度で)、または可視ユニットを元の状態のままにしますか自由相の終わりに? 各フェーズの終わりに重みのバッチ更新を行いますか、それともフェーズの各平衡ステップで重みを更新しますか?(または、どちらかでいいですか?)

1
キャレットglmnetとcv.glmnet
glmnetwithin caretを使用して最適なラムダを検索cv.glmnetし、同じタスクを実行するために使用することの比較には、多くの混乱があるようです。 次のような多くの質問が提起されました。 分類モデルtrain.glmnet対cv.glmnet? キャレットでglmnetを使用する適切な方法は何ですか? 「キャレット」を使用して「glmnet」を相互検証する しかし、答えはありません。これは、質問の再現性による可能性があります。最初の質問に続いて、非常に似た例を挙げますが、同じ質問があります:推定されるラムダはなぜそんなに違うのですか? library(caret) library(glmnet) set.seed(849) training <- twoClassSim(50, linearVars = 2) set.seed(849) testing <- twoClassSim(500, linearVars = 2) trainX <- training[, -ncol(training)] testX <- testing[, -ncol(testing)] trainY <- training$Class # Using glmnet to directly perform CV set.seed(849) cvob1=cv.glmnet(x=as.matrix(trainX),y=trainY,family="binomial",alpha=1, type.measure="auc", nfolds = 3,lambda = seq(0.001,0.1,by = …

8
偶数と奇数を区別するためにニューラルネットワークをトレーニングする
質問:数字自体を入力としてのみ使用して、奇数と偶数を区別するようにNNをトレーニングすることは可能ですか? 次のデータセットがあります。 Number Target 1 0 2 1 3 0 4 1 5 0 6 1 ... ... 99 0 100 1 2つの入力ニューロン(変数が1つ、もう1つがバイアスニューロン)、隠れ層の9つのニューロン、非常に単純な遺伝的アルゴリズムを使用して1つの出力ニューロンでNNをトレーニングしました。各エポックで、2組の重み「ファイト" 互いに対して; エラーが最も大きいものが失われ、勝者の修正バージョンに置き換えられます。 このスクリプトは、AND、OR、XOR演算子などの単純な問題を簡単に解決しますが、奇数と偶数を分類しようとすると行き詰まります。今のところ、100のうち53の数字を特定するのが最善で、数時間かかりました。入力を正規化してもしなくても、違いはないようです。 不正行為をしたい場合は、データを前処理して、%2を入力としてNNにフィードすることもできますが、それはしたくありません。NNは、モジュロ演算子を含むすべての関数を近似できる必要があります(信じています)。私は何を間違えていますか?


1
ディープニューラルネットワークの感度分析
既に回答された質問(1層フィードフォワードネットワークからの重みの重要性の抽出)に続いて、ニューラルネットワークの入力の関連性に関する推論を探しています。 対象の出力ノードからレイヤーを逆方向にたどって入力の重要度を再構築するのが難しいか時間がかかる深いネットを考えると、ニューラルネットワークの感度分析を実行する際に、基本的にわずかに変化する理論的な枠組みがあるのではないかと思いました入力し、対象のouptutノードがどのように変化するかを検討します。 ニューラルネットワークで何らかの感度分析を実行する標準的な方法はありますか? もしあれば、Pythonコードを歓迎します。

6
ニューラルネットワークのミニバッチトレーニングでのデータのシャッフル
ニューラルネットワークのミニバッチトレーニングでは、エポックごとにトレーニングデータをシャッフルすることが重要だと聞きました。各エポックのシャッフルが役立つ理由を誰かが説明できますか? Google検索から、次の回答が見つかりました。 トレーニングが迅速に収束するのに役立ちます トレーニング中の偏りを防ぎます モデルがトレーニングの順序を学習するのを防ぎます しかし、これらの効果がランダムシャッフルによって引き起こされる理由を理解するのは困難です。誰もが直感的な説明を提供できますか? おかげで、

1
ディープラーニングのAdamオプティマイザーにバイアス補正用語を含めることが重要なのはなぜですか?
私はディープラーニングのAdamオプティマイザーについて読んでいて、Begnio、Goodfellow、Courtville の新しい本Deep Learningで次の文章に出会いました。 Adamは、原点での初期化を説明するために、1次モーメント(運動量項)と(非中心化)2次モーメントの両方の推定値に対するバイアス補正を含めます。 これらのバイアス補正項を含める主な理由は、mt=0mt=0m_t = 0およびvt=0vt=0v_t = 0の初期化のバイアスを何らかの形で除去するためだと思われます。 私はそれが何を意味するのか100%確信していませんが、おそらく1番目と2番目の瞬間がゼロから始まり、何らかの形でゼロから始まることはトレーニングに不公平な(または有用な)方法で値をゼロに近づけることを意味するようです? 私はそれがもう少し正確に何を意味するのか、そしてそれがどのように学習にダメージを与えるのかを知りたいのですが。特に、オプティマイザーにバイアスをかけないことは、最適化に関してどのような利点がありますか? これは、ディープラーニングモデルのトレーニングにどのように役立ちますか? また、偏りがない場合はどういう意味ですか?偏りのない標準偏差の意味はよく知っていますが、この文脈でそれが何を意味するのかは明確ではありません。 バイアス補正は本当に大したことなのか、それともAdamオプティマイザーの論文で誇張されているのか? 私が元の紙を理解しようと一生懸命努力したことは知っているが、元の紙を読んだり再読したりすることはほとんどない。私はこれらの質問のいくつかがそこで答えられるかもしれないと思いますが、答えを解析できないようです。

3
ニューラルネットワーク-バイナリ対離散/連続入力
(1; 3)のように、すべての入力ノード(バックプロパゲーションの有無にかかわらず)のフィードフォワードネットワークの入力として、離散または連続正規化値よりもバイナリ値(0/1)を好む理由はありますか? もちろん、私はどちらかの形式に変換できる入力についてのみ話します。たとえば、複数の値を取ることができる変数がある場合、それらを1つの入力ノードの値として直接供給するか、各離散値のバイナリノードを形成します。そして、想定されるのは、可能な値の範囲がすべての入力ノードで同じになるということです。両方の可能性の例については、写真を参照してください。 このトピックについて研究している間、私はこれに関する冷たくて難しい事実を見つけることができませんでした。多かれ少なかれ、最終的には常に「試行錯誤」になるようです。もちろん、すべての離散入力値のバイナリノードは、より多くの入力層ノード(したがって、より多くの隠れ層ノード)を意味しますが、1つのノードに同じ値を持ち、隠れ層? それは「試してみる」だけであることに同意しますか、またはこれについて別の意見がありますか?

3
ニューラルネットワークに特徴選択/エンジニアリングが必要なのはなぜですか?
特にkaggleコンペティションのコンテキストでは、モデルのパフォーマンスはすべて機能の選択とエンジニアリングに関するものであることに気付きました。従来の/古い学校のMLアルゴリズムを処理する場合にそうなる理由は十分に理解できますが、ディープニューラルネットワークを使用する場合にそうなる理由はわかりません。 深層学習の本の引用: ディープラーニングは、他のより単純な表現で表現される表現を導入することにより、表現学習におけるこの中心的な問題を解決します。深層学習により、コンピューターはより単純な概念から複雑な概念を構築できます。 したがって、「情報がデータ内にある」場合、十分に深く、十分にパラメーター化されたニューラルネットワークは、十分なトレーニング時間が与えられた場合に適切な機能を取得すると常に考えていました。

1
ニューラルネットワークでのボトルネックレイヤーの意味
私はFaceNetの論文を読んでいて、導入部の3番目の段落で次のように述べています。 ディープネットワークに基づく以前の顔認識アプローチは、一連の既知の顔IDでトレーニングされた分類レイヤーを使用し、中間のボトルネックレイヤーを、トレーニングで使用されるIDセットを超えて認識を一般化するために使用される表現として採用します。 中間のボトルネックレイヤーとは何を意味しているのでしょうか。

1
ディープQラーニングのエピソードとエポックの違いは何ですか?
有名な論文「深層強化学習でアタリを弾く」(pdf)を理解しようとしています。エポックとエピソードの違いはわかりません。アルゴリズムでは、外側のループはエピソードの上にありますが、図では、x軸に「エポック」というラベルが付けられています。強化学習のコンテキストでは、エポックの意味がわかりません。エポックはエピソードループの外側のループですか? 111222

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