Найти тему

Нейронные сети: умеют ли они считать?

Оглавление

Сумеют ли нейросети сделать анимацию логотипа? Это был первый мой вопрос, навеянный достаточно большим количеством подобных задач.

Но для начала решил расспросить ChatGPT, умеет ли он решать математические задачки. Далее идет диалог с ботом, с моими комментариями.

ВОПРОС: Ты можешь математически вычислять значение простой функции?

ОТВЕТ: Конечно, давай функцию.

Решил начать с простой функции, возвращающей квадрат числа: y = f(x * x).

Попросил рассчитать значение y при двух разных значениях x.

Ответил правильно:

To calculate the value of the function that results in the square of a given number "x," we can use the formula f(x) = x^2.
For x = 7: f(7) = 7^2 = 49
For x = 7.5: f(7.5) = 7.5^2 = 56.25
Therefore, the value of the function when x is 7 is 49, and when x is 7.5, the value of the function is 56.25.

Решил вводить обозначения математических операций.

ВОПРОС:

Давай обозначим операции сложения, вычитания, умножения и деления следующими символами: + - * / Рассчитай значение функции y = X^2 + 2x – 3x + 9.99/3

ОТВЕТ:

Окей! Давайте посчитаем значение функции y = x^2 + 2x - 3x + 9.99/3, используя символы +, -, *, и /.
Для вычисления значения функции, мы будем подставлять значение x вместо каждого вхождения x в выражении и выполнять операции по порядку.
Для данной функции: y = x^2 + 2x - 3x + 9.99/3
Давайте рассчитаем значение, заменив x со значением 6.6:
y = (6.6)^2 + 26.6 - 36.6 + 9.99/3 = 43.56 + 13.2 - 19.8 + 3.33
Теперь выполним операции сложения и вычитания справа налево: = 57.09 - 19.8 + 3.33 = 37.29 + 3.33 = 40.62
Таким образом, когда x = 6.6, значение функции y = x^2 + 2x - 3x + 9.99/3 равно 40.62.

Бот объяснил как вычисляет. Заметьте, что в конце все вычисления проводит справа налево.

Указал на это боту. Пересчитал правильно.

Проверяю, умеет ли он использовать скобки в математических выражениях.

ВОПРОС:

Усложним задачу. На порядок вычислений влияют круглые скобки. Ты знаешь, как именно они влияют?

ОТВЕТ:

Да, круглые скобки имеют больший приоритет при выполнении арифметических операций и они используются для указания порядка вычислений.
Правило приоритета операций, когда есть скобки, следующее:
Сначала выполняются выражения, находящиеся внутри скобок.
Затем выполнение идет слева направо вне скобок для остальных операций.
Давайте рассмотрим пример:
y = 2 + 3 * (4 - 1)
Сначала выполним операцию внутри скобок:
4 - 1 = 3
Теперь заменим это значение в исходном выражении:
y = 2 + 3 * 3
И, следуя порядку выполнения операций, выполним умножение:
y = 2 + 9
И, наконец, сложение:
y = 11
В итоге, значение выражения y равно 11.

Объяснил как он это делает, ответил правильно. И даже привел свой пример.

Задаю более сложную функцию, но без значения аргумента.

Рассчитай значение функции Y=25-((x^2+2x)-(5-2x))^2

ОТВЕТ:

Для рассчета значения функции Y необходимо подставить значение переменной x в выражение и выполнить математические операции.
Y = 25 - ((x^2 + 2x) - (5 - 2x))^2
Разложим выражение в скобках:
Y = 25 - (x^2 + 2x - 5 + 2x)^2
Y = 25 - (x^2 + 4x - 5)^2
Возводим выражение в квадрат:
Y = 25 - (x^2 + 4x - 5) * (x^2 + 4x - 5)
Далее раскрываем скобки:
Y = 25 - (x^4 + 4x^3 - 5x^2 + 4x^3 + 16x^2 - 20x - 5x^2 - 20x + 25)
Y = 25 - (x^4 + 8x^3 + 6x^2 - 40x + 25)
Раскрываем скобку перед минусом:
Y = 25 - x^4 - 8x^3 - 6x^2 + 40x - 25
Упрощаем выражение:
Y = -x^4 - 8x^3 - 6x^2 + 40x
Таким образом, значение функции Y равно -x^4 - 8x^3 - 6x^2 + 40x.

Объяснил подробно. Посчитал верно.

Интересно, что за несколько дней до этого бот решал эту задачу неправильно.

Попросил рассчитать конкретное значение y, задав x.

Сделал верно.

Посмотрим, удастся ли перекинуть мостик от чистых вычислений к графике.

ВОПРОС:

Можешь построить график этой функции при x = от 0 до 3 c шагом 0.1?

ОТВЕТ:

Конечно, я могу построить график функции для значений x от 0 до 3 с шагом 0.1. Для этого воспользуемся Python и библиотекой matplotlib.
Вот код, который можно использовать для построения графика:
python import numpy as np import matplotlib.pyplot as plt
Создание массива значений x от 0 до 3 с шагом 0.1
x = np.arange(0, 3.1, 0.1)
Вычисление значений функции Y для каждого значения x
Y = -x4 - 8*x3 - 6x**2 + 40x
Построение графика функции
plt.plot(x, Y)
Настройка осей и заголовка
plt.xlabel('x') plt.ylabel('Y') plt.title('График функции Y = -x^4 - 8x^3 - 6x^2 + 40x')
Отображение графика
plt.show()
Запустив этот код, вы получите график функции Y = -x^4 - 8x^3 - 6x^2 + 40x для значений x от 0 до 3 с шагом 0.1.

Выдал код программы на Питоне для расчета и построения графика. Но сам график не построил.

Здесь, видимо, пролегает водораздел между моделями искусственного интеллекта, работающими чисто на обработке текстов и теми, которые специализируются на генерации изображений.

Дополнительно: знаю, что модели с графикой не умеют делать анимацию картинок. И то, что они при изображении объектов не умеют считать их количество. Их знание ограничивается на уровне один — несколько — много. Видимо отсюда и проблемы с изображением пяти пальцев на руках и ногах. Хотя, эту проблемы, похоже, уже начал решать.

Выводы:

Проводить алгебраические вычисления с простейшими математическими операциями ChatGPT может. По крайней мере, его можно научить.

Пища для дальнейших размышлений.

Немного британского юмора

Why is 6 afraid of 7? Because 7 8 9.
Почему шестерка боится семерку? Потому, что семерка съела девятку.

Игра слов: слова восемь и съел(а) в английском, хотя пишутся по-разному (eight и ate), произносятся одинаково.

PS.

Если кликнуть по названию канала, то увидите другие статьи. Можно выбрать еще что-то интересное для себя. А для просмотра будущих статей и поддержки автора — лучше вообще подписаться.

Имеется также постоянно обновляемый гид-путеводитель по статьям канала.

#нейросеть #нейронныесети #ИИ #AI #neuralnetworks #искусственныйинтеллект