CNNの入力としてサイド画像に沿って非画像機能を追加する方法


14

畳み込みニューラルネットワークをトレーニングして、霧の状態(3クラス)で画像を分類しています。ただし、約150.000個の画像のそれぞれについて、画像のクラスの予測に役立つ可能性のある4つの気象変数も利用できます。気象変数(温度、風速など)を既存のCNN構造に追加して、分類に役立つようにするにはどうすればよいのかと思っていました。

私がすでに考えることができる1つの方法は、CNNと一緒に別の(小さな)フィードフォワードニューラルネットを作成し、CNNレイヤーの出力と非イメージニューラルネットの非表示レイヤーを密なレイヤーで互いに連結することです。

私が考えることができる2番目の方法は、これらの機能を密なレイヤーに接触させることです。ただし、この場合、非画像変数は線形予測のみを行うことができます。

非画像機能をモデルに含めることができる他の(より良い)方法はありますか?そして、私が持っているデータの量を考慮して、推奨される方法は何でしょうか?

私が持っている別の質問は、これらの非画像機能でトレーニング中に畳み込み層をフリーズ解除する必要があるかどうかです。Resnet-18のこれらのレイヤー(ImageNetで事前トレーニング済みとして初期化された)は、画像を使用して既に微調整されています。私の推測では、非画像フィーチャが画像フィーチャと「接触」するのはここだけであるため(CNNの初期段階ではない)、それらを凍結したまま高密度レイヤーのみを凍結解除する必要があります。これが間違っている場合は、そう言ってください!


GAN、VAEなどの生成モデルを介して、additional_featuresと画像間の結合分布をモデル化できます。その後、潜在変数を取得し、それを監視基準で使用できます
ファディバコウラ

私も同じような状況にあります。過去15分間の空の画像のスタックを使用して、15分後のカメラに近いソーラーパネルの出力を予測しようとしています。私は最近、いくつかの天気機能を使用することにしました(あなたの場合のように各画像に1つ)。最初の提案は、2番目の提案(密集したレイヤーに非グラフィカルフィーチャを直接追加する)よりもうまく機能しました。正確には、2番目の提案は正規化の問題につながりました。何らかの理由でまだ説明できないため、Batchnormレイヤーはグラフィカルなfeaを正規化できなかったことがわかりました
Vignesh Venugopal

@VigneshVenugopalはコメント欄で私に言及してください。そうでない場合は通知できません。あなたの質問は何ですか?:)
メディア

速度とスロットルとステアリング角度をネットワークに連結するにはどうすればよいですか?密な追加の数について説明してください。何に依存していますか?
ナスリンザガリ

回答:


10

私の解決策は最初の推奨に似ていますが、わずかな変更があります。

  1. 畳み込み層を構築し、平坦化層まで積み重ねます。このネットワークには画像データを供給する必要があります。
  2. アクティベーションマップをフラットにする
  3. 必要な数のニューロンとレイヤーで完全に接続されたネットワークを構築します。
  4. 畳み込みネットと完全に接続されたネットの平坦化された層の出力を連結します。
  5. いくつかの密なレイヤーを追加し、それらをクラスを表す最後のレイヤーに接続します。

このアーキテクチャでは、通常のコスト関数を使用できます。


Kerasでは、Concatenate()レイヤーでそれを行うことができますか?
リーボ

はい。それらを連結して互いに並べる必要があります。
メディア

レイヤーを使用しますConcatenate()concatenate()?違いがわからない
リーボ

ネットワークの作成方法によって異なります。ところで、それぞれの引数リストを見ることができます。彼らは異なります。こちらもご覧ください
メディア
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.