Openbravo-rus.ru

Образование по русски
3 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Стекинг машинное обучение

Cтекинг (Stacking) и блендинг (Blending)

Стекинг (Stacked Generalization или Stacking) — один из самых популярных способов ансамблирования алгоритмов, т.е. использования нескольких алгоритмов для решения одной задачи машинного обучения. Пожалуй, он замечателен уже тем, что постоянно переизобретается новыми любителями анализа данных. Это вполне естественно, его идея лежит на поверхности. Известно, что если обучить несколько разных алгоритмов, то в задаче регрессии их среднее, а в задаче классификации — голосование по большинству, часто превосходят по качеству все эти алгоритмы. Возникает вопрос: почему, собственно, использовать для ансамблирования такие простые операции как усреднение или голосование? Можно же ансамблироование доверить очередному алгоритму (т.н. «метаалгоритму») машинного обучения.

Простейшая схема стекинга — блендинг (Blending): обучающую выборку делят на две части. На первой обучают базовые алгоритмы. Затем получают их ответы на второй части и на тестовой выборке. Понятно, что ответ каждого алгоритма можно рассматривать как новый признак (т.н. «метапризнак»). На метапризнаках второй части обучения настраивают метаалгоритм. Затем запускают его на метапризнаках теста и получают ответ.

Самый большой недостаток блендинга (в описанной реализации) — деление обучающей выборки. Получается, что ни базовые алгоритмы, ни метаалгоритм не используют всего объёма обучения (каждый — только свой кусочек). Понятно, что для повышения качества надо усреднить несколько блендингов с разными разбиениями обучения. Вместо усреднения иногда конкатенируют обучающие (и тестовые) таблицы для метаалгоритма, полученные при разных разбиениях (см. рис. 2): здесь мы получаем несколько ответов для каждого объекта тестовой выборки — их усредняют. На практике такая схема блендинга сложнее в реализации и более медленная, а по качеству может не превосходить обычного усреднения.

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

Здесь тоже желательно реализовывать несколько разных разбиений на фолды и затем усреднить соответствующие метапризнаки (или ответы стекингов!). Но самый главный недостаток (классического) стекинга в том, что метапризнаки на обучении (пусть и полноценном — не урезанном) и на тесте разные. Для объяснения возьмём какой-нибудь базовый алгоритм, например, гребневую регрессию. Мета-признак на обучающей выборке — это не ответы какого-то конкретного регрессора, он состоит из кусочков, которые являются ответами разных регрессий (с разными коэффициентами). А метапризнак на контрольной выборке вообще является ответом совсем другой регрессии, настроенной на всём обучениии. В классическом стекинге могут возникать весьма забавные ситуации, когда какой-то метапризнак содержит мало уникальных значений, но множества этих значений на обучении и тесте не пересекаются!

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

Полезно посмотреть работу моего студента Саши Гущина про его попытки (весьма удачные) создать «стекинг без недостатков».

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

А вот (рис.4b) качество на случайно взятой реальной задаче (я взял данные проходящего сейчас соревнования mlbootcamp, несколько случайных лесов и LightGBM-ов в качестве базовых алгоритмов).

Также отметим, что здесь мы использовали однократный стекинг (без усреднения), усреднение ещё повышает качество, но незначительно (см. рис. 5-5b).

Кстати, для стекинга нужны достаточно большие выборки(скажем, в двумерных модельных задачах он «начинает работать», когда число объектов измеряется десятками тысяч). На малых выборках он тоже может работать, но тут надо аккуратно подбирать базовые алгоритмы и, главное, метаалгоритм.

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

Но стоит помнить о том, что правильное применение стекинга — это не взять кучу разных алгоритмов и «состекать». Дело в том, что для разных алгоритмов нужны разные признаковые пространства. Скажем, если есть категориальные признаки с малым (3-4) числом категорий, то алгоритму «случайный лес» их можно подавать «как есть», а вот для регрессионных (ridge, log_reg) нужно предварительно выполнить one-hot-кодировку.

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

Стекинг на практике

Стекинг можно и нужно использовать при решении реальных бизнес-задач, поскольку при умелом построении композиции алгоритмов он даже помогает бороться с типичными проблемами реальных данных. Например, одна из таких проблем — значения признаков у нас появляются в реальном времени и в будущем могут быть артефакты, которые мы не наблюдали в прошлом. Скажем, из опыта автора: «сломались» счётчики посещений интернет-ресурсов и начали показывать аномальные значения (в 100 раз больше истины). Это совершенно губит регрессионные алгоритмы (у них ответы также могут возрасти в 100 раз), но если регрессии использовать как базовые алгоритмы (натренировать на разных признаковых пространствах), а в качестве метаалгоритма использовать что-то основанное на деревьях, то ответ такого стекинга уже не будет совсем неадекватным даже при «повреждении» некоторых признаков.

Использование признаков вместе с метапризнаками

Автор знает несколько случаев (у своих учеников), когда это повышало качество. Есть также и случаи, когда это приводит лишь к переобучению. В любом случае: при решении практической задачи для бизнеса лучше так не делать! Модели становятся совсем неинтерпретируемыми и «неуправляемыми».

Очень полезный приём, о котором часто забывают — преобразование (деформация) метапризнакового пространства. Скажем, вместо стандартных метапризнаков (ответов алгоритмов) можно использовать мономы над ними (например, все попарные произведения).

У самого стекинга (а не только алгоритмов, из которых он состоит) есть параметры. Скажем, число фолдов. Как правило выбирают максимальное, при котором он ещё работает (обучается) за приемлемое время. На рис.7 показано качество в модельной задаче от числа фолдов при разном уровне «регуляризационного шума».

Здесь всё просто — он должен оптимизировать заданный функционал качества. От базовых алгоритмов это, вообще говоря, не требуется. Вообще-то, от того, какую композицию Вы будете использовать в ансамбле, сильно зависит качество. Например, в задаче бинарной классификации с функцией ошибки log_loss, если у Вас есть несколько хороших алгоритмов, то сложно придумать стекинг, который их улучшит… Если в качестве метаалгоритма взять гребневую регрессию, то она совсем не годится для log_loss-a, а если логистическую, то обратите внимание на вид Вашего алгоритма: Вы в аргумент сигмоиды «вставляете» линейную комбинацию «почти правильных ответов», вряд ли Вы получите что-то более близкое к правильному ответу…

Связь с другими техниками

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

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

Стекинг был предложен Д. Волпертом в 1992 году, хотя, как я уже писал, он постоянно переоткрывается, и, возможно, кто-нибудь использовал уже подобную технику под другим названием раньше. Кстати, Д. Волпертбольше известен как автор серии теорем «No free lunch».

Термин «блендинг» вроде бы ввели в обиход победители конкурса Netflix. Есть постоянная путаница, что называть «стекингом», а что «блендингом». Часто негласно считают, что простые схемы стекинга лучше называть «блендингом».

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

Стекинг часто используют в спортивном анализе данных, в частности, автор с его помощью побеждал в соревнованиии Kaggle WISE 2014 и занимал 3е место в TunedIt JRS 2012.

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

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

Вот ноутбук, в котором есть (достаточно простая) авторская реализация.

Практический Machine Learning

Курс включает в себя 10 модулей, более 500 упражнений на закрепление материала, обучение 10 алгоритмов ML, два хакатона на kaggle, чат с сообществом и поддержку менторов

Каждая тема разбирается в видео, скринкастах и конспектах и закрепляется десятками упражнений (тесты, дебаггинг кода, проверка кода студента)

По каждой теме вы работаете с моделью ML — файнтьюните, создаёте с нуля, оптимизируете, пробуете разные методы

● Сообщество и ментор

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

Модуль 1 Введение в машинное обучение

— Введение в машинное обучение. Типы алгоритмов

— Какие бизнес-задачи решает машинное обучение — и какие нет

— Обзор кейсов по внедрению машинного обучения: анализ алгоритмов и использованных решений

— Этапы решения задач машинного обучения:

Читать еще:  Обучение smm дистанционно

● Моделирование (обучение модели)

— Задачи на закрепление темы: тесты, проверка кода

— Практика: реализация этапов машинного обучения на примере готовой модели

Модуль 2 Методы предобработки данных

— Типы данных и их проблемы

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

● Проблемы с данными: пропуски, неподходящий формат, мусор в данных, зашифрованные данные, проблема с разметкой и прочее

— Работа с пропусками и начальная обработка

● Работа с пропусками и дублями

● Нормализация данных по min, max, std

● Удаление столбцов и строк

● Проверка правильности типа данных

— Визуализация для предобработки

● Создание признаков вручную

● Признаки даты и времени

● Статистики по наборам признаков

● Поиск и удаление по порогу

● Поиск по отклонению / распределению

— Задачи на закрепление темы: тесты, ввод значений, проверка кода студентов на платформе

— Практика: работа с параметрами модели

Модуль 3 Регрессия

— Линейная регрессия. Задачи регрессии и примеры использования в бизнесе

— Математический вывод линейной регрессии. Возможные ошибки в работе алгоритма

— Обучение модели линейной регрессии

— Методы нахождения прямой в регрессии

● Аналитический вывод для одной переменной

● Аналитический вывод для многих переменных

● Примеры использования в решении жизненных задач

● Решение задачи с помощью градиентного спуска

● Обучение модели логистической регрессии

● Сравнение производительности разных методов

● Использование матричных операций

● Преобразование линейной модели

— Задачи на закрепление темы: тесты, ввод значений, проверка кода студентов на платформе

— Практика: обучение и оптимизация моделей линейной и логистической регрессии

Модуль 4 Кластеризация

— Обучение с учителем и без учителя (supervised / unsupervised learning)

— Области применения методов обучения без учителя

● теория метода и реализация в коде

● плюсы и минусы метода

● теория метода и реализация в коде

— Метод понижения размерности с помощью SVD

● теория метода и реализация в коде

● сильные и слабые стороны

— Работа с текстами

● кластеризация текстов: теория и реализация в коде

● метод «мешок слов»

— Задачи на закрепление темы: тесты, ввод значений, проверка кода студентов на платформе

— Практика: unsupervised обучение модели методами K-means, mean-shift и методом понижения размерности

Модуль 5 Tree-based алгоритмы: введение в деревья решений

— Введение в деревья решений

— Решающее дерево и как его построить

● Структура дерева: внутренние и терминальные узлы

● Разделяющие функции. Виды разделяющих функций

● Обучение дерева решений для классификации и регрессии

● Критерии качества разделения и прекращения роста дерева

● Влияние параметров обучения на under / overfitting модели

— Примеры использования деревьев решений в production

— Визуализация структуры дерева

— Алгоритм построения дерева

— Виды деревьев в библиотеках машинного обучения

— Реализация деревьев в библиотеке sklearn

— Задачи на закрепление темы: тесты, ввод значений, проверка кода студентов на платформе

— Практика: обучение решающего дерева для задачи регрессии

Модуль 6 Tree-based алгоритмы: ансамбли

— Области применения ансамблей

● Bagging и out-of-bag оценки

● Применение bagging к логистической регрессии

● Cлучайный лес: bagging и эвристики подбора признаков

● Перебор параметров алгоритма по сетке (Grid Search)

● Объединение деревьев в один классификатор

● Как вырастить деревья разными?

● Настраиваемые параметры случайного леса

● Сравнение результатов настройки параметров

● Анализ качества ансмабля и влияния признаков

● Что такое бустинг деревьев?

● AdaBoost и примеры использования

● Значение порядка построения деревьев в ансамбле

● AdaBoost в логистической регрессии

● CatBoost: особенности интерфейса

● Построение классификатора первого уровня и мета-классификатора

— Задачи на закрепление темы: тесты, ввод значений, проверка кода студентов на платформе

— Практика: соревнование по обучению решающих деревьев на kaggle

Модуль 7 Валидация данных и оценка качества алгоритмов

— Методы разбиения выборки для валидации данных

— Метрики качества алгоритмов

● метрики precision / recall

— Оценка качества алгоритмов в production

● примеры реализации в коде

● как избавиться от переобучения?

— Дисбаланс выборки: как бороться

— Визуализация процесса обучения модели

● визуализация с Tensorboard

— Задачи на закрепление темы: тесты, ввод значений, проверка кода студентов на платформе

— Практика: оценка качества алгоритма классификации

Модуль 8 Временные ряды в машинном обучении

— Задача анализа временных рядов в ML

— Принципы обучения алгоритма

● экспоненциальное сглаживание: простое, двойное, с ручной настройкой параметров

● кросс-валидация на временных рядах

— Эконометрический подход в анализе временных рядов

● стационарность и единичные корни

● ограничения и недостатки эконометрического подхода

— Алгоритмы машинного обучения для анализа временных рядов

● извлечение признаков для обучения

● обучение линейных моделей

● бустинг для временных рядов: преимущества и ограничения

— Задачи на закрепление темы: тесты, ввод значений, проверка кода студентов на платформе

— Практика: обучение линейной модели и использование XGBoost для анализа временных рядов

Модуль 9 Рекомендательные системы

— Обзор подходов к построению рекомендательных систем

— Принципы разбиения выборки

● принцип работы алгоритма

● практика реализации в коде

● границы применимости, достоинства и недостатки

— Алгоритм SVD Recommender

● принцип работы алгоритма

● практика реализации в коде

● достоинства метода, ограничения

— Проблема холодного старта в рекомендательных системах

— Бустинг в рекомендательных системах: использование LightGBM

— Задачи на закрепление темы: тесты, ввод значений, проверка кода студентов на платформе

— Практика: обучение рекомендательной системы

Модуль 10 Финальный хакатон

— Выпускной хакатон: командное соревнование по обучению модели на платформе kaggle

По окончанию обучения слушатели получают либо Сертификат Учебного Центра о прохождении курса, либо Удостоверение о повышении квалификации, зарегистрированное в ФРДО (Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении). Для получения Свидетельства необходимо, чтобы длительность обучения превышала 16 академических часов, а так же необходимо предоставить оригинал Диплома о профессиональном или высшем образовании государственного образца.

Помимо этого, по факту прохождения авторизованных курсов вендоров Cisco, Postgres, AstraLinux, Microsoft, ICAgile выдается электронный сертификат вендора.

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

За несколько дней до начала обучения (обычно за неделю) все слушатели получают приглашение по указанной электронной почте (если обучение заказывалось централизованно, ваш персональный мейл могли не передать — обратитесь к специалисту вашей организации, кто заказывал курсы, приглашение есть у него). В приглашении указан адрес и прочая полезная для слушателя информация. Если вы не получили приглашение – обратитесь к нам любым удобным для вас способом и мы сообщим адрес и продублируем приглашение на вашу почту.

В основном корпусе в Москве по адресу Дербеневская набережная д.7 стр.5, БЦ «Оазис», парковки, к сожалению, нет. Зато есть муниципальная платная парковка на всех прилегающих улицах.

По поводу остальных филиалов и корпусов – уточняйте информацию у наших менеджеров. Мы постараемся сделать всё возможное для вашего комфортного обучения.

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

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

Обо всех специальных условиях читайте в разделе Спецпредложения.

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

Big Data. Machine Learning. Data Science.

Блог компании Даталитика. Интересное об искусственном интеллекте, машинном обучении, больших данных и ИТ-консалтинге

Подписаться на этот блог

Подписаться на обновления

Задача по распознаванию картинок от Kaggle или жизнь Machine Learning community в Челябинске

  • Получить ссылку
  • Facebook
  • Twitter
  • Pinterest
  • Электронная почта
  • Другие приложения

Всякая неожиданная живность постоянно заводится в самых неожиданных местах. То же самое произошло и в Челябинске. Наше Machine Learning сообщество образовалось под эгидой ODS всея Руси и сейчас достаточно стремительно развивается. Как образовалось? Сначала просто завели тред в глобальном ODS Slack, а дальше закрутилось. Сейчас перешли в Телеграмм, где уже начинаются холивары за Random Forest:)
Локальные сообщества подразумевают встречи. У нас они начались достаточно рутинно: сначала организационная встреча, на которой поговорили об ML, обсудили совместные планы на жизнь и составили небольшую схему дальнейшего развития.

Если расшифровать и подытожить, к чему мы пришли, то появилось несколько форматов общения и развития сообщества:

  • «Спикер жжёт» — обычный формат лекций.
  • Мини-хакатон — что-то наподобие полноценного хакатона, но меньший по времени, в пределах 6 часов.
  • Тренировки/зарешки — совместное решение и разбор решений внешних конкурсов (kaggle) по машинному обучению.
  • «Письмо дяди Федора» — совместное онлайн решение, ограниченное по времени, с получением баллов за обнаружение особенностей в данных. Участники решают задачу, по нахождению чего-либо интересного, отправляют сообщение о найденном в общий для всех решающих чат. Первому, обнаружившему какую-либо интересную закономерность, присваивается балл.
  • Совместный просмотр видео с обсуждением. В нашем сообществе есть несколько топовых специалистов из разных профессиональных областей по машинному обучению, поэтому мы пришли к этому формату. Один человек, который достаточно хорошо знаком с областью и может объяснить суть происходящего, по ходу видео-лекции и разъясняет некоторые нюансы и отвечает на вопросы остальных слушателей.
  • Twitch-трансляция. Один опытный человек в интерактивном режиме показывает свои подходы к решению задачи: как визуализировать, обрабатывать, отбирать данные, обучать модель. Ключевая идея — передача тяжелого, но ценного жизненного опыта.

Об одном мероприятии, в формате «Тренировки/зарешки», в котором мы непосредственно участвовали, я расскажу и коротко законспектирую.

Вот такую красивую афишу нам сделали:

Несколько фотографий для истории:

Данных было весьма мало, особенно для направления Deep Learning. Полей также было не так много:

  • id — уникальный хэш для sample,
  • band1 и band2 — снимки,
  • is_iceberg — значение, которое нужно было предсказывать,
  • inc_angle — это свойство помогло выигрывать этот конкурс, но об этом позже. Его физическое значение — это угол, под котором производился снимок относительно перпендикуляра к земле.

Всего 1604 обучающих примеров в тренировочной выборке. Кораблей и айсбергов примерно равное количество. Выборка была достаточно сбалансированной, что уже неплохо. В тесте было 8424 обучающих примера, но следует понимать, что все это ложь. Почему ложь? Kaggle это любит — в тесте было 5000 сгенерированных изображений в целях предотвращения ручной разметки. Хотя в нашем случае ручная разметка была бы достаточно бесполезным делом, так как данные в очередной раз довольно плохо подготовили и сгенерированные изображения можно было без проблем находить по количеству знаков после запятой у inc_angle. Для сгенерированных было больше десяти, для реальных же только 4.
Ещё про особенности: очень маленькое количество sample для оценки своего решения в процессе решения соревнования, то есть на leaderboard, всего 685.
Все это привело к тому, что более опытные товарищи посмотрели на это соревнование и решили не участвовать, так как у многих уже был печальный опыт — не так давно закончилось соревнование Mercedes-Benz Greener Manufacturing. Там также была маленькая выборка и после окончания соревнования произошёл шейк-ап, то есть результат сильно поменялся после открытия приватной части, по которой и оценивались результаты решений. Как это было? Ты был на первом месте на публичной части, а на приватной оказался на последнем и наоборот. Это явление называется overfitting на публичный тест — на новых данных алгоритм не показывает должного качества, поскольку слишком хорошо адаптировался к какой-то подвыборке от оригинальной.

Читать еще:  Реклама в интернете обучение бесплатно

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

У нас было два ключевых подхода к генерации дополнительных фич из имеющихся данных:

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

Итого — простые архитектуры, лик и stratified validation по inc_angle определенно давали прирост качества. Лик и простые модели давали хорошее качество, а правильная валидация давала уверенность.

Самая веселая часть — что не помогло решению:

  1. Была попытка руками доразметить данные.
    • Выделить глазами плохие/хорошие изображения и подать как метапризнак в модель более высокого уровня.
    • Размерить местонахождение целевого объекта на снимке, чтобы потом сделать модель для предсказания местонахождения объекта.
  2. Статистики, как на исходных снимках (min, max, mean и тд), так и на размеченных руками областях (из предыдущего пункта), а также просто на отцентрированных изображениях по самому яркому пикселю.
  3. Smooth likelihood.
  4. TTA — усреднение предсказаний одного и того же снимка, но с различными искажениями. Для примера: 360 вариаций одного и того же изображения с вращением его от 1 до 360 градусов.
  5. Pseudo labeling — добавление в обучение примеров из тестовой части, отобранных по какому-либо признаку.
  6. Некоторые виды аугментации, например, слишком сильный поворот изображения (>35 градуса).
  7. Кластеризация изображений, базирующаяся на схожести снимков.

Далее все это подавалось на стекинг, то есть предсказания от 6 моделей первого уровня являлись метапризнаками для моделей второго уровня — в модели xgboost и lightgbm, которые являлись реализациями градиентного бустинга. Дополнительна фича — агрегация предсказаний имеющихся моделей по inc_angle, дала наибольший прирост качества. Фактически это значило, что модели стабильно могут ошибаться на некоторых значениях этого угла. Но так как у нас было предположение, что в данных есть лик, то эта стабильная ошибка на некоторых углах становилась видна для конечного алгоритма.

В заключение этой статьи от лица всего Челябинского ML-коммьюнити хочу выразить отдельную благодарность Андрею Шапиро и Дмитрию Ботову, которые организовали описанное мероприятие.

Стейкинг токенов на криптовалютных биржах — вознаграждение за хранение монет

PoS-монетам, предлагающим вознаграждение за заморозку средств в кошельках, уже несколько лет пророчат заменить PoW-проекты, однако до недавнего времени они не превалировали на рынке.

Но в 2020 году ситуация может измениться — Ethereum перейдет на PoS, что увеличит рынок стейкинга в два раза. Тогда монеты с «пассивным доходом» выйдут на первый план, а биржи станут главными валидаторами.

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

Навигация по материалу:

Как работает стекинг криптовалют?

Стейкинг (от англ. stake) — хранение криптовалют в кошельке для подтверждения транзакций за вознаграждение. Существует несколько его версий (с доходом от мастернод или с дивидендов), но всех их объединяет то, что для майнинга важна не мощность вашего устройства (как в PoW), а объем монет, которым владеет майнер. Чем больше у него монет, тем больше его доход.

Стекинг — это еще один механизм проверки блоков, а криптовалюты, поддерживающие стекинг, также называются монетами Proof of Stake (PoS). Proof of Stake является альтернативой Proof of Work и не использует такое количество электроэнергии, сколько майнинг Proof of Work монет.

С помощью Staking количество монет, которые вы можете добыть, зависит от количества монет, которые вы держите на своем кошельке. Например, если у вас есть 5% запаса монеты, вы можете «добыть» только 5% блоков. Это делает Proof of Stake гораздо более дружественным к окружающей среде алгоритмом консенсуса по сравнению с PoW-методом.

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

Крупнейшие биржи запустили услугу стейкинга

Главная привлекательность стейкинга для крипто-инвесторов — возможность получать пассивный доход. Пользователи могут получать вознаграждение за добытые блоки, не получая статус валидатора. Обычно он составляет 2−7%, но может доходить и до десятков процентов. Конкретный процент прибыли от стейкинга зависит от монеты и площадки-валидатора.

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

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

13 декабря Coinbase, одна из ведущих бирж на рынке, стала крупнейшим валидатором Tezos (XTZ), обогнав Polychain Labs и Binance. Это не случайно — биржи становятся все более вовлеченными в подтверждение транзакций. Ранее в ноябре Coinbase предложила пользователям зарабатывать на Tezos с помощью стейкинга около 5% годовых, в то время как биржа забирает себе 25% от доходов пользователей.

Coinbase — это не единственная биржа, предлагающая клиентам процент за стейкинг токенов Tezos. С ноября ее примеру последовали биржи Binance, Kraken, OKEx, а также кошелек Ledger, предлагая доход в 5−7% годовых. Мария Станкевич, директор по развитию биржи EXMO, рассказала, что эта торговая площадка тоже скоро добавит в листинг XTZ и запустит возможность стейкинга этого токена.

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

В ноябре крупнейшая фондовая биржа Швейцарии SIX добавила в свой листинг торгуемый биржевой продукт (ETP) на Tezos от компании Amun AG. Стоимость актива — $20, он доступен для частных и институциональных клиентов, а комиссия компании за управление портфелем — 2.5%.

Tezos, конечно, не единственная монета, стейкинг которой предлагают биржи:

  • В июле 2019 года Poloniex добавила стейкинг на монету ATOM блокчейн-сети Cosmos c ежедневным вознаграждением и комиссией в 25%.
  • Также в этом месяце Binance запустила стейкинг монет проектов Algorand, Komodo и Stellar, а в сентябре провела эйрдроп 220 000 этих монет. В сентябре площадка также запустила отдельную платформу для стейкинга с возможностью заработка на 8 PoS-проектах (на данный момент их уже 15). Среди них NEO, TRON, Ontology, Qtum, Stratis и Vechain.
  • В октябре кошелек BitGo добавил для клиентов стейкинг на монетах Dash и Algorand с доходностью 7−13% годовых.
  • В декабре биржа OKEx первой запустила стейкинг стейблкоина DAI в 5% годовых, 1% из которых заплатит биржа. Минимальный депозит — 1 монета, комиссий за хранение нет.

Зачем биржи запускают стейкинг

На сегодня стейкинг предлагают все популярные биржи: Binance, Coinbase, Huobi, OKEX, Poloniex и Kraken среди прочих. Он выгоден и биржам, и крипто-инвесторам: обе стороны зарабатывают. В то же время PoS-проекты довольно давно известны на рынке и уже доказали свою состоятельность при использовании в ряде монет, а биржи могут предложить их пользователям больше ликвидности, чем пулы.

Мария Станкевич объяснила, почему биржам выгоден стейкинг:

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

Аналитик брокера EXANTE Виктор Аргонов добавил:

«Значительная часть инвесторов хранит большие средства на биржах. Но иметь PoS-монеты и не использовать их для стейкинга — значит, упускать часть выгоды, которую эта монета дает. Биржам предпочтительно, чтобы пользователи не выводили PoS-монеты в кошелек, а занимались стейкингом прямо на бирже».

Стейкинг — новый тренд рынка и будущий отраслевой стандарт

Эксперты отмечают, что в 2020 году стейкинг может стать новым стандартом рынка. Как ожидают аналитики, биржи, скорее всего, будут главными валидаторами в большинстве PoS-проектов. У них огромная пользовательская база и доверие клиентов, а также им проще всего запустить поддержку стейкинга. Биржи предлагают ликвидность и развитую инфраструктуру. Для рядового инвестора зарабатывать на PoS-монетах с ними проще, чем самостоятельно, храня их на кошельках.

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

Читать еще:  Лекции воронцова машинное обучение

Переход проектов на стейкинг неизбежно положительно отразится на их стоимости. И Tezos — яркий тому пример. В ноябре монета подорожала на 53% после того, как Coinbase запустила стейкинг на нее и на 120% с ноября по декабрь после добавления стейкинга на нее на остальных крупнейших биржах. Сейчас Tezos занимает 9-е место по капитализации. Это еще более впечатляет, если учесть тот факт, что большинство цифровых активов в последнее время падают в цене.

Обновление Ethereum 2.0 разгонит рынок стейкинга в два раза

PoS привлекает и те проекты, которые изначально работали на других алгоритмах. Самый яркий пример — Ethereum, разработчики которого готовятся перевести проект с PoW на PoS в первом квартале этого года. Это должно решить проблему масштабирования, высоких комиссий и привлечь в стейкинг новых инвесторов-валидаторов.

С переходом Ethereum на PoS доля стейкинга на рынке резко вырастет. По предварительным расчетам руководителя продуктовой стратегии в стартапе ConsenSys Коллина Майерса, после запуска Ethereum 2.0 на PoS валидаторы смогут получать от 4.6% до 10.3% годовых. Примечательно, что из-за шардинга (сокращения количества шард вскоре после запуска с 1024 до 64 и порожденного им снижения количества валидаторов и вознаграждения) со временем доходность будет снижаться.

Для подтверждения блоков валидатору сети Ethereum понадобится депозит минимум в 32 ETH ($4154 по сегодняшнему курсу). С таким порогом входа следует ждать роста предложений на стейкинг со стороны бирж. Так, запуск сервиса по стейкингу ETH уже анонсировала крупнейшая швейцарская криптобиржа Bitcoin Suisse. Минимального депозита не будет, комиссия площадки составит 15%.

По подсчетам аналитиков Binance Research, переход Ethereum на PoS увеличит стоимость активов и долю стейкинга на рынке в два раза и сделает ETH самой популярной валютой на PoS-алгоритме. По их данным, в октябре 2019 года совокупная капитализация PoS-проектов составляла $11.2 млрд (а по последним данным StakingRewards, $10.44 млрд), из которых $6.4 млрд использовались для стейкинга. Запуск Ethereum 2.0 увеличит капитализацию до $24.8 млрд.

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

«Тут стоить отметить, что американский регулятор предупредил, что переход на PoS может сделать Ethereum ценной бумагой. Это может создать для проекта проблемы в США. В таком случае и предложение Комиссии по торговле товарными фьючерсами (CFTC) запустить фьючерсы на Ethereum станет неактуальным. Пока ни одна лицензированная американская биржа не заявила о готовности запустить подобный продукт. Тем не менее, это важное событие, так как Ethereum — одна из ведущих блокчейн-сетей, от ее развития зависят не только отдельные проекты, создавшие свои токены в ней, но и такие популярные направления, как децентрализованные финансы и децентрализованные приложения», — отметила Мария Станкевич.

Виктор Аргонов считает, что:

«Сейчас этот переход под вопросом. Монета сохраняет статус лидера домашнего майнинга, чего нельзя сказать, например, о биткоине (BTC). Ее команда тщательно изучает вопрос о целесообразности перехода к PoS и будет смотреть на опыт других монет».

Какие монеты взять для стейкинга и на какой площадке

На рынке сотни PoS-монет. Среди них: EOS, Waves, Zcoin, Stellar, Tezos, NEO, ICON, TRON, Cosmos, VeChain, Lisk, Algorand, BNB, Minter. По данным Binance, наиболее популярные монеты для стейкинга — Algorand, Tezos и ATOM Cosmos, более 70% от их общего количества используются для стейкинга. По данным StakingRewards.com, средняя доходность стейкинга —13% годовых.

Самые популярные монеты проектов на PoS по данным StakingRewards:

Стекинг машинное обучение

Об авторе: Андрей Беляев, технический директор (CTO) исследовательской компании Neurodata Lab.

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

В чем разница между этими названиями?

Все задачи, которые может решать человек или компьютер, можно условно разделить на две категории: рутинные и нерутинные.

К рутинным задачам можно отнести те, где достаточно просто найти универсальный путь решения: например, сложение чисел или измерение температуры воздуха.

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

Получается, что машинное обучение — это обучение ИИ

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

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

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

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

Такие алгоритмы можно научить решать задачи любой сложности?

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

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

А что насчет глубокого обучения? Чем оно отличается от машинного?

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

Нейронные сети? Как те, что в мозгу у человека?

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

И все же можно как-то сравнить процессы внутри нейросети с деятельностью мозга?

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

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

А как происходит процесс обучения?

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

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

Что значит «поощрять» и «штрафовать» нейросеть?

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

Во всех примерах вы рассказываете про конкретные задачи. А можно ли нейросеть научить думать, как человек?

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

Подписывайтесь и читайте нас в Яндекс.Дзене — технологии, инновации, эко-номика, образование и шеринг в одном канале.

Ссылка на основную публикацию
Adblock
detector