Wolfram言語

ニューラルネットワーク

オートエンコーダを使った,教師なし学習

オートエンコーダネットワークを訓練して,手書き数字を低次元の「コード」ベクトル空間に投影した後,その数字の画像を再構築する.これらのコードベクトルを使って,クラスタリングや可視化を実行する.

まず訓練データを取得し,0から4の数字に対応する画像を選ぶ.

In[1]:=
Click for copyable input
resource = ResourceObject["MNIST"]; trainingData = ResourceData[resource, "TrainingData"]; trainingSubset = Select[trainingData, Last[#] <= 4 &]; testData = ResourceData[resource, "TestData"]; testSubset = Select[testData, Last[#] <= 4 &]; RandomSample[trainingSubset, 8]
Out[1]=

訓練データから除去する「平均的画像」を取得する.

In[2]:=
Click for copyable input
trainingImages = Keys[trainingSubset]; meanImage = Image[Mean@Map[ImageData, trainingImages]]
Out[2]=

再構築と再構築エラーが両方生じるネットワークを生成して訓練する.

In[3]:=
Click for copyable input
net = NetGraph[ {FlattenLayer[], 50, Ramp, 784, Tanh, ReshapeLayer[{1, 28, 28}], MeanSquaredLossLayer[]}, {1 -> 2 -> 3 -> 4 -> 5 -> 6 -> NetPort["Output"], 6 -> NetPort[7, "Input"], NetPort["Input"] -> NetPort[7, "Target"]}, "Input" -> NetEncoder[{"Image", {28, 28}, "Grayscale", "MeanImage" -> meanImage}], "Output" -> NetDecoder[{"Image", "Grayscale"}] ]
Out[3]=

ネットワークを訓練して,再構築エラーを最小化する.

In[4]:=
Click for copyable input
trained = NetTrain[net, <|"Input" -> trainingImages|>, "Loss"];
Out[4]=

再構築のみを実行するサブネットワークを取得する.

In[5]:=
Click for copyable input
reconstructor = Take[trained, {NetPort["Input"], NetPort["Output"]}]
Out[5]=

サンプル画像をいくつか再構築する.

In[6]:=
Click for copyable input
ImageAdd[reconstructor[#], meanImage] & /@ {\!\(\* GraphicsBox[ TagBox[RasterBox[CompressedData[" 1:eJxTTMoPSmNiYGAo5gASQYnljkVFiZXBAkBOaF5xZnpeaopnXklqemqRRRJI mQwU/x9A8CWTyfQBDrlbLCxMU7BLvbLCKTfRkQUoFzbpIBY5JhaQHAuL8hkM KU8GJiAQVQQS6FIHlED6cjYdrGdhmYYqdV8CaJxy2df//x9IsvD0/UJ3vvNr MHMSUNUdNDmzhxDmA3N0OYQL7psyMEUjyxWzsMCYGGaqweReHQC6SvIhVrl8 oE+UDv3HJuepBJTzRvWfKhPTtm3STEzgwEGV+t8HDkoIkYMmBwwNiJyk052v aHL/DxZC5LDH3/ZAlqAd2x9ilaMPAABwyokL "], {{0, 28}, {28, 0}}, {0, 255}, ColorFunction->GrayLevel], BoxForm`ImageTag[ "Byte", ColorSpace -> Automatic, Interleaving -> None], Selectable->False], DefaultBaseStyle->"ImageGraphics", ImageSizeRaw->{28, 28}, PlotRange->{{0, 28}, {0, 28}}]\), \!\(\* GraphicsBox[ TagBox[RasterBox[CompressedData[" 1:eJxTTMoPSmNiYGAo5gASQYnljkVFiZXBAkBOaF5xZnpeaopnXklqemqRRRJI mQwU/x9gcJNxEk65FcxrccpV8OGUusSdiVNuNeMBnHKmCl9wSd1nVMepbQGj DU65YsZNuKSOCRl9xyXXzBCF08gQxnW4pJ6La+DU1s6YgFMug7EQp5w0415c UodYcMsVMRr9wSH1VYOxDZe2X5b+X3E6hS4AAAjL8xI= "], {{0, 28}, {28, 0}}, { 0, 255}, ColorFunction->GrayLevel], BoxForm`ImageTag[ "Byte", ColorSpace -> Automatic, Interleaving -> None], Selectable->False], DefaultBaseStyle->"ImageGraphics", ImageSizeRaw->{28, 28}, PlotRange->{{0, 28}, {0, 28}}]\), \!\(\* GraphicsBox[ TagBox[RasterBox[CompressedData[" 1:eJxTTMoPSmNiYGAo5gASQYnljkVFiZXBAkBOaF5xZnpeaopnXklqemqRRRJI mQwU/6cp6G4KYWDIXIRNKowJDFQfYpfSKvRnYmrFkDrNyqR7//P/n4ZMxRhy m1h0nwGpVnamfZhmPngLIvWYsMmBQRcHk+VX7FKbOZgkDuDQVs/ElI9Dyp+T KeEzdqlnokxid3Bos2RiKsIhtZGdyQmHiW/McWurZGIKwqHtPzsT0zMcUiC5 K6+B4Nf/X69f38rMzMz5iiwHBuEFkVBWC1wukAkB2Dg4wrq6jiEM7WxpaQFp SWlpuYbL4gEEADLRqO8= "], {{0, 28}, {28, 0}}, {0, 255}, ColorFunction->GrayLevel], BoxForm`ImageTag[ "Byte", ColorSpace -> Automatic, Interleaving -> None], Selectable->False], DefaultBaseStyle->"ImageGraphics", ImageSizeRaw->{28, 28}, PlotRange->{{0, 28}, {0, 28}}]\), \!\(\* GraphicsBox[ TagBox[RasterBox[CompressedData[" 1:eJxTTMoPSmNiYGAo5gASQYnljkVFiZXBAkBOaF5xZnpeaopnXklqemqRRRJI mQwU/x8Q8Plabu55HFJ1TExMrDFvsclVMYGB1E4scrOYmPNmThFi4qj/iiHn xRQBJA+JMDHF/EKXY2C6AqKO2jExRf9Gk3Nhug+mTwgzMa1Ek8sFys12XLFi RQ4TUwua3EKmjdfZIW5lUlj9AUXu4+LPd/iZYIB7Gbprt8T5wGX1rqC79s/7 9zduvn+fx8PE5IYagK+PwlhH9ZiYPJClNilxbICxP6kw8W9HklvKwcR8DMY5 xcLkgKyxm4npCIw9h5kpD8UfzkxKiTdBrAk6nEyocv8/K3EysbABAcgX5m/Q PLHAQxriP5vmF+ge/P//+a3SrY3Lb/3AlKEHAAAeUY84 "], {{0, 28}, {28, 0}}, { 0, 255}, ColorFunction->GrayLevel], BoxForm`ImageTag[ "Byte", ColorSpace -> Automatic, Interleaving -> None], Selectable->False], DefaultBaseStyle->"ImageGraphics", ImageSizeRaw->{28, 28}, PlotRange->{{0, 28}, {0, 28}}]\), \!\(\* GraphicsBox[ TagBox[RasterBox[CompressedData[" 1:eJxTTMoPSmNiYGAo5gASQYnljkVFiZXBAkBOaF5xZnpeaopnXklqemqRRRJI mQwU/x+U4Kw8lLHzEYZcmwSUkR2OLvXbBiY3X/cLmtwu5kooq5f5FarUJWG1 z1CmPbpcOMcpKOstAxOq3GpeHRiziMnpF4pcGPNUKOu+OOteFKkPcswwZiWz DorU/5fM0QgTIlDlvhnrvYWqYmKagioHVG2xCgjqom2Y4TbDwLVQLmYgEJdg YWb+9h8dnFsNBP//xzEzY0jBQAMz8yVccvVMTPj04ZSrYObGKScuPAGnnM9e nFJUAQDVl858 "], {{0, 28}, {28, 0}}, {0, 255}, ColorFunction->GrayLevel], BoxForm`ImageTag[ "Byte", ColorSpace -> Automatic, Interleaving -> None], Selectable->False], DefaultBaseStyle->"ImageGraphics", ImageSizeRaw->{28, 28}, PlotRange->{{0, 28}, {0, 28}}]\)}
Out[6]=

コードベクトルを生成するサブネットワークを取得する.

In[7]:=
Click for copyable input
encoder = Take[trained, {NetPort["Input"], 4}]
Out[7]=

テスト画像すべてに対するコードを計算する.

In[8]:=
Click for copyable input
testImages = Keys[testSubset]; features = encoder[testImages];

コードベクトルを3次元に投影し,それをもとのクラス(ネットワークには見えない)とともに可視化する.数字のクラスは凝集する傾向がある.

In[9]:=
Click for copyable input
coords = DimensionReduce[features, 3]; classes = Values[testSubset]; Table[Extract[coords, Position[classes, i]], {i, 0, 4}] ListPointPlot3D[ Table[Extract[coords, Position[classes, i]], {i, 0, 4}], PlotLegends -> PointLegend[96, Range[0, 4]], BoxRatios -> 1, Axes -> None, Boxed -> True, PlotStyle -> Map[ColorData[96], Range[1, 5]], AspectRatio -> 1]
Out[9]=

コードベクトルに直接自動クラスタリングを実行し,それぞれのクラスタから取られたサンプルを表示する.

In[10]:=
Click for copyable input
components = ClusteringComponents[features, 5, 1]; Map[Part[testImages, RandomSample[#, 10]] &, PositionIndex[components]]
Out[10]=

各クラスからランダムに取ったサンプルの階層的クラスタリングを可視化する.

In[11]:=
Click for copyable input
representatives = Catenate@GroupBy[testSubset, Last -> First, RandomSample[#, 6] &]; ClusteringTree[ encoder[representatives] -> Map[ImageCrop, representatives]]
In[12]:=
Click for copyable input
\!\(\* GraphicsBox[RasterBox[CompressedData[" 1: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 V+/ixYtWL0B9JywsTMe2ksYHXjE8PJzePiprlhfgVdLZli1bospmKxzRb2LV VIhajPMizjjKsWPH6M2WK1du06ZNOkLYv38/7kUIlSpV0t2xAkqVKkUxqVat mtZ7oV2kG6+99pruCEixNXzUKtS6O23aNKs/Pz8//5FHHvFJ3QC///57YGCg n7mVbOfOnbKzOCKcpPLkQeV+E66qGA1YzQ4dOohCQWuPBrF9+3YKYcaMGbpj Qr26pGBax42/9dZbIn2qtwoKaLIcixYtoq9OTU21PLtv3z6ccpagGZCmTZvS z3/hhRdkp5KTk2m9Aru6YbWqIjvLlsNQ3Lx5U0iHvpEG58+fj4iIwO1lypTR PY7ixx9/FJZj9OjRBQUF6u+FUxIraaDc1xcBGeotR1ZWFrUw//DDD5bRJt3w 4VGjqKnRW0N9DY9CdlaoirJumO6bCqtdrjwAzJi8/fbb9HLLli373Xff6Qgh JiaGQtiyZYvuaPTr10/Yhs8++0z9jZA+6pAFAQEB33//ve44CDRZjtjYWLLr CxYskJ0aM2YMPHxKSorjUTImaWlp/v7+9NYs28ZF0rKrG8pdrnRq5cqVzok0 4wxu3boFI03vFxlQRwh//fXXm2++Sa0TUVFR+qIBWyt0Q+tYKekYsPDwcH0R kKGplYMWL61evfrx48elx5966ilfHfclQA3Xlm6sWLFCpW6YFNsxqKrCumE0 Tpw4Qf2hqGvom+yG0vnhhx9GCMgp+nZChHzp1o2MjIyqVaviRqSu9u3b6/h2 S9RbDtgt+ByKOR4jBJCOX716FXnK53Vj48aNqGOinrJ9+3bZKaEbixYtshsO iYOCbjirRGCcCOw9veLSpUufOnVKRwgoDkJCQqA8cKeaGiiIu3fvfv7558HB wTp0A2zevLlEiRJ+5j7ZHTt2aL3dKiotBw3uElSoUAHVky+//PKJJ56AjKgp ar0dOI1du3ZZHhe6YdlqagnrhjeSn5/funVrestr1qzREUJ2dnb//v1xe506 dW7cuKEvGl27dtWnG6Bdu3akG87q91RpOZKSkt544w3qj/aTDJWsVKmS42sK eTXbtm2DD1GpGyazPtg6Bd145JFHnBYzxnkkJCQ888wzfuYJ8vpWA4NTpXSi u7eddOPJJ5/UcS8sB+kGMqy+b7dEfSsHpHLGjBmTJ0/u1KkT/kflRd9cYx8D JgFCCgFxMJzOnTv75DQf3wBFZ8WKFfGidYcwYsQIFA26h3xHR0fj9v3799+7 d0/hMltnR44c6efU+SB2LcffZpz1dT4JXtadO3cUXiiqqMoXMF4B3uCtW7eU r8G7dl0EEPjvv/+ucMGFCxdc9+0yFCwHFAPxvH37ttsi46WcO3fu9OnTts6e PHlS9/wmxjjk5eXBZtsaNw676JR1cpRBKY+y3uop5NYDBw64rRagYDmQFxTm 8OIULd1D0+7Gjx9vaxqLFzF79mzY0ZdeeknT9hAFBQVIUVZnqVy7di02Ntal xRDjNlAEZGRkWD2FEtZWjnYiUCfLuZMEUqzWGfcOYtVyQL6QFxSM2dChQ2Ub WAcEBHz11VfeOwzs/PnzdevWhW7Uq1dPq+U7deqU1R+emJjoTvfIuBR4b6uW QyE7Ox2rlsPNZoOwajmUzQZAoSzTDfocHh4uNWyQ6OjoaFuL/xgKRPLVV1+F btSqVQsCqOleq5aDzYbvYdVywGxYTkNwEVY1yv1mg5BZDpIv5VagqKgo0S07 ZcqUXr16iS7aoKAgk7kDqF27duXKlcNxyzHqxmTAgAG0pIblBFi7WFoONhu+ h6XlcKfZIGSWwyNmg5BZDrtmg6AB/DK/Yfl5+fLlroy7M0HB4e/vD92YM2eO 1ntlloPNhq8isxzuNBuETKk8ZTYIYTnUmA3BmDFjKlasaEs3UGfRPaPHpeTk 5IwYMcLq0gpTp06FblSvXl2hi8QWUsvBZsNXkVoO95sNQlgOD5oNQlgOlWZD sGfPngFmLHVj7ty5LouvQ2zcuBHiMHHiRMvRVqtWrQoICMDZsWPHau2DFpYD ZuPgwYNsNnwVYTncbzYIoVdnzpwRU8Y8BWKCh6DebMg4ex/R1tGiRQvkIKfH 03GQwakdo0uXLrJTqampLVu2pLOy+b9qIMvBZsO3IcuBzOLBqRYo5S9fvuxZ s0HAcuzatcspdSXhPYy5GhicQL9+/aAM/v7+gwcPPmRm3LhxULwKFSqIBYc7 deqkNWFAkXbv3o1ExWbDt4HlwIv2iNkgYDmQWz1uNghkE6cMXxk5cqSoszge miuYMGHCAyqoWrWq1grs0aNH9c25ZryIq1evoirqwd3Vb9y4ERsba5BpTZqW AlPgypUrNWvWNLJupKen9+/fX6YSZcuW7d69u6inEKGhoZb7a9uCu1EKD7m5 uagmQEDc/9V//fUXvtope6M4C01LgcmQag61lALD9sMuXbq0Vq1aQh9atWpF E6VzcnL69u0rlY4qVaooTykScMtGocIj0mFA0TDptRw//vijbBnDxYsXk9+A 8XBqBJ3GzZs327ZtS8rw4IMPSrtlpbpRu3Ztf3//Pn362N0Lg81GIcTN0mFM 0SC0Wg5cjBIZujFz5kxxUCyLaljdMJlXZSFxqFy5srRBOC0trVGjRsKHjB8/ Hh+2bt2qHBqbjcKJ26TDyKJh0m45oqKiaMxG//79xUGv0A14DDgNGuglWzn2 3XffDQ4OxqnOnTv/8MMPJUuWxC9SCIrNRmHGDdJhcNEgNFmO+Pj4oKAgZLGw sDAxmx65jNo3atSo4bJoOoHhw4cj5uXKlbNswRg8eDBZjqlTpwYEBHTo0EEh HDYbhRyXSodXiIZJu+VYvnw5jdno06fPuXPn7ty507t3b/Ib6jsjPMKqVaug DMWLF7eshty6dQtKiLOBgYH4X0E32GwwJpdJh7eIBqG1lUM6zlyIBjh58qTr Iukgly5doolsjRo1ys/Pl53dsGED4o+zRYoUwf8Kg3zYbDCE06XDu0TDpN1y zJ49W4zZEBpi8J1P4RCGDBkSERExceJEy4GyBQUFtJIPaN26ta1959lsMFKc KB1eJxqEVsuRk5MzderUZs2aPfzww927d1+/fr3dvkuPgxgqrL381VdfLVq0 qF27dpb7LgnYbDAynCIdXioaJhWWA0Wwzy94jvqLgvqx2WCs4qB0eK9oEAqW A/V9laMovZrr168rTIrXZDbOnz+/cuXKd955Z9asWY5bFCh2XFzcnDlzEKAj 4dy4cWPhwoWO7wLDyNAtHbZEY+bMmXjXmhbN9hQKluPw4cPK02pwdsuWLR/8 Ezh/FNCWjZBG5vjx48jylse1mo2PP/5YNP7861//cjBWSD9OmTy4Y8cOasPB b3EwSowMHdJhSzTmzp1LKSc0NBTZyqnRdAlWLYddszF58uQKFSqIjWU7dOjQ qFEj2h0b/1etWjU6OtqVsXYmtiyHJrMB+S1btizpxoMPPqh7EpDA6brx/fff OxglxhJN0qFQPaGdmul1d+rUycmxdAFWLQfERMFsrFmzhjbCrly58ubNm5OT k/EoLl26hA99+/alU8hE69evd3HcnYal5dBqNlAREJ1NLVq0cDxK77//vpBl R8Ih3cBLSU9PdzxWjCUqpUO5TeOPP/545plnKAkFBga++uqrLoipk5FZDrtm o3HjxiQaSJNWQ3v00UdxQXBw8Lp165wfXRdgaTm0dqNANyiPw3E1b97c8Si9 9dZbTvQbcIOOR4mxhV3pyMnJiYmJUW4Iffrpp0VJ0aVLl02bNrkgps5EZjmU zcbFixcDAgLw03788UeFaxYsWADZbNKkiUdWMNCB1HLo6EZxut944YUX7OoG njNMnXI8f/75Z1pmxHtb770CBemAaOCU1YWypezZs4equgT+dE1MnYmwHHbN xqxZs0gST5w4oRzm7t27u3XrBu+BD06MqouQWg41ZuPUqVOJZo4ePYr/ly1b 5lzdkA7QtXVNtWrVHjCvsWx56pdffpk7dy6sb+3atal9Y/LkyY7HilHAqnSo FA1COhIbn6Ojox1vKHMpwnIomw3QuXNnlboB4uLicGWvXr1u3LjhtLi6DLIc dpcrz8/PRyXC6g4R9CdKjSeffPKbb77Zvn277lLjgfsbXbVu3drWNWPGjCFN iIiI+NnMyJEjYXeLFy9O22ahLtmmTRu6RsduU4xWZNKhSTQA3pGwHHiDrVq1 OnTokMsi6xygGGlpaXbHbKj3Gybz7orvvfceLkY+clI0XQhZDvgHZbOxbt06 mVAo/FmiRIkWZubPny/beeHmzZtTpkyRThhcs2bN+PHj4SJk4eC41f3QYQ6h DLLlEGvVqtWjR49FixahIgkNLCgogMTVr1/f54fwGQQhHVpFg4DslylTRiSA tm3b6tuAwG3AEW3dutVuc8TMmTMpfapcGj05OblIkSK0O6TxgWzC4d+7d0/h GlRJ/CRQ17OaP2UtQihcSpUqpWZTPFps7bPPPrOMTMOGDfEuhg8fPtPMtm3b LNsxKlWqVKdOHe8aVOPVQK737t0Lq6mjTSkjI6NBgwYi5YSFhRl56iihZsaK Jr9BDBkyBO7L4di5A+Xho8Ty5ctFjr58+TIdRJ6V5vfy5cuHhobiV1PZAQIC Aj744ANZUDVr1lSpG/jfakP0ihUroBvKG1JAN3CNVwxE9BlQ/urefgX2UpoA kH2cGzeno2aSrNCNL7/8Uk2YeICPPPIIfr5XjIIz2R4+KrCqGygUUGUQr5sm yiEoPM+vzMTExMjCwS20MbcwJAqfUXlBTccyMlRVUR6ewbrhEXRv93bs2DGp bjRr1szpcXM6di0HPFhgYCB+VJs2bezuxnLkyJEqVarQaNKFCxc6Naauwq7l QM3LUjek/bBCNxRYu3btwIEDaYwcroct6du370cffSRMKWp2FKDdza2o5XPD hg22LmDd8Ai6LUdeXt63334rdCM4ONj4fbJqLAe15oEePXooKCpOde/eHel/ 9+7db775phe15ytbjuzsbEvdgJw2bNhQvW5ERUWtWrUqJCSErm/ZsqVs00xU csW3KAf17LPPQhbCw8NtaR3rhqfQbTni4+PF8FGv0A2TCsuxceNGf39/ko7H H3/c6pPBQagKLujduzf+nDRpkqui6wKULQd0Q9QgpCsXffbZZ6I5C3lZzReJ 9g3LySNCN1544QXlQL755htqqba1IADrhqdwpJVDDB8tW7bsuHHjnBsxV6DG cnzyySelS5em39W8efNly5ZJO3C/+OILHMQpVE8gIElJSV9//bWLY+1kFCyH 1G9MmDBBegteMelAnTp1xBrOtti8eXPx4sVJZywnq7711lv0eC13x5aRmZlp VzdKlSqFy5TDYVyBbsvRuXNnkcxUFkMeR03HCqSDiksCVXX8Opgr/E+Sgjr7 ypUrTeYM5ZZYOxMFy2FLN8CwYcNEtTQxMdHut7z44ot0veVMHzE/xW5XFOSi ffv20A2rY2/S0tICAgJ4foqn0G05UKyg7il0w+oAHqOhcvVRFKkzZsyoVq1a aGiorBegcuXKcB1uiKrrsGU5pLoxcOBA6amoqCg/LYuvoopB169evVp2at68 eRSOmizfrVs3PHl8u+UpntfmcXRbDhQrIqV5RROHSePqoyidF5kJDAwMCgqa NWuWt0xnU8CW5ZDqhmWjpdCNOXPmqPkWP/NGeLJGUZPGzbs3bNgAAbc6XG3S pEnQDfhANZFhXIEjlgMVTO/SDTWW49593BMl92PVckBJaHUmMHr0aNnZS5cu oYZy6NChgoICNV9x9uzZmzdvWj313HPPNWjQYM2aNTpiLkDVqXz58ty44Vl0 Ww5akgLs3bvX6bFyEXYtB1Kjb8/OtjuWw9XKqSZ835Zu30CN5cjLy/ON96hs OdQMyfYB7I7lcPVMZzxnhXl2t2/fhmPxjfTm2yhbjrS0NK0z4IyMguVAhjp3 7pytG+Pi4h6UMGjQIDeP+9q4ceO8efPS09PhiGQTUTWhII/5+fkxMTGuni8G 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 YRiGYRiGYRiGYRiGYRiGYRiGYRhGLf8PSl6oKg== "], {{0, 0}, {360, 258}}, {0, 255}, ColorFunction->RGBColor], ImageSize->{360, 258}, PlotRange->{{0, 360}, {0, 258}}]\)

関連する例

de en es fr ko pt-br ru zh