Нейронні мережі з одним шаром
Щоб упевненіше працювати з нейронними мережами, корисно почати з простої апроксимації функції.
Ви натренуєте нейронну мережу наближати відображення між входом x і виходом y. Вони пов'язані функцією квадратного кореня, тобто \(y = \sqrt{x}\).
Вхідний вектор x уже надано. Спочатку обчисліть квадратний корінь з x за допомогою функції Numpy sqrt(), утворивши вихідний ряд y. Потім створіть просту нейронну мережу та натренуйте її на послідовності x.
Після навчання побудуйте графік як ряду y, так і виходу нейронної мережі, щоб побачити, наскільки точно мережа наближує функцію квадратного кореня.
Об'єкти Sequential і Dense з бібліотеки Keras також доступні у вашому робочому середовищі.
Ця вправа є частиною курсу
Кількісне управління ризиками в Python
Інструкції до вправи
- Створіть вихідні тренувальні значення за допомогою функції Numpy
sqrt(). - Створіть нейронну мережу з одним прихованим шаром на 16 нейронів, одним вхідним і одним вихідним значенням.
- Скомпілюйте та натренуйте нейронну мережу на тренувальних значеннях протягом 100 епох.
- Побудуйте графік тренувальних значень (синім) і порівняйте з передбаченнями нейронної мережі.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# Create the training values from the square root function
y = np.____(x)
# Create the neural network
model = Sequential()
model.____(Dense(16, input_dim=1, activation='relu'))
model.____(____(1))
# Train the network
model.____(loss='mean_squared_error', optimizer='rmsprop')
model.____(x, y, epochs=100)
## Plot the resulting approximation and the training values
plt.plot(x, y, x, model.____(x))
plt.show()