Использование библиотеки sympy Python для упрощения дифференциального и интегрального исчисления для машинного обучения

Без математики ты ничего не сможешь сделать. Все вокруг - математика. Все вокруг - числа. - Шакунтала Деви

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

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

С другой стороны, дифференциальное исчисление и дифференцирование играют жизненно важную роль в достижении многих целей машинного обучения. Один из наиболее важных вариантов использования дифференциации можно заметить при обратном распространении через нейронные сети или другие подобные структуры. Для проверки результатов вывода или получения эффективных результатов во время обучения решающую роль играет дифференциация и обратное распространение.

В этой статье мы сделаем все просто и легко. Мы узнаем больше о библиотеке sympy, которую мы будем использовать для упрощения дифференциации и интеграции. Наконец, мы построим простой дифференциальный калькулятор после понимания основных концепций этой библиотеки. Без лишних слов, давайте начнем с изучения этих тем.

Что такое симпатия?

Мы обсуждали, что интегральное и дифференциальное исчисление считаются предпосылкой для понимания множества концепций машинного обучения, таких как обратное распространение. К счастью, python также предлагает бесплатную легкую библиотеку на основе python под названием sympy. Это библиотека на языке Python для символической математики.

Перед установкой библиотеки sympy в вашу систему необходимо выполнить несколько предварительных требований. Одно из основных требований - в вашей среде должна быть установлена ​​библиотека mpmath Python. Рекомендуемый метод установки - с помощью среды Anaconda, так как большинство предварительных требований устанавливаются здесь.

Anaconda - это бесплатный дистрибутив Python от Continuum Analytics, который включает SymPy, Matplotlib, IPython, NumPy и многие другие полезные пакеты для научных вычислений. Для обновления библиотеки Sympy следует использовать следующую команду.

conda update sympy

Для обычной установки, как только вы выполните требования, включая наличие версии Python выше 3.5, вы можете установить эту библиотеку с помощью следующей команды.

pip install sympy

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

С Sympy стало проще дифференцироваться:

В этом разделе статьи мы разберемся с некоторыми основными функциями и операциями, связанными с дифференциацией с помощью sympy. Во-первых, мы импортируем библиотеку, а затем приступим к выполнению шагов, чтобы с легкостью различать конкретную функцию. Рекомендуется следить за блокнотом Jupyter бок о бок, чтобы достичь наилучших возможных результатов для каждого образца кода.

import sympy

Мы перейдем к анализу некоторых основных функций и операций библиотеки sympy. Во-первых, нам нужно определить переменную для типа символа, который он будет нести. Здесь «x» - наш любимый символ. После того, как вы спланировали символ, вы можете приступить к выполнению операции дифференцирования. В этом примере я выполнил простое вычисление для следующей функции - 5x². Вы можете свободно экспериментировать с библиотекой и исследовать больше.

x = sympy.Symbol('x')
deriv = sympy.diff(5*(x**2))
deriv

Результат:

10𝑥

Чтобы понять все необходимые правила дифференциации для создания более уникальных проектов, я бы рекомендовал проверить следующую ссылку здесь.

Простая интеграция с Sympy:

В этом разделе статьи мы разберемся с некоторыми основными функциями и операциями, связанными с интеграцией с sympy. Сначала мы импортируем библиотеку, а затем приступим к выполнению шагов по интеграции пары функций. Чтобы понять все необходимые правила интеграции для создания более уникальных проектов, я бы рекомендовал проверить следующую ссылку здесь.

from sympy import *

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

x = Symbol('x')
limit(sin(x)/x, x, 0)

Результат:

1

integrate(1/x, x)
log(x)

Результат:

журнал (𝑥)

Обладая базовыми знаниями о sympy, давайте приступим к созданию простого проекта дифференциального калькулятора в следующем разделе этой статьи.

Простой проект:

Теперь мы создадим простой проект простого дифференциального калькулятора. Чтобы понять все необходимые правила дифференциации для построения этого калькулятора, я бы рекомендовал проверить следующую ссылку здесь. Я предоставлю только небольшой фрагмент кода для типа дифференциального калькулятора, который я пытаюсь построить. Вы можете использовать свои собственные новаторские идеи и выполнять гораздо более эффективные дифференциальные калькуляторы. Ниже приведен простой блок кода для примера нескольких возможных функций калькулятора производных.

class Derivative_Calculator:
    def power_rule(*args):
        deriv = sympy.diff(*args)
        return deriv
    def sum_rule(*args):
        derive = sympy.diff(*args)
        return deriv

Я использовал класс Derivative Calculator для написания ряда функций с комментарием * args, поскольку мы не знаем количество элементов, которые будут переданы через функцию. Эта концепция полезна для построения дифференциального калькулятора. Я использовал лишь некоторые из этих правил дифференциации. Я бы посоветовал пользователям попробовать больше из них. Приведенная ниже статья представляет собой руководство для понимания расширенных функций в Python с кодами и примерами.



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

print("""
Enter The Type of Operation to be Performed: (Choose the number of your choice -)
1. Power Rule
2. Sum or Difference Rule
3. Product Rule 
4. Chain Rule
""")
Operation = int(input())
Derivative = input("Enter your derivative: ")

Следующий блок кода выше даст результат ниже. Здесь я выбираю опцию «1», чтобы активировать правило мощности, и выполняю вычисление над функцией 3x².

Результат:

Enter The Type of Operation to be Performed: (Choose the number of your choice -)
1. Power Rule
2. Sum or Difference Rule
3. Product Rule 
4. Chain Rule

1
Enter your derivative: 3*x**2

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

differentiatie = Derivative_Calculator
differentiatie.power_rule(Derivative)

Результат:

6𝑥

Как мы можем заметить, после дифференцирования дается точный ответ. Несмотря на то, что это простой проект, я бы посоветовал вам сделать его более сложным и инновационным!

Заключение:

Чистая математика - это своего рода поэзия логических идей.
- Альберт Эйнштейн

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

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

Вы можете ознакомиться с официальной документацией здесь для получения дополнительных сведений о том, как использовать этот модуль. Однако, если у вас все еще есть какие-либо затруднения, связанные с темами, обсуждаемыми в этой статье, пожалуйста, дайте мне знать. Я постараюсь ответить вам как можно скорее.

Ознакомьтесь с некоторыми из моих других статей, которые могут вам понравиться!











Спасибо всем, что дожили до конца. Я надеюсь, что всем вам понравилось читать эту статью. Желаю всем прекрасного дня!