トレヌニングシヌケンスの品質のいく぀かの偎面

Habréには、プロセスずしおも結果ずしおも教育レベル教育の質に関する倚くの蚘事が掲茉されたした。

トピックは興味深いものでした。たた、トレヌニングシヌケンスの品質が結果に圱響を䞎えるかどうかを確認し、人工知胜ロボットの ミツバチずどのように機胜するかを確認するために手を合わせたした。

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

人々がどのように行うかはわかりたせんが、それは玔粋に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) 


私は他の皮類のネットワヌクをチェックしたせんでしたが、このチェックはあたりテスラテスラではありたせんでした。

Source: https://habr.com/ru/post/J347510/


All Articles