トピックは興味深いものでした。また、トレーニングシーケンスの品質が結果に影響を与えるかどうかを確認し、人工知能
Kerasの例から単純なネットワークを選択し、 1行追加しました。 入力トレーニングシーケンスmnistの順序がMLPトレーニングの結果にどのように影響するかに興味があります。
結果は予想外で奇妙だったので、再確認する必要がありましたが、ビジネスと詳細に取りかかりましょう。
実験のアイデアはシンプルで普通です-MLPを公開されているmnistのケラスからトレーニングし、ガイドラインを取得してから、シーケンス01234567890123..7890123をトレーニングします。 生徒の教え方-少し基本、少しアセンブラー、少しフォートランなど そして最初のトレーニングに匹敵します。 結果は非常に期待されており、元のシーケンスの方が優れていますが、順序は同じです。 64回の試行のグラフです
そして、この方法でネットワークを学習し、「0」からすべての写真、次にすべて「1」、次にすべて「2」などを「9」に送信します。結果は「いいえ」です。ネットワークは学習しません。 直観的には、良くも悪くも同等の結果が期待できます-これらはすでに詳細ですが、ここに64回のトレーニング結果の表があります
Nativと実験
ステップ0
(「テスト精度:」、0.9708)
(「テスト精度:」、0.976899999999999999)
(「テスト精度:」、0.1009)
ステップ1
(「テスト精度:」、0.976899999999999999)
(「テスト精度:」、0.97219999999999995)
(「テスト精度:」、0.1009)
ステップ2
(「テスト精度:」、0.97330000000000005)
(「テスト精度:」、0.97609999999999997)
(「テスト精度:」、0.1028)
ステップ3
(「テスト精度:」、0.97040000000000004)
(「テスト精度:」、0.97160000000000002)
(「テスト精度:」、0.1135)
ステップ4
(「テスト精度:」、0.97370000000000001)
(「テスト精度:」、0.97050000000000003)
(「テスト精度:」、0.098199999999999996)
ステップ5
(「テスト精度:」、0.96999999999999997)
(「テスト精度:」、0.96909999999999996)
(「テスト精度:」、0.1009)
ステップ6
(「テスト精度:」、0.975899999999999999)
(「テスト精度:」、0.97540000000000004)
(「テスト精度:」、0.1028)
ステップ7
(「テスト精度:」、0.97360000000000002)
(「テスト精度:」、0.97350000000000003)
(「テスト精度:」、0.1135)
ステップ8
(「テスト精度:」、0.97740000000000005)
(「テスト精度:」、0.97109999999999996)
(「テスト精度:」、0.1135)
ステップ9
(「テスト精度:」、0.97260000000000002)
(「テスト精度:」、0.970899999999999999)
(「テスト精度:」、0.1135)
ステップ10
(「テスト精度:」、0.96930000000000005)
(「テスト精度:」、0.9708)
(「テスト精度:」、0.1028)
ステップ11
(「テスト精度:」、0.97419999999999995)
(「テスト精度:」、0.9709999999999999797)
(「テスト精度:」、0.1135)
ステップ12
(「テスト精度:」、0.97419999999999995)
(「テスト精度:」、0.97519999999999996)
(「テスト精度:」、0.1009)
ステップ13
(「テスト精度:」、0.97719999999999996)
(「テスト精度:」、0.97370000000000001)
(「テスト精度:」、0.1135)
ステップ14
(「テスト精度:」、0.974899999999999999)
(「テスト精度:」、0.971899999999999999)
(「テスト精度:」、0.1135)
ステップ15
(「テスト精度:」、0.9758)
(「テスト精度:」、0.97219999999999995)
(「テスト精度:」、0.104899999999999999)
ステップ16
(「テスト精度:」、0.97419999999999995)
(「テスト精度:」、0.97529999999999994)
(「テスト精度:」、0.1135)
ステップ17
(「テスト精度:」、0.97819999999999996)
(「テスト精度:」、0.97170000000000001)
(「テスト精度:」、0.1009)
ステップ18
(「テスト精度:」、0.97850000000000004)
(「テスト精度:」、0.97260000000000002)
(「テスト精度:」、0.1009)
ステップ19
(「テスト精度:」、0.97419999999999995)
(「テスト精度:」、0.975899999999999999)
(「テスト精度:」、0.0974)
ステップ20
(「テスト精度:」、0.97699999999999998)
(「テスト精度:」、0.97319999999999995)
(「テスト精度:」、0.1135)
ステップ21
(「テスト精度:」、0.97309999999999997)
(「テスト精度:」、0.97260000000000002)
(「テスト精度:」、0.1009)
ステップ22
(「テスト精度:」、0.97560000000000002)
(「テスト精度:」、0.97519999999999996)
(「テスト精度:」、0.1135)
ステップ23
(「テスト精度:」、0.97619999999999996)
(「テスト精度:」、0.97450000000000003)
(「テスト精度:」、0.1009)
ステップ24
(「テスト精度:」、0.976899999999999999)
(「テスト精度:」、0.97430000000000005)
(「テスト精度:」、0.1028)
ステップ25
(「テスト精度:」、0.97609999999999997)
(「テスト精度:」、0.97599999999999998)
(「テスト精度:」、0.1135)
ステップ26
(「テスト精度:」、0.97840000000000005)
(「テスト精度:」、0.97419999999999995)
(「テスト精度:」、0.1028)
ステップ27
(「テスト精度:」、0.96909999999999996)
(「テスト精度:」、0.97019999999999995)
(「テスト精度:」、0.1135)
ステップ28
(「テスト精度:」、0.9738)
(「テスト精度:」、0.97419999999999995)
(「テスト精度:」、0.1009)
ステップ29
(「テスト精度:」、0.97460000000000002)
(「テスト精度:」、0.97419999999999995)
(「テスト精度:」、0.1135)
ステップ30
(「テスト精度:」、0.97640000000000005)
(「テスト精度:」、0.97170000000000001)
(「テスト精度:」、0.1042)
ステップ31
(「テスト精度:」、0.97409999999999997)
(「テスト精度:」、0.95650000000000002)
(「テスト精度:」、0.089200000000000002)
ステップ32
(「テスト精度:」、0.976899999999999999)
(「テスト精度:」、0.97109999999999996)
(「テスト精度:」、0.1135)
ステップ33
(「テスト精度:」、0.97370000000000001)
(「テスト精度:」、0.97340000000000004)
(「テスト精度:」、0.1009)
ステップ34
(「テスト精度:」、0.97699999999999998)
(「テスト精度:」、0.97150000000000003)
(「テスト精度:」、0.1135)
ステップ35
(「テスト精度:」、0.97250000000000003)
(「テスト精度:」、0.97140000000000004)
(「テスト精度:」、0.1009)
ステップ36
(「テスト精度:」、0.975899999999999999)
(「テスト精度:」、0.96950000000000003)
(「テスト精度:」、0.1055)
ステップ37
(「テスト精度:」、0.97519999999999996)
(「テスト精度:」、0.96509999999999996)
(「テスト精度:」、0.1135)
ステップ38
(「テスト精度:」、0.97299999999999998)
(「テスト精度:」、0.9728)
(「テスト精度:」、0.1028)
ステップ39
(「テスト精度:」、0.96909999999999996)
(「テスト精度:」、0.97240000000000004)
(「テスト精度:」、0.1009)
ステップ40
(「テスト精度:」、0.97399999999999998)
(「テスト精度:」、0.9647999999999999999)
(「テスト精度:」、0.1135)
ステップ41
(「テスト精度:」、0.97799999999999998)
(「テスト精度:」、0.97319999999999995)
(「テスト精度:」、0.1135)
ステップ42
(「テスト精度:」、0.97419999999999995)
(「テスト精度:」、0.96340000000000003)
(「テスト精度:」、0.1009)
ステップ43
(「テスト精度:」、0.97740000000000005)
(「テスト精度:」、0.97170000000000001)
(「テスト精度:」、0.1009)
ステップ44
(「テスト精度:」、0.97160000000000002)
(「テスト精度:」、0.97389999999999999)
(「テスト精度:」、0.1135)
ステップ45
(「テスト精度:」、0.97599999999999998)
(「テスト精度:」、0.97360000000000002)
(「テスト精度:」、0.1033)
ステップ46
(「テスト精度:」、0.97389999999999999)
(「テスト精度:」、0.97019999999999995)
(「テスト精度:」、0.1135)
ステップ47
(「テスト精度:」、0.97650000000000003)
(「テスト精度:」、0.97619999999999996)
(「テスト精度:」、0.10290000000000001)
ステップ48
(「テスト精度:」、0.97409999999999997)
(「テスト精度:」、0.9647)
(「テスト精度:」、0.1009)
ステップ49
(「テスト精度:」、0.97240000000000004)
(「テスト精度:」、0.97450000000000003)
(「テスト精度:」、0.1135)
ステップ50
(「テスト精度:」、0.97570000000000001)
(「テスト精度:」、0.97040000000000004)
(「テスト精度:」、0.1135)
ステップ51
(「テスト精度:」、0.97250000000000003)
(「テスト精度:」、0.97219999999999995)
(「テスト精度:」、0.1135)
ステップ52
(「テスト精度:」、0.97230000000000005)
(「テスト精度:」、0.97309999999999997)
(「テスト精度:」、0.1135)
ステップ53
(「テスト精度:」、0.9758)
(「テスト精度:」、0.97230000000000005)
(「テスト精度:」、0.1135)
ステップ54
(「テスト精度:」、0.97770000000000001)
(「テスト精度:」、0.97260000000000002)
(「テスト精度:」、0.089200000000000002)
ステップ55
(「テスト精度:」、0.97340000000000004)
(「テスト精度:」、0.969199999999999955)
(「テスト精度:」、0.1135)
ステップ56
(「テスト精度:」、0.97170000000000001)
(「テスト精度:」、0.97070000000000001)
(「テスト精度:」、0.1028)
ステップ57
(「テスト精度:」、0.97670000000000001)
(「テスト精度:」、0.97330000000000005)
(「テスト精度:」、0.1135)
ステップ58
(「テスト精度:」、0.975899999999999999)
(「テスト精度:」、0.97370000000000001)
(「テスト精度:」、0.1033)
ステップ59
(「テスト精度:」、0.9748)
(「テスト精度:」、0.97419999999999995)
(「テスト精度:」、0.10290000000000001)
ステップ60
(「テスト精度:」、0.97409999999999997)
(「テスト精度:」、0.9709999999999999797)
(「テスト精度:」、0.1009)
ステップ61
(「テスト精度:」、0.9758)
(「テスト精度:」、0.97450000000000003)
(「テスト精度:」、0.1135)
ステップ62
(「テスト精度:」、0.97529999999999994)
(「テスト精度:」、0.97260000000000002)
(「テスト精度:」、0.1028)
ステップ63
(「テスト精度:」、0.97240000000000004)
(「テスト精度:」、0.96809999999999996)
(「テスト精度:」、0.1135)
(「テスト精度:」、0.9708)
(「テスト精度:」、0.976899999999999999)
(「テスト精度:」、0.1009)
ステップ1
(「テスト精度:」、0.976899999999999999)
(「テスト精度:」、0.97219999999999995)
(「テスト精度:」、0.1009)
ステップ2
(「テスト精度:」、0.97330000000000005)
(「テスト精度:」、0.97609999999999997)
(「テスト精度:」、0.1028)
ステップ3
(「テスト精度:」、0.97040000000000004)
(「テスト精度:」、0.97160000000000002)
(「テスト精度:」、0.1135)
ステップ4
(「テスト精度:」、0.97370000000000001)
(「テスト精度:」、0.97050000000000003)
(「テスト精度:」、0.098199999999999996)
ステップ5
(「テスト精度:」、0.96999999999999997)
(「テスト精度:」、0.96909999999999996)
(「テスト精度:」、0.1009)
ステップ6
(「テスト精度:」、0.975899999999999999)
(「テスト精度:」、0.97540000000000004)
(「テスト精度:」、0.1028)
ステップ7
(「テスト精度:」、0.97360000000000002)
(「テスト精度:」、0.97350000000000003)
(「テスト精度:」、0.1135)
ステップ8
(「テスト精度:」、0.97740000000000005)
(「テスト精度:」、0.97109999999999996)
(「テスト精度:」、0.1135)
ステップ9
(「テスト精度:」、0.97260000000000002)
(「テスト精度:」、0.970899999999999999)
(「テスト精度:」、0.1135)
ステップ10
(「テスト精度:」、0.96930000000000005)
(「テスト精度:」、0.9708)
(「テスト精度:」、0.1028)
ステップ11
(「テスト精度:」、0.97419999999999995)
(「テスト精度:」、0.9709999999999999797)
(「テスト精度:」、0.1135)
ステップ12
(「テスト精度:」、0.97419999999999995)
(「テスト精度:」、0.97519999999999996)
(「テスト精度:」、0.1009)
ステップ13
(「テスト精度:」、0.97719999999999996)
(「テスト精度:」、0.97370000000000001)
(「テスト精度:」、0.1135)
ステップ14
(「テスト精度:」、0.974899999999999999)
(「テスト精度:」、0.971899999999999999)
(「テスト精度:」、0.1135)
ステップ15
(「テスト精度:」、0.9758)
(「テスト精度:」、0.97219999999999995)
(「テスト精度:」、0.104899999999999999)
ステップ16
(「テスト精度:」、0.97419999999999995)
(「テスト精度:」、0.97529999999999994)
(「テスト精度:」、0.1135)
ステップ17
(「テスト精度:」、0.97819999999999996)
(「テスト精度:」、0.97170000000000001)
(「テスト精度:」、0.1009)
ステップ18
(「テスト精度:」、0.97850000000000004)
(「テスト精度:」、0.97260000000000002)
(「テスト精度:」、0.1009)
ステップ19
(「テスト精度:」、0.97419999999999995)
(「テスト精度:」、0.975899999999999999)
(「テスト精度:」、0.0974)
ステップ20
(「テスト精度:」、0.97699999999999998)
(「テスト精度:」、0.97319999999999995)
(「テスト精度:」、0.1135)
ステップ21
(「テスト精度:」、0.97309999999999997)
(「テスト精度:」、0.97260000000000002)
(「テスト精度:」、0.1009)
ステップ22
(「テスト精度:」、0.97560000000000002)
(「テスト精度:」、0.97519999999999996)
(「テスト精度:」、0.1135)
ステップ23
(「テスト精度:」、0.97619999999999996)
(「テスト精度:」、0.97450000000000003)
(「テスト精度:」、0.1009)
ステップ24
(「テスト精度:」、0.976899999999999999)
(「テスト精度:」、0.97430000000000005)
(「テスト精度:」、0.1028)
ステップ25
(「テスト精度:」、0.97609999999999997)
(「テスト精度:」、0.97599999999999998)
(「テスト精度:」、0.1135)
ステップ26
(「テスト精度:」、0.97840000000000005)
(「テスト精度:」、0.97419999999999995)
(「テスト精度:」、0.1028)
ステップ27
(「テスト精度:」、0.96909999999999996)
(「テスト精度:」、0.97019999999999995)
(「テスト精度:」、0.1135)
ステップ28
(「テスト精度:」、0.9738)
(「テスト精度:」、0.97419999999999995)
(「テスト精度:」、0.1009)
ステップ29
(「テスト精度:」、0.97460000000000002)
(「テスト精度:」、0.97419999999999995)
(「テスト精度:」、0.1135)
ステップ30
(「テスト精度:」、0.97640000000000005)
(「テスト精度:」、0.97170000000000001)
(「テスト精度:」、0.1042)
ステップ31
(「テスト精度:」、0.97409999999999997)
(「テスト精度:」、0.95650000000000002)
(「テスト精度:」、0.089200000000000002)
ステップ32
(「テスト精度:」、0.976899999999999999)
(「テスト精度:」、0.97109999999999996)
(「テスト精度:」、0.1135)
ステップ33
(「テスト精度:」、0.97370000000000001)
(「テスト精度:」、0.97340000000000004)
(「テスト精度:」、0.1009)
ステップ34
(「テスト精度:」、0.97699999999999998)
(「テスト精度:」、0.97150000000000003)
(「テスト精度:」、0.1135)
ステップ35
(「テスト精度:」、0.97250000000000003)
(「テスト精度:」、0.97140000000000004)
(「テスト精度:」、0.1009)
ステップ36
(「テスト精度:」、0.975899999999999999)
(「テスト精度:」、0.96950000000000003)
(「テスト精度:」、0.1055)
ステップ37
(「テスト精度:」、0.97519999999999996)
(「テスト精度:」、0.96509999999999996)
(「テスト精度:」、0.1135)
ステップ38
(「テスト精度:」、0.97299999999999998)
(「テスト精度:」、0.9728)
(「テスト精度:」、0.1028)
ステップ39
(「テスト精度:」、0.96909999999999996)
(「テスト精度:」、0.97240000000000004)
(「テスト精度:」、0.1009)
ステップ40
(「テスト精度:」、0.97399999999999998)
(「テスト精度:」、0.9647999999999999999)
(「テスト精度:」、0.1135)
ステップ41
(「テスト精度:」、0.97799999999999998)
(「テスト精度:」、0.97319999999999995)
(「テスト精度:」、0.1135)
ステップ42
(「テスト精度:」、0.97419999999999995)
(「テスト精度:」、0.96340000000000003)
(「テスト精度:」、0.1009)
ステップ43
(「テスト精度:」、0.97740000000000005)
(「テスト精度:」、0.97170000000000001)
(「テスト精度:」、0.1009)
ステップ44
(「テスト精度:」、0.97160000000000002)
(「テスト精度:」、0.97389999999999999)
(「テスト精度:」、0.1135)
ステップ45
(「テスト精度:」、0.97599999999999998)
(「テスト精度:」、0.97360000000000002)
(「テスト精度:」、0.1033)
ステップ46
(「テスト精度:」、0.97389999999999999)
(「テスト精度:」、0.97019999999999995)
(「テスト精度:」、0.1135)
ステップ47
(「テスト精度:」、0.97650000000000003)
(「テスト精度:」、0.97619999999999996)
(「テスト精度:」、0.10290000000000001)
ステップ48
(「テスト精度:」、0.97409999999999997)
(「テスト精度:」、0.9647)
(「テスト精度:」、0.1009)
ステップ49
(「テスト精度:」、0.97240000000000004)
(「テスト精度:」、0.97450000000000003)
(「テスト精度:」、0.1135)
ステップ50
(「テスト精度:」、0.97570000000000001)
(「テスト精度:」、0.97040000000000004)
(「テスト精度:」、0.1135)
ステップ51
(「テスト精度:」、0.97250000000000003)
(「テスト精度:」、0.97219999999999995)
(「テスト精度:」、0.1135)
ステップ52
(「テスト精度:」、0.97230000000000005)
(「テスト精度:」、0.97309999999999997)
(「テスト精度:」、0.1135)
ステップ53
(「テスト精度:」、0.9758)
(「テスト精度:」、0.97230000000000005)
(「テスト精度:」、0.1135)
ステップ54
(「テスト精度:」、0.97770000000000001)
(「テスト精度:」、0.97260000000000002)
(「テスト精度:」、0.089200000000000002)
ステップ55
(「テスト精度:」、0.97340000000000004)
(「テスト精度:」、0.969199999999999955)
(「テスト精度:」、0.1135)
ステップ56
(「テスト精度:」、0.97170000000000001)
(「テスト精度:」、0.97070000000000001)
(「テスト精度:」、0.1028)
ステップ57
(「テスト精度:」、0.97670000000000001)
(「テスト精度:」、0.97330000000000005)
(「テスト精度:」、0.1135)
ステップ58
(「テスト精度:」、0.975899999999999999)
(「テスト精度:」、0.97370000000000001)
(「テスト精度:」、0.1033)
ステップ59
(「テスト精度:」、0.9748)
(「テスト精度:」、0.97419999999999995)
(「テスト精度:」、0.10290000000000001)
ステップ60
(「テスト精度:」、0.97409999999999997)
(「テスト精度:」、0.9709999999999999797)
(「テスト精度:」、0.1009)
ステップ61
(「テスト精度:」、0.9758)
(「テスト精度:」、0.97450000000000003)
(「テスト精度:」、0.1135)
ステップ62
(「テスト精度:」、0.97529999999999994)
(「テスト精度:」、0.97260000000000002)
(「テスト精度:」、0.1028)
ステップ63
(「テスト精度:」、0.97240000000000004)
(「テスト精度:」、0.96809999999999996)
(「テスト精度:」、0.1135)
人々がどのように行うかはわかりませんが、それは純粋にMLPのみであり、すべてのシーケンスではなく、とにかくトレーニングできることがわかります。
いくつかの場所で教えられているようにAIをトレーニングするには:最初に基本のみ、次にFortranのみ、次にアセンブラのみなど 成功しません。 / :-) /特定された特徴がすべての学習プロセス(人とロボットの両方)に固有である場合、すべての大学プログラムを慎重に研究する必要があります。
ソーステキスト
from keras import backend as K_B from keras.datasets import mnist from keras.layers import Input, Dense, Dropout from keras.models import Sequential from keras.optimizers import RMSprop from keras.utils import np_utils import numpy as np import matplotlib.pyplot as plt %matplotlib inline def MLP(ind): model = Sequential() model.add(Dense(512, activation='relu', input_shape=(width * height,))) model.add(Dropout(0.2)) model.add(Dense(512, activation='relu')) model.add(Dropout(0.2)) model.add(Dense(num_classes, activation='softmax')) model.compile(loss='categorical_crossentropy', optimizer=RMSprop(), metrics=['accuracy']) if (ind == 0): # model.save_weights('weights.h5') # , else: model.load_weights('weights.h5', by_name = False) # , history = model.fit(X_train, Y_train, shuffle = False, # keras batch_size=batch_size, epochs=epochs, verbose=0, validation_data=(X_test, Y_test)) score = model.evaluate(X_test, Y_test, verbose=0) print('Test accuracy:', score[1]) K_B.clear_session() # , return(score[1]) batch_size = 12 epochs = 12 hidden_size = 512 (X_train, y_train), (X_test, y_test) = mnist.load_data() num_train, width, height = X_train.shape num_test = X_test.shape[0] num_classes = np.unique(y_train).shape[0] X_train = X_train.astype('float32') X_test = X_test.astype('float32') X_train /= 255. X_test /= 255. X_train = X_train.reshape(num_train, height * width) X_test = X_test.reshape(num_test, height * width) XX_train = np.copy(X_train) yy_train = np.copy(y_train) Y_train = np_utils.to_categorical(y_train, num_classes) Y_test = np_utils.to_categorical(y_test, num_classes) steps = 64 st = np.arange(steps, dtype='int') res_N = np.arange((steps), dtype='float') res_1 = np.arange((steps), dtype='float') res_2 = np.arange((steps), dtype='float') for n in xrange(steps): # __ X_train = np.copy(XX_train) y_train = np.copy(yy_train) Y_train = np_utils.to_categorical(y_train, num_classes) print ' step ', n res_N[n] = MLP(0) # __ 00..0011..1122..2233.. .. 8899..99 perm = np.arange(num_train, dtype='int') cl = np.zeros(num_classes, dtype='int') for k in xrange(num_train): if (cl[yy_train[k]] * num_classes + yy_train[k] < num_train): perm[ cl[yy_train[k]] * num_classes + yy_train[k] ] = k cl[yy_train[k]] += 1 for k in xrange(num_train): X_train[k,...] = XX_train[perm[k],...] for k in xrange(num_train): y_train[k] = yy_train[perm[k]] Y_train = np_utils.to_categorical(y_train, num_classes) res_2[n] = MLP(2) # __ 0123..78901..7890123..789 perm = np.arange(num_train, dtype='int') j = 0 for k in xrange(num_classes): for i in xrange(num_train): if (yy_train[i] == k): perm[j] = i j += 1 for k in xrange(num_train): X_train[k,...] = XX_train[perm[k],...] y_train[k] = yy_train[perm[k]] Y_train = np_utils.to_categorical(y_train, num_classes) res_1[n] = MLP(1)
私は他の種類のネットワークをチェックしませんでしたが、このチェックはあまりテスラテスラではありませんでした。