タグ付けされた質問 「convnet」

「たたみ込みニューラルネットワーク」(CNN)に関する質問

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 したがって、畳み込み層の私の理解が正しい場合、これをどのように逆にすることができるのか分かりません。 誰かがデコンボリューション層を理解するのを助けてくれますか?

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 …

2
ニューラルネットワークの画像を準備/拡張する方法は?
画像分類にニューラルネットワークを使用したいと思います。事前に訓練されたCaffeNetから始めて、アプリケーション用に訓練します。 入力画像をどのように準備すればよいですか? この場合、すべての画像は同じオブジェクトですが、バリエーションがあります(品質管理と考えてください)。それらは多少異なる縮尺/解像度/距離/照明条件にあります(多くの場合、縮尺がわかりません)。また、各画像には、ネットワークが無視する対象オブジェクトの周囲の領域(既知)があります。 (たとえば)各画像の中心を切り取ることができます。これには、関心のあるオブジェクトの一部が含まれ、無視される領域は含まれないことが保証されています。しかし、それは情報を捨ててしまうように思われ、また結果は実際には同じスケールではありません(おそらく1.5倍のバリエーション)。 データセットの増強 ランダムクロップ/ミラー/その他によってさらにトレーニングデータを作成することを聞いたことがありますが、これに標準的な方法はありますか?分類器の精度がどれだけ向上するかについての結果はありますか?

4
後続の畳み込み層はどのように機能しますか?
この質問は、「畳み込み層が正確にどのように機能するか」に要約されます。 私が持っていると仮定しグレースケール画像を表示します。したがって、画像には1つのチャネルがあります。最初のレイヤーでは、k 1個のフィルターとパディングを使用して3 × 3の畳み込みを適用します。次に、5 × 5の畳み込みとk 2フィルターを備えた別の畳み込み層があります。フィーチャーマップはいくつありますか?n×mn×mn \times m3×33×33\times 3k1k1k_15×55×55 \times 5k2k2k_2 タイプ1畳み込み 最初のレイヤーが実行されます。その後、特徴マップ(各フィルターに1つ)があります。これらはそれぞれ、サイズn × mです。すべての単一のピクセルを取ることにより作成された3 ⋅ 3 = 9つのパディングされた入力画像から画素を。k1k1k_1n×mn×mn \times m3⋅3=93⋅3=93 \cdot 3 = 9 次に、2番目のレイヤーが適用されます。すべての単一フィルターは、各機能マップに個別に適用されます。これにより、k 1 個のすべての特徴マップに対して個の特徴マップが生成されます。したがって、2番目のレイヤーの後にk 1 × k 2の特徴マップがあります。新しい特徴マップの各のすべての単一のピクセルを取ることによって作成されました5 ⋅ 5 = 25前からパッド入りの特徴マップの「ピクセル」。k2k2k_2k1k1k_1k1×k2k1×k2k_1 \times k_25⋅5=255⋅5=255 \cdot 5 = 25 システムが学習する必要がありのパラメータを。k1⋅3⋅3+k2⋅5⋅5k1⋅3⋅3+k2⋅5⋅5k_1 \cdot 3 \cdot 3 + …

6
たたみ込みニューラルネットワークが機能する理由
なぜ畳み込みニューラルネットワークがまだよく理解されていないのかと言う人をよく耳にします。畳み込みニューラルネットワークが、層を上るにつれて常に洗練された機能を学習することになります。それらがそのような機能のスタックを作成した原因は何ですか?これは他のタイプのディープニューラルネットワークにも当てはまりますか?

1
ミニバッチのサイズを選択するためのルールはありますか?
ニューラルネットワークをトレーニングする場合、1つのハイパーパラメーターはミニバッチのサイズです。一般的な選択肢は、ミニバッチあたり32、64、128個の要素です。 ミニバッチの大きさのルール/ガイドラインはありますか?トレーニングへの影響を調査する出版物はありますか?


2
Keras Convolution2d()で使用されるデフォルトのフィルターは何ですか?
私はニューラルネットワークにかなり慣れていますが、線形代数と畳み込みの数学をかなりよく理解しています。 MNISTデータを使用してKeras畳み込みNNをトレーニングして数字を認識するために、ネット上のさまざまな場所で見つけたサンプルコードを理解しようとしています。私の期待は、畳み込み層を作成するときに、入力に適用するフィルターまたはフィルターのセットを指定する必要があることです。しかし、私が見つけた3つのサンプルはすべて、次のような畳み込み層を作成します。 model.add(Convolution2D(nb_filter = 32, nb_row = 3, nb_col = 3, border_mode='valid', input_shape=input_shape)) これは、CNNによって処理された画像に合計32個の3x3フィルターを適用しているようです。しかし、それらのフィルターは何ですか?それらを数学的にどのように説明しますか?kerasのドキュメントは役に立ちません。 前もって感謝します、
18 convnet  keras 

5
畳み込みニューラルネットワークのオーバーフィッティング。ドロップアウトが役に立たない
私はconvnetsで少し遊んでいます。具体的には、猫または犬(それぞれ12500)としてラベル付けされた25000個の画像で構成されるkaggle cats-vs-dogsデータセットを使用しています。 テストセットで約85%の分類精度を達成できましたが、90%の精度を達成するという目標を設定しました。 私の主な問題は過剰適合です。どういうわけか、それは常に起こることになります(通常、エポック8-10の後)。私のネットワークのアーキテクチャは、VGG-16に大まかに触発されています。具体的には、画像のサイズを128 x 128 x 3128x128x3128x128x3に変更し、次に実行します。 Convolution 1 128x128x32 (kernel size is 3, strides is 1) Convolution 2 128x128x32 (kernel size is 3, strides is 1) Max pool 1 64x64x32 (kernel size is 2, strides is 2) Convolution 3 64x64x64 (kernel size is 3, strides is 1) Convolution …

5
シーボーンヒートマップを大きくする
corr()元のdfからdf を作成します。corr()DFは、70 X 70から出てきたし、ヒートマップを可視化することは不可能です... sns.heatmap(df)。を表示しようとするcorr = df.corr()と、テーブルが画面に収まらず、すべての相関関係を確認できます。dfサイズに関係なく全体を印刷する方法ですか、ヒートマップのサイズを制御する方法ですか?
16 visualization  pandas  plotting  machine-learning  neural-network  svm  decision-trees  svm  efficiency  python  linear-regression  machine-learning  nlp  topic-model  lda  named-entity-recognition  naive-bayes-classifier  association-rules  fuzzy-logic  kaggle  deep-learning  tensorflow  inception  classification  feature-selection  feature-engineering  machine-learning  scikit-learn  tensorflow  keras  encoding  nlp  text-mining  nlp  rnn  python  neural-network  feature-extraction  machine-learning  predictive-modeling  python  r  linear-regression  clustering  r  ggplot2  neural-network  neural-network  training  python  neural-network  deep-learning  rnn  predictive-modeling  databases  sql  programming  distribution  dataset  cross-validation  neural-network  deep-learning  rnn  machine-learning  machine-learning  python  deep-learning  data-mining  tensorflow  visualization  tools  sql  embeddings  orange  feature-extraction  unsupervised-learning  gan  machine-learning  python  data-mining  pandas  machine-learning  data-mining  bigdata  apache-spark  apache-hadoop  deep-learning  python  convnet  keras  aggregation  clustering  k-means  r  random-forest  decision-trees  reference-request  visualization  data  pandas  plotting  neural-network  keras  rnn  theano  deep-learning  tensorflow  inception  predictive-modeling  deep-learning  regression  sentiment-analysis  nlp  encoding  deep-learning  python  scikit-learn  lda  convnet  keras  predictive-modeling  regression  overfitting  regression  svm  prediction  machine-learning  similarity  word2vec  information-retrieval  word-embeddings  neural-network  deep-learning  rnn 


3
ImageNetに個人クラスはありますか?人間に関連するクラスはありますか?
インターネット上の Imagenetクラスの多くのソースの1つを見ると、人間に関連する単一のクラスを見つけることができません(そして、ハーベストマンは収穫する人ではありませんが、パパロングレッグのようなものでした)クモ :-)。そんなことがあるものか?私は、少なくとも期待したpersonクラスを、そしてなど、より具体的であっても、何かman、woman、toddler、などの並べ替えの何もありません。どうして?Lii -Fei-Liと彼女のチームは、人の画像をデータベースに入れないという意識的な選択をしましたか?間違ったファイルを見ていますか?質問のために、ImageNet2014年以降のバージョンを検討できます。

1
CNNの逆伝播
次のCNNがあります。 サイズ5x5の入力画像から始めます 次に、2x2カーネルとストライド= 1を使用して畳み込みを適用し、サイズ4x4の機能マップを作成します。 次に、ストライド= 2の2x2最大プーリングを適用します。これにより、機能マップがサイズ2x2に縮小されます。 次に、ロジスティックシグモイドを適用します。 次に、2つのニューロンを持つ1つの完全に接続されたレイヤー。 そして出力層。 簡単にするために、フォワードパスを既に完了し、δH1= 0.25とδH2= -0.15を計算したと 仮定します。 したがって、完全なフォワードパスと部分的に完了したバックワードパスの後、ネットワークは次のようになります。 次に、非線形層(ロジスティックシグモイド)のデルタを計算します。 δ11=(0.25∗0.61+−0.15∗0.02)∗0.58∗(1−0.58)=0.0364182δ12=(0.25∗0.82+−0.15∗−0.50)∗0.57∗(1−0.57)=0.068628δ21=(0.25∗0.96+−0.15∗0.23)∗0.65∗(1−0.65)=0.04675125δ22= (0.25 ∗ − 1.00 + − 0.15 ∗ 0.17 )∗ 0.55 ∗ (1 − 0.55 )= − 0.06818625δ11=(0.25∗0.61+−0.15∗0.02)∗0.58∗(1−0.58)=0.0364182δ12=(0.25∗0.82+−0.15∗−0.50)∗0.57∗(1−0.57)=0.068628δ21=(0.25∗0.96+−0.15∗0.23)∗0.65∗(1−0.65)=0.04675125δ22=(0.25∗−1.00+−0.15∗0.17)∗0.55∗(1−0.55)=−0.06818625 \begin{align} &\delta_{11}=(0.25 * 0.61 + -0.15 * 0.02) * 0.58 * (1 - 0.58) = 0.0364182\\ …

1
最大プーリング層を介した逆伝播
この質問に対する小さなサブ質問があります。 最大プーリング層を逆伝播すると、最大として選択された前の層のニューロンがすべての勾配を取得するように勾配が戻されることを理解しています。私が100%確信していないのは、次のレイヤーの勾配がどのようにプーリングレイヤーに戻されるかです。 したがって、最初の質問は、下の画像のように、完全に接続されたレイヤーに接続されたプーリングレイヤーがあるかどうかです。 プール層のシアンの「ニューロン」の勾配を計算するとき、FC層のニューロンからのすべての勾配を合計しますか?これが正しい場合、プーリング層のすべての「ニューロン」に同じ勾配がありますか? たとえば、FC層の最初のニューロンの勾配が2で、2番目の勾配が3で、3番目の勾配が6の場合、プール層の青と紫の「ニューロン」の勾配は何ですか。なぜですか。 2番目の質問は、プーリングレイヤーが別の畳み込みレイヤーに接続されるタイミングです。勾配を計算する方法は?以下の例を参照してください。 プール層の最上部の右端の「ニューロン」(緑色の輪郭線)については、次のconv層の紫色のニューロンの勾配を取得し、それを元に戻します。 緑色の塗りつぶしはどうですか?チェーンルールのため、次のレイヤーのニューロンの最初の列を乗算する必要がありますか?または、それらを追加する必要がありますか? 方程式の束を投稿しないでください、そして、方程式に頭を包み込もうとしているので、私の答えがそこにあると言ってください、そして、私はまだそれを完全に理解していないので、私はこの質問を簡単に尋ねています仕方。

3
畳み込みが常に奇数をfilter_sizeとして使用する理由
CNN(ConvNet)を使用して発行された論文の90〜99%をご覧ください。それらの大半は、奇数のフィルターサイズを使用します:{ 1、3、5、7 }。 この状況はいくつかの問題を引き起こす可能性があります:これらのフィルターサイズでは、通常、畳み込み演算は2のパディング(一般的なパディング)では完全ではなく、input_fieldの一部のエッジはプロセスで失われます... 質問1:畳み込みフィルターサイズに奇数番号のみを使用する理由 質問2:畳み込み中にinput_fieldの一部を省略することは実際には問題ですか?なぜそうなのか?

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