2016-08-16 16 views
1

私はニューラルネットワークの新機能ですが、私のプロジェクトのためにはフィットするようです。アプリケーションは、最後にAndroid端末で実行する必要があります。私の考えはTenserFlowを使用することですが、私はそれが適切かどうかはわかりません。ニューラルネットワークの再利用

私は次のような状況があります。私の入力は画像のセットです(その順序は出力に影響しないはずです)。 Setのサイズは固定されていませんが、ほとんどの場合10より小さくなります。セット全体の出力はバイナリの分類(合格/不合格)に過ぎません。

私は、2つの出力、すなわち重量と合格/不合格の値を計算する畳み込みニューラルネットワークを使用します。各画像はこのCNNに別々に供給され、結果の値は加重算術平均を使用して最終的な合格/不合格値に集計される。

私の質問は、TensorFlowでこのようなネットワークを訓練できますか?

トレーニングデータのCNN出力の値はありませんが、集計後の出力のみです。これは一般にグラジエント指向のフレームワークで可能ですか?それに対して遺伝的アルゴリズムを使用する必要がありますか?

答えて

0

これは間違いなくテンソルフローで行うことができます。イントロチュートリアルを終えたら、CNN tutorialを見て、テンソルフローで畳み込みニューラルネットワークを実装する方法を学んでください。 すべての重い持ち上げはすでに処理されています。 tf.nn.conv2d()メソッドを使用して畳み込みレイヤーを作成し、プール操作と正規化操作のいずれかを使用するだけです。 これが何を意味するのかよくわからない人はread upですが、CNNには3つのユニークなコンポーネントがあります。畳み込みレイヤーは、特定のパターンを探すイメージを通してウィンドウをスキャンし、そのアクティベーションはグリッドとして出力に記録されます。データの次元を下げることを学ぶことは重要です。それはプーリングレイヤーの役割です。畳み込み層の出力を取り、そのサイズを縮小する。正規化されたデータを持つことは学習を改善する傾向があるため、正規化レイヤーはこれを正規化します。

集約出力しかない場合は、個別のイメージに対して合理的なプロキシ出力を考え出す方法を考える必要があります。あなたができることの1つは、セット内の個々の画像のラベルとして集計出力を使用し、勾配降下を使用して訓練することです。

+0

妥当な代理人を呼び出すことはそれほど簡単ではありません。私は、ラベルを使うだけでうまくいくのではないかと疑います。なぜなら、一部の画像は最終結果と関連性が高く、むしろ一部の画像はほとんど影響を受けないからです。私は、私の問題に適している可能性のある、ネットワークをenvolfingするための遺伝的アルゴリズムを使ったアプローチについて少しは読むだろうと思う。 –

+0

アルゴリズムの選択がここで問題になるかどうかわからない。問題は、最終出力がサンプル内の各画像の出力の平均であると仮定されていますが、最終出力のみがあることです。これに基づいて、どの画像が結果に最も影響を与えたのかを知ることは不可能です。しかし、多くのトレーニングセットがある場合は、ある種の画像が通過する例ではより頻繁に、ある種の画像はそれほど頻繁ではないことに基づいてこれを推測することができます。 –

+0

各画像にラベルのセットの平均出力を割り当てると、より重要な画像はラベルが高くなり、モデルによってピックアップされます。ベイジアンの観点からすれば、これはあなたがデータに持つ情報の量であるため、最も自然なことです。 –