Аналитическая ошибка это

DniwaBeliva сказал(а):↑

Всем привет, после моего далёкого поста «хочу стать королём антимага» прошло много времени, но лучше я стал играть вряд ли. 

Предлагаю вам игру на анализ. 

https://ru.dotabuff.com/matches/6398940899

Да, пик у нас не очень. Но я хочу спросить вас, что я сделал не так, чтобы выйграть (ну или чтобы вы сделали) . Я понимаю, что не смог закончить когда надо, но как мне надо было сделать? Мой мозг стража не позволяет.

Всем заранее спасибо.

UPD: блин, надо было сатаник купить для диспела и отхила вместо юзлесс линки

Нажмите, чтобы раскрыть…

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

Можешь посчитать сколько раз ты ударил бару на лайне за первые 5 минут. Ты его бил только когда уже он напал на тебя. Даже стартовый закуп у тебя такой чтобы бить врагов на линии (орб ов веном и 6 танго). В итоге твои танго ты потратил 3 штуки за 7 минут.

В этой игре ты еще получил лайн на первой минуте без противников потому что они там где-то бегали афк. Если у тебя нет врагов или он 1, то надо держать лайн на месте около тавера. А у тебя он запушился потому что ты не убил своего ренж крипа.

Как играть на АМе первые 2 пачки крипов

В твоей игре линия как раз запушилась и ты получил второй уровень на 1:15. Это тот момент когда надо было быть максимально агрессором и прыгать на бару. Потому что у тебя 2 лвл, у него 1. И потому что у тебя 2 дальних крипа и 2 милишника. Бара не мог бы бить тебя в ответ потому что получал бы еще и от крипов.

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

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

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

Вот пример того о чем я говорю под спойлером.

За такую долгую игру там таких моментов будут, если посмотреть, десятки.

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

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

Дота 2 ютуб

Приветствую. Это статья «Дота 2 ютуб», в котором я расскажу вам о лучших обучающих каналов по доте. Что ж, перейдем к самому списку.


EZ 25

Дота 2 ютуб: все обучающие каналы

Первый канал, о котором я хочу вам рассказать — это EZ 25. Он был одним из первых, кто начал делать обучающий контент по доте. За два года у него скопилось множества роликов, множества из которых остаются актуальными до сих пор. Почти все ролики посвящены мидерам или керри, то есть кор ролям. Также, иногда он публикует историй успехов про-игроков, а также рассказывает новости о киберспорте. Также, он часто стримит, но на хай-птс играет довольно редко.

Ссылка на канал: https://www.youtube.com/channel/UCtNQdqGMVX2wLf1DBmig-HA/featured


XENO

Дота 2 ютуб: все обучающие каналы

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

Ссылка на канал: https://www.youtube.com/channel/UCqckKmhCNpa4b4-UkUJ_GZw/featured


Tommy Hard

Дота 2 ютуб: все обучающие каналы

Хай-птс игрок, который снимает летсплей по доте. Но он отличается от других летсплейщиков по доте тем, что частенько играет на своем мейне, тем самым показывая хорошую игру. У него есть чему поучиться. Он играет как на саппортах, так и на корах. Часто попадается с про-игроками и изредка стримит.

Ссылка на канал: https://www.youtube.com/channel/UCv01E5_Li62kUjP8WRBd25w


Аналитика Ошибок

Дота 2 ютуб: все обучающие каналы

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

Ссылка на канал: https://www.youtube.com/channel/UCn35dVa5DJ1jVSWKwZpgrGw/featured


InBossik

Дота 2 ютуб: все обучающие каналы

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

Ссылка на канал: https://www.youtube.com/channel/UCBmZnRuK2cbdijnJFTRp3Ug/featured


GrOOm

Дота 2 ютуб: все обучающие каналы

Грум — еще один друг EZ 25 и Bossika, который в отличий от них играет на саппортах и его канал посвящен именно этой роли. Наиболее известен своей игрой на земеле. Саппорт он хороший и тем, кто хочет начать хорошо на них отыгрывать точно стоит посмотреть его ролики.

Ссылка на канал: https://www.youtube.com/channel/UCp384W4fnXTNZ0SGkIgyEqA/featured


Dota Pub

Дота 2 ютуб: все обучающие каналы

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

Ссылка на канал: https://www.youtube.com/channel/UCYFVLkP7Y7TVZbX6HVAwhIg


TOP-1 DOTABUFF

Дота 2 ютуб: все обучающие каналы

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

Ссылка на канал: https://www.youtube.com/channel/UCx65EWoHXFJ99c4COqB_zKw/videos


Что ж, на этом статья окончена. Подписывайтесь в группу ВК, чтобы не пропустить выход новой статьи. До скорого!

Другие записи сайта:

ПАТЧ 7.22G: ФИКС АЛХИМИКА
АНАЛИТИКИ ДОТА 2: TOP-5 ЛУЧШИХ
КТО КОНТРИТ ТЕМПЛАРКУ: В МИДУ И ПО ИГРЕ

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Читайте также:

🔴One Move vs Nemiga | EEU DPC 2023 Winter Tour

2128

54

0

01:59:15

28.01.2023

#DPC #OneMove #Nemiga
Ставлю тут, там фрибеты и удвоение первого депа 👉 🤍
​📌Хочешь задонатить? Голосовой: ✅ 🤍
Альтернативный: ✅ 🤍

Донаты через на карту
💛Гривна 🤍
💙Доллар 🤍
💜Эвро 🤍

🔥 Бесплатные прогнозы на киберспорт 🤍
Расписание матчей и Статистика: 🤍

Таймкоды: 00:00 Таймкодов нет, чтобы не спойлерить!
Первый сезон DPC EEU 2023 (Восточной Европы). Смотрим за самыми интересными командами региона, а именно: Natus Vincere, Team Spirit, Darkside, One Move, BetBoom Team, HellRaisers, Nemiga Gaming и Virtus pro. Три лучшие команды поедут на Lima Major в Перу

Подробней о турнире: 🤍

📌Поддержать комментатора материально —

✅ 🤍
✅ 🤍
✅ 🤍

Подпишись на мои:
Мой личный канал в телеграмме — 🤍
VK 🤍
Twitter 🤍
Instagram 🤍

Профессиональный киберспортивный комментатор на ютубе — Yaroslav “Tekcac” Petrushyn
На канале вы можете услышать мои прямые эфиры с освещением крупных турниров, Dota 2 гайды, приколы Dota 2 и много другого интересного о Dota 2.
Dota 2 является многопользовательской онлайн игрой вида MOBA. Создатели Dota 2 IceFrog и Корпорация Valve.
=
dota 2, dota, дота 2, дота, dota2, дота2, highlights, DreamLeague S15, dota 2 highlights, og, ог, vp, darduin, вп, школа дота 2, ошибки дота 2, гайды дота 2, DreamLeague S15 DPC WEU, топ моменты дота 2, martius, обучение дота 2, miracle, nigma, virtus pro, аналитика ошибок, dota 2 guide, alliance, dotapit, как играть в дота 2, рамзес, мид, нигма, денди, Nigma vs Liquid, dota 2 moments, valve, дота 2 видео, vp.prodigy, хайлайты, виртуспро, solo, рейтинг дота 2, dota2stream, ramzes666, dota pit 3, secret, мейджор, Major, Ana Dota2, tekcac dota 2, tekcac, тексас, og, navi, natus vincere, ramzes666 navi, рамзес нави, новый патч dota 2, dpc dota 2 2021, D2CL 2022 S7, Дота 2 Стрим, Dota 2 Stream

ТОП 1 ПРАЙМАЛ БИСТ абузит ММР / Фишки на Primal Beast (ft. R3.mem8er) - 1 ✅

ТОП 1 ПРАЙМАЛ БИСТ абузит ММР / Фишки на Primal Beast (ft. R3.mem8er) ✅

  Аналитика Ошибок  
  43 минуты 49 секунд

Наш Телеграм — Наши твич каналы: Cерега — Жора …  …Смотреть…


30 ТИР WINDRANGER через СВОЙ БИЛД Dota 2 | Дота 2 - 2 ✅

30 ТИР WINDRANGER через СВОЙ БИЛД Dota 2 | Дота 2 ✅

  Аналитика Ошибок  
  44 минуты 9 секунд

30 ТИР WINDRANGER через СВОЙ БИЛД Dota 2 | Дота 2 Наш Телеграм — Наши твич каналы: Cерега …  …Смотреть…

ЧИТЕР на КЕРРИ ИНВОКЕРЕ - Cheater Carry Invoker Dota 2 - 3 ✅

ЧИТЕР на КЕРРИ ИНВОКЕРЕ — Cheater Carry Invoker Dota 2 ✅

  Аналитика Ошибок  
  1 час 3 минуты 23 секунды

#dota2 #dota #дота2 #дота.  …Смотреть…

ВАРЛОК оказывается ИМБА? Раскачка ЧЕМПИОНА - Warlock Dota 2 - 4 ✅

ВАРЛОК оказывается ИМБА? Раскачка ЧЕМПИОНА — Warlock Dota 2 ✅

  Аналитика Ошибок  
  42 минуты 17 секунд

Наш Телеграм — Наши твич каналы: Cерега — Жора …  …Смотреть…

РАДИК ЗА 10 МИНУТ - Mid Alchemist Dota 2 - 5 ✅

РАДИК ЗА 10 МИНУТ — Mid Alchemist Dota 2 ✅

  Аналитика Ошибок  
  43 минуты 12 секунд

#dota2 #dota #дота2 #дота.  …Смотреть…


саппорт СНЕПКА 200 Iq - «Saksa» Snapfire Dota 2 - 6 ✅

саппорт СНЕПКА 200 Iq — «Saksa» Snapfire Dota 2 ✅

  Аналитика Ошибок  
  41 минута 37 секунд

#dota2 #dota #дота2 #дота.  …Смотреть…

мид ШЕЙКЕР ваншотит С УДАРА - Earthshaker Mariachi Dota 2 (ft. Mariachi) - 7 ✅

мид ШЕЙКЕР ваншотит С УДАРА — Earthshaker Mariachi Dota 2 (ft. Mariachi) ✅

  Аналитика Ошибок  
  42 минуты 39 секунд

#dota2 #dota #дота2 #дота.  …Смотреть…

Сам ДЬЯВОЛ забирает ММР 🔥 Дум от «33» (чемпион инта) и 999гпма.. - 8 ✅

Сам ДЬЯВОЛ забирает ММР 🔥 Дум от «33» (чемпион инта) и 999гпма.. ✅

  Аналитика Ошибок  
  40 минут 22 секунды

#dota2 #dota #дота2 #дота.  …Смотреть…

НОВЫЙ МИДЕР NaVi - Zeus Nicky`cool Dota 2 - 9 ✅

НОВЫЙ МИДЕР NaVi — Zeus Nicky`cool Dota 2 ✅

  Аналитика Ошибок  
  39 минут 39 секунд

#dota2 #dota #дота2 #дота.  …Смотреть…

ПСИХ на МАРСИ - Carry Marci Dota 2 - 10 ✅

ПСИХ на МАРСИ — Carry Marci Dota 2 ✅

  Аналитика Ошибок  
  58 минут 26 секунд

#dota2 #dota #дота2 #дота.  …Смотреть…

КВОПА ВЕРНУЛАСЬ 🔥 Ювелир из EG - PAKAZS Dota 2 - 11 ✅

КВОПА ВЕРНУЛАСЬ 🔥 Ювелир из EG — PAKAZS Dota 2 ✅

  Аналитика Ошибок  
  54 минуты 6 секунд

#dota2 #dota #дота2 #дота.  …Смотреть…

Топсон на БАРЕ 🔥Скорость = урон | Spirit Breaker Dota 2 - 12 ✅

Топсон на БАРЕ 🔥Скорость = урон | Spirit Breaker Dota 2 ✅

  Аналитика Ошибок  
  40 минут 3 секунды

#dota2 #dota #дота2 #дота.  …Смотреть…

Идеальный РИКИ 🔥Бесконтактный УБИЙЦА набрал АРТЕФАКТОВ - Riki Dota 2 - 13 ✅

Идеальный РИКИ 🔥Бесконтактный УБИЙЦА набрал АРТЕФАКТОВ — Riki Dota 2 ✅

  Аналитика Ошибок  
  44 минуты 16 секунд

#dota2 #dota #дота2 #дота.  …Смотреть…

HR Vs DarkSide (0-0) WEU DPC 2023 WINTER TOUR - 14 ✅

HR Vs DarkSide (0-0) WEU DPC 2023 WINTER TOUR ✅

  Аналитика Ошибок  
  40 минут 22 секунды

Донат — Ставим здесь — Fonbet — Донат крипта: Биток …  …Смотреть…

Сам ДЬЯВОЛ забирает ММР 🔥 Дум от «33» (чемпион инта) и 999гпма.. - 15 ✅

Сам ДЬЯВОЛ забирает ММР 🔥 Дум от «33» (чемпион инта) и 999гпма.. ✅

  Аналитика Ошибок  
  34 минуты 24 секунды

#dota2 #dota #дота2 #дота.  …Смотреть…

Топ 1 на мид ЛЕШРАКЕ - Quinn Leshrac Dota 2 - 16 ✅

Топ 1 на мид ЛЕШРАКЕ — Quinn Leshrac Dota 2 ✅

  Аналитика Ошибок  
  32 минуты 17 секунд

#dota2 #dota #дота2 #дота.  …Смотреть…

МИД ШАМАН ОТ GH - Shadow Shaman Mid Dota 2 - 17 ✅

МИД ШАМАН ОТ GH — Shadow Shaman Mid Dota 2 ✅

  Аналитика Ошибок  
  35 минут 21 секунда

#dota2 #dota #дота2 #дота.  …Смотреть…

НОВЫЙ ТОП 1 НА ПУДЖЕ - Alone Top 1 Pudge Dota 2 - 18 ✅

НОВЫЙ ТОП 1 НА ПУДЖЕ — Alone Top 1 Pudge Dota 2 ✅

  Аналитика Ошибок  
  16 минут 51 секунда

#dota2 #dota #дота2 #дота.  …Смотреть…

ВОТ ЧТО БУДЕТ КОГДА 8К ПУДЖ ЗАЙДЕТ НА 2К ММР - 19 ✅

ВОТ ЧТО БУДЕТ КОГДА 8К ПУДЖ ЗАЙДЕТ НА 2К ММР ✅

  Аналитика Ошибок  
  50 минут 28 секунд

Dota 2 mid.  …Смотреть…

Перый 13.000 ММР Игрок🔥ТОП 1 МИРА - 23savage Dota 2 - 20 ✅

Перый 13.000 ММР Игрок🔥ТОП 1 МИРА — 23savage Dota 2 ✅

  Time to Pudge  
  43 минуты 6 секунд

#dota2 #dota #дота2 #дота.  …Смотреть…

    Сейчас смотрят:

    Аналитика ошибок

    Аналитика ошибок дота 2

    Аналитика ошибок ютуб

    Аналитика ошибок дота

    Дота аналитика ошибок

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

27 января 2023 г. 16:28:10

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

26 января 2023 г. 18:23:19

Вот сео и смм специалист — это тема)) Другое как-то не очень как по мне. Плюс еще есть разные веб разработчики и не только. Сейч…

26 января 2023 г. 10:15:00

Всегда брали в дом большую ёлку, но эта прям красотка, на следующий НГ присмотрюсь к датской!)…

24 января 2023 г. 19:45:21

Преимущества пилатеса огромны)) Даже больше, чем написано)) Сама раньше им занималась. Вещь супер! Тело подтягивается, стресс ух…

24 января 2023 г. 10:23:49

Теперь буду знать чуть больше о ёлочнообразных…

23 января 2023 г. 4:46:20

Oleg44, Спасибо вам большое! Испробую уже сегодня :D

22 января 2023 г. 6:24:24

Датская пихта это очень красивое хвойное дерево, у меня у самого несколько таких. Держим их в доме круглогодично, в уходе не при…

21 января 2023 г. 2:10:47

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

20 января 2023 г. 17:03:08

Как достали мошенники. Почему их все больше и больше, когда уже им все бумерангом будет прилетать! Меня тоже как-то обманули, ко…

19 января 2023 г. 11:32:15

Найденные каналы:

Аналитика Ошибок

Аналитика Ошибок


1.7 тыс.
видео

633.0 тыс.

295.4 млн.

Топ 1 Праймал Бист Абузит Ммр, Фишки На Primal Beast (Ft. R3.Mem8Er)Аналитика Ошибок

43:49

Топ 1 Праймал Бист Абузит Ммр, Фишки На Primal Beast (Ft. R3.Mem8Er)

Аналитика Ошибок8 часов назад


33.3 тыс.

1.0 тыс.

42

30 Тир Windranger Через Свой Билд Dota 2, Дота 2Аналитика Ошибок

44:09

30 Тир Windranger Через Свой Билд Dota 2, Дота 2

Аналитика Ошибоквчера


96.3 тыс.

2.6 тыс.

105

Варлок Оказывается Имба? Раскачка Чемпиона - Warlock Dota 2Аналитика Ошибок

42:17

Варлок Оказывается Имба? Раскачка Чемпиона — Warlock Dota 2

Аналитика Ошибок2 дня назад


116.4 тыс.

2.8 тыс.

112

Радик За 10 Минут - Mid Alchemist Dota 2Аналитика Ошибок

43:12

Радик За 10 Минут — Mid Alchemist Dota 2

Аналитика Ошибок4 дня назад


153.8 тыс.

3.4 тыс.

135

Саппорт Снепка 200 Iq - «Saksa» Snapfire Dota 2Аналитика Ошибок

41:37

Саппорт Снепка 200 Iq — «Saksa» Snapfire Dota 2

Аналитика Ошибок6 дней назад


119.8 тыс.

3.1 тыс.

123

Читер На Керри Инвокере - Cheater Carry Invoker Dota 2Аналитика Ошибок

01:03:23

Читер На Керри Инвокере — Cheater Carry Invoker Dota 2

Аналитика Ошибок10 дней назад


168.4 тыс.

3.5 тыс.

140

Квопа Вернулась 🔥 Ювелир Из Eg - Pakazs Dota 2Аналитика Ошибок

54:06

Квопа Вернулась 🔥 Ювелир Из Eg — Pakazs Dota 2

Аналитика Ошибок19 дней назад


146.9 тыс.

3.3 тыс.

132

Мид Шейкер Ваншотит С Удара - Earthshaker Mariachi Dota 2 (Ft. Mariachi)Аналитика Ошибок

42:39

Мид Шейкер Ваншотит С Удара — Earthshaker Mariachi Dota 2 (Ft. Mariachi)

Аналитика Ошибок8 дней назад


152.5 тыс.

3.2 тыс.

129

Сам Дьявол Забирает Ммр 🔥 Дум От «33» (Чемпион Инта) И 999Гпма.Аналитика Ошибок

40:22

Сам Дьявол Забирает Ммр 🔥 Дум От «33» (Чемпион Инта) И 999Гпма.

Аналитика Ошибок13 дней назад


228.6 тыс.

4.9 тыс.

195

Идеальный Рики 🔥Бесконтактный Убийца Набрал Артефактов - Riki Dota 2Аналитика Ошибок

44:16

Идеальный Рики 🔥Бесконтактный Убийца Набрал Артефактов — Riki Dota 2

Аналитика Ошибок21 день назад


165.3 тыс.

3.3 тыс.

130

Яторо На Дровке 🔥 Двойные Криты = Минус Любой Герой - Drow Ranger Dota 2Аналитика Ошибок

49:15

Яторо На Дровке 🔥 Двойные Криты = Минус Любой Герой — Drow Ranger Dota 2

Аналитика Ошибок1 месяц назад


193.0 тыс.

4.2 тыс.

168

Новый Мидер Navi - Zeus Nicky`cool Dota 2Аналитика Ошибок

39:39

Новый Мидер Navi — Zeus Nicky`cool Dota 2

Аналитика Ошибок15 дней назад


145.3 тыс.

3.0 тыс.

121

Псих На Марси - Carry Marci Dota 2Аналитика Ошибок

58:26

Псих На Марси — Carry Marci Dota 2

Аналитика Ошибок17 дней назад


166.7 тыс.

3.6 тыс.

143

Перуанский Гений На Аксе.. Axe Wisper Dota 2Аналитика Ошибок

47:16

Перуанский Гений На Аксе.. Axe Wisper Dota 2

Аналитика Ошибок24 дня назад


147.9 тыс.

3.4 тыс.

134

Топсон На Баре 🔥Скорость = Урон, Spirit Breaker Dota 2Аналитика Ошибок

40:03

Топсон На Баре 🔥Скорость = Урон, Spirit Breaker Dota 2

Аналитика Ошибок20 дней назад


248.8 тыс.

4.9 тыс.

197

Показано 16 результатов из 195961

Показать еще

Аналитика Ошибок

295393216

633000

1681

26.02.2017

Аналитика ошибок из мира Дота 2, подробные гайды Дота 2, детальный обзор, обучение игры в Дота 2, Школа Дота 2

«гайды дота 2» «dota 2 guide» «ошибки дота 2» «обучение дота 2» «школа дота 2» «как играть в дота 2» «dota 2» «дота 2»

05:27:05

HR vs DarkSide (1-1) WEU DPC 2023 WINTER TOUR

HR vs DarkSide (1-1) WEU DPC 2023 WINTER TOUR

Аналитика Ошибок

47637 Просм.

29.01.2023

00:44:09

30 ТИР WINDRANGER через СВОЙ БИЛД Dota 2 | Дота 2

30 ТИР WINDRANGER через СВОЙ БИЛД Dota 2 | Дота 2

Аналитика Ошибок

96242 Просм.

27.01.2023

00:42:17

ВАРЛОК оказывается ИМБА? Раскачка ЧЕМПИОНА - warlock Dota 2

ВАРЛОК оказывается ИМБА? Раскачка ЧЕМПИОНА — warlock Dota 2

Аналитика Ошибок

116369 Просм.

26.01.2023

00:43:12

РАДИК ЗА 10 МИНУТ - Mid Alchemist Dota 2

РАДИК ЗА 10 МИНУТ — Mid Alchemist Dota 2

Аналитика Ошибок

153783 Просм.

24.01.2023

00:41:37

саппорт СНЕПКА 200 iq - «Saksa» Snapfire Dota 2

саппорт СНЕПКА 200 iq — «Saksa» Snapfire Dota 2

Аналитика Ошибок

119803 Просм.

22.01.2023

00:42:39

мид ШЕЙКЕР ваншотит С УДАРА - Earthshaker Mariachi Dota 2 (ft. Mariachi)

мид ШЕЙКЕР ваншотит С УДАРА — Earthshaker Mariachi Dota 2 (ft. Mariachi)

Аналитика Ошибок

152478 Просм.

20.01.2023

01:03:23

ЧИТЕР на КЕРРИ ИНВОКЕРЕ - Cheater Carry Invoker Dota 2

ЧИТЕР на КЕРРИ ИНВОКЕРЕ — Cheater Carry Invoker Dota 2

Аналитика Ошибок

168408 Просм.

18.01.2023

00:40:22

Сам ДЬЯВОЛ забирает ММР 🔥 Дум от «33» (чемпион инта) и 999гпма..

Сам ДЬЯВОЛ забирает ММР 🔥 Дум от «33» (чемпион инта) и 999гпма..

Аналитика Ошибок

228649 Просм.

15.01.2023

00:39:39

НОВЫЙ МИДЕР NaVi - Zeus Nicky`cool Dota 2

НОВЫЙ МИДЕР NaVi — Zeus Nicky`cool Dota 2

Аналитика Ошибок

145310 Просм.

13.01.2023

00:58:26

ПСИХ на МАРСИ - Carry Marci Dota 2

ПСИХ на МАРСИ — Carry Marci Dota 2

Аналитика Ошибок

166729 Просм.

11.01.2023

00:54:06

КВОПА ВЕРНУЛАСЬ 🔥 Ювелир из EG - PAKAZS Dota 2

КВОПА ВЕРНУЛАСЬ 🔥 Ювелир из EG — PAKAZS Dota 2

Аналитика Ошибок

146866 Просм.

09.01.2023

00:40:03

Топсон на БАРЕ 🔥Скорость = урон | Spirit Breaker Dota 2

Топсон на БАРЕ 🔥Скорость = урон | Spirit Breaker Dota 2

Аналитика Ошибок

248848 Просм.

08.01.2023

00:44:16

Идеальный РИКИ 🔥Бесконтактный УБИЙЦА набрал АРТЕФАКТОВ - Riki Dota 2

Идеальный РИКИ 🔥Бесконтактный УБИЙЦА набрал АРТЕФАКТОВ — Riki Dota 2

Аналитика Ошибок

165322 Просм.

07.01.2023

00:38:18

ТОП 1 герой БУСТЕРОВ - ХУСКАР (Nisha показал свой билд) Huskar Dota 2

ТОП 1 герой БУСТЕРОВ — ХУСКАР (Nisha показал свой билд) Huskar Dota 2

Аналитика Ошибок

141766 Просм.

06.01.2023

00:47:16

Перуанский ГЕНИЙ на АКСЕ.. Axe Wisper Dota 2

Перуанский ГЕНИЙ на АКСЕ.. Axe Wisper Dota 2

Аналитика Ошибок

147870 Просм.

04.01.2023

00:34:24

Топ 1 на мид ЛЕШРАКЕ - Quinn Leshrac Dota 2

Топ 1 на мид ЛЕШРАКЕ — Quinn Leshrac Dota 2

Аналитика Ошибок

122930 Просм.

03.01.2023

00:37:38

НОВОГОДНИЙ ПУДЖ от Pure - Pudge Carry Dota 2

НОВОГОДНИЙ ПУДЖ от Pure — Pudge Carry Dota 2

Аналитика Ошибок

144782 Просм.

31.12.2022

00:57:43

АГАНИМ за 10 МИНУТ - Clockwerk Carry Dota 2

АГАНИМ за 10 МИНУТ — Clockwerk Carry Dota 2

Аналитика Ошибок

167171 Просм.

30.12.2022

00:49:15

ЯТОРО на ДРОВКЕ 🔥 Двойные КРИТЫ = минус ЛЮБОЙ ГЕРОЙ - Drow ranger Dota 2

ЯТОРО на ДРОВКЕ 🔥 Двойные КРИТЫ = минус ЛЮБОЙ ГЕРОЙ — Drow ranger Dota 2

Аналитика Ошибок

192979 Просм.

28.12.2022

01:03:26

ФАСТ АГАНИМ на мид ENCHANTRES - ГРАНДМАСТЕР Энча Dota 2

ФАСТ АГАНИМ на мид ENCHANTRES — ГРАНДМАСТЕР Энча Dota 2

Аналитика Ошибок

168475 Просм.

26.12.2022

Время на прочтение
20 мин

Количество просмотров 4.5K

Мы школа онлайн-образования, которая уже три года делает курсы по Data Science и разработке. Одна из наших целей — собрать коммьюнити классных специалистов и делиться крутыми и неочевидными знаниями. Так был рождён Симулятор ML — место, в котором начинающие и опытные специалисты решают задачи разной сложности, разрабатывают проекты в командах, осваивают новые инструменты, развивают продуктовое мышление и постоянно растут в профессии.

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

Введение

Всем привет! Меня зовут Богдан Печёнкин. Я Senior ML Engineer в компании BrandsGoDigital и больше всего известен как автор Симулятора ML.

Мой первый пост на Хабре посвящался 10 первым ошибкам в карьере ML-инженера, что тесно связано с сегодняшней темой. Анализируя свои и чужие ошибки, Я пришёл к выводу, что один из самых недооценённых этапов в построении ML систем — это, как ни странно, анализ ошибок. Он даёт глубокое понимание не только наших моделей, но и данных и метрик, с которыми мы работаем. Сегодня Я хочу поделиться с вами тем, почему анализ ошибок так важен, каким образом его проводить и как он может помочь вам в дизайне и разработке более надёжных и эффективных ML продуктов.

Данная статья написана по мотивам главы «Error Analysis» из книги «Machine Learning System Design with end-2-end examples», которую Я писал вместе с Валерой Бабушкиным и Арсением Кравченко, авторами книги.

Certainly, coming up with new ideas is important.
But even more important, to understand the results.
— Ilya Sutskever, сооснователь OpenAI

Что такое анализ ошибок?

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

All models are wrong, but some are useful.
– George Box, британский статистик

Определяя, как ведёт себя текущая модель в каждом отдельном кейсе, «в какую сторону» ошибается, мы получаем неоценимые подсказки, какие новые признаки нам нужны, какие преобразования целевой переменной попробовать, каких данных нам не хватает и так далее. Таким образом, анализ ошибок — это важнейший этап построения модели перед проведением A/B экспериментов, её тестированием в боевых условиях.

Но почему нам мало обычной кросс-валидации?

Когда мы считаем метрику на отложенной выборке, мы, по сути, агрегируем ошибки со всех объектов в одно число. Если у нас кросс-валидация вместо отложенной выборки и несколько метрик вместо одной, мы всё ещё агрегируем разного рода ошибки со всех объектов в некую «среднюю температуру по больнице».

Например, считаем MAE, WAPE, wQL в регрессии, или LogLoss в классификации. 

Aгрегированная метрика не показывает, как ошибка распределяется по разным объектам, какое у неё распределение, а тем более — что нужно поменять в собранной ML системе, чтобы скорректировать ошибку (какие у метрики «драйверы роста»?). 

Метрики сообщают нам, что стало либо «хуже», либо «лучше», но подсказок, что делать дальше, из-за чего результат именно такой и что надо менять в ML системе, они не дадут.

Анализ ошибок — процесс прямо противоположный подсчёту метрики: агрегированную метрику мы разбиваем на компоненты — и анализируем их в совокупности. Это даёт нам полную картину: где и как система проявляет себя и какие встречаются паттерны в разных сегментах объектов отложенной выборки.

Анализ ошибок как back-propagation для ML пайплайна

Анализ ошибок как back-propagation для ML пайплайна

Мне нравится проводить параллель с алгоритмом back-propagation: мы пробрасываем градиент ошибки от самых последних слоёв нейросети к самым первым, соответствующим образом обновляя каждый компонент сети. Анализ ошибок — это ровно такое же «взятие градиента метрики», но на этот раз для всего ML пайлпайна.

План рассказа

  1. Введение в остатки и псевдоостатки

  • Определение понятий «остатков» и «псевдоостатков» в контексте регрессии и классификации.

  1. Визуальный и статистический анализ остатков

  • Методы визуализации распределения остатков.

  • Применение статистических тестов для оценки смещения, гетероскедастичности и нормальности остатков.

  • Что такое fairness и его роль при принятии решения о деплое модели.

  1. Анализ кейсов работы модели

  • Разбор наилучших, наихудших и крайних сценариев работы модели.

  • Моделирование ошибок с помощью Adversarial Validation

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

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

Остатки и псевдоостатки

Остатки (residuals)

Что формально мы имеем в виду, говоря «ошибки»? Введём понятие «остатков».

Остатки регрессии представляют собой разницу между фактическим значением целевой переменной и предсказанным значением:

residuals = y_true – y_pred

Остаток — это буквально «то, что осталось недопредсказанным», часть значения таргета, которую модель не смогла объяснить с учётом имеющихся признаков.

Остатки — «то, что осталось недопредсказанным»

Остатки «то, что осталось недопредсказанным»

Псевдоостатки в классификации

Что может служить остатками в бинарной классификации? Да, мы можем также смотреть на разницу между предсказанной вероятностью (скажем, 0.42) и метками класса 0 и 1. Мы уже упорядочим объекты по размеру их ошибки, но будет ли это самым информативным способом их анализа? Более естественно оперировать слагаемыми LogLoss, поскольку так мы учитываем ещё и вклад каждой ошибки в общую метрику, её вес.

Если агрегированный лосс представляется как:

y log(p) + (1−y) log(1−p)

То слагаемые (y log(p) + (1−y) log(1−p)) представляют собой псевдоостатки. Так мы не просто считаем недопредсказанную часть целевой переменной, но ещё и «взвешиваем» объекты пропорционально их влиянию на метрику.

Псевдоостатки в общем случае

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

  • Mean Squared Error (MSE):
    ∑ (y_true — y_pred)2 → sign(y_true – y_pred) * (y_true – y_pred)2

  • Mean Absolute Error (MAE):
    ∑ |y_true — y_pred| → y_true – y_pred

  • Mean Absolute Percentage Error (MAPE):
    ∑ |y_true — y_pred| / y_true → 1 – y_pred / y_true

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

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

Визуализация остатков

Распределение остатков

Допустим, мы рассчитали остатки. Основываясь на них, какие выводы мы можем сделать? (Примечание: здесь и далее будем использовать термины «остатки», «псевдоостатки» и «ошибки» как взаимозаменяемые). 

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

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

import seaborn as sns
import matplotlib.pyplot as plt


plt.figure()
sns.histplot(residuals, kde=True)
plt.title('Distribution of Residuals')
plt.xlabel('Residuals')
plt.ylabel('Frequency')
plt.show()

И увидел один из графиков ниже:

Три примера наблюдаемого распределения остатков во время анализа модели прогноза

Три примера наблюдаемого распределения остатков во время анализа модели прогноза

Какие выводы сделал бы наш коллега, посмотрев на эти три картинки?

  • Остатки распределены практически нормально (как мы и хотели):
    ✓ assumptions are met!

  • Распределение нормальное, но с большим хвостом влево (недопредсказания):
    ✗ assumptions are not met!

  • Распределение не нормальное и имеет две моды:
    ✗ assumptions are not met!

Какие шаги по улучшению модели он бы предпринял дальше?

  1. В первом случае, наш коллега, вероятно, оставил бы модель без изменений, однако для полной уверенности перешёл бы к статистическим тестам и проверке скедастичности.

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

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

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

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

Статистические гипотезы

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

Подобным образом, мы можем оценить нормальность распределения, используя критерий Колмогорова-Смирнова. Очевидно, здесь глаз человека даже менее надёжен, чем стат. тест, сравнивающий «отклонение» от нормального распределения численно.

На выходе статистического критерия мы получаем p-value вероятность встретить наблюдаемое значение статистики или более экстремальное при условии, что нулевая гипотеза верна.

  • В случае смещения нулевая гипотеза: остатки не имеют смещения.

  • В случае нормальности нулевая гипотеза: остатки распределены нормально.

Для принятия решения мы руководствуемся уровнем значимости α (например, 5%) или, иначе, уровнем ошибки I рода. Уровень значимости сообщает, начиная с какой степени «невероятности» нулевой гипотезы мы её отвергнем.

Гетероскедастичность

Ещё два свойства распределения, которые мы можем оценивать, — гомоскедастичность и гетероскедастичность. Гомоскедастичность (homo + scedasticity) — буквально «одинаковый разброс». Соответственно, гетероскедастичность (hetero + scedasticity) — «разный разброс».

Кейс 1: гомоскедастичное распределение остатков вдоль значений целевой переменной; кейсы 2-3: гетероскедастичное (с разным паттерном)

Кейс 1: гомоскедастичное распределение остатков вдоль значений целевой переменной;
кейсы 2-3: гетероскедастичное (с разным паттерном)

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

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

Для гомоскедастичности существует несколько статистических тестов: 

  • Bartlett’s test

  • Levene’s test

  • Fligner-Killeen’s test

Все они доступны в пакете scipy.stats. Это семейство тестов называют ANOVA-тестами (ANalysis Of VAriance). Каждый них принимает на вход набор подвыборок и оценивает, насколько валидно предположение, что каждая из подвыборок имеет одну и ту же дисперсию. 

Для нас подвыборками будут служить бины из остатков, разбитых по мере увеличения таргета. Например, бьём таргет на 5 бинов по пороговым квантилям: 0.2, 0.4, 0.6, 0.8.

Как готовятся данные для ANOVA тестов: мы упорядочиваем модули остатков по значениям целевой переменной, и разбиваем на N бакетов примерно одинакового размера.

Как готовятся данные для ANOVA тестов: мы упорядочиваем модули остатков по значениям целевой переменной, и разбиваем на N бакетов примерно одинакового размера.

Diagnostic Plots

Diagnostic Plots представляют собой ещё один метод для анализа распределения остатков в дополнение к статистическим тестам. Это набор специфических визуализаций остатков и предсказаний целевой переменной в разных разрезах.

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

1. Residuals vs. Fitted

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

Residual vs. Fitted Plots (хороший и плохой случаи)

Residual vs. Fitted Plots (хороший и плохой случаи)

2. Normal Q-Q Plot

Q-Q Plot — это способ визуализации отклонения от заданного распределения. Для его отрисовки мы визуализируем, какие теоретические квантили были бы у нашей выборки (остатков), будь она взята из предполагаемого распределения, и какие квантили на самом деле, поэтому график называется Q-Q (Quantile-Quantile) Plot.

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

Normal Q-Q Plots (хороший и плохой случаи)

Normal Q-Q Plots (хороший и плохой случаи)

3. Scale-Location Plot

Scale-Location Plot помогает в оценке скедастичности распределения (гетероскедастичности либо гомоскедастичности, с которыми мы уже успели познакомиться). Для его отрисовки мы берём предсказания против корня модуля стандартизированных остатков. 

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

Scale-Location Plots (хороший и плохой случаи)

Scale-Location Plots (хороший и плохой случаи)

4. Cook’s Distance Plot

Cook’s Distance является мерой влияния каждого отдельного наблюдения на модель в целом. Она помогает выявить наиболее влиятельные объекты в данных, что может быть полезно при проверке модели на наличие аномалий или выбросов, которые могут сильно искажать её предсказания.

Для построения Cook’s Distance Plot визуализируются предсказанные значения против расстояния Кука. В каждой точке графика расстояние Кука представляет собой сумму отклонений предсказаний, полученных при удалении данного наблюдения, к предсказаниям, полученным на всем наборе данных.

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

Cook's Distance Plots (хороший и плохой случаи)

Cook’s Distance Plots (хороший и плохой случаи)

Diagnostic Plots

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

4 Diagnostic Plots

4 Diagnostic Plots

Существуют готовые пакеты отрисовки всех четырёх графиков. Например, в языке программирования R они входят в стандартную библиотеку и доступны вызовом функции plot на уже обученной линейной модели.

Fairness

Когда мы улучшаем модель, мы не хотим, чтобы метрика росла на одних сегментах пользователей и падала на других (даже если в среднем она оказывается выше). Бенефиты от прироста метрики легко могут быть перечёркнуты негативным User Experience «пострадавшей» группы пользователей — и за счёт совсем других метрик.

Чтобы этого избежать, мы должны смотреть не только на то, выросла ли метрика или упала, но и на то, как она размазана по всем объектам (например, по всем пользователям или по всем товарам). Для этого вводят концепт Fairness (в переводе с английского, «справедливость»).

Идеализированный пример:

Два ML инженера разрабатывали улучшение бейзлайн-модели. Оба из них получили сокращение MAE (Mean Absolute Error) на 20%. Как их рассудить? Чью модель выкатывать на A/B тест? Первая модель дала небольшой равномерный прирост для всех объектов. Вторая модель сильно сократила ошибку на половине объектов и немного увеличила на другой половиние.

Одного и того же аплифта можно добиться разными путями

Одного и того же аплифта можно добиться разными путями

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

Аналогично можно представить, что неравномерный прирост (unfair uplift) был получен по ключевой онлайн-метрике и во время A/B теста (эксперимента на реальных пользователях), что также может послужить сигналом, что данную модель не стоит раскатывать на остальном трафике.

Gini Index

В экономике для количественной оценки «справедливости» распределения часто используют Gini-индекс, особенно при анализе распределения доходов населения определённой страны.

Gini-индекс варьируется от 0 до 1, где 0 обозначает идеальное равенство (т. е. все значения равны), а 1 обозначает максимальное неравенство (одно значение максимально, все остальные минимальны). Чем выше индекс Gini, тем более несправедливым считается распределение.

Индекс Gini для распределения доходов

Индекс Gini для распределения доходов

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

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

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

Best Case / Worse Case / Corner Case

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

Best Case & Worst Case

Зная остатки, можно проанализировать поведение модели в лучших и худших сценариях. Для этого мы выводим топ-20, топ-50, топ-100 объектов по величине остатков и ищем в них общие паттерны.

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

  • Другой случай: мы попробовали построить модель прогноза на Трансформерах, распределение её остатков принципиально отличается от текущей модели в проде. Метрика лучше. Мы хотим с нуля проанализировать, на каких блюдах и на каких пользователях прогноз спроса точнее всего. Где пролегает текущая «граница применимости» текущей модели, чтобы раскатить её в первую очередь на той части данных, где она чувствует себя лучше всего. Для этого мы выводим топ-1000, топ-5000, топ-10,000 объектов с наименьшей ошибкой.

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

Как мы с помощью ClearML автоматически сохраняем top-30 ошибок в качестве артефактов при каждом запуске обучающего пайплайна

Как мы с помощью ClearML автоматически сохраняем top-30 ошибок в качестве артефактов при каждом запуске обучающего пайплайна

Corner Case Analysis

В то время как анализ лучших и худших случаев направлен на выявление общих паттернов на основе остатков, corner case analysis фокусируется на том, какие остатки характерны для объектов с конкретными особенностями.

Слева: worst-case analysis; справа: corner-case analysis

Слева: worst-case analysis; справа: corner-case analysis
  • Так, если у остатков разный разброс на разных по масштабу таргетах (например, мы предсказываем выручку и наибольший вклад делают ошибки в предсказании наименьших значений выручки, близких к нулю), тогда нам стоит вывести группу объектов с наименьшими таргетами, посмотреть на их остатки.

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

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

Кривая эластичности из учебников

Кривая эластичности из учебников

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

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

Например, -10%, -9%, -8%, …, +9%, +10% от последней наценки.

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

Верхнеуровневая схема инференса модели

Верхнеуровневая схема инференса модели

Ожидаемое поведение: чем выше цена, тем ниже спрос, и наоборот. Эластичные товары имеют “более крутую” кривую: малейшее увеличение цены ведёт к сильному спаду спроса, и наоборот. Неэластичные имеют более “плоскую” зависимость: мы можем наглеть в цене, а спрос – не сильно упадёт (значит, заработаем больше денег).

GMV (Gross Merchandise Value) – аналог товарооборота (выручки) для e-commerce. Для нашего сервиса он играет роль «спроса».

GMV (Gross Merchandise Value) – аналог товарооборота (выручки) для e-commerce. Для нашего сервиса он играет роль «спроса».

Однако, начав анализ первых графиков эластичности, мы обнаружили вот какую картину:

Вместо монотонной гладкой кривой, мы увидели «лесенку»

Вместо монотонной гладкой кривой, мы увидели «лесенку»

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

Дело в том, что в качестве модели прогноза у нас был CatBoost и обучался он на большом числе товаров. Как мы знаем, градиентный бустинг (начиная с LightGBM) делает квантизацию всех признаков перед обучением (разбивая на бины +- одинаковых размеров), таким образом, с десятков уникальных значений по каждому признаку мы переходим, например, к 256 или 512 значениям. Это обеспечивает ускорение обучения за счёт потери части сигнала в признаках.

Распределение числа объектов в каждом бакете после квантизации

Распределение числа объектов в каждом бакете после квантизации

Таким образом, даже несмотря на то, что цена и признаки на основе цены выходили в топ по важности, тем не менее, модель была физически «нечувствительна» к малым вариациям цены, на которых мы затем её хотели применять.

Решение: повысить гранулярность квантизации (скажем, до 4096 или 8192). В результате мы получили графики с уже осмысленным «гладким» возрастанием спроса по мере уменьшением цены.

Моделируем ошибку

Но вернёмся к worst-case анализу.

Допустим, мы выделили группу объектов, на которых модель показала наихудшие результаты. Как нам это знание использовать для определения «градиента» ML системы, поиска наискорейшего шага её улучшения? Смотреть на ошибки, конечно, можно и вручную, особенно когда признаков мало, а объектов выделено немного. Но что если того и того становится слишком много?

Наверняка, есть пути автоматизировать и этот процесс, ведь мы инженеры…

И такой приём действительно есть: Что, если использовать одну модель машинного обучения для предсказания ошибок другой модели машинного обучения?

Adversarial Validation

Adversarial Validation — приём, который мы сегодня применим для выделения паттернов в ошибках. Он происходит от соревнований по машинному обучению на Kaggle. В соревнованиях участники стремятся улучшить качество своих моделей, используя наиболее умные и сложные методы. Часто они сталкиваются с проблемой, когда их модели хорошо работают на обучающем наборе данных, но плохо на отложенной выборке (тестовом наборе данных, целевые переменные, для которых надо предсказать). 

Почему так происходит?

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

  2. Вторая возможная причина: и от этого куда труднее спастись — тестовый набор данных может существенно отличаться от обучающего набора данных. Именно это называется «расхождением распределений».

Идея применения Adversarial Validation для анализа ошибок

Идея применения Adversarial Validation для анализа ошибок

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

Если разница между выборками несущественна (например, ROC-AUC ≈ 0.5), это означает, что распределения обучающего и тестового набора данных схожи.

Если между выборками большая разница (например, ROC-AUC > 0.6), тогда выборки уже различимы, мы можем из обучающей выборки выделить самые похожие на тест объекты и использовать их как отложенную валидационную выборку.

Именно это и называется Adversarial Validation.

Граница применимости модели

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

Как Adversarial Validation «завести» для анализа ошибок? Какие две выборки у нас есть?

  1. Отбираем топ ошибок модели (например, топ-1000 или топ-10%). Это наши worst-cases.

  2. Присваиваем им класс 1, а всем остальным («здоровым») объектам — класс 0.
    Наши выборки: «хорошо прогнозируемые» и «плохо прогнозируемые».

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

  4. Если модель классифицирует «хорошо прогнозируемые» и «плохо прогнозируемые» объекты с достаточной точностью (ROC-AUC > 0.6), то это говорит о том, что ошибка модели зависит от значений некоторых признаков.

  5. Анализируем важность признаков в этой модели (например, по SHAP-values), чтобы определить, какие признаки сильнее всего влияют на ошибки основной модели. 

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

Анализ ошибок за пределами регрессии и классификации

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

1. Сегментация изображений (Image Segmentation). В области компьютерного зрения задача сегментации изображений заключается в выделении определенных областей или объектов на изображении, соответствующих определённым классам. «Остатками» здесь является разница предсказанной маски сегментации (контура объекта) и истинной. С помощью наложения масок или использование цветовых карт, мы можем быстро определить области изображения, где модель допускает ошибки (например, плохо отделяет мелкие детали, волосы или ошибочно выделяет зеркальное отражение). 

В сегментации картинок остатками может служить разница между реальными масками объектов и предсказанными: False Negatives (FN), ошибочно не выделенные регионы изображения, — и False Positives (FP), ошибочно выделенные.

В сегментации картинок остатками может служить разница между реальными масками объектов и предсказанными: False Negatives (FN), ошибочно не выделенные регионы изображения, — и False Positives (FP), ошибочно выделенные.

С другой стороны, мы можем оперировать не пикселями, а самими картинками: просматривать топ-N изображений с самой большой ошибкой после обучения и анализировать, есть ли в них какой-либо паттерн. Так, например, модель может некорректно работать на картинках с тёмным освещением, с зеркалами, с большим количеством объектов или на специфическом фоне. Обнаруженные закономерности подсказывают, каких данных (на какие паттерны) нужно добавить в выборку больше, либо как нужно модифицировать loss-функцию (чтобы модель была внимательнее на границах масок сегментации).

2. Генерация звука (Voice Cloning). В задачах генерации аудио, таких как генерация голоса или Text-to-Speech (TTS), важным элементом анализа ошибок является использование Attention Plots. Они показывают, на какие части исходного текста модель обращала особое внимание при генерации каждого отдельного звука. Это позволяет выявить неправильные соответствия и улучшить качество генерации. 

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

Как с увеличением числа итераций Attention Plot приближается к диагональному: во втором случае, с применением Guided Attention Loss, сходимость к «осмысленному» распределению внимания происходит уже на ранних фазах обучения — также в копилку идей для артефактов, которые полезно собирать при каждом запуске обучающего пайплайна.

Как с увеличением числа итераций Attention Plot приближается к диагональному: во втором случае, с применением Guided Attention Loss, сходимость к «осмысленному» распределению внимания происходит уже на ранних фазах обучения — также в копилку идей для артефактов, которые полезно собирать при каждом запуске обучающего пайплайна.

3. Рекомендательные и поисковые движки. Ещё пример — рекомендательные системы. Вместо предсказанной одной цифры, как в классификации и регрессии, мы имеем рейтинг объектов, которые мы порекомендовали бы пользователю. Существует несколько метрик, сравнивающих гипотетическую выдачу и то, что пользователь реально кликал/покупал/смотрел.

Одна из таких метрик — NDCG. Несмотря на отличный от регрессии и классификации формат «предсказаний», эта метрика усредняет качество рекомендации по всем объектам. Значит, ничего не мешает посмотреть на best/worst/corner кейсы по аналогии с регрессией и классификацией: узнать, какие запросы наша система «понимает» хуже всего; как ведёт себя на пользователях с длинной и короткой историей запросов (или просмотров); нет ли очевидных проблем, например, зацикливания на том, что пользователь уже покупал или смотрел?

Вывод

Как мы увидели, анализ ошибок играет ключевую роль в процессе создания и оптимизации ML системы. Это не просто этап «для галочки» перед деплоем, который можно пропустить. Напротив, анализ ошибок стоит в самом начале итеративного цикла улучшения и усложнения модели. 

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

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

Анализ ошибок это лишь часть задач инженера по машинному обучению. Кроме анализа ошибок в повседневной работе мы разрабатываем метрики, собираем датасеты, обучаем сами модели, деплоим и тестируем ML-сервисы, проводим A/B-тесты и много чего ещё, порой выходящего за рамки теоретического понимания, как работают модели машинного обучения. 


Как относитесь к ютуб каналу «Аналитика Ошибок» ?

Magnus_Cord

Пользователь

Регистрация:
24.06.2017

Сообщения: 271

Рейтинг: 134

Magnus_Cord

Регистрация:
24.06.2017

Сообщения: 271

Рейтинг: 134

Какой-то балбес находит на Дотабаффе видео топовых игроков, и комментирует их в паре с другом,  в таком духе:

— Ой а зачем он еул купил на энчу?

— Не знаю! Может скидывать что-то например урну.

— Может реген маны еще?

— Наверное, наверно, он 2000 игр сыграл ему виднее.

В комментах пишут типо — еул он купил чтоб от обратки не умереть.

И так он снимает видео по всем героям, и называет свои видео — Гайдами.

Yolo_yolo

Пользователь

Регистрация:
07.01.2018

Сообщения: 327

Рейтинг: 162

Yolo_yolo

Регистрация:
07.01.2018

Сообщения: 327

Рейтинг: 162

видел в рекомендованных пару раз, кликал не показывать больше такой контент

morgan182

Пользователь

Регистрация:
22.11.2012

Сообщения: 130

Рейтинг: 52

morgan182

Регистрация:
22.11.2012

Сообщения: 130

Рейтинг: 52

в ютубе 99 процентов видео полное гамно. Ваще пох.

Perfecto-

Пользователь

Регистрация:
28.12.2016

Сообщения: 2219

Рейтинг: 1040

Perfecto-

Регистрация:
28.12.2016

Сообщения: 2219

Рейтинг: 1040

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

ReskatorBrony

Пользователь

Регистрация:
19.04.2017

Сообщения: 1524

Рейтинг: 582

ReskatorBrony

Регистрация:
19.04.2017

Сообщения: 1524

Рейтинг: 582

img

Никак. 4Head.png

MixaSergey

Пользователь

Регистрация:
30.12.2015

Сообщения: 7366

Рейтинг: 4028

MixaSergey

Регистрация:
30.12.2015

Сообщения: 7366

Рейтинг: 4028

Какая разница. Пусть снимает себе дальше видео по топ игрокам. 

kirucaramel

Пользователь

Регистрация:
20.04.2018

Сообщения: 123

Рейтинг: 235

kirucaramel

Регистрация:
20.04.2018

Сообщения: 123

Рейтинг: 235

смотреть контент от рухаба это как сидеть в российских соцсетях

PokeMaster

Пользователь

Регистрация:
04.08.2015

Сообщения: 10776

Рейтинг: 3271

PokeMaster

Регистрация:
04.08.2015

Сообщения: 10776

Рейтинг: 3271

Пффф, заходишь на форум д2ру и видишь тоже самое, только не в видео формате, а в текстовом. При чем разбирают даже не каких то там про, а любого рядового игрока

Tomoya Okazaki

Пользователь

Регистрация:
22.05.2018

Сообщения: 652

Рейтинг: 106

Нарушения: 125

Tomoya Okazaki

Регистрация:
22.05.2018

Сообщения: 652

Рейтинг: 106

Нарушения: 125

чел высерает это дерьмо, а люди этот говно контент.

ничего нового

Bratishkabrat

Пользователь

Регистрация:
21.11.2016

Сообщения: 40997

Рейтинг: 47098

Нарушения: 105

Bratishkabrat

Регистрация:
21.11.2016

Сообщения: 40997

Рейтинг: 47098

Нарушения: 105

И зачем нам знать о каком то говноканале с очереднярой?WaitWhat.pngWaitWhat.png

Amenity

Пользователь

Регистрация:
28.05.2016

Сообщения: 383

Рейтинг: 205

Amenity

Регистрация:
28.05.2016

Сообщения: 383

Рейтинг: 205

kirucaramel сказал(а):↑

смотреть контент от рухаба это как сидеть в российских соцсетях

Нажмите, чтобы раскрыть…

А это разве не джумблера канал?) При чем тут рухаб? Или тебе все равно, в какой теме обосрать рухаб?

Perfecto- сказал(а):↑

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

Нажмите, чтобы раскрыть…

Он его не раскрутил, а просто прорекламил с мейна. И смотрят они эту дрисню только из-за его мейн канала.

KadiZ

Пользователь

Регистрация:
12.04.2017

Сообщения: 2584

Рейтинг: 693

KadiZ

Регистрация:
12.04.2017

Сообщения: 2584

Рейтинг: 693

Цитата:

Как относитесь к ютуб каналу «Аналитика Ошибок» ?

Нажмите, чтобы раскрыть…

  Блет, а почему тему все еще не клознули? Типа какой-то челик, у которого и так существует уже устоявшееся мнение о каком-то канале зачем-то спрашивает, как к нему относятся другие, совершенно незнакомые ему челики, на которых ему собственно «погибать».    При этом и все мы  и он знает, что мнение их на его собственное никак не повлияет, и создал тему он , чтобы самоутвердится, что он не хуже этих ребят с канала. Ведь гораздо легче спамить юзлесс темой на форуме , где можно обосрать челиков.    Я думал народу давно стало понятно: не нравится что-то — так не смотри. Но всегда найдутся такие же как автор…   По поводу канала( НУ РАЗ ТЕБЕ ТАК ИНТЕРЕСНО НАШЕ МНЕНИЕ): Сам не смотрю,так как слишком мало полезной информации за такое огромное кол-во времени , уж лучше самому демку проанализировать.. но кому-то это безусловно будет полезно, а значит что каналу жить.. по-моему все очевидно…

maren1994

Пользователь

Регистрация:
28.02.2013

Сообщения: 138

Рейтинг: 58

maren1994

Регистрация:
28.02.2013

Сообщения: 138

Рейтинг: 58

Ужасный контент, нулевая информативность, 99.99% воды

Тема закрыта

  • Заголовок

    Ответов Просмотров

    Последнее сообщение

  • Kappadced

    Сообщений: 1
    21 Sep 2023 в 22:59

    Kappadced

  • DrDikto

    Сообщений: 2
    21 Sep 2023 в 22:56

    mayatnik1

  • flowjkee

    Сообщений: 4
    21 Sep 2023 в 22:44

    alwayswannasleep

  • S30N1K

    S30N1K

    21 Sep 2023 в 22:43

    Сообщений: 8
    21 Sep 2023 в 22:43

    Сообщений:8

    Просмотров:11

    Slay

  • adel merfi

    Сообщений: 14
    21 Sep 2023 в 22:36

    Сообщений:14

    Просмотров:19

    adel merfi

Аналитика Ошибок Youtube канал

Просмотры: 321 128 093

Последний стрим: 1 месяц назад [28 июля 2023 09:34] (BB vs GG (1:1) — Playoff Riyadh Masters | 15 млн. $ призовой)

Зарегистрировался: 6 лет назад (26 февраля 2017 08:35)

0

0

Аналитика ошибок из мира Дота 2, подробные гайды Дота 2, детальный обзор, обучение игры в Дота 2, Школа Дота 2

В настоящий момент нет активной трансляции. Приходите позже

Понравилась статья? Поделить с друзьями:

Интересное по теме:

  • Аналитика ошибок дота 2 инвокер
  • Аналитика ошибок ведущие
  • Аналитика ошибок dota 2
  • Анализатор ошибок машины
  • Анализ стихотворения ошибка марины цветаевой

  • Добавить комментарий

    ;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: