Исчисление - это абстрактная теория, развитая чисто формально.

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

Слово Calculus происходит от латинского, означающего «маленький камень»,
Потому что это похоже на понимание чего-то, глядя на маленькие кусочки.

Исчисление - это неотъемлемая область математики и особенно многих алгоритмов машинного обучения, поэтому вы не можете подумать о том, чтобы пропустить этот курс, чтобы изучить суть науки о данных.

Дифференциальное исчисление разрезает что-либо на мелкие кусочки, чтобы узнать, как это меняется.

Интегральное исчисление объединяет (интегрирует) маленькие кусочки вместе, чтобы определить их количество.

И снова я настоятельно рекомендую вам посмотреть видео с сутью математического анализа на канале 3blue1brown, в котором рассказывается о некоторых важных основах математического анализа, которые необходимы в Data Science.

Если у вас есть какая-либо аллергия или вы не в настроении учиться по видео, вы можете обратиться к этому. Он охватывает все основные идеи математического анализа.



Меню исчисления
Слово« исчисление
происходит от латинского, означающего маленький камень , потому что это похоже на понимание чего-то, глядя на… www.mathsisfun.com»



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

Градиентный спуск

Градиент измеряет, насколько изменится вывод функции, если вы немного измените входные данные.

Предположим, у вас есть мяч и миска. Независимо от того, куда вы двигаете мяч в миске, он в конечном итоге приземлится на дно миски.

Как видите, этот шар следует по дорожке, которая заканчивается на дне чаши. Также можно сказать, что мяч опускается на дно чаши. Как вы можете видеть на изображении, красные линии - это градиент чаши, а синяя линия - это траектория шара, и по мере уменьшения траектории наклона шара это называется градиентным спуском.

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

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

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

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

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

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

Основная формула, которую мы можем использовать в этой модели, такова:

y = m*x +b

куда,

y = предсказатель, m = наклон, x = вход, b = точка пересечения с y.

Стандартный подход к решению этого типа проблемы - определить функцию ошибок (также называемую функцией стоимости), которая измеряет, насколько «хороша» данная строка. Эта функция принимает пару (m,b) и возвращает значение ошибки в зависимости от того, насколько хорошо линия соответствует нашим данным. Чтобы вычислить эту ошибку для данной строки, мы переберем каждую (x,y) точку в нашем наборе данных и просуммируем квадратные расстояния между значением y каждой точки и значением y линии-кандидата (вычисленным в mx + b). Принято возводить это расстояние в квадрат, чтобы убедиться, что оно положительное, и сделать нашу функцию ошибок дифференцируемой.

Строки, которые лучше соответствуют нашим данным (где лучше определяется нашей функцией ошибок), приведут к более низким значениям ошибок. Если мы минимизируем эту функцию, мы получим лучшую строку для наших данных. Поскольку наша функция ошибок состоит из двух параметров (m и b), мы можем визуализировать ее как двумерную поверхность. Вот как это выглядит для нашего набора данных:

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

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

Чтобы запустить градиентный спуск для этой функции ошибок, нам сначала нужно вычислить ее градиент. Градиент будет действовать как компас и всегда укажет нам под гору. Чтобы вычислить это, нам нужно будет дифференцировать нашу функцию ошибок. Поскольку наша функция определяется двумя параметрами (m и b), нам нужно будет вычислить частную производную для каждого из них. Эти производные:

Теперь у нас есть все инструменты, необходимые для запуска градиентного спуска. Мы можем инициализировать наш поиск, чтобы он начинался с любой пары значений m и b (то есть с любой строки), и позволить алгоритму градиентного спуска двигаться вниз по нашей функции ошибок к лучшей линии. Каждая итерация будет обновлять m и b до строки, которая дает немного меньшую ошибку, чем предыдущая итерация. Направление движения для каждой итерации вычисляется с использованием двух частных производных сверху.

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

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

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

  • Конвергенция. Мы не говорили о том, как определить, когда поиск находит решение. Обычно это делается путем поиска небольших изменений ошибки от итерации к итерации (например, когда градиент близок к нулю).

Многомерное исчисление

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



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

А пока….

Удачного кодирования :)

И не забывайте хлопать, хлопать, хлопать ...

использованная литература