しかし、クラスがない場合はどうなりますか?
「クラス」の概念は、実際にはアーキテクチャに関連しているのではなく、損失関数自体に関連しています。言い換えれば、1000 個の出力がある場合、1000 個のばらばらなクラス間で分類するか、1000 個のタグを割り当てるか、1000 次元の実際の出力に回帰するかは問題ではありません。アーキテクチャは依然として完全に理にかなっています。
出力を 18x18 のようなマトリックスに変更することは可能ですか?
「素朴な」アプローチは、18*18 = 324 の値を出力し、それを 2 次元行列として扱うことです。ただし、2-dim 構造は、アーキテクチャ側で利用できるいくつかの特性があることを示唆しています。1 つの典型的な特性は変換不変性であり、convnet で利用されます。同じことが出力に当てはまる場合は、デコンボリューション (任意のたくさんあるので、あなたのモデルに合わせて並べ替えてください。
また、タスクに事前トレーニング済みのネットを使用することをお勧めしますか? それともゼロから学ぶべきですか?
これはアーキテクチャには依存しませんが、タスクには依存しません。タスクが、特定のネットがトレーニングされたものと十分に類似している場合は、事前トレーニング済みのものを出発点として使用し、新しいものを「微調整」することができます。一般に、事前トレーニング済みのネットを開始点として使用することは安全です (最初からトレーニングするよりも悪いことではありません)。ただし、追加された部分だけでなく、ネットワーク全体をトレーニングすることを忘れないでください (構造全体をトレーニングするのに十分なデータがない場合を除きます)。