-По-моему, это их пассивка, - выдал идею Архаил.
-Скорее всего, - других предположений у меня тоже не было. Но исходя из довольно-таки имбовой эффективности такой способности можно предположить, что там должна пройти перезарядка между применениями. Вешаю метку на того слизня, что вылез из дальней стены после первого предсмертного состояния. И фиг там! Снова втянулся. Но на этот раз, как мне показалось, не так резво…
-Он теперь почти секунду всасывался, - глаз Китти подметил то же самое. - В следующий раз должен ещё дольше по логике.
-Аа-а! Может сначала избавимся от этих!? - снова оказавшийся на земле Ключ пыхтел от ярости, но раз за разом поднимался на ноги к вящему неудовольствию сидящего на плече кота, заново высматривающего цель.
Я быстро прикинула, что нужно делать. Дождаться третьего явления не желающей умирать кляксы, просадить её до низкого показателя здоровья и забурстить всем имеющимся арсеналом. А пока прячется - заняться угнетателями саджумины. Я коротко посвятила команду в глобальный план по избавлению от стрелков, попутно раздавая удары в уязвимые места по танкам противника, окружившим Ключа с Китти. Все три свои способности обезьяны уже спалили: бросок, топот и сбрасывание с себя контроля. Так что я не опасалась внезапного отхила и наряду с Ка'Джетом и Архаилом вносила глобально максимум своего ДПСа. Дебафф от слизняков частично компенсировала долгоиграющим, пусть и не таким сильным, зельем силы.
Наконец, мутный выползень снова явился миру. Стало практически очевидно, что половина запаса хп - это максимум, который мобы могут отрегенить в стенах, и, скорее всего, их после этого автоматически выплёвывает наружу. На этот раз к нашему арсеналу прибавилось самое главное - понимание их пассивки. Когда у того осталось не более 20% шкалы хп, мы не пожалели ничего: я скастовала сайленс вместе с амплифаем урона, в который от души вложила удар в форме горгульи. Архаил активировал боевое ускорение, выдав сразу несколько автоатак за то время, за которое слизень попытался втянуться в стену снова. Ка'Джета к потолку подбросил Ключ (явно успели договориться об этом манёвре), и тройной ледяной луч, выпущенный котом, целиком пришёлся в каплю, а вырвавшийся из его лапы следом луч тёмной энергии размазал жирной кляксой по стене мерзкого плюющегося стрелка. Кот прямо в полёте перепривязался ко мне.
-Я же не птичка. Чё ж я летаю? - пробормотал он.
Мы немного успокоились. Да, капли всё ещё отлично дамажили, приматы активно пытались сбить Китти хилящий луч, но зачистка уже лишившегося двух мобов па́ка стала делом техники и времени. Мы стали успевать поочерёдно загонять в стену все три оставшиеся капли, две из которых добили последовательно во время третьей степени отката всасывания. Первую похоронила я мощным ударом, сделанным точно под брошенное Китти очищение, убравшее уменьшение исходящего урона. Вторую снова казнил Ка'Джет. Под третью бурста не хватило: всё, что могло добить, было на перезарядке, поэтому мы просто снова отправили каплю в стену, спокойно раздамажили танков, а слизняка вытерли всей толпой после его четвёртого по счёту появления. Последний удар по оставшемуся в живых громиле сделала Китти, зарядив из своего посоха выглядящий грозно, но нанёсший всего три сотни магического урона разряд.
-Не почувствовала, - съерничал Ка'Джет.
-Изи, - кивнула та, отбросив со лба прядь волос.
Подрались неплохо с учётом полного изначального неведения способностей крипов. Минус четыре большие бутылки с исцелением из моего запаса, Архаил с Ключом тоже слегка употребляли в процессе боя, а Китти пару раз использовала зелье на регенерацию маны. Мы подождали, пока саджумина всех вылечит до максимума, убедились, что важные “кнопки” у всех перезарядились, и двинулись дальше. Надеюсь, хотя бы от “этажа” к “этажу” мобы особо меняться не будут. А то слишком уж бодро выбивают расходники.
—-----------------------------------------------------
-Короче, парни, одна нейронка тут не справится. Нужно будет эвристики накрутить, - подытожил Стас после проведённого рисёрча по поставленной задаче.
-Почему конкретно не справится? - поинтересовался Антон. Ему, как лиду, было необходимо предоставить наверх чёткий отчёт о том, что нужно добавить к изначальному плану для того, чтобы всё заработало.
-Чтобы сделать подходящую плюшку, нужен мощный ган.
-Ствол? - встрепенулся Виктор.
-Нет, Вить, GAN - тип нейронной сети, которая генерирует разнообразные данные. Даже я уже запомнил, - укоризненно посмотрел на техника тимлид.
-А-а-а, - разочарованно протянул тот.
-Так вот, - Стас снова взял слово. - Что мне подать на вход без предобработки? Все действия игрока за какой-то промежуток времени? Так охренеем с объёма, да и мусора будет много.
-Точно, - поднаторевший в деятельности коллеги Миша тоже влез в дискуссию, - надо аккумулировать действия, которые делаются для одной и той же цели.
-У нас почти всё есть, - молчавший до этого Роман уверенным тоном развил идею, - ведь мыслеобразы пропускаются через основную нейросеть. Если хранить не только итог, но и значения на каком-то из предпоследних слоёв, то получим общие признаки.
-Чуть подробнее, - Антон почесал нос очками.
Старший разработчик и подхвативший его мысль Стас вдвоём объяснили, что на промежуточных слоях нейросети ближе к её выходу значения для схожих входных объектов имеют другие схожие параметры.
-Давай я лучше приведу упрощённый пример, - осенило Мишу.
Программист открыл у себя на мониторе графический редактор и изобразил координатную плоскость. Ось икс отметил как “вес”, а ось игрек - как “размер”.
-Скажем, нам надо научить нейронку различать котов и собак по их урезанным признакам. Мы сначала отмечаем на этой плоскости несколько образцов точек для собак, - тут он натыкал несколько раз в области правого верхнего угла графика, - И для котов, - новую порцию точек другого цвета Миша отметил поближе к точке с координатами (0, 0).
-Вот теперь мы грубо обводим овалами две этих области. Далее если признаки нового животного попадают в синюю - это, скорее всего, собака. В жёлтую - почти наверняка кот.
-Но тогда чихуахуа такая система примет за кошку, нет? - уточнил тимлид.
-Да, но здесь пример очень сильно упрощён. Характеристик действий игроков намного больше, чем две. Кластеры будут строиться в многомерном пространстве, и шансом пересечения у двух разнотипных действий почти не будет.
Понимание подхода помогло Антону разбить задачу на отдельные части, но работы предстоит всё равно много: проанализировать, какие действия игроков вели к определённой одной и той же итоговой цели, оценить сложность и нестандартность этих действий, собрать набор данных из нескольких сотен примеров, и это только начало. Получится сырая нейронная сеть, работу которой будет нужно обернуть логикой программы, которая будет решать, как поощрить старательных игроков и какая именно награда им подойдёт лучше всего.
Вооружившись очередной кружкой кофе, лид начал решительный штурм клавиатуры…
—--------------------------------------------------------------
*ПРОТИВНИКИ ЧЕТВЁРТОГО ЭТАЖА СГЕНЕРИРОВАНЫ. ОСТАЛОСЬ 1/25000*
Ой, что-то мне это не нравится.
-Нужно будет убить какого-то супер-монстра с кучей детёнышей? - предположила Китти.
-Похоже на то. Глядите, коридор заканчивается и в его конце видно какое-то свечение.
-И нам точно туда, - нахмурился Архаил, - что бы ни таила в себе башня, её источник однозначно фонит оттуда.
Мы в полной готовности медленно вошли в местный пентхаус. Посреди просторной, но беспорядочно заваленной всевозможными вещами и предметами мебели, комнаты спиной к нам стояла высокая фигура. Наша команда двинулась вдоль стены, стараясь не греметь разбросанными фолиантами и колбами. Теперь было видно, что человек (поверьте, встретить в качестве босса обычного человека в мире, состоящим из десятков самых разнообразных рас, не такая уж и простая задача) был одет в некогда богатый жаккардовый костюм, теперь драный и изрядно поношенный, с явными следами от когтей и кровавым пятном у горла. Ростом колдун был метра под два и точно не отлынивал от походов в спортзал. Тёмно-зелёный длинный плащ с откинутым капюшоном пафосно завершал образ последнего противника данжа.