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

人工ニューラルネットワーク(ANN)は、「ニューロン」(生物学的ニューロンの特性を模倣するプログラミング構造)で構成されています。ニューロン間の一連の重み付けされた接続により、ネットワーク設計者が実際のシステムのモデルを持たなくても、情報がネットワークを介して伝播し、人工知能の問題を解決できます。


2
ニューラルネットワークとディシジョンフォレストのデータを正規化する方法
20000サンプルのデータセットがあり、それぞれに12の異なる機能があります。各サンプルは、カテゴリ0または1のいずれかにあります。ニューラルネットワークと決定フォレストをトレーニングしてサンプルを分類し、結果と両方の手法を比較できるようにします。 最初に遭遇したのは、データの適切な正規化です。一つの特徴は、範囲内にある、で別の[ 30 、40 ]、ほとんどが、私は異なるソースに読み取るように、入力データの適切な正規化を時々値8と7を取ることが一つの特徴がありますニューラルネットワークにとって重要です。私が知ったように、データを正規化する多くの可能な方法があります、例えば:[ 0 、106][0、106][0,10^6][ 30 、40 ][30、40][30,40] ミニマックス正規化:入力範囲は直線区間に変換され(または[ - 1 、1 ]、その問題していますか?)[ 0 、1 ][0、1][0,1][- 1 、1 ][−1、1][-1,1] Zスコアの正規化:データは平均がゼロで分散が単位に変換されます: yん E W= yo l d−意味するVar−−−√yんew=yold−平均Vary_{new}=\frac{y_{old}-\text{mean}}{\sqrt{\text{Var}}} どの正規化を選択する必要がありますか?意思決定フォレストにも正規化が必要ですか?Zスコアの正規化では、テストデータのさまざまな機能が同じ範囲内にありません。これは問題でしょうか?すべての機能を同じアルゴリズムで正規化して、すべての機能にMin-Maxを使用するか、すべての機能にZスコアを使用するかを決定する必要がありますか? データがマップされる組み合わせがあるまた、ゼロ平均(データの非線形変換を意味し、したがって分散の変化と入力データの他の特徴であろう)を有しているが。[ - 1 、1 ][−1、1][-1,1] これらの質問に答える参考文献が見つからないので、少し迷っています。

1
方法:ディープニューラルネットワークの重みの初期化
難しい学習タスク(高次元、固有のデータの複雑さなど)が与えられると、ディープニューラルネットワークはトレーニングが難しくなります。多くの問題を緩和するには、次のようにします。 ハンドピック品質データを正規化する 別のトレーニングアルゴリズムを選択する(たとえば、勾配降下の代わりにRMSprop) 勾配の急なコスト関数を選択します(例:MSEの代わりにクロスエントロピー) 異なるネットワーク構造を使用する(例:フィードフォワードではなくたたみ込み層) より良い重みを初期化する賢い方法があると聞いたことがあります。例えば、あなたはより良い等級を選ぶことができます:Glorot and Bengio(2010) シグモイド単位の場合: Uniform(-r、r)をサンプリングしますr = 6NI N+ NoU T−−−−−−√r=6N私ん+Noあなたtr = \sqrt{\frac{6}{N_{in} + N_{out}}} または双曲線正接単位: Uniform(-r、r)をサンプリングしますr = 4 6NI N+ NO U T−−−−−−√r=46N私ん+Noあなたtr =4 \sqrt{\frac{6}{N_{in} + N_{out}}} 重みをより適切に初期化する一貫した方法はありますか?

1
目的関数と出力層活性化関数の間のリンクはどの程度柔軟ですか?
多くのニューラルネットワークパッケージでは、最小化する目的関数と出力層のアクティブ化関数をペアにするのが標準のようです。 たとえば、回帰に使用される線形出力層の場合、二乗誤差目的関数を持つことは標準的です(多くの場合、選択肢は1つだけです)。もう1つの通常の組み合わせは、ロジスティック出力とログ損失(またはクロスエントロピー)です。さらにもう1つは、ソフトマックスとマルチログ損失です。 表記法を使用すると、はアクティベーション前の値(重みの合計に前のレイヤーのアクティベーションを掛けたもの)、aはアクティベーション、yはトレーニングに使用されるグラウンドトゥルース、iは出力ニューロンのインデックスです。zzzaaayyy私私i 線形活性化は2乗誤差1を伴いますai=ziai=zia_i=z_i12∑∀i(yi−ai)212∑∀i(yi−ai)2\frac{1}{2} \sum\limits_{\forall i} (y_i-a_i)^2 シグモイド活性化 logloss /クロスエントロピ目的と進む-Σ∀I(YI*LOG(I)+(1-YI)*LOG(1-I))ai=11+e−ziai=11+e−zia_i = \frac{1}{1+e^{-z_i}}−∑∀i(yi∗log(ai)+(1−yi)∗log(1−ai))−∑∀i(yi∗log(ai)+(1−yi)∗log(1−a私))-\sum\limits_{\forall i} (y_i*log(a_i) + (1-y_i)*log(1-a_i)) Softmaxアクティベーションa私= ez私Σ∀ Jezja私=ez私Σ∀jezja_i = \frac{e^{z_i}}{\sum_{\forall j} e^{z_j}}− ∑∀ 私(y私∗ l o g(a私))−Σ∀私(y私∗log(a私))-\sum\limits_{\forall i} (y_i*log(a_i)) それらは私が知っているものであり、まだ聞いていないことがたくさんあると思います。 yyy ただし、二乗誤差の目的でシグモイド出力を試すことはそれほど悪くないようです。安定していて、少なくとも収束する必要があります。 δEδzδEδz\frac{\delta E}{\delta z}EEEtanh ニューラルネットワークのアーキテクチャを設計するときに、出力のアクティブ化と目的関数の「非標準」の組み合わせを使用する、または使用する必要がある状況はありますか?

1
以前のたたみ込み層のデルタ項と重みを考慮して、たたみ込み層のデルタ項を計算するにはどうすればよいですか?
2つの畳み込み層(c1、c2)と2つの非表示層(c1、c2)を持つ人工ニューラルネットワークをトレーニングしようとしています。標準のバックプロパゲーションアプローチを使用しています。バックワードパスでは、前のレイヤーの誤差、前のレイヤーの重み、現在のレイヤーのアクティベーション関数に関するアクティベーションの勾配に基づいて、レイヤーの誤差項(デルタ)を計算します。より具体的には、レイヤーlのデルタは次のようになります。 delta(l) = (w(l+1)' * delta(l+1)) * grad_f_a(l) 通常のレイヤーに接続するc2の勾配を計算できます。私はh1の重みにデルタを掛けます。次に、その行列をc2の出力の形式に再形成し、活性化関数の勾配を掛けて、完了です。 今私はc2のデルタ項を持っています-これはサイズの4D行列です(featureMapSize、featureMapSize、filterNum、patternNum)。さらに、c2の重みがあります。これは、サイズの3Dマトリックス(filterSize、filterSize、filterNum)です。 これら2つの項とc1のアクティブ化の勾配を使用して、c1のデルタを計算します。 短い話: 以前の畳み込み層のデルタ項とその層の重みが与えられた場合、畳み込み層のデルタ項をどのように計算しますか?

2
ニューラルネットワークのデバッグ
scipy.optimize.minimize(共役勾配)最適化関数を使用して、Pythonで人工ニューラルネットワークを構築しました。 私は勾配チェックを実装し、すべてをダブルチェックしました、そしてそれが正しく機能していることは確かです。 何度か実行したところ、「最適化は正常に終了しました」に達しましたが、隠れ層の数を増やすと、正常に終了した後、仮説のコストが増加します(他のすべては同じままです)。 直感的には、隠れ層の数が増えるとコストが下がるように感じられます。これは、データに適合するより複雑な仮説を生成できるためですが、そうではないようです。 ここで何が起こっているのかを理解するのに興味がありますか、またはニューラルネットを間違って実装した場合はどうなりますか?

2
バッチ正規化はReLUアクティベーション機能に意味がありますか?
バッチ正規化は、このホワイトペーパーでは、スケール変数とシフト変数およびβを使用したアクティブ化関数への入力の正規化として説明されています。このペーパーでは、主にシグモイドアクティベーション関数の使用について説明します。ただし、バッチ正規化によって生成された正規化分布からの入力をm a x (0 、x )の ReLU活性化関数に供給することは、βγγ\gammaββ\betamax(0,x)max(0,x)max(0,x)ββ\betaReLUが入力情報を失わないように、ほとんどの入力を0を超えてシフトすることを学習しません。つまり、ReLUへの入力が標準正規化されただけである場合、0未満の多くの情報が失われます。この情報が失われないことを保証する保証または初期化はありますか?BNとReLUの操作方法に何か不足していますか?ββ\beta

3
数学の畳み込みとCNNの関係
畳み込みの説明を読んである程度理解しました。誰かがこの操作がたたみ込みニューラルネットのたたみ込みにどのように関連しているかを理解するのを手伝ってくれませんか?gウェイトをかけるフィルターのような機能ですか?
10 machine-learning  neural-network  deep-learning  cnn  convolution  machine-learning  ensemble-modeling  machine-learning  classification  data-mining  clustering  machine-learning  feature-selection  convnet  pandas  graphs  ipython  machine-learning  apache-spark  multiclass-classification  naive-bayes-classifier  multilabel-classification  machine-learning  data-mining  dataset  data-cleaning  data  machine-learning  data-mining  statistics  correlation  machine-learning  data-mining  dataset  data-cleaning  data  beginner  career  python  r  visualization  machine-learning  data-mining  nlp  stanford-nlp  dataset  linear-regression  time-series  correlation  anomaly-detection  ensemble-modeling  data-mining  machine-learning  python  data-mining  recommender-system  machine-learning  cross-validation  model-selection  scoring  prediction  sequential-pattern-mining  categorical-data  python  tensorflow  image-recognition  statistics  machine-learning  data-mining  predictive-modeling  data-cleaning  preprocessing  classification  deep-learning  tensorflow  machine-learning  algorithms  data  keras  categorical-data  reference-request  loss-function  classification  logistic-regression  apache-spark  prediction  naive-bayes-classifier  beginner  nlp  word2vec  vector-space-models  scikit-learn  decision-trees  data  programming 

2
バッチを実行するとき、バックプロパゲーションはMax Poolingレイヤーを通じてどのように機能しますか?
学習に100サンプルのバッチサイズを使用していると仮定します。 したがって、すべてのバッチで、すべてのニューロン(およびバイアスなど)の重みは、学習率のマイナス* 100サンプルを使用して見つけた平均エラー値*に関するエラー関数の導関数を追加することによって更新されます。更新されている現在のニューロンの重み。 ここで、最大プールレイヤーを使用する場合、このレイヤーの微分をどのように計算できますか?フィードフォワードするすべてのサンプルで、異なるピクセル(たとえば、)が最大値として選択されているため、異なるパスが選択されるたびに100個を超えるサンプルをバックプロパゲートする場合、どうすればよいですか?私が心に留めている解決策は、最大値として選択されたすべてのピクセルを覚えてから、おそらくすべての最大ピクセルで微分を分割することです。これは何が行われているのですか?

3

1
たたみ込み層は通常のたたみ込みネットワークとどのように異なりますか?
現在、この論文の結果を再現する作業をしています。この論文では、特徴抽出にCNNを使用する方法について説明し、RBNを使用して事前トレーニングされたDnn-hmmの音響モデルを使用しています。 セクションIIIサブセクションAは、入力データを表すことができるさまざまな方法を述べています。静的、デルタ、デルタデルタのスペクトルプロットを縦に積み重ねることにしました。 したがって、次のようになります。 その後、ネットワークはどうあるべきかを説明します。彼らは畳み込みネットワークを使用すると述べていますが、ネットワークの構造については何もありませんか?さらに、ネットワークは常に畳み込み層と呼ばれますか?通常のネットワーク畳み込みニューラルネットワーク(cnn)と比較して、違いがあると思います。 ペーパーは違いに関してこれを述べます: (セクションIIIサブセクションBから) ただし、畳み込み層は、2つの重要な点で標準の完全に接続された非表示層とは異なります。まず、各畳み込み単位は、入力のローカル領域からのみ入力を受け取ります。これは、各単位が入力のローカル領域のいくつかの特徴を表すことを意味します。第2に、畳み込み層の単位自体をいくつかの特徴マップに編成できます。同じ特徴マップ内のすべての単位は同じ重みを共有しますが、下位層の異なる場所から入力を受け取ります 私が不思議に思っていたもう1つのことは、dnn-hmm音響モデルに供給するために必要な出力パラメーターの数が実際に紙に記述されているかどうかです。フィルターの数、フィルターのサイズなど、ネットワークの一般的な詳細をデコードできないようです。

3
ニューラルネットワークでの正則化方法の選択
ニューラルネットワークをトレーニングする場合、ネットワークを正規化するには少なくとも4つの方法があります。 L1正則化 L2正則化 脱落 バッチ正規化 加えて、もちろん、ウェイトシェアリングや接続数の削減など、厳密な意味での正則化ではないかもしれません。 しかし、どの正規化方法を使用するかをどのように選択するのでしょうか。「すべてを試し、何が機能するかを確認する」よりも、より原則的な方法はありますか?

2
ドロップアウトと他の正規化を検討する研究はありますか?
ニューラルネットワークの正則化手法の違いを、好ましくは異なるドメイン(または少なくとも異なるデータセット)で示す論文はありますか? 私は現在、ほとんどの人がコンピュータービジョンの正則化のためにドロップアウトのみを使用しているように思われるので、私は尋ねています。正則化のさまざまな方法を使用する理由(ない)があるかどうかを確認したいと思います。

2
バッチ更新と個別更新のMLPの正則化に違いはありますか?
私は過適合を制御するアプローチとしての正則化について学習しました。このアイデアを、バックプロパゲーションとマルチレイヤーパーセプトロン(MLP)の単純な実装に組み込んで、組み合わせます。 現在、過剰適合を回避するために、私は交差検証を行い、これまでのところ、検証セットで最高のスコアのネットワークを維持しています。これは問題なく機能しますが、正則化を追加すると、正則化アルゴリズムとパラメーターを正しく選択することで、ネットワークがより体系的に非適合モデルに収束するというメリットがあります。 (Coursera MLコースからの)更新期間について私が持っている式は、たとえば各ウェイトのバッチ更新として記述され、エラー伝播からトレーニングセット全体に適用されるすべてのデルタを合計した後lambda * current_weight、結合の前に調整が追加されますバッチの最後でデルタが差し引かれlambdaます。ここで、は正則化パラメーターです。 私のバックプロパゲーションの実装では、アイテムごとの重みの更新を使用しています。直感的には問題ないように見えますが、バッチアプローチをそのままコピーすることはできません。アイテムあたりのより小さな正則化用語も同様に機能しますか? たとえばlambda * current_weight / N、Nがトレーニングセットのサイズである場合-一見すると、これは妥当に見えます。でも、この件については何も見つかりませんでした。正規化がアイテムごとの更新ではうまく機能しないためか、別の名前や変更された式の下にさえあるためでしょうか。

2
オートエンコーダーをクラスタリングにどのように使用できますか?
ラベルのない時間領域信号のセットがあるとします。それらを2つまたは3つのクラスにクラスター化したい。オートエンコーダーは、入力の圧縮を学習する監視なしネットワークです。したがって、入力、重みと、バイアスと、および出力を指定すると、次の関係が見つかります。x(i)x(i)x^{(i)}W1W1W_1W2W2W_2b1b1b_1b2b2b_2x^(i)x^(i)\hat{x}^{(i)} z(i)=W1x(i)+b1z(i)=W1x(i)+b1z^{(i)} =W_1x^{(i)}+b_1 x^(i)=W2z(i)+b2x^(i)=W2z(i)+b2\hat{x}^{(i)} =W_2z^{(i)}+b_2 したがって、は圧縮形式であり、は後者の再構成です。ここまでは順調ですね。z(i)z(i)z^{(i)}x(i)x(i)x^{(i)}x^(i)x^(i)\hat{x}^{(i)} 私が理解していないのは、これをクラスタリングに使用する方法です(それを行う方法がある場合)。たとえば、このペーパーの最初の図には、よくわからないブロック図があります。フィードフォワードネットワークへの入力としてを使用しますが、そのネットワークのトレーニング方法については言及されていません。私が無視しているものがあるのか​​、それとも論文が不完全なのかわかりません。また、最後のこのチュートリアルは、オートエンコーダーによって学習された重みを示しています。これらは、CNNが画像を分類するために学習するカーネルのようです。ですから...オートエンコーダの重みは、フィードフォワードネットワークで分類のためになんらかの方法で使用できると思いますが、その方法はわかりません。z(i)z(i)z^{(i)} 私の疑問は: もし長さの時間領域信号である(すなわち、X ^ {(I)} \で\ mathbb {R} ^ {1 \回N} )、缶Z ^ {(I)}ベクトルだけでも?換言すれば、それはのための理にかなっている^ {(I)} Zことがマトリックスよりもその寸法が大きいのいずれかで1?そうではないと思いますが、確認したいだけです。x(i)x(i)x^{(i)}NNNx(i)∈R1×Nx(i)∈R1×Nx^{(i)}\in\mathbb{R}^{1\times N}z(i)z(i)z^{(i)}z(i)z(i)z^{(i)}111 これらの量のどれが分類器への入力になりますか?たとえば、信号を分類したいクラスと同じ数の出力ユニットを持つ従来のMLPを使用したい場合、この完全に接続されたネットワークの入力(z(i)z(i)z^{(i)}、x^(i)x^(i)\hat{x}^{(i)}、他のもの)? このMLPで学習した重みとバイアスをどのように使用できますか?使用可能なラベルは絶対にないと想定しているため、ネットワークをトレーニングすることは不可能です。学習したとは、完全に接続されたネットワークで何らかの形で役立つはずですが、それらの使用方法はわかりません。WiWiW_ibibib_i 観察:MLPは最も基本的なアーキテクチャであるため、例としてMLPを使用したことに注意してください。ただし、質問は、時間領域信号の分類に使用できる他のすべてのニューラルネットワークに適用されます。

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