Мастер-класс по ИИ для детей не будет полным проверки. Давайте же посмотрим, что именно выучила наша нейросеть!
Используем метод predict, он принимает на вход массив данных и возвращает предсказания модели. В нашем случае мы можем подать все те же 100 чисел и посмотреть, насколько близко предсказания к истинным квадратам.
y_pred = model.predict(x)Результат y_pred — это массив той же формы, что и y. Теперь построим и сравним истинную параболу и предсказания модели:
plt.plot(x, y, 'b-', label='Истинная функция (x^2)')plt.plot(x, y_pred, 'r--', label='Предсказание модели')plt.xlabel('x')plt.ylabel('y')plt.title('Сравнение истины и предсказания после 100 эпох')plt.legend()plt.grid(True)plt.show()Что мы увидим? Скорее всего, график предсказания будет довольно далек от идеальной параболы. Возможно, он будет напоминать ломаную линию, которая лишь приблизительно повторяет форму. В некоторых областях (например, вблизи нуля) ошибка может быть небольшой, а на краях — значительной.
Графики не совпадают по нескольким причинам:
- Мало эпох. 100 эпох — это недостаточно для точной аппроксимации. Модель просто не успела полностью настроить веса.
- Простая архитектура. У нас всего один скрытый слой с 10 нейронами. Для высокой точности может потребоваться больше нейронов или больше слоев.
- Случайная инициализация весов. В начале обучения веса выбираются случайно. Если старт был неудачным, модель может долго «раскачиваться».
- Сложность задачи. Хотя возведение в квадрат — простая функция, она нелинейная, и для ее точного воспроизведения нейросети нужно научиться правильно комбинировать нелинейности.
Однако даже при таком неидеальном результате мы видим, что модель все же уловила общую тенденцию. Она понимает, что функция возрастает при удалении от нуля и что в нуле значение близко к нулю.
Для начала это неплохо, но очевидно, что качество модели можно улучшить. Этим мы и займемся в следующей части мастер-класса по нейросетям для детей.