私はTensorflowとKerasを使用しています。球の表面上の画像に対して適切なパターン認識を達成する可能性はありますか?私は(Healpy framework)を使用して、パターン認識が機能するはずのスカイマップを作成しています。問題は、これらのHealpyスカイマップが1次元の配列であることです。したがって、コンパクトなサブパターンは、この1次元配列に分散して配置されます。これは、実際には基本的な機械学習アルゴリズム(私は畳み込み深いネットワークについて考えています)を学ぶのはかなり難しいです。球体のパターン認識(HEALPYベース)
この文脈での特定のタスクは、球の表面上の球を数えることです(添付のimageを参照)。この特定のタスクでは、正しい数は8になります。そのため、0から9の間の乱数を持つ10000個のスカイマップ(Healpy設定:nside = 16がnpix = 3072に対応)を作成しました。私は1D Healpyアレイと単純フィードフォワードネットワークでこの問題を解決しようとした:
model = Sequential()
model.add(Dense(npix, input_dim=npix, init='uniform', activation='relu'))
model.add(Dropout(0.25))
model.add(Dense(10, init='uniform', activation='softmax'))
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
model.fit(skymaps, number_of_correct_sources, batch=100, epochs=10, validation_split=1.-train)
、しかしながら10,000 skymapsテストセットとトレーニング後のわずか38%の精度が得られました。私は、Healpy細胞の実際の配置を(球面上に現れるように)1d配列の代わりに提供するときに、これが大幅に増加すると考えています。この場合、畳み込みネットワーク(Convolution2d)を使用し、通常の画像認識と同様に動作することができる。任意のアイデアをどのように2d配列で適切にhealpy細胞をマップするか、球上で畳み込みネットワークを直接使用するか?
ありがとうございます!