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

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

10
デコンボリューション層とは何ですか?
私は最近、ジョナサン・ロング、エヴァン・シェルハマー、トレバー・ダレルによるセマンティックセグメンテーションのための完全畳み込みネットワークを読みました。「デコンボリューション層」が何をするのか、どのように機能するのかがわかりません。 関連する部分は 3.3。アップサンプリングは逆方向のたたみ込み畳み込みです 粗い出力を密なピクセルに接続する別の方法は、補間です。たとえば、単純な双線形補間は、入力セルと出力セルの相対位置のみに依存する線形マップによって、最も近い4つの入力から各出力計算yijyijy_{ij}します。 ある意味では、係数アップサンプリングfffは、1 / fの分数入力ストライドによる畳み込みです。したがって、fffが整数である限り、アップサンプリングの自然な方法は、出力ストライドを使用した逆畳み込み(逆畳み込みとも呼ばれます) fffです。このような操作は、畳み込みの前後のパスを単純に逆にするため、実装するのは簡単です。 したがって、ピクセル単位の損失からのバックプロパゲーションによるエンドツーエンド学習のために、ネットワーク内でアップサンプリングが実行されます。 そのようなレイヤーのデコンボリューションフィルターは固定する必要はありませんが(たとえば、バイリニアアップサンプリングに)、学習することができます。デコンボリューションレイヤーとアクティベーション関数のスタックは、非線形アップサンプリングを学習することさえできます。 私たちの実験では、ネットワーク内のアップサンプリングは、密な予測を学習するために高速で効果的であることがわかりました。最適なセグメンテーションアーキテクチャは、これらのレイヤーを使用して、セクション4.2の洗練された予測のアップサンプリングを学習します。 たたみ込み層がどのようにトレーニングされるかを本当に理解していないと思います。 私が理解したと思うのは、カーネルサイズ畳み込み層がサイズk × kのフィルターを学習するということです。畳み込みカーネルサイズを有する層の出力K、ストライドS ∈ NとNフィルタは、ディメンションである入力DIMkkkk×kk×kk \times kkkks∈Ns∈Ns \in \mathbb{N}nnn。ただし、畳み込み層の学習がどのように機能するかはわかりません。(単純なMLPが勾配降下で学習する方法を理解します(それが役立つ場合))。Input dims2⋅nInput dims2⋅n\frac{\text{Input dim}}{s^2} \cdot n したがって、畳み込み層の私の理解が正しい場合、これをどのように逆にすることができるのか分かりません。 誰かがデコンボリューション層を理解するのを助けてくれますか?


5
ニューラルネットワークの「死にゆくReLU」問題とは何ですか?
視覚認識のための畳み込みニューラルネットワークに関するスタンフォードのコースノートを参照すると、次の段落が述べられています。 「残念ながら、ReLUユニットはトレーニング中に壊れやすく、「死ぬ」可能性があります。たとえば、ReLUニューロンを流れる大きな勾配により、ニューロンがデータポイントで再びアクティブにならないように重みが更新される可能性があります。つまり、ReLUユニットは、データマニホルドからノックオフされる可能性があるため、トレーニング中に不可逆的に死ぬ可能性があります。学習率の設定が高すぎると、ネットワークの%が「死んでいる」(つまり、トレーニングデータセット全体でアクティブにならないニューロン)場合があります。学習率を適切に設定すれば、これはあまり問題になりません。 ここでのニューロンの死はどういう意味ですか? 簡単な言葉で直感的な説明をお願いします。

6
GRU over LSTMを使用する場合
GRUとLSTMの主な違いは、GRUには2つのゲート(リセットおよび更新ゲート)があり、LSTMには3つのゲート(つまり、入力、出力、および忘却ゲート)があることです。 (3つのゲートがあるので)LSTMモデルを介してネットワークをより明確に制御できるのに、なぜGRUを使用するのですか?どのシナリオでGRUがLSTMよりも優先されますか?

8
学習率の選択
現在SGD、バックプロパゲーションを使用したニューラルネットの確率的勾配降下法の実装に取り​​組んでおり、その目的は理解していますが、学習率の値を選択する方法についていくつか質問があります。 学習率は、降下率を決定するため、誤差勾配の形状に関連していますか? もしそうなら、この情報をどのように使用して価値についての決定を知らせるのですか? それがどのような種類の値を選択する必要がない場合、どのように選択する必要がありますか? オーバーシュートを避けるために小さな値が必要なようですが、ローカルミニマムにとらわれたり、下降に時間がかかったりしないように、どのように選択しますか? 一定の学習率を持つことは理にかなっていますか、または勾配の最小値に近づくにつれてその値を変更するために何らかのメトリックを使用する必要がありますか? つまり、SGDの学習率を選択するにはどうすればよいですか?



3
最大プール層を介したバックプロップ?
これは、しばらくの間私を悩ませてきた小さな概念的な質問です。ニューラルネットワークの最大プール層をどのように逆伝播できますか? Torch 7のnnライブラリに関するこのチュートリアルを実行しているときに、最大プール層に遭遇しました。このライブラリは、深層ネットワークの各レイヤーの勾配計算とフォワードパスを抽象化します。max-poolingレイヤーの勾配計算がどのように行われるかわかりません。 入力がレイヤーニューロンに入る場合、(として定義される): zilzil{z_i}^liiilllδilδil{\delta_i}^lδil=∂E∂zilδil=∂E∂zil{\delta_i}^l = \frac{\partial E}{\partial {z_i}^l}δil=θ′(zil)∑jδjl+1wl,l+1i,jδil=θ′(zil)∑jδjl+1wi,jl,l+1 {\delta_i}^l = \theta^{'}({z_i}^l) \sum_{j} {\delta_j}^{l+1} w_{i,j}^{l,l+1} そのため、最大プール層は、通常どおり次の層のを受け取ります。ただし、最大プーリングニューロンの活性化関数は値のベクトル(最大値)を入力として受け取るため、はもう1つの数値ではなく、ベクトル(はます。さらに、最大関数である、その入力に関して微分可能ではありません。δjl+1δjl+1{\delta_j}^{l+1}δilδil{\delta_i}^{l}θ′(zjl)θ′(zjl)\theta^{'}({z_j}^l)∇θ({zjl})∇θ({zjl})\nabla \theta(\left\{{z_j}^l\right\})θθ\theta だから....それは正確にどのように機能するのですか?

4
1x1畳み込みは、完全に接続されたレイヤーとどのように同じですか?
最近、1x1畳み込みに関するYan LeCunsのコメントを読みました。 畳み込みネットでは、「完全に接続されたレイヤー」などはありません。1x1畳み込みカーネルと完全な接続テーブルを持つ畳み込み層のみがあります。 ConvNetsが固定サイズの入力を必要としないことは、あまりにもまれな事実です。単一の出力ベクトル(空間範囲なし)を生成する入力でそれらをトレーニングし、それらを大きな画像に適用できます。単一の出力ベクトルの代わりに、出力ベクトルの空間マップを取得します。各ベクトルは、入力上の異なる位置にある入力ウィンドウを認識します。 そのシナリオでは、「完全に接続されたレイヤー」は実際には1x1の畳み込みとして機能します。 これの簡単な例を見てみたい。 例 完全に接続されたネットワークがあると仮定します。入力レイヤーと出力レイヤーのみがあります。入力層には3つのノードがあり、出力層には2つのノードがあります。このネットワークが有する3⋅2=63⋅2=63 \cdot 2 = 6のパラメータを。さらに具体的にするために、出力レイヤーとウェイトマトリックスにReLUアクティベーション関数があるとしましょう。 Wb=(021315)∈R2×3=(813)∈R2W=(011235)∈R2×3b=(813)∈R2 \begin{align} W &= \begin{pmatrix} 0 & 1 & 1\\ 2 & 3 & 5\\ \end{pmatrix} \in \mathbb{R}^{2 \times 3}\\ b &= \begin{pmatrix}8\\ 13\end{pmatrix} \in \mathbb{R}^2 \end{align} ように、ネットワークは、f(x)=ReLU(W⋅x+b)f(x)=ReLU(W⋅x+b)f(x) = ReLU(W \cdot x + b)とx∈R3x∈R3x \in \mathbb{R}^3。 たたみ込み層はどのように見える必要がありますか?LeCunは「フル接続テーブル」とはどういう意味ですか? 同等のCNNを取得するには、まったく同じ数のパラメーターが必要です。上記からMLPが有する2⋅3+2=82⋅3+2=82 …

3
RNN対CNNの高レベル
リカレントニューラルネットワーク(RNN)とその種類、畳み込みニューラルネットワーク(CNN)とその種類について考えてきました。 これらの2つの点は言うに公平でしょうか。 CNNを使用して、コンポーネント(画像など)をサブコンポーネント(画像内のオブジェクトの輪郭など、画像内のオブジェクトなど)に分割します。 RNNを使用して、サブコンポーネントの組み合わせ(画像キャプション、テキスト生成、言語翻訳など)を作成します。 これらの記述の不正確さを指摘したい方がいれば幸いです。ここでの私の目標は、CNNとRNNの使用に関するより明確な基盤を得ることです。

2
均一な初期化で通常の初期化(HeまたはGlorot)を使用する場合 また、バッチ正規化の影響は何ですか?
Residual Network(ResNet)により、彼は通常の初期化が一般的になったことを知っていました。ResNetでは、He通常の初期化が使用されますが、最初の層はHeの初期化を使用します。 ResNetペーパーと「Delving Deep into Rectifiers」ペーパー(He初期化ペーパー)を調べましたが、通常の初期化と均一な初期化についての言及はありません。 また: バッチ正規化により、はるかに高い学習率を使用でき、初期化にあまり注意を払う必要がなくなります。 Batch Normalization論文の要約では、Batch Normalizationを使用すると、初期化にあまり注意を払わなくて済むと言われています。 ResNet自体は、通常の初期化と均一な初期化のどちらを使用するか(均一な初期化ではなく)を常に考慮しています。 そう: 均一な初期化ではなく、(HeまたはGlorot)正規分布初期化を使用する場合 バッチ正規化による正規分布初期化効果とは何ですか? 脇のメモ: Batch Normalizationで通常のinitを使用することは韻を踏んでいますが、この事実を裏付ける論文は見つかりませんでした。 Resnetは、Glorot initよりもHe initを使用することを知っていました。なぜなら、彼はinitが深いネットワークでより良い結果をもたらすからです。 Glorot init対He initについて理解しました。 私の質問は、Normal vs Uniform initについてです。

3
ディープニューラルネットでアンダーフィッティングと戦う方法
人工ニューラルネットワーク(NN)で始めたとき、私は主な問題として過剰適合と戦わなければならないと思いました。しかし実際には、NNに20%のエラー率の障壁を通過させることさえできません。ランダムフォレストでスコアを打つことさえできません! 私は、NNがデータの傾向を把握し始めるために何をすべきかについて、非常に一般的なまたはそれほど一般的でないアドバイスを求めています。 NNの実装には、MNISTデータセットの分類に優れた(エラー率5%未満)チュートリアルからのコードで Theano Stacked Auto Encoderを使用します。これは多層パーセプトロンで、上部にソフトマックス層があり、隠された各層は後でオートエンコーダーとして事前トレーニングされます(チュートリアル 8章で詳しく説明します)。最大50個の入力機能と最大10個の出力クラスがあります。NNにはシグモイドニューロンがあり、すべてのデータは[0,1]に正規化されます。さまざまな構成を試しました:隠れ層とその中のニューロンの数(100-> 100-> 100、60-> 60-> 60、60-> 30-> 15など)、異なる学習と事前訓練料金など そして、私が得ることができる最高のものは、検証セットで20%のエラー率とテストセットで40%のエラー率です。 一方、(scikit-learnから)Random Forestを使用しようとすると、検証セットで12%、テストセットで25%(!)のエラー率が簡単に得られます。 事前トレーニングを受けた私のディープNNの動作が非常に悪いのはどうしてですか?何を試せばいいですか?

4
ニューラルネットワーク:使用するコスト関数?
主にニューラルネットワークを使用した実験にTensorFlowを使用しています。かなりの実験(XOR-Problem、MNIST、いくつかのリグレッションなど)を行っていますが、全体的に初心者と見なされる可能性があるため、特定の問題に対して「正しい」コスト関数を選択するのに苦労しています。 TensorFlowに来る前に、PythonとNumPyを使用して、完全に接続されたMLPとリカレントネットワークをいくつかコーディングしましたが、ほとんどの場合、単純な2乗誤差と単純な勾配不足で十分な問題がありました。 ただし、TensorFlowはカスタムコスト関数を作成するだけでなく、かなり多くのコスト関数を提供するので、ニューラルネットワークのコスト関数専用のチュートリアルがあるかどうか知りたいのですが?(私はすでに公式のTensorFlowチュートリアルの半分のように実行しましたが、特定のコスト関数または学習者が特定の問題に使用される理由を実際には説明していません-少なくとも初心者には) いくつか例を挙げます: cost = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(y_output, y_train)) 1つのベクトルの合計が1になるように、両方の入力にsoftmax関数を適用すると思いますが、ロジットとのクロスエントロピーは正確には何ですか?私はそれが値を合計し、クロスエントロピーを計算すると思った...だからメトリック測定?!出力を正規化し、合計して二乗誤差を取ると、これは非常に同じではないでしょうか?さらに、なぜこれがMNISTなどに使用されるのですか(またはさらに難しい問題)?私は10または多分1000のクラスのように分類したい場合は、に関する情報破棄完全に値を合計しません。これは、実際の出力はクラスでしたの? cost = tf.nn.l2_loss(vector) これは何のため?l2の損失はほぼ二乗誤差であると考えましたが、TensorFlowのAPIは、入力が1つのテンソルに過ぎないことを示しています。まったく考えがつかないのですか?! 加えて、クロスエントロピーについてこれをかなり頻繁に見ました: cross_entropy = -tf.reduce_sum(y_train * tf.log(y_output)) ...しかし、なぜこれが使用されるのですか?数学的にクロスエントロピーの損失ではありません: -1/n * sum(y_train * log(y_output) + (1 - y_train) * log(1 - y_output)) (1 - y_train) * log(1 - y_output)ほとんどのTensorFlowの例の一部はどこにありますか?不足していませんか? 回答:この質問は非常に開かれていることは知っていますが、すべての問題/コスト関数が詳細にリストされている10ページほどになるとは思いません。どのコスト関数を使用するかについての簡単な要約(一般的にもTensorFlowでも、私にとっては重要ではありません)と、このトピックに関する説明が必要です。および/または初心者向けのソース;)

4
時系列モデルLSTMへの機能の追加
LSTMと時系列でのLSTMの使用について少し読んでおり、興味深いが同時に難しかった。私が理解するのに苦労したことの1つは、既に時系列機能のリストであるものに追加機能を追加するアプローチです。データセットが次のようになっていると仮定します。 t-3、t-2、t-1、出力 次に、出力に影響する機能があることを知っていると言いましょうが、必ずしも時系列機能であるとは限りません。外の天気を言ってみましょう。これはあなたがただ追加できるもので、LSTMは時系列の側面とそうでないものを区別することができますか?

1
LeakyReLUとPReLUの違いは何ですか?
私は、PReLUとLeaky ReLUの両方がだと思った f(x)=max(x,αx) with α∈(0,1)f(x)=max(x,αx) with α∈(0,1)f(x) = \max(x, \alpha x) \qquad \text{ with } \alpha \in (0, 1) ただし、Kerasにはdocsに両方の機能があります。 リーキーReLU LeakyReLUのソース: return K.relu(inputs, alpha=self.alpha) したがって(reluコードを参照) f1(x)=max(0,x)−αmax(0,−x)f1(x)=max(0,x)−αmax(0,−x)f_1(x) = \max(0, x) - \alpha \max(0, -x) PReLU PReLUのソース: def call(self, inputs, mask=None): pos = K.relu(inputs) if K.backend() == 'theano': neg = (K.pattern_broadcast(self.alpha, …

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