рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдХреНрдпрд╛ рдкреИрдЯрд░реНрди рдкрд╛рддреЗ рд╣реИрдВ?

рдЗрд╕ рдкреЛрд╕реНрдЯ рдореЗрдВ рдореИрдВ рдЙрди рдкреИрдЯрд░реНрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдЬреЛ рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдХрдИ рд╢реБрд░реБрдЖрддреА рдорд╛рд░реНрдЧрджрд░реНрд╢рдХ рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рд▓рд┐рдП рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреА рддрдХрдиреАрдХ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЬрдмрдХрд┐ "рддрд░реНрдХ" (рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдХреНрдпрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ? рдХреМрди рд╕реЗ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХрд┐рди рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рд╣реИрдВ рдФрд░ рдХреНрдпреЛрдВ?) рдХреЗ рд╕рд╡рд╛рд▓ рдЕрдХреНрд╕рд░ рдХрд┐рдирд╛рд░реЗ рдкрд░ рд░рд╣рддреЗ рд╣реИрдВред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдореЗрд░реА рдкреЛрд╕реНрдЯ рд╢реБрд░реБрдЖрддреА рд▓реЛрдЧреЛрдВ рдХреЛ рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХреЛ рдмреЗрд╣рддрд░ рдврдВрдЧ рд╕реЗ рд╕рдордЭрдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧреАред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдпрд╣ рджреЗрдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВрдЧреЗ рдХрд┐ рд╡реЗ рдХреБрдЫ рдореЙрдбрд▓ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХреИрд╕реЗ рдХрд░рддреЗ рд╣реИрдВред рдХреЗрдпрд░реНрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдЬрдЧрд░ рдореЗрдВ рдирдореВрдирд╛ рдХреЛрдб рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдХрд╛рд░реНрдп 1. рдЪрд▓реЛ рдПрдХ рд╕рд░рд▓ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рд╕рд╛рдЗрди рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рддреЗ рд╣реБрдП рдПрдХ рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╣реИрдВред

import numpy as np import matplotlib import matplotlib.pyplot as plt from keras.models import Sequential from keras.layers import Dense def get_X_y(n): X = np.random.uniform(0, np.pi, n) y = np.sin(X) return X, y n = 40 X, y = get_X_y(n) print("X shape:", X.shape) model = Sequential() model.add(Dense(6, input_dim=1, activation='relu')) model.add(Dense(4, activation='relu')) model.add(Dense(1, activation='sigmoid')) model.compile(loss='mean_squared_error', optimizer='adam', metrics=['mean_squared_error']) model.fit(X, y, epochs=1000, batch_size=4) X_test = np.linspace(start=0, stop=np.pi, num=500) print("X test shape:", X_test.shape) y_test = model.predict(X_test) font = {'weight': 'bold', 'size': 25} matplotlib.rc('font', **font) axes = plt.gca() axes.set_ylim(0, 1) plt.plot(X_test, y_test, c='green', marker='o', markersize=5) plt.title("Sinus approximated by neural network") plt.yticks(np.arange(0, 1, 0.1)) plt.grid() plt.show() 

рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪрд╛рд░реНрдЯ рдорд┐рд▓рддрд╛ рд╣реИ:



рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЕрдиреБрдорд╛рдирд┐рдд рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░реНрдп рдХреЗ рд╕рд╛рде рдореБрдХрд╛рдмрд▓рд╛ рдХрд┐рдпрд╛ред

рдХрд╛рд░реНрдп 2. рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдПрдХ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдХрд╛рд░реНрдп рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рд╕рд╛рдордирд╛ рдХрд░реЗрдЧрд╛ред рд╣рдо x рдХреЗ рдорд╛рдиреЛрдВ рдХреЛ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдЕрдВрддрд░рд╛рд▓ рдкрд░ рд╡рд┐рддрд░рд┐рдд рдХрд░реЗрдВрдЧреЗ [0, 1], рдФрд░ y рдХреЛ рдмреЗрддрд░рддреАрдм рдврдВрдЧ рд╕реЗ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛: x <0.6 рдХреЗ рд▓рд┐рдП, y рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдЪрд░ рд╣реЛрдЧрд╛ рдЬрд┐рд╕рдХрд╛ рдорд╛рди 0.75 рдХреА рд╕рдВрднрд╛рд╡реНрдпрддрд╛ рдХреЗ рд╕рд╛рде 0 рдФрд░ 0.25 рдХреА рд╕рдВрднрд╛рд╡реНрдпрддрд╛ рдХреЗ рд╕рд╛рде 0 (рдЬреЛ рдПрдХ рджреНрд╡рд┐рдкрдж рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдорд╛рди рд╣реИ) рдкреА = 0.25)ред X> 0.6 рдХреЗ рд▓рд┐рдП, y рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╡реИрд░рд┐рдПрдмрд▓ рд╣реЛрдЧрд╛ рдЬреЛ рдорд╛рди 0 рдХреЛ рдкреНрд░рд╛рдпрд┐рдХрддрд╛ 0.3 рдФрд░ рдорд╛рди 1 рдХреЗ рд╕рд╛рде рд╕рдВрднрд╛рд╡реНрдпрддрд╛ 0.7 рд╣реИред рдПрдХ рдЕрдиреБрдХреВрд▓рд┐рдд рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдо рдорд╛рдирдХ рддреНрд░реБрдЯрд┐ рд▓реЗрддреЗ рд╣реИрдВред

 import numpy as np import matplotlib import matplotlib.pyplot as plt from keras.models import Sequential from keras.layers import Dense def get_X_y(n): X = np.random.uniform(0, 1, n) y0 = np.random.binomial(size=n, n=1, p=0.25) y1 = np.random.binomial(size=n, n=1, p=0.7) y = np.where(X < 0.6, y0, y1) return X, y n_inputs = 1 n_hidden1 = 100 n_hidden2 = 50 n_outputs = 1 n = 2000 X, y = get_X_y(n) print("X shape:", X.shape) model = Sequential() model.add(Dense(n_hidden1, input_dim=1, activation='relu')) model.add(Dense(n_hidden2, activation='relu')) model.add(Dense(1, activation='sigmoid')) model.compile(loss='mean_squared_error', optimizer='adam', metrics=['accuracy']) model.fit(X, y, epochs=200, batch_size=100) X_test = np.linspace(start=0, stop=1, num=100) print("X test shape:", X_test.shape) y_test = model.predict(X_test) font = {'weight': 'bold', 'size': 25} matplotlib.rc('font', **font) axes = plt.gca() axes.set_ylim(0, 1) plt.plot(X_test, y_test, c='green', marker='o', markersize=5) plt.title("Binomial distribution approximated by neural network") plt.yticks(np.arange(0, 1, 0.1)) plt.grid() plt.show() 

рд╣рдореЗрдВ рдПрдХ рдЕрдиреБрдорд╛рдирд┐рдд рдлрдВрдХреНрд╢рди рдиреНрдпреВрд░рд▓ рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЧреНрд░рд╛рдл рдорд┐рд▓рддрд╛ рд╣реИ:



рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдиреЗ рд╣рдорд╛рд░реЗ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдЪрд░ y рдХреА рдЧрдгрд┐рддреАрдп рдЕрдкреЗрдХреНрд╖рд╛ рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдпрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ (рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ) рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдЪрд░ рдХреЗ рдФрд╕рдд рдореВрд▓реНрдпреЛрдВ рдХреЛ рдЕрдиреБрдорд╛рдирд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдорд╛рдкрджрдВрдбреЛрдВ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдо рдЙрдирд╕реЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: $ 1,000 рддрдХ рдХреА рдЖрдп рд╡рд╛рд▓реЗ рд▓реЛрдЧ рдФрд╕рддрди рдирд╛рдЦреБрд╢ рд╣реИрдВ, рдФрд░ $ 1,000 рд╕реЗ рдКрдкрд░ рдХреА рдЖрдп рд╡рд╛рд▓реЗ рд▓реЛрдЧ рдФрд╕рдд рдЦреБрд╢ рд╣реИрдВ; рдЖрдп рдХреЗ рдЖрдзрд╛рд░ рдкрд░ "рдЦреБрд╢реА рдХреЗ рд╕реНрддрд░" рдХреА рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХрд░рдирд╛ рд╕реАрдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдЖрдп рдкрд░ рдЦреБрд╢реА рдХреЗ рдФрд╕рдд рд╕реНрддрд░ рдХреА рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдЦреЛрдЬрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдЧрд╛, рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рдХрд┐рд╕реА рднреА рдЖрдп рд╕реНрддрд░ рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рдореЗрдВ рдЦреБрд╢ рдФрд░ рджреБрдЦреА рджреЛрдиреЛрдВ рд╣реИрдВред

рд╕рдорд╕реНрдпрд╛ 3. рдЕрдм рд╣рдо рдЕрдиреБрдХреНрд░рдореЛрдВ рдХреА рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХреА рдУрд░ рдореБрдбрд╝рддреЗ рд╣реИрдВред рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдирд┐рдпрдо рджреНрд╡рд╛рд░рд╛ рджрд┐рдП рдЧрдП 0 рдФрд░ 1 рдХреЗ рдЕрдиреБрдХреНрд░рдореЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗ: 10 рд╕рджрд╕реНрдп - рд░рдХреНрд╖рд╛рдкреВрд░реНрд╡рдХ 0 рдпрд╛ 1, рдФрд░ рдЧреНрдпрд╛рд░рд╣рд╡рд╛рдБ 1 рдмрд░рд╛рдмрд░ рд╣реЛрддрд╛ рд╣реИ рдпрджрд┐ рдкрд┐рдЫрд▓рд╛ рд╢рдмреНрдж 0 рд╣реИ, рдФрд░ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рд╕рдВрднрд╛рд╡рд┐рдд 0 рдпрд╛ 1 рд╣реИ рдпрджрд┐ рдкрд┐рдЫрд▓рд╛ рд╢рдмреНрдж 1. рд╣рдо рд▓рдВрдмрд╛рдИ 11 (10 рдЗрдирдкреБрдЯ) рдХреЗ рдРрд╕реЗ рд╕рдореАрдХрд░рдг рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВрдЧреЗред рдЕрдиреБрдХреНрд░рдо рдХреЗ рд╕рджрд╕реНрдп рдФрд░ рдПрдХ, рдЕрдВрддрд┐рдо, рд╣рдо рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХрд░рддреЗ рд╣реИрдВ) рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╣рдорд╛рд░реЗ рдЖрд╡рд░реНрддрдХ рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдФрд░ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЗ рдмрд╛рдж, рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рд╡рд╣ рдирдП рдЕрдиреБрдХреНрд░рдореЛрдВ рдкрд░ рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рддрд╛рд▓рдореЗрд▓ рдмрд┐рдард╛рддреА рд╣реИ (рд▓рдВрдмрд╛рдИ 11 рднреА)ред

 import numpy as np from keras.models import Sequential from keras.layers import LSTM, Dense def get_X_y(m, n): X = np.random.binomial(size=(m,n), n=1, p=0.5) y0 = np.ones(m) y1 = np.random.binomial(size=m, n=1, p=0.5) y = np.where(X[:, n-1]==0, y0, y1) X = np.reshape(X, (X.shape[0], X.shape[1], 1)) return X, y model = Sequential() model.add(LSTM(units=50)) model.add(Dense(units=1)) model.compile(optimizer = 'adam', loss = 'mean_squared_error') X_train, y_train = get_X_y(1000, 10) model.fit(X_train, y_train, epochs = 20, batch_size = 32) m_test = 12 n_test = 10 X_test, y_test = get_X_y(m_test, n_test) y_predicted = model.predict(X_test) for i in range(m_test): print("x_last=", X_test[i, n_test-1, 0], "y_predicted=", y_predicted[i, 0]) 

рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдиреЗ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдП рдЧрдП рдЕрдиреБрдХреНрд░рдореЛрдВ рдкрд░ рдХреНрдпрд╛ рдкреВрд░реНрд╡рд╛рдиреБрдорд╛рди рджрд┐рдпрд╛ рд╣реИ (рдЖрдкрдХреЗ рдкрд╛рд╕ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкрд░рд┐рдгрд╛рдо рд╣реЛрдВрдЧреЗ, рдХреНрдпреЛрдВрдХрд┐ рдЕрдиреБрдХреНрд░рдореЛрдВ рдХреА рдкрд╕рдВрдж рдФрд░ рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдореЗрдВ рдПрдХ рд╕рдВрдпреЛрдЧ рд╣реИ)ред

рдЕрдиреБрдХреНрд░рдо рд╕рдВрдЦреНрдпрд╛рдЕрдиреБрдХреНрд░рдо рдХрд╛ рдкрд╛рд░рдВрдЧрдд рд╕рджрд╕реНрдпрдЕрдиреБрдорд╛рдирд┐рдд рдореВрд▓реНрдп
100.96
200.95
300.97
400.96
500.96
610.45
700.94
810.50
900.96
1010.42
1110.44
1200.92


рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдпрджрд┐ рдЕрдиреБрдХреНрд░рдо рдХрд╛ рдкрд╛рд░рдорд╛рд░реНрдерд┐рдХ рд╕рджрд╕реНрдп 0 рд╣реИ, рддреЛ рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ 1 рдХреЗ рдХрд░реАрдм рдореВрд▓реНрдп рдХреА рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдпрджрд┐ рдпрд╣ 1 рд╣реИ, рддреЛ 0.5 рдХреЗ рдХрд░реАрдм рдореВрд▓реНрдп рд╣реИред рдпрд╣ рдЗрд╖реНрдЯрддрдо рдкреВрд░реНрд╡рд╛рдиреБрдорд╛рди рдХреЗ рдХрд░реАрдм рд╣реИред "рдЬреАрд╡рди" рд╕реЗ рдПрдХ рд╕рдорд╛рди рдЙрджрд╛рд╣рд░рдг рдЗрд╕ рддрд░рд╣ рджрд┐рдЦ рд╕рдХрддрд╛ рд╣реИ: "рдЕрдЧрд░ рдореИрдВ рдЖрдЬ рд╕рд┐рдиреЗрдорд╛ рдЬрд╛рддрд╛ рд╣реВрдВ, рддреЛ рдХрд▓ рдореИрдВ рдПрдХ рд░реЗрд╕реНрддрд░рд╛рдВ рдореЗрдВ рджреЛрдкрд╣рд░ рдХрд╛ рднреЛрдЬрди рдХрд░реВрдВрдЧрд╛; рдЕрдЧрд░ рдореИрдВ рдЖрдЬ рдерд┐рдПрдЯрд░ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ, рддреЛ рдХрд▓ рдореИрдВ рдХрд╣реАрдВ рднреА рджреЛрдкрд╣рд░ рдХрд╛ рднреЛрдЬрди рдХрд░реВрдВрдЧрд╛ред тАЭ рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рджреЗрдЦрд╛ рд╣реИ, рдПрдХ рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреИрдЯрд░реНрди рдХреЛ рдкрдХрдбрд╝ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдлрд┐рд▓реНрдореЛрдВ рдореЗрдВ (рдФрд░ "рдмреАрдЪ рдореЗрдВ рдХреБрдЫ") рдХреА рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдерд┐рдПрдЯрд░ рдореЗрдВ рдЬрд╛рдХрд░ рдПрдХ рд░реЗрд╕реНрддрд░рд╛рдВ рдХреА рдпрд╛рддреНрд░рд╛ рдХреА рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдХрд╛рд░реНрдп 4. рд╣рдо рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рдХрд╛рд░реНрдп рдХреЛ рдЬрдЯрд┐рд▓ рдХрд░рддреЗ рд╣реИрдВред рд╕рдм рдХреБрдЫ рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рд╣реЛрдиреЗ рджреЗрдВ, рдХреЗрд╡рд▓ рдЕрдиреБрдХреНрд░рдо рдХреЗ рдЧреНрдпрд╛рд░рд╣рд╡реЗрдВ рд╕рджрд╕реНрдп рдХреЛ рдкрд┐рдЫрд▓реЗ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рдЕрдиреБрдХреНрд░рдо рдХреЗ рджреВрд╕рд░реЗ рд╕рджрд╕реНрдп рджреНрд╡рд╛рд░рд╛ (рдЙрд╕реА рдирд┐рдпрдо рд╕реЗ)ред рд╣рдо рдпрд╣рд╛рдВ рдХреЛрдб рдирд╣реАрдВ рджреЗрдВрдЧреЗ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдкрд┐рдЫрд▓реЗ рдПрдХ рд╕реЗ рдЕрд▓рдЧ рдирд╣реАрдВ рд╣реИред рдореЗрд░реЗ рдкреНрд░рдпреЛрдЧ рд╕реЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдЕрднреА рднреА рдПрдХ рдкреИрдЯрд░реНрди рдкрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХ рд╕рдордп рдХреЗ рд▓рд┐рдП (рдореБрдЭреЗ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЗ рд▓рд┐рдП 20 рдХреЗ рдмрдЬрд╛рдп 100 рдпреБрдЧреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрдбрд╝рд╛)ред
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ (рдлрд┐рд░ рд╕реЗ, рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рд╕реНрдкрд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ) рдХрд╛рдлреА рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдкрдХрдбрд╝рддреЗ рд╣реИрдВ (рд╣рдорд╛рд░реЗ "рдЬреАрд╡рди рдЙрджрд╛рд╣рд░рдг" рдореЗрдВ, рд╡реЗ "рдореИрдВ рдЖрдЬ рдПрдХ рд░реЗрд╕реНрддрд░рд╛рдВ рдореЗрдВ рдЬрд╛рддрд╛ рд╣реВрдВ рдЕрдЧрд░ рдореИрдВ рдПрдХ рд╣рдлреНрддреЗ рдкрд╣рд▓реЗ рдПрдХ рдлрд┐рд▓реНрдо рдореЗрдВ рдерд╛")ред

рдХрд╛рд░реНрдп 5. рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдкреВрд░реНрд╡рд╛рдиреБрдорд╛рди рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░рддрд╛ рд╣реИред
рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рд▓рдВрдмрд╛рдИ рдХреЗ рдЕрдиреБрдХреНрд░рдореЛрдВ рдкрд░ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХрд╛ рдЖрдпреЛрдЬрди рдХрд░реЗрдВрдЧреЗред рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ 3 рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рд╕рдВрднрд╛рд╡рд┐рдд рдЕрдиреБрдХреНрд░рдо рд╣реЛрдВрдЧреЗ:

0, 0, 1, 1
0, 1, 0, 1
0, 1, 1, 0


рдЗрд╕ рдкреНрд░рдХрд╛рд░, 0, 0 рдХреЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕рдВрдпреЛрдЬрди рдХреЗ рдмрд╛рдж, рд╣рдо рд╣рдореЗрд╢рд╛ рджреЛ рдЗрдХрд╛рдЗрдпреЛрдВ рд╕реЗ рдорд┐рд▓рддреЗ рд╣реИрдВ, 0, 1 рдХреЗ рд╕рдВрдпреЛрдЬрди рдХреЗ рдмрд╛рдж рд╣рдо рд╕рдорд╛рди рд░реВрдк рд╕реЗ 0 рдпрд╛ 1 рд╕реЗ рдорд┐рд▓рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд░рдЦрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдо рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЕрдВрддрд┐рдо рд╕рдВрдЦреНрдпрд╛ рдЬрд╛рдиреЗрдВрдЧреЗред рдЕрдм рд╣рдо рдЕрдкрдиреЗ рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдХреЛ рд░рд┐рдЯрд░реНрди_ рдкрд░рд┐рдгрд╛рдо = рдЯреНрд░реВ рд╕реЗрдЯ рдХрд░рдХреЗ рдЕрдиреБрдХреНрд░рдо рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣реЗрдВрдЧреЗред рдЬреИрд╕рд╛ рдХрд┐ рдкреВрд░реНрд╡рд╛рдиреБрдорд╛рдирд┐рдд рдЕрдиреБрдХреНрд░рдо рд╣реИ, рд╣рдо рдЕрдкрдиреЗ рдЙрд╕реА рдХреНрд░рдо рдХреЛ рдПрдХ рдХрджрдо рд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ рджрд╛рдИрдВ рдУрд░ рд╢реВрдиреНрдп рджреНрд╡рд╛рд░рд╛ рдкреВрд░рдХ рд╣реЛрддреЗ рд╣реИрдВред рдЕрдм рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдорд╛рди рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рд╣реЛрдЧрд╛: рдкрд╣рд▓реЗ рдЪрд░рдг рдореЗрдВ, рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ 2/3 рдХреЗ рдХрд░реАрдм рдПрдХ рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░реЗрдЧрд╛ (2/3 рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЗ рд╕рд╛рде рджреВрд╕рд░рд╛ рд╢рдмреНрдж 1 рд╣реИ), рдФрд░ рдлрд┐рд░ 0 рдХреЗ рд╕рдВрдпреЛрдЬрди рдХреЗ рд▓рд┐рдП, рдпрд╣ 0 рдирдВрдмрд░ рдХреЛ рдмрдВрдж рдХрд░ рджреЗрдЧрд╛ рдЗрдХрд╛рдИ, рдФрд░ 0 рдХреЗ рд▓рд┐рдП, 1 рдкрд╣рд▓реЗ рдпрд╣ 0.5 рдХреЗ рдХрд░реАрдм рдПрдХ рд╕рдВрдЦреНрдпрд╛ рджреЗрдЧрд╛, рдФрд░ рдлрд┐рд░ рдпрд╣ 0 рдпрд╛ 1 рдХреЗ рдХрд░реАрдм рдПрдХ рд╕рдВрдЦреНрдпрд╛ рджреЗрдЧрд╛, рдЗрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреЗ рд╣реБрдП рдХрд┐ рд╣рдореЗрдВ рдЕрдиреБрдХреНрд░рдо 0, 1, 0 рдпрд╛ 0, 1, 1. рдорд┐рд▓рд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред рд╣рдореЗрд╢рд╛ 0 рдХреЗ рдХрд░реАрдм рдирдВрдмрд░ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░реЗрдЧрд╛ред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХреЗ рд╕рд╛рде рдЬрд╛рдБрдЪ рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реА рдзрд╛рд░рдгрд╛ рд╕рд╣реА рд╣реИред

 import numpy as np from keras.models import Sequential from keras.layers import LSTM, Dense import random def get_X_y(n): X = np.zeros((n, 4)) z = np.array([random.randint(0, 2) for i in range(n)]) X[z == 0, :] = [0, 0, 1, 1] X[z == 1, :] = [0, 1, 0, 1] X[z == 2, :] = [0, 1, 1, 0] y = np.zeros((n, 4)) y[:, :3] = X[:, 1:] X = np.reshape(X, (X.shape[0], X.shape[1], 1)) y = np.reshape(y, (y.shape[0], y.shape[1], 1)) return X, y model = Sequential() model.add(LSTM(units=20, return_sequences=True)) model.add(Dense(units=1)) model.compile(optimizer = 'adam', loss = 'mean_squared_error') X_train, y_train = get_X_y(1000) model.fit(X_train, y_train, epochs = 100, batch_size = 32) X_test = np.zeros((3, 4)) X_test[0, :] = [0, 0, 1, 1] X_test[1, :] = [0, 1, 0, 1] X_test[2, :] = [0, 1, 1, 0] X_test = np.reshape(X_test, (3, 4, 1)) y_predicted = model.predict(X_test) print(y_predicted) 


рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рд╕реЗ, рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдкреНрд░рд╛рдкреНрдд рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдкреВрд░реНрд╡рд╛рдиреБрдорд╛рди рдХреЛ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИред рд╣рдо рдРрд╕рд╛ рд╣реА рдХрд░реЗрдВрдЧреЗ, рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЕрдиреБрдХреНрд░рдо рдХреА рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВрдЧреЗ: рдЬрдм рдЙрдкрд▓рдмреНрдз рдЬрд╛рдирдХрд╛рд░реА рд╣рдореЗрдВ рдЕрдЧрд▓реЗ рдЪрд░рдг рдореЗрдВ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА рд╕рдВрднрд╛рд╡рдирд╛рдУрдВ рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ, рддреЛ рд╣рдо рдЗрд╕ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХрд░рддреЗ рд╣реИрдВ; рд▓реЗрдХрд┐рди рдЬрдм рд╣рдореЗрдВ рдЕрдЧрд▓реЗ рдЪрд░рдг рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА рдорд┐рд▓рддреА рд╣реИ, рддреЛ рд╣рдо рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдкреВрд░реНрд╡рд╛рдиреБрдорд╛рди рдХреЛ рдмрджрд▓ рджреЗрддреЗ рд╣реИрдВред
рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ рдЕрдВрдзреЗрд░реЗ рд╕реЗ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЖ рд░рд╣рд╛ рд╣реИ, рддреЛ рд╣рдо рдХрд╣рддреЗ рд╣реИрдВ "рдпрд╣ рдПрдХ рд╡реНрдпрдХреНрддрд┐ рд╣реИ, рд╣рдо рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ"; рдЬрдм рд╣рдо рдЕрдВрдзреЗрд░реЗ рдореЗрдВ рд▓рдВрдмреЗ рдмрд╛рд▓реЛрдВ рдХреЛ рднреЗрдж рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдХрд╣рддреЗ рд╣реИрдВ "рдпрд╣ рд╢рд╛рдпрдж рдПрдХ рдорд╣рд┐рд▓рд╛ рд╣реИред" рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╣рдо рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдХрд┐рд╕реА рд╡реНрдпрдХреНрддрд┐ рдХреА рдореВрдВрдЫреЗрдВ рд╣реИрдВ, рддреЛ рд╣рдо рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рд╢рд╛рдпрдж рдПрдХ рдЖрджрдореА рд╣реИ (рд▓рдВрдмреЗ рдмрд╛рд▓реЛрдВ рдХреЗ рд╕рд╛рде)ред рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рджреЗрдЦрд╛, рдПрдХ рдиреНрдпреВрд░рд▓ рдиреЗрдЯрд╡рд░реНрдХ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ, рдкреВрд░реНрд╡рд╛рдиреБрдорд╛рди рдХреЗ рд▓рд┐рдП рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЙрдкрд▓рдмреНрдз рдЬрд╛рдирдХрд╛рд░реА рдХреА рд╕рдВрдкреВрд░реНрдгрддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

рдЗрд╕рд▓рд┐рдП, рд╣рдордиреЗ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рджреЗрдЦрд╛ рдХрд┐ рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╡реЗ рдХреМрди рд╕реЗ рдкреИрдЯрд░реНрди рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╣рдордиреЗ рджреЗрдЦрд╛ рдХрд┐ рдЕрдХреНрд╕рд░ рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛рдлреА "рдЙрдЪрд┐рдд" рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгрд┐рдпрд╛рдВ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рдХрд░реАрдм рд╣реЛ рдЬрд╛рддреА рд╣реИрдВ рдЬреЛ рдПрдХ рд╡реНрдпрдХреНрддрд┐ рдмрдирд╛ рджреЗрдЧрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рд╕рд░рд▓ рдкреИрдЯрд░реНрди рдХреЛ рдкрдХрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рд▓реЛрдЧреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдбреЗрдЯрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

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


All Articles