#математика
↗️ Идея вот в чем. Если посчитать производную L по a1, а остальные переменные считать константами, получится так называемая частная производная L по a1. А вектор, координатами которого будут частные производные L по a1, a2, ... и ad - называется градиентом. Так вот оказывается, что градиент соответствует направлению наискорейшего роста функции. Т.е. если вам скажут чуть-чуть изменить коэффициенты a1, a2, ..., ad так, чтобы L выросла как можно сильнее - то надо менять их в направлении градиента.
💡 Какое это имеет отношение к нашей задачи поиска минимума? Самое прямое. Если вы хотите как можно быстрее уменьшить L, надо менять параметры в направлении антиградиента (градиент, умноженный на минус 1). Это породило простую идею: начинаем с некоторых случайных весов a1, a2, ..., ad, а дальше считаем антиградиент и меняем веса в его направлении, затем пересчитываем антиградиент уже с новыми весами, а потом снова меняем веса в направлении антиградиента и так до посинения. Ну ладно, не до посинения, а до момента, когда L уже существенно не уменьшается. Найденные значения коэффициентов и будут тем, что мы искали.
Таким образом, найти коэффициенты модели, при которых мы будем как можно точнее работать на обучающей выборке (и понадеемся, что на новых примерах прогнозы будут тоже адекватными) можно с помощью численной оптимизации, например с помощью описанного выше градиентного спуска.
Что из математики при этом нужно знать вам? Если вы применяете ML алгоритмы как черные ящики, то почти ничего. А если вы претендуете на понимание их работы и умение все вывести и расписать - ну тогда достаточно уметь брать производные и знать, как перемежаются матрицы. В нейросетях еще потребуется не пугаться правила дифференцирования сложной функции (chain rule) и его версии для функции многих переменных (гуглим, что такое граф вычислений и как он связан с производной сложной функции) 🙂
А в следующий раз мы поговорим о том, что же нужно знать из теории вероятностей и математической статистики (и зачем).
P.S.: Если вы будете заниматься всякими теоретическими оценками в машинном обучении (если у вас нет математического образования - скорее всего не будете), например оценками обобщающей способности или доказательством того, что при определенных условиях все локальные минимумы ошибки нейросети являются глобальными, вам потребуются гораздо более глубокие вещи. Там найдется место и множествам меры нуль по Лебегу, и устойчивости по Ляпунову, но все это другая история, которой мы коснемся когда-нибудь в другой раз 🙂
↗️ Идея вот в чем. Если посчитать производную L по a1, а остальные переменные считать константами, получится так называемая частная производная L по a1. А вектор, координатами которого будут частные производные L по a1, a2, ... и ad - называется градиентом. Так вот оказывается, что градиент соответствует направлению наискорейшего роста функции. Т.е. если вам скажут чуть-чуть изменить коэффициенты a1, a2, ..., ad так, чтобы L выросла как можно сильнее - то надо менять их в направлении градиента.
💡 Какое это имеет отношение к нашей задачи поиска минимума? Самое прямое. Если вы хотите как можно быстрее уменьшить L, надо менять параметры в направлении антиградиента (градиент, умноженный на минус 1). Это породило простую идею: начинаем с некоторых случайных весов a1, a2, ..., ad, а дальше считаем антиградиент и меняем веса в его направлении, затем пересчитываем антиградиент уже с новыми весами, а потом снова меняем веса в направлении антиградиента и так до посинения. Ну ладно, не до посинения, а до момента, когда L уже существенно не уменьшается. Найденные значения коэффициентов и будут тем, что мы искали.
Таким образом, найти коэффициенты модели, при которых мы будем как можно точнее работать на обучающей выборке (и понадеемся, что на новых примерах прогнозы будут тоже адекватными) можно с помощью численной оптимизации, например с помощью описанного выше градиентного спуска.
Что из математики при этом нужно знать вам? Если вы применяете ML алгоритмы как черные ящики, то почти ничего. А если вы претендуете на понимание их работы и умение все вывести и расписать - ну тогда достаточно уметь брать производные и знать, как перемежаются матрицы. В нейросетях еще потребуется не пугаться правила дифференцирования сложной функции (chain rule) и его версии для функции многих переменных (гуглим, что такое граф вычислений и как он связан с производной сложной функции) 🙂
А в следующий раз мы поговорим о том, что же нужно знать из теории вероятностей и математической статистики (и зачем).
P.S.: Если вы будете заниматься всякими теоретическими оценками в машинном обучении (если у вас нет математического образования - скорее всего не будете), например оценками обобщающей способности или доказательством того, что при определенных условиях все локальные минимумы ошибки нейросети являются глобальными, вам потребуются гораздо более глубокие вещи. Там найдется место и множествам меры нуль по Лебегу, и устойчивости по Ляпунову, но все это другая история, которой мы коснемся когда-нибудь в другой раз 🙂