MNISTの例を見て、画像の配列が 728 配列にフラット化されている場合、その配列がランダム化されているかどうかが問題になることに気付きました。つまり、NN はデータの隣接性を考慮に入れているのか、それとも 1 つの入力ノードが入力番号 (したがって 728 ノード) を入力しているのかということです。
私が求めているのは、728 データ配列をランダム化した場合と同じように、例のように画像を平坦化してトレーニングすると、同じネットワークが得られるかということです。
MNISTの例を見て、画像の配列が 728 配列にフラット化されている場合、その配列がランダム化されているかどうかが問題になることに気付きました。つまり、NN はデータの隣接性を考慮に入れているのか、それとも 1 つの入力ノードが入力番号 (したがって 728 ノード) を入力しているのかということです。
私が求めているのは、728 データ配列をランダム化した場合と同じように、例のように画像を平坦化してトレーニングすると、同じネットワークが得られるかということです。
見ている mnist の例によって異なります。convolutional.py は、画像全体で 5x5 空間畳み込みウィンドウを実行しますが、これは空間相関を考慮に入れています。
単純な重み行列を使用する初心者向けの MNIST の例:
W = tf.Variable(tf.zeros([784,10]))
b = tf.Variable(tf.zeros([10]))
ではない。すべての入力を同じ方法で並べ替える限り、ポイント内のエントリの順序を並べ替えることができ、何も変更する必要はありません。
(畳み込みアプローチがほとんどの画像認識アプリケーションで成功しているのには理由があります。空間的局所性は便利です。:)
あなたは非常に基本的なチュートリアルを見ています。その全体のポイントは、多くのより難しいモデルで使用される TF といくつかの重要な ML の概念に慣れることです。彼らは難しいことをしようとしているわけではありません (実際、精度は、SVM をすぐに実行することによって達成されるものよりも高くありません)。チュートリアルを注意深く読むと、次のように書かれています。
画像間で一貫性がある限り、配列をどのように平坦化するかは問題ではありません。
と
データを平坦化すると、画像の 2D 構造に関する情報が失われます。それは悪くないですか?コンピューター ビジョンの最良の方法は、この構造を利用するものであり、後のチュートリアルで説明します。しかし、ここで使用する単純な方法であるソフトマックス回帰はそうではありません。
ネットワークについての質問: ネットワークのトポロジは同じですが、重み/バイアスは異なります。
また、畳み込みニューラル ネットワークの例では、データの隣接性が考慮されています。