Вольф PDF
Document Details
Uploaded by AstoundingBalalaika
Tags
Summary
Документ содержит информацию о разреженных данных, векторном матричном умножении, нормализации в машинном обучении, а также ответы на вопросы "что такое тензор?", "что такое латентное пространство?" и "что такое гиперпараметр?"
Full Transcript
[[https://proproprogs.ru/data]](https://proproprogs.ru/data) [[https://rutube.ru/plst/536618/]](https://rutube.ru/plst/536618/) [[https://www.youtube.com/playlist?list=PL0Ks75aof3Th84kETSlJq\_ja-xqLtWov1]](https://www.youtube.com/playlist?list=PL0Ks75aof3Th84kETSlJq_ja-xqLtWov1) - Базовый поток De...
[[https://proproprogs.ru/data]](https://proproprogs.ru/data) [[https://rutube.ru/plst/536618/]](https://rutube.ru/plst/536618/) [[https://www.youtube.com/playlist?list=PL0Ks75aof3Th84kETSlJq\_ja-xqLtWov1]](https://www.youtube.com/playlist?list=PL0Ks75aof3Th84kETSlJq_ja-xqLtWov1) - Базовый поток Deep Learning School **Справки (термины, определения...)** ===================================== **Греческие буквы** Греческие буквы \| Читать свежий выпуск газеты ЧО онлайн и бесплатно --- Читинское Обозрение **что такое разреженные данные?** +-------------+-------------+-------------+-------------+-------------+ | Разреженные | Примеры | Почему | Как | Важно: | | данные - | разреженных | разреженные | обрабатыват | | | это данные, | данных: | данные | ь | | | где | | важны: | разреженные | Разреженные | | большинство | Текстовые | | данные: | данные | | значений | данные: В | | | представляю | | равны нулю, | текстовых | Эффективнос | | т | | а только | документах | ть | Специальные | собой | | небольшая | большинство | хранения: | структуры | особенность | | часть | слов из | Разреженные | данных: | многих | | значений | словаря не | данные | Используйте | типов | | ненулевая. | встречается | можно | структуры | данных. | | | в | эффективно | данных, | | | Проще | конкретном | хранить, | оптимизиров | Их | | говоря, | тексте. | используя | анные | обработка | | представьте | | специальные | для | требует | | таблицу, | | структуры | хранения | специализир | | где | Рекомендаци | данных, | разреженных | ованных | | большинство | и: | такие как | данных, | методов и | | ячеек | Матрица | списки | например, | алгоритмов. | | пустые, а | пользовател | ссылок или | списки | | | лишь | ей | хэш-таблицы | ссылок или | | | несколько | и товаров, | , | хэш-таблицы | Разреженные | | ячеек | где | которые |. | данные | | содержат | пользовател | хранят | | содержат | | информацию. | и | только | | важную | | | оценили | ненулевые | Специальные | информацию, | | | лишь | значения. | алгоритмы: | которую | | | небольшую | | Используйте | нужно | | | часть | | алгоритмы, | правильно | | | товаров. | Эффективнос | оптимизиров | обработать. | | | | ть | анные | | | | | обработки: | для работы | | | | Генетически | Разреженные | с | | | | е | данные | разреженным | | | | данные: | могут быть | и | | | | Генетически | обработаны | данными, | | | | е | более | например, | | | | данные | эффективно, | алгоритмы | | | | часто | используя | сжатия или | | | | содержат | специальные | алгоритмы | | | | много | алгоритмы, | разреженног | | | | нулевых | которые | о | | | | значений, | работают | матричного | | | | поскольку | только с | разложения. | | | | большинство | ненулевыми | | | | | генов не | значениями. | | | | | активны в | | Преобразова | | | | конкретной | Важная | ние | | | | клетке. | информация: | данных: | | | | | Несмотря на | Преобразуйт | | | | | то, что | е | | | | Социальные | разреженные | разреженные | | | | сети: | данные | данные в | | | | Матрица | содержат | более | | | | пользовател | много | плотный | | | | ей | нулевых | формат, | | | | и их | значений, | например, | | | | связей, где | ненулевые | используя | | | | большинство | значения | методы | | | | пользовател | часто | сжатия. | | | | ей | содержат | | | | | не связаны | важную | | | | | друг с | информацию. | | | | | другом. | | | | | | | | | | | | Матрицы | | | | | | изображений | | | | | | : | | | | | | В некоторых | | | | | | форматах | | | | | | изображения | | | | | | , | | | | | | где | | | | | | большинство | | | | | | пикселей | | | | | | имеют | | | | | | нулевые | | | | | | значения, | | | | | | например, в | | | | | | черно-белых | | | | | | изображения | | | | | | х. | | | | +-------------+-------------+-------------+-------------+-------------+ **Векторное матричное умножение** Нормализация в машинном обучении - это процесс преобразования данных в определенный диапазон или масштаб. Это важный шаг в предобработке данных, который может значительно улучшить производительность модели машинного обучения. Зачем нужна нормализация? Ускорение обучения: Нормализация данных делает процесс обучения более эффективным, поскольку алгоритмы машинного обучения работают лучше с данными, которые находятся в определенном диапазоне. Стабильность: Нормализация помогает стабилизировать процесс обучения, особенно когда используются алгоритмы, чувствительные к масштабу данных, например, градиентный спуск. Улучшение точности: Нормализация может улучшить точность модели, особенно для моделей, которые используют метрические расстояния, например, k-ближайших соседей. Предотвращение переполнения: В некоторых алгоритмах, например, в нейронных сетях, нормализация помогает предотвратить переполнение значений, что может привести к нестабильному обучению. Типы нормализации: Минимакс-нормализация: Преобразует данные в диапазон от 0 до 1. Стандартная нормализация (Z-нормализация): Преобразует данные в диапазон с нулевым средним значением и единичным стандартным отклонением. Нормализация по диапазону: Преобразует данные в заданный диапазон, например, от -1 до 1. Логарифмическая нормализация: Используется для данных с экспоненциальным распределением. Выбор метода нормализации: Выбор метода нормализации зависит от типа данных и алгоритма машинного обучения. Минимакс-нормализация: Используется для большинства типов данных. Стандартная нормализация: Используется для данных с нормальным распределением. Нормализация по диапазону: Используется для данных, которые должны находиться в определенном диапазоне. Логарифмическая нормализация: Используется для данных с экспоненциальным распределением. Важно: Нормализация должна применяться ко всем данным, которые используются для обучения и тестирования модели. Необходимо выбрать метод нормализации, который подходит для конкретной задачи и алгоритма машинного обучения. Нормализация и регуляризация --- два важных процесса в машинном обучении, которые могут улучшить производительность модели, но они служат разным целям: Нормализация Цель: Преобразование данных в единый масштаб, чтобы уменьшить влияние различных масштабов признаков на обучение модели. Как работает: Масштабирует данные в определенный диапазон (например, от 0 до 1 или со средним 0 и стандартным отклонением 1). Влияние на модель: Ускоряет обучение, повышает стабильность, может улучшить точность. Пример: Применение минимакс-нормализации к данным, где один признак измеряется в сантиметрах, а другой в километрах. Регуляризация Цель: Предотвращение переобучения модели, ограничивая сложность модели, чтобы она лучше обобщалась на новые данные. Как работает: Добавляет штрафные члены к функции потерь, которые \"штрафуют\" модель за слишком большие значения весов. Влияние на модель: Уменьшает сложность модели, помогает избежать переобучения, повышает способность обобщать на новые данные. Пример: Применение L1-регуляризации (Lasso) к модели линейной регрессии, которая может привести к уменьшению количества признаков, используемых моделью. Сравнение: ![](media/image2.png) Вкратце: Нормализация занимается преобразованием данных, чтобы они имели одинаковый масштаб, что помогает обучению работать быстрее и стабильнее. Регуляризация занимается уменьшением сложности модели, чтобы избежать переобучения и улучшить обобщающую способность. Обычно обе техники используются вместе, чтобы получить наилучшие результаты обучения модели. MSE (Mean Squared Error - среднеквадратичная ошибка) может быть как функцией потерь, так и метрикой оценки модели. Функция потерь: Используется в процессе обучения модели. Ее минимизация настраивает веса модели для достижения наилучших предсказаний. В этом контексте MSE рассчитывается на обучающем наборе данных и используется алгоритмом оптимизации (например, градиентным спуском) для корректировки параметров модели. Метрика оценки модели: Используется для оценки качества модели после обучения. Она измеряет точность предсказаний модели на тестовом наборе данных. В этом контексте MSE рассчитывается на тестовых данных и используется для сравнения различных моделей или настроек модели. В чем разница? Цель: Функция потерь используется для обучения модели, а метрика - для ее оценки. Данные: Функция потерь рассчитывается на обучающих данных, а метрика - на тестовых данных. Влияние: Изменения функции потерь влияют на обучение модели, а изменения метрики - на оценку модели. Пример: Представьте, что вы обучаете модель для предсказания цены на жилье. Функция потерь: MSE на обучающих данных будет использоваться для настройки параметров модели (например, весов нейронной сети) во время обучения. Метрика: MSE на тестовых данных будет использоваться для оценки точности модели после обучения. В заключении: MSE может выполнять обе роли, но ее смысл и применение зависят от контекста. **Что такое тензор?** **Что такое латентное пространство?** **Что такое гиперпараметр?** +-------------+-------------+-------------+-------------+-------------+ | Гиперпараме | Примеры | Плохой | Методы | Важно: | | тр | гиперпараме | выбор | выбора | | | в машинном | тров: | гиперпараме | гиперпараме | Выбор | | обучении - | | тров | тров: | гиперпараме | | это | Скорость | может | | тров | | параметр, | обучения: | привести к: | Ручной | - это | | который не | Определяет, | | подбор: | процесс | | обучается | насколько | | Исследовате | проб и | | алгоритмом | быстро | Переобучени | ль | ошибок. | | обучения, а | модель | ю: | вручную | | | задается | изменяет | Модель | подбирает | Нет | | вручную | свои веса | \"запоминае | различные | универсальн | | перед | во время | т\" | комбинации | ого | | началом | обучения. | данные | гиперпараме | способа | | обучения. | | обучения, | тров | выбора | | Он | Размер | но плохо | и оценивает | гиперпараме | | определяет | батча: | обобщается | их | тров. | | структуру и | Определяет, | на новые | производите | | | поведение | сколько | данные. | льность. | | | модели, | данных | | | Необходимо | | влияя на | используетс | | | эксперимент | | процесс | я | Недообучени | Автоматичес | ировать | | обучения и, | для одного | ю: | кая | с разными | | в конечном | шага | Модель не в | оптимизация | значениями | | итоге, на | обучения. | состоянии | : | гиперпараме | | ее | | научиться | Используютс | тров, | | точность. | | решать | я | чтобы найти | | | Количество | задачу. | алгоритмы, | оптимальные | | | эпох: | | которые | для | | | Определяет, | | автоматичес | конкретной | | | сколько раз | Медленному | ки | задачи. | | | модель | обучению: | находят | | | | проходит по | Модель | оптимальные | Выбор | | | всему | слишком | значения | гиперпараме | | | набору | медленно | гиперпараме | тров | | | данных для | обучается. | тров. | - это | | | обучения. | | | важная | | | | Низкой | | часть | | | | точности: | Перекрестна | успешного | | | Архитектура | Модель | я | машинного | | | модели: | делает | проверка: | обучения. | | | Определяет | неточные | Используетс | | | | количество | предсказани | я | | | | слоев, | я. | для оценки | | | | количество | | производите | | | | нейронов в | | льности | | | | каждом | | модели на | | | | слое, тип | | новых | | | | функций | | данных. | | | | активации и | | | | | | т. д. | | | | | | | | | | | | | | | | | | Регуляризац | | | | | | ия: | | | | | | Определяет, | | | | | | как модель | | | | | | \"штрафуетс | | | | | | я\" | | | | | | за | | | | | | сложность, | | | | | | чтобы | | | | | | предотврати | | | | | | ть | | | | | | переобучени | | | | | | е. | | | | | | | | | | | | Функция | | | | | | потерь: | | | | | | Определяет, | | | | | | как | | | | | | измеряется | | | | | | ошибка | | | | | | модели. | | | | +-------------+-------------+-------------+-------------+-------------+ **Что такое собственные числа?** **Разница между градиентом, дифференциалом, производной и частной производной?** Эти понятия тесно связаны и часто используются в математике и машинном обучении. Давайте разберемся в их различиях: +-----------------+-----------------+-----------------+-----------------+ | 1. Производная: | 2. | 3\. Частная | 4\. Градиент: | | | Дифференциал: | производная: | | | Суть: | | | Суть: | | Производная --- | Суть: | Суть: Частная | Градиент --- | | это мера | Дифференциал | производная --- | это вектор, | | изменения | --- это | это производная | который | | функции в одной | линейное | функции | показывает | | точке. Она | приближение | нескольких | направление | | показывает, как | изменения | переменных по | наибольшего | | быстро функция | функции в | одной из этих | возрастания | | изменяется при | окрестности | переменных, при | функции в | | изменении | точки. Он | этом остальные | многомерном | | входного | показывает, как | переменные | пространстве. | | значения на | функция | считаются | Он состоит из | | бесконечно | изменяется в | постоянными. | частных | | малую величину. | ближайшем | | производных | | | окружении | Применение: | функции по всем | | Применение: | точки. | Используется | ее переменным. | | Используется | | для анализа | | | для поиска | Применение: | функций | Применение: | | экстремумов | Используется в | нескольких | Используется в | | функции, | математическом | переменных, для | алгоритмах | | вычисления | анализе, для | поиска | оптимизации, | | скорости и | приближенных | экстремумов | таких как | | ускорения в | вычислений, для | функции, для | градиентный | | физике, | вычисления | оптимизации | спуск, для | | моделирования | производных | систем с | поиска минимума | | изменения во | более сложных | несколькими | или максимума | | времени и т.д. | функций. | параметрами. | функции | | | | | нескольких | | | | | переменных. | | | | | | | | | | Градиент | | | | | всегда | | | | | указывает | | | | | направление | | | | | наибольшего | | | | | возрастания | | | | | функции. | | | | | | | | | | Градиент | | | | | равен нулю в | | | | | точке | | | | | локального | | | | | максимума или | | | | | минимума | | | | | функции. | +-----------------+-----------------+-----------------+-----------------+ Сравнительная таблица: Важно: Градиент является вектором, состоящим из частных производных. Дифференциал и производная --- тесно связанные понятия, но не одинаковые. Частные производные --- это компоненты градиента. Эмбеддинг (embedding) --------------------- **Что такое эмбеддинг?** +-----------------------+-----------------------+-----------------------+ | **Суть** | **Формула** | **Применение** | +=======================+=======================+=======================+ | Эмбеддинг (embedding) | | Примеры применения | | --- это представление | | эмбеддинга: | | объектов (например, | | | | слов, изображений, | | Обработка | | товаров) в виде | | естественного языка | | векторов в | | (NLP): | | многомерном | | | | пространстве. Эти | | \* Слова: Word2Vec, | | векторы кодируют | | GloVe, FastText --- | | информацию об | | алгоритмы для | | объектах таким | | получения векторных | | образом, чтобы | | представлений слов. | | близкие по смыслу | | | | объекты располагались | | \* Предложения: | | близко друг к другу в | | Sentence-BERT, | | этом пространстве, а | | Universal Sentence | | объекты с разным | | Encoder --- алгоритмы | | смыслом --- далеко. | | для получения | | | | векторных | | Ключевые аспекты | | представлений | | эмбеддинга: | | предложений. | | | | | | Преобразование: | | Компьютерное | | Эмбеддинг --- это | | зрение: VGG, ResNet, | | преобразование | | Inception --- | | исходных данных в | | сверточные нейронные | | векторные | | сети, которые | | представления. | | извлекают векторные | | | | представления из | | Смысловое | | изображений. | | кодирование: | | | | Векторные | | Рекомендательные | | представления | | системы: Эмбеддинги | | кодируют смысловую | | товаров и | | информацию об | | пользователей | | объектах. | | используются для | | | | предсказания, какие | | Пространственное | | товары могут | | распределение: | | понравиться | | Векторы расположены в | | пользователю. | | пространстве таким | | | | образом, что близкие | | Поиск информации: | | по смыслу объекты | | Эмбеддинги текстов | | расположены близко | | используются для | | друг к другу. | | поиска релевантной | | | | информации по | | | | заданному запросу. | +-----------------------+-----------------------+-----------------------+ **Что такое норма вектора?** **Что значит «функция дифференцируема»?** \"Дифференцируемая функция\" --- это функция, для которой можно вычислить производную в каждой точке ее области определения. **Производная** --- это мера изменения функции в каждой точке. Она показывает, как быстро функция изменяется, когда мы изменяем входное значение. +-------------+-------------+-------------+-------------+-------------+ | **Визуализа | **Примеры | **Примеры | **Почему | **Важно:** | | ция:** | дифференцир | функций, | дифференцир | | | | уемых | которые не | уемость | - Не все | | Представьте | функций:** | дифференцир | важна?** | функции | | график | | уемы:** | | диффере | | функции. | - Линейна | | - **Оптим | нцируемы. | | Дифференцир | я | - Функция | изация:** | | | уемая | функция | с | Диффере | - Диффере | | функция --- | : | изломом | нцируемость | нцируемость | | это | \`y = | , | позволя | являетс | | функция, | mx + | наприме | ет | я | | график | c\` | р, | использ | важным | | которой | | функция | овать | свойств | | гладкий и | - Квадрат | абсолют | алгорит | ом | | не имеет | ичная | ного | мы | функций | | резких | функция | значени | градиен | в | | изломов или | : | я: | тного | математ | | разрывов. В | \`y = | \`y = | спуска | ике | | каждой | ax\^2 + | \|x\|\` | для | и | | точке | bx + | | поиска | информа | | такого | c\` | - Функция | минимум | тике. | | графика | | с | а | | | можно | - Экспоне | разрыво | или | | | провести | нциальная | м, | максиму | | | касательную | функция | наприме | ма | | | линию, | : | р, | функции | | | наклон | \`y = | функция |. | | | которой | e\^x\` | Хевисай | | | | соответству | | да: | - **Машин | | | ет | - Синусои | | ное | | | производной | дальная | \`\`\` | обучени | | | функции в | функция | | е:** | | | этой точке. | : | y = 1, если | Нейронн | | | | \`y = | x \> 0 | ые | | | | sin(x)\ | | сети | | | | ` | y = 0, если | часто | | | | | x \ - Модификация Momentum запоминает скорость на предыдущем шаге и добавляет в α раз меньшую величину на следующем шаге: - Метод Нестерова (англ. Nesterov accelerated gradient, NAG)\[9\] добавляет к методу Momentum идею \"заглядывания вперёд\", используя производную не в текущей точке, а в следующей (если бы мы продолжали двигаться в этом же ### Nesterov accelerated gradient +-----------------+-----------------+-----------------+-----------------+ | **Определение** | **Суть** | **Формула** | **Применение** | +=================+=================+=================+=================+ | | Метод Нестерова | | | | | (англ. Nesterov | | | | | accelerated | | | | | gradient, NAG) | | | | | добавляет к | | | | | методу Momentum | | | | | идею | | | | | \"заглядывания | | | | | вперёд\", | | | | | используя | | | | | производную не | | | | | в текущей | | | | | точке, а в | | | | | следующей (если | | | | | бы мы | | | | | продолжали | | | | | двигаться в | | | | | этом же | | | | | | | | | | направлении без | | | | | измений):![](me | | | | | dia/image15.jpe | | | | | g) | | | +-----------------+-----------------+-----------------+-----------------+ **Плюсы** **Минусы** **Комментарии** ----------- ------------ ----------------- **Nesterov Accelerated Gradient (NEG)** Nesterov Accelerated Gradient (NAG) является модификацией классического градиентного спуска, которая позволяет ускорить сходимость алгоритма благодаря прогнозированию следующей точки на основе текущей. *Алгоритм*: 1. Инициализировать вектор параметров модели w и начальную скорость v каким-то случайным образом. 2. Повторять до сходимости: a. Вычислить градиент функции потерь L(w) на текущем значении вектора параметров: g = ∇L(w). b. Обновить скорость: v = βv - αg, где α - это темп обучения (learning rate), а β - это коэффициент затухания скорости (например, β=0.9). c. Сделать \"предварительное обновление\" вектора параметров модели: w\' = w + βv. d. Вычислить градиент функции потерь L(w\') на новом значении вектора параметров: g\' = ∇L(w\'). e. Обновить вектор параметров модели: w = w - αg\'. Gradient мы вычисляем градиент не на текущих значениях параметров модели, а на \"предварительно обновленных\". Таким образом, мы можем учесть изменения вектора параметров, произошедшие в предыдущий момент времени, и более точно определить направление, в котором нужно двигаться для минимизации функции потерь. Это позволяет алгоритму быстрее сходиться к оптимальному решению. *Плюсы\\Отличия от SGD:* - *Ускорение сходимости*: NAG позволяет ускорить сходимость градиентного спуска благодаря прогнозированию следующей точки на основе текущего направления и скорости движения. - *Гарантированное уменьшение функции*: NAG гарантировано уменьшает функцию на каждом шаге. - *Надежность*: алгоритм NAG является менее подверженным колебаниям, чем стандартный градиентный спуск. Это может помочь избежать застревания в локальных минимумах. *Минусы*: - Большой объем вычислений (в т.ч. градиента на каждом шаге), - Сложность подбора гиперпараметров, - Некоторые проблемы сходимости (большой\\маленький размер шага, застревание в локальном минимуме). ### AdaGrad +-----------------+-----------------+-----------------+-----------------+ | **Определение** | **Суть** | **Формула** | **Применение** | +=================+=================+=================+=================+ | Алгоритм | Метод где | Где: | | | AdaGrad | learning rate | | | | (adaptive | |... | | | gradient) --- | | | | | это вариант | | Если проще | | | предобусловленн | | алгоритм: | | | ого | | | | | SGD, | | 1. | | | автоматически | | Инициализироват | | | адаптирующий | | ь | | | скорость | | начальные | | | обучения для | | значения | | | каждого | | переменных: | | | параметра на | | вектор | | | основе истории | | параметров w, | | | его изменений, | | вектор | | | а расчет | | градиентов g. | | | градиента | | | | | совпадает с | | 2\. На каждой | | | SGD. | | итерации | | | | | вычисляем | | | | | градиенты | | | | | функции | | | | | потерь по | | | | | параметрам w. | | | | | | | | | | 3\. Обновляем | | | | | переменную g, | | | | | добавляя к | | | | | ней квадрат | | | | | градиента по | | | | | каждому | | | | | параметру: g | | | | | = g + | | | | | (grad)\^2 | | | | | | | | | | 4\. Вычисляем | | | | | скорректированн | | | | | ый | | | | | градиент для | | | | | каждого | | | | | параметра, | | | | | используя | | | | | формулу: | | | | | delta\_w = | | | | | -(learning\_rat | | | | | e | | | | | / sqrt(g + | | | | | epsilon)) \* | | | | | grad, где | | | | | learning\_rate | | | | | шаг обучения, | | | | | epsilon - | | | | | малое число, | | | | | чтобы | | | | | избежать | | | | | деления на 0. | | | | | | | | | | 5\. Обновляем | | | | | значения | | | | | параметров: w | | | | | = w + | | | | | delta\_w | | | | | | | | | | 6\. Повторяем | | | | | шаги до | | | | | сходимости | | +-----------------+-----------------+-----------------+-----------------+ +-----------------------+-----------------------+-----------------------+ | **Плюсы** | **Минусы** | **Комментарии** | +=======================+=======================+=======================+ | - *Адаптивность*: | Накопление | | | Adagrad может | квадратов градиентов | | | помочь алгоритму | может привести к | | | справиться с | некоторым численным | | | различными | проблемам, таким как | | | динамиками | очень маленькие | | | обучения для | значения шага | | | каждого параметра | обучения, что может | | | в модели, что | замедлить процесс | | | может ускорить | обучения или привести | | | процесс обучения. | к переобучению. | | | | | | | - *Эффективность*: | Adagrad может быть | | | Adagrad хорошо | неэффективным в | | | работает в | задачах с | | | задачах с большим | разреженными данными, | | | количеством | так как накопление | | | признаков или | квадратов градиентов | | | параметров, так | может привести к | | | как он может | \"забыванию\" | | | эффективно | информации о редких | | | использовать | признаках. | | | информацию о | | | | градиентах для | Хотя Adagrad | | | каждого параметра | автоматически | | | в модели. | выбирает скорость | | | | обучения для каждого | | | - *Простота*: | параметра, эта | | | Adagrad легко | скорость все равно | | | реализуется и не | является глобальным | | | требует настройки | гиперпараметром, | | | многих | который может | | | гиперпараметров, | потребовать тонкой | | | что делает его | настройки. | | | более доступным | | | | для | | | | использования. | | | | | | | | - *Отсутствие | | | | необходимости | | | | точно подбирать | | | | скорость | | | | обучения*: | | | | | | | | достаточно выставить | | | | её в меру большой, | | | | чтобы обеспечить | | | | хороший запас, но не | | | | такой громадной, | | | | чтобы алгроритм | | | | расходился. По сути | | | | мы автоматически | | | | получаем затухание | | | | скорости обучения | | | | (learning rate | | | | decay). | | | +-----------------------+-----------------------+-----------------------+ **AdaGrad.** Алгоритм AdaGrad (adaptive gradient) --- это вариант предобусловленного SGD, автоматически адаптирующий скорость обучения для каждого параметра на основе истории его изменений, а расчет градиента совпадает с SGD. Основная идея Adagrad заключается в том, что каждый параметр модели должен иметь свой индивидуальный learning rate. Интуитивно это значит, что для производных, которые происходят редко и/или имеют большое значение, нужно использовать больший learning rate, чтобы модель могла быстрее учиться. А для производных, которые происходят часто и/или имеют маленькое значение, нужно использовать меньший learning rate, чтобы избежать сильных изменений и перескоков при обучении. (*иная формулировка:* Для параметров, по которым частная производная функции потерь наибольшая, скорость обучения уменьшается быстро, а если частная производная мала, то и скорость обучения уменьшается медленнее. В итоге больший прогресс получается в направлениях пространства параметров со сравнительно пологими склонами.) 'В' выбирается как диагональная матрица предобуславливателя и обновляется с использованием информации о стохастическом градиенте: (идея отсюда [ - Хотя Adagrad автоматически выбирает скорость обучения для каждого параметра, эта скорость все равно является глобальным гиперпараметром, который может потребовать тонкой настройки. ### RMSProp **Определение** **Суть** **Формула** **Применение** ----------------- ---------- ------------- ---------------- +-----------------------+-----------------------+-----------------------+ | **Плюсы** | **Минусы** | **Комментарии** | +=======================+=======================+=======================+ | | есть несколько | | | | сценариев, где его | | | | эффективность может | | | | быть ограничена: | | | | | | | | 1\. Малые наборы | | | | данных: RMSprop | | | | разработан для | | | | работы с большими | | | | наборами данных, | | | | где шум в | | | | градиентах | | | | усредняется. На | | | | малых наборах | | | | данных шум может | | | | быть более | | | | значительным, и | | | | RMSprop может не | | | | справляться с его | | | | усреднением так | | | | эффективно, как на | | | | больших наборах. | | | | | | | | 2\. Задачи с редкими | | | | обновлениями: | | | | RMSprop хорошо | | | | работает, когда | | | | веса модели | | | | обновляются часто. | | | | В задачах, где веса | | | | обновляются редко, | | | | например, в | | | | рекуррентных | | | | нейронных сетях с | | | | длинными | | | | последовательностями, | | | | RMSprop может не | | | | успевать усреднять | | | | градиенты, и его | | | | эффективность может | | | | быть ограничена. | | | | | | | | 3\. Задачи с частыми | | | | изменениями | | | | градиентов: RMSprop | | | | хорошо работает, | | | | когда градиенты | | | | меняются | | | | относительно | | | | плавно. В задачах, | | | | где градиенты часто | | | | меняются, например, | | | | в задачах с очень | | | | нелинейными | | | | функциями, RMSprop | | | | может не успевать | | | | адаптироваться к | | | | изменениям и может | | | | не находить | | | | оптимальные | | | | значения. | | | | | | | | 4\. Задачи с сильной | | | | корреляцией между | | | | параметрами: | | | | RMSprop может не | | | | справляться с | | | | сильной корреляцией | | | | между параметрами, | | | | что может привести | | | | к нестабильному | | | | обучению. | | | | | | | | 5\. Задачи с шумом в | | | | данных: RMSprop | | | | может быть | | | | чувствителен к шуму | | | | в данных, что может | | | | привести к | | | | неправильному | | | | усреднению | | | | градиентов и | | | | ошибочному | | | | обучению. | | +-----------------------+-----------------------+-----------------------+ **RMSProp**. RMSProp (Root Mean Square Propagation) RMSProp призван исправить недостаток Adagrad, что через некоторое время увеличение градиента (G\_t) приводит к слишком маленьким обновлениям и параличу алгоритма. Модифицируем идею Adagrad: мы всё так же собираемся обновлять меньше веса, которые слишком часто обновляются, но вместо полной суммы обновлений, будем использовать усреднённый по истории квадрат градиента. Т.е. не просто прибавлять норму градиента, а усреднять их в скользящем режиме: 10^--6^, для стабилизации деления на малыеγ числа. ![](media/image19.jpg)где - коэф затухания (от 0.9 до 0.99), *ε -* например *Алгоритм*: 1. Инициализировать скользящее среднее квадратов градиентов (отдельно для каждого параметра) 2. Вычислить градиент функции потерь относительно параметров 3. Обновить скользящее среднее квадратов градиентов путем усреднения квадратов градиентов за прошлые шаги с использованием коэффициента затухания, например, 0,9. 4. Обновить параметры путем деления градиента на корень из среднего квадрата градиента. Таким образом, скорость обучения будет масштабироваться на основе истории градиентов. 5. Повторять шаги 2-4 до сходимости. *Плюсы*: - Адаптивный шаг обучения: RMSProp автоматически адаптирует шаг обучения для каждого параметра, что позволяет ускорить сходимость и предотвратить затухание градиентов. - Устойчивость к шумам: RMSProp может уменьшить влияние шумовых градиентов, которые могут возникать при обучении нейронных сетей. - Работает хорошо на разреженных данных: RMSProp показывает высокую эффективность на разреженных данных, таких как текстовые корпусы или рекомендательные системы. *Минусы*: - Как и большинство алгоритмов оптимизации, RMSProp не является универсальным решением и может работать неэффективно в некоторых задачах. - RMSProp может страдать от проблемы \"застывания\" при больших градиентах, которая проявляется в том, что шаг обучения снижается до очень маленького значения. ### ADAM **Определение** **Суть** **Формула** **Применение** ----------------- ---------- ------------- ---------------- **Плюсы** **Минусы** **Комментарии** ----------- ------------ ----------------- **ADAM** Adam (adaptive moment estimation), ещё один оптимизационный алгоритм. Он сочетает в себе и идею накопления движения и идею более слабого обновления весов для типичных признаков (усреднение в скользящем режиме, Momentum (импульсный метод)+RMSProp). Остальные же: β1, β2, ε -- оставляют стандартными и равными 0.9, 0.99α и 1e-8 Как правило, в этом алгоритме подбирают лишь один гиперпараметр -- learning rate. соответственно. Зачастую, при начале работы с реальными данными начинают со значения learning rate равного 3e-4. *Плюсы*: - *Адаптивный*: он автоматически адаптируется к различным типам параметров модели, что делает его более эффективным по сравнению с другими методами оптимизации. - *Быстродействие*: Adam быстрее сходится, поэтому требует меньше времени для обучения модели. *Минусы*: - *Гиперпараметры*: выбор оптимальных значений гиперпараметров может быть сложной задачей, и неверный выбор может привести к медленной сходимости или расходимости. - *Переобучение*: если использовать Adam слишком долго, он может начать переобучаться, что приведет к ухудшению результатов. - *Шумные градиенты*: Adam неэффективен при работе с шумными градиентами, такими как случайный шум или выбросы. - *Память*: Adam требует хранения как параметров модели, так и градиентов, накопленного импульса и нормировочных констант (cache). Т.е. достижение более быстрой (с точки зрения количества итераций/объема рассмотренных данных) сходимости требует больших объемов памяти. Кроме того, если вы решите продолжить обучение модели, остановленное на некоторой точке, необходимо восстановить из чекпоинта не только веса модели, но и накопленные параметры Adam. В противном случае оптимизатор начнёт сбор всех своих статистик с нуля, что может сильно сказаться на качестве дообучения. То же самое касается вообще всех описанных выше методов, так как каждый из них накапливает какие-то статистики во время обучения. 2. Алгоритм обратного распространения ошибки. Проход вперёд и назад. Недостатки ------------------------------------------------------------------------------- [[https://rutube.ru/video/d1ecb6b207c53fe7279ddd6db3e31f00/]](https://rutube.ru/video/d1ecb6b207c53fe7279ddd6db3e31f00/) \| [[https://www.youtube.com/watch?v=UXB9bFj-UA4&list=PLOOYPh3439L1a5dkILEHCeZk\_sGY3EHnw&index=49&t=1s&pp=gAQBiAQB]](https://www.youtube.com/watch?v=UXB9bFj-UA4&list=PLOOYPh3439L1a5dkILEHCeZk_sGY3EHnw&index=49&t=1s&pp=gAQBiAQB) Backpropogation. Как оптимизатор способен несколько раз обучать на одном градиенте? Пока мы не прогонем целиком мы же не узнаем новый Каждый мини-батч сначала полностью пройдет forward **3. Регуляризация в глубоких сетях: Dropout, Batch Normalization.** -------------------------------------------------------------------- [[https://rutube.ru/video/ae9a94c8f77a48ec81c9f12a427ccb9f/]](https://rutube.ru/video/ae9a94c8f77a48ec81c9f12a427ccb9f/) [[https://rutube.ru/video/ac1c72d27480142c021c9990353f812e/]](https://rutube.ru/video/ac1c72d27480142c021c9990353f812e/) Регуляризация -- способ внедрить в процесс обучение априорно какие-то предположения (человеческие знания, напр.), чтобы получить переработку этих значений, т.е. внедрить знания, чтобы модели они были понятны. +-----------------------------------+-----------------------------------+ | Оптимизация | Регуляризация | +===================================+===================================+ | Adam -- хороший базовый выбор | Добавляет некоторые ограничения | | | на весы | | Learning Rate -- важен даже для | | | Adam/RMSProp | Добавить некотор рандомный шум во | | | время обучения и marginalize it | | | during test | | | | | | Add some prior imformation in | | | appropriate form | +-----------------------------------+-----------------------------------+ Методы регуляризации: - - - - #### Аугментация (Augmentation) +-----------------+-----------------+-----------------+-----------------+ | **Определение** | **Суть** | **Формула** | **Применение** | +=================+=================+=================+=================+ | Аугментация | Регуляризация | | Зачем нужна | | простой способ | аугментации | | регуляризация | | добавить | (Augmentation | | аугментации: | | преобр. Над | Regularization) | | | | признаками, | - это техника, | | Увеличение | | которые не | используемая в | | размера | | меняют значение | машинном | | обучающего | | целевой | обучении для | | набора: | | переменной | улучшения | | Искусственно | | | обобщающей | | увеличивает | | | способности | | размер | | | модели путем | | обучающего | | | искусственного | | набора, что | | | увеличения | | может улучшить | | | обучающего | | точность модели | | | набора данных с | | и свести к | | | помощью | | минимуму | | | преобразований | | переобучение. | | | исходных | | | | | данных. | | Введение | | | | | шума: | | | Как работает: | | Добавление шума | | | | | к данным может | | | 1. Аугментация: | | сделать модель | | | На исходных | | более | | | данных | | устойчивой к | | | выполняются | | случайным | | | различные | | изменениям и | | | преобразования, | | шуму в реальных | | | например, | | данных. | | | поворот, | | | | | отражение, | | Улучшение | | | добавление | | обобщающей | | | шума, изменение | | способности: | | | яркости и т.д. | | Обучение модели | | | | | на | | | 2\. Создание | | аугментированны | | | новых данных: | | х | | | Эти | | данных помогает | | | преобразования | | ей лучше | | | создают новые | | обобщаться на | | | варианты | | новые невидимые | | | исходных | | ранее данные. | | | данных, | | | | | пополняя | | Пример: | | | обучающий | | | | | набор. | | Представьте, | | | | | что вы обучаете | | | 3\. Обучение | | модель для | | | модели: | | распознавания | | | Модель | | изображений | | | обучается на | | собак. | | | расширенном | | | | | обучающем | | Аугментация: | | | наборе, | | Вы можете | | | который | | использовать | | | включает как | | аугментацию для | | | исходные, так | | создания новых | | | и | | вариантов | | | аугментированны | | изображений | | | е | | собак, | | | данные. | | поворачивая их, | | | | | отражая их, | | | | | добавляя шум и | | | | | т.д. | | | | | | | | | | Обучение: | | | | | Обучение модели | | | | | на этих | | | | | аугментированны | | | | | х | | | | | изображениях | | | | | позволит ей | | | | | научиться | | | | | распознавать | | | | | собак в | | | | | различных | | | | | позах, условиях | | | | | освещения и | | | | | т.д. | +-----------------+-----------------+-----------------+-----------------+ +-----------------------+-----------------------+-----------------------+ | **Плюсы** | **Минусы** | **Комментарии** | +=======================+=======================+=======================+ | - - | Может стать хуже | Важно: | | | работать с основной | | | | задачнй | Регуляризация | | | | аугментации является | | | | эффективным способом | | | | улучшения обобщающей | | | | способности моделей | | | | машинного обучения. | | | | | | | | Выбирайте методы | | | | аугментации, которые | | | | соответствуют | | | | характеристикам | | | | данных и задачи. | | | | | | | | Важно провести | | | | эксперименты с | | | | разными методами | | | | аугментации, чтобы | | | | найти наиболее | | | | эффективные для | | | | конкретной задачи. | +-----------------------+-----------------------+-----------------------+ #### Early stopping (ранняя остановка) +-----------+-----------+-----------+-----------+-----------+-----------+ | **Суть** | **Формула | **Примене | **Плюсы** | **Минусы* | **Коммент | | | ** | ние** | | * | арии** | +===========+===========+===========+===========+===========+===========+ | Early | ![](media | | | | | | stopping | /image23. | | | | | | (ранняя | png) | | | | | | остановка | | | | | | | ) | | | | | | | -- | | | | | | | остановит | | | | | | | ь | | | | | | | обучение | | | | | | | до того | | | | | | | как | | | | | | | начнется | | | | | | | увеличива | | | | | | | ться | | | | | | | ошибка | | | | | | | (функция | | | | | | | потерь на | | | | | | | валидации | | | | | | | начинает | | | | | | | расходитс | | | | | | | я | | | | | | | с | | | | | | | функццией | | | | | | | потерь на | | | | | | | обучении) | | | | | | |. | | | | | | | Можно | | | | | | | остановит | | | | | | | ь | | | | | | | через | | | | | | | эпохи. | | | | | | | | | | | | | | 4 | | | | | | | компонент | | | | | | | ы | | | | | | | -- набор | | | | | | | валидации | | | | | | | , | | | | | | | метрмка | | | | | | | (функция | | | | | | | потерь), | | | | | | | возможнос | | | | | | | ть | | | | | | | сохранени | | | | | | | я | | | | | | | лучшей | | | | | | | модели, | | | | | | | триггер | | | | | | | (для | | | | | | | остановки | | | | | | | после | | | | | | | несколько | | | | | | | последова | | | | | | | тельных | | | | | | | эпох | | | | | | | расходимо | | | | | | | сти) | | | | | | +-----------+-----------+-----------+-----------+-----------+-----------+ ### Dropout **Суть** **Формула** **Применение** **Плюсы** **Минусы** **Комментарии** ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ ------------- ---------------- ------------------------------------ --------------------------------------------------------------- ---------------------------------------------------------------------------------------------- Отключаем некоторые нейроны с вероятностью р. На выходе умножает сумму на 1/вероятность того, что нейрон будет включен, чтобы она стала пропорциональной сумме, которая бы была в случае, если все нейроны были активны (так выход н.с. будет соответсвовать её нормальной работе) Регуляризация и более устойчиво... Эффективный размер сети при обучении на каждом шаге снимается рекомендуется использовать, когда есть переобучение, но нельзя сократить количество нейронов ### Batch Normalization +-----------+-----------+-----------+-----------+-----------+-----------+ | **Суть** | **Формула | **Примене | **Плюсы** | **Минусы* | **Коммент | | | ** | ние** | | * | арии** | +===========+===========+===========+===========+===========+===========+ | Делим | | | | | Рекоменда | | обучающий | | | | | ция: | | набор на | | | | | Изначальн | | подмножес | | | | | о | | тва | | | | | строить | | и обучаем | | | | | нейронные | | модель на | | | | | сети без | | них. | | | | | batch | | | | | | | normaliza | | | | | | | tion | | | | | | | (или | | | | | | | dropout) | | | | | | | и если | | | | | | | наблюдает | | | | | | | ся | | | | | | | | | | | | | | медленное | | | | | | | обучение | | | | | | | или | | | | | | | эффект | | | | | | | переобуче | | | | | | | ния, | | | | | | | то можно | | | | | | | попробова | | | | | | | ть | | | | | | | добавить | | | | | | | batch | | | | | | | normaliza | | | | | | | tion | | | | | | | | | | | | | | или | | | | | | | dropout, | | | | | | | но не оба | | | | | | | вместе. | +-----------+-----------+-----------+-----------+-----------+-----------+ Internal covariance shift (внутренний ковариационный сдвиг) -- термин возник в результате решения проблемы ускорения решения нейронной сети. Ковариантный сдвиг --- это ситуация, когда распределения значений признаков в обучающей и тестовой выборке имеют разные параметры (математическое ожидание, дисперсия и т.д.). ![](media/image25.png) **4. Функции активации. Sigmoid or Logistic Activation Function. Hyperbolic tangent Activation Function (Tanh). Rectified Linear Unit (ReLU). Leaky ReLU.** ----------------------------------------------------------------------------------------------------------------------------------------------------------- [[https://rutube.ru/video/dd0d42b7158ba1931ea24c0bc375f3e3/]](https://rutube.ru/video/dd0d42b7158ba1931ea24c0bc375f3e3/) **Что такое функция активации?** +-----------------+-----------------+-----------------+-----------------+ | **Определение** | **Суть** | **Формула** | **Применение** | +=================+=================+=================+=================+ | | Функция | | Зачем нужны | | | активации в | | функции | | | нейронных сетях | | активации: | | | - это | | | | | математическая | | Ввод | | | функция, | | нелинейности: | | | которая | | Линейные модели | | | применяется к | | ограничены в | | | выходу нейрона, | | своих | | | чтобы | | возможностях. | | | определить его | | Функции | | | активацию. Она | | активации | |