buddha eyes

KPI trap

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

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

И есть интересные примеры KPI traps, не относящиеся к организации труда внутри фирмы.

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

Подмена этичности поведения на законопослушность - это тоже по сути KPI trap.

При капитализме заработанные деньги - это мера того, сколько благ человек дал другим людям. Потому что люди, получая блага, отдают соответствующее количество денег. Чем больше человеку дали денег, тем больше у него появляется возможностей получить какие-то блага себе или развить своё дело. Но уже давно случился KPI trap, и люди начали прокачивать умение зарабатывать больше денег, не давая при этом другим людям больше благ. А создавая иллюзии, вызывая ассоциации, давая более агрессивную рекламу и т.д. Мало того: люди перестали осознавать эту подмену, а стали думать, что заработок денег - это действительно цель их бизнеса. Это как если бы программисты искренне думали, что смысл их работы в написании максимального количества строк программы за единицу времени. Нетрудно догадаться, что создать пристойный продукт у таких программистов не получилось бы. Но потому и прогресс начал пробуксовывать, что основные ресурсы уходят на создание имитации, видимости. Не нужны вечные швейные машинки или неперегорающие лампочки, они не дают постоянного заработка. Нужно искусственное старение, пластиковый бампер автомобиля (являющийся частью кузова), хрупкие телефоны и технологии манипуляции общественным мнением.

Когда произошёл KPI trap, нужно менять метрику.

This entry was originally posted at https://gul-kiev.dreamwidth.org/68521.html.
buddha eyes

По ветру быстрее ветра

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

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

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

Эти формулировки отличаются просто сменой системы отсчёта. Первая больше похожа на мем "взлетит или не взлетит?", вторая в каком-то смысле более понятна (вопрос более "природный", а не про искусственную лабораторную установку).

Видео не является ответом, потому что одни аргументированно объясняют, почему это фейк, а вечных двигателей не бывает, а другие не менее аргументированно - почему это не фейк, так что просто для наглядности:

Collapse )
Странно, что эта красивая задача не разбирается в "Занимательной физике" и других подобных сборниках.
Или в каких-то разбирается?

This entry was originally posted at https://gul-kiev.dreamwidth.org/68253.html.
buddha eyes

Алгоритм Верхуффа для произвольной чётной системы счисления

КДПВ
Иногда возникает задача защитить строку-идентификатор от случайных ошибок, сделанных человеком. Например, номер платёжной карты. Для этого к строке добавляется вычисленная специальным образом контрольная цифра, и когда человек вводит этот номер, можно сделать первичную проверку на ошибки без обращения к базе данных. Самый простой вариант - добавить остаток от деления суммы всех цифр на 10, в таком случае искажение любой одной цифры (в том числе контрольной) будет легко обнаружить, и такая строка не пройдёт проверку. Но некоторые другие ошибки такая контрольная сумма пропустит, например, перестановку двух цифр местами, а это тоже довольно распространённая ошибка.
Collapse )

This entry was originally posted at https://gul-kiev.dreamwidth.org/67878.html.
buddha eyes

Полезные паразиты

Написанное ниже наукообразно, логично, но ненаучно. Что, в принципе, вообще совпадает с моей картиной мира. :)

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

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

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

В Таиланде по сравнению с Европой люди гораздо более открыты для окружающей среды и охотнее взаимодействуют с ней. Будь то насекомые в жилище, гекончики на стенах, тигры и слоны, с которыми люди вплотную общаются - человек здесь является составной частью природы и неразрывно с ней связан. В противоположность этому в Европе есть "личное пространство" (практически карантин), любое живое существо в жилище воспринимается как агрессор, любое взаимодействие - только с соблюдением дистанции. Причём, это прогрессирует: в моей молодости было совершенно нормально есть из одного котла, пить из горла по кругу, не заморачиваться на тему "моя чашка". Сейчас это всё в основном не является принятым даже в кругу близких друзей. Любая бактерия уничтожается антибиотиками (заодно с другими, безобидными бактериями). И нельзя сказать, что в результате такой "стерилизации" люди стали более здоровыми. Понятия "аллергия" раньше просто не существовало.

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

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

UPD: Как оказалось, не так уж это и ненаучно. Вот тут пишут то же самое умными словами и с кучей подтверждающих ссылок.

This entry was originally posted at https://gul-kiev.dreamwidth.org/67706.html.
buddha eyes

Эволюционирующие программы

Лет 10 назад основным вопросом в развитии интернета (а по сути основным направлением прогресса) была децентрализация сети, а основной опасностью - её монополизация. Я тогда об этом размышлял.

С тех пор оба эти направления обострились, ярко проявились и вошли в нашу жизнь.
Децентрализация в виде блокчейна и криптовалют, монополизация в виде социальных сетей и их влияния на политические события (выборы Трампа, brexit и т.д.). И хотя эта тема ещё не потеряла актуальность (всё ещё имеет смысл строить децентрализованную социальную сеть, поисковик и вообще интернет, а монополии вроде facebook и google всё больше влияют на социальные процессы), здесь всё стало более-менее понятно. Будут новые проекты децентрализованых сетей, и будет сопротивление этому со стороны корпораций и государств.

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

1. Бессмысленно делать случайные изменения в исходном тексте программы или в её бинарном коде, ожидая получить улучшение. Случайное изменение человеческого тела будет травмой, зачастую несовместимой с жизнью, но никак не улучшением. Чтобы была возможна эволюция, нужен специальный язык кодирования алгоритмов более крупными "кирпичиками" (аналог генов и ДНК), над которыми уже можно будет делать мутации и рекомбинации, чтобы они с большей вероятностью приводили к осмысленным результатам. Технически это, видимо, должны быть классы, объекты и методы операций над ними. Условно говоря, если в шахматный компьютер наугад тыкнуть паяльником, он, скорее всего, перестанет работать, а если случайно изменить алгоритм, то он в определённой позиции сделает ход слоном, а не конём.

2. Эволюционное создание программ требует значительных вычислительных ресурсов и хорошо распараллеливается: возможных изменений много, и полезность каждого из них нужно проверить. И вот тут оказывается, что эти ресурсы уже созданы, есть целые огромные датацентры, которые "роют копытом землю", в смысле, занимаются бессмысленными вычислениями, перебирая хеши в блоках биткоина и других криптовалют и получая за это премии. Впрочем, не только за перебор хешей, но и за выполнение "смартконтрактов" - специальных программ, живущих в блокчейне. Там, правда, сейчас нет распараллеливания, все узлы выполняют одинаковые действия, но сделать так, чтобы они выполняли разные действия, а премию получал тот узел, который случайно нашёл наилучший вариант (например, получил лучшего игрока в шахматы), кажется не слишком революционным изменением в мире криптовалют.

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

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

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

This entry was originally posted at https://gul-kiev.dreamwidth.org/67462.html.
buddha eyes

И об искусстве

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

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

В других видах искусства то же самое. Хороший фильм может не иметь ясного и связного сюжета, хотя как правило всё-таки имеет.

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

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

This entry was originally posted at https://gul-kiev.dreamwidth.org/67119.html.
buddha eyes

Про "мудрость"

Помню, в детстве была такая задачка. Зимой на улице находятся два человека. У одного поверхность одежды имеет температуру 2°C, у другого 7°C. Кто из них больше замёрз? Ответ в том, что более низкая температура поверхности одежды говорит о том, что эта одежда лучше теплоизолирует, меньше теплоты теряется, и, соответственно, меньше замёрз тот, у которого температура одежды 2°.

А теперь посмотрим на людей, которые делятся своим житейским опытом. Например, один говорит: "Нельзя доверять людям, они обманывают и преследуют только собственные интересы". А другой: "Стройте отношения только на доверии. Лучше ошибиться, подумав о человеке лучше, чем он есть, чем подозрительно отнестись к хорошему". Кто из них больше доверяет людям?

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

Или более очевидный пример. Человек, который (на основании своего жизненного опыта) говорит: "Никогда не выходите зимой на лёд, это опасно", - скорее всего, склонен ходить по тонкому льду больше, чем тот, кто ни о чём таком не предостерегает.

Из этого следует любопытный вывод. Советы других людей, основанные на их жизненном опыте, по большей части применимы только к самим этим людям. А другим этот совет может быть полезен, а может быть и вреден, потому что неизвестно, с какой стороны от "золотой середины" находится этот другой человек. И всякие советы "со стороны" о том, как нужно строить бизнес или семью или ещё что-то, говорят только о том, в какую сторону ошибался советующий. "Не нужно формализовать отношения в фирме", "нужен порядок и выполнение распоряжений", "нужно больше тимбилдинга", "тимбилдинг - бесполезная трата денег", "agile решит все проблемы", "нужно сокращать дистанцию от главного начальника до исполнителя" и т.д. - все эти советы не имеют никакого смысла, если только не даются по отношению к конкретной фирме после тщательного и глубокого её изучения.

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

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

This entry was originally posted at https://gul-kiev.dreamwidth.org/67061.html.
buddha eyes

О перемещениях во времени

Фантазия.

5-го мая 2032-го года компания "Time Gap" объявила о том, что они научились управлять временем. Если точнее, то они научились перемещать сознание во времени. Пока только вперёд, и пока только на небольшой период времени - до часа. Но это уже очень немало, главное, что поняли принцип, хотя и хранят его как коммерческую тайну. В будущем ожидается расширение возможностей, но и сейчас такому "перескоку" есть применения в быту.

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

[ Дальше ]

This entry was originally posted at https://gul-kiev.dreamwidth.org/66588.html.
buddha eyes

Теорема о запрете клонирования

Ещё одно размышление, изложенное в форме фантазии.


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

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

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

[Читать дальше]

This entry was originally posted at https://gul-kiev.dreamwidth.org/66367.html.
buddha eyes

Обратная связь

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


Анатолий работал программистом в Google.
Точнее, не совсем программистом, а учёным (scientist). Программистом он был раньше, но его образование и склад ума позволили ему подняться выше, и теперь он не пишет код, а разрабатывает алгоритмы, математические модели, решает связанные с этим проблемы.

Сначала Анатолий работал в отделе переводов (Google Translate), потом ему предложили перейти в более перспективный отдел искусственного интеллекта (AI). В общих чертах направление оставалось то же (машинное обучение), но в AI задачи были гораздо шире и универсальнее, и разрабатываемые там инструменты применялись и для переводов, и для управления автомобилями, и для Google Assistant, и даже частично для поиска (хотя у ребят из поиска много собственных наработок, тоже очень крутых, но более специализированных именно под поисковую выдачу).

Разрабатываемые алгоритмы и инструменты были уже настолько круты, что даже Анатолий в глубине души их побаивался. Нередко случалось, что этот AI предугадывал его мысли. Когда алгоритм AlphaZero разгромил в шахматы DeepBlue после всего четырёх часов самообучения, потом показал не менее внушительные успехи в го, Анатолий захотел дать этом алгоритму какую-нибудь более интересную и сложную задачу. Но какую? Прогноз погоды? Диагностика болезней? Интересно, но это требует доступ к массивам данных, которые являются закрытыми, и для того, чтобы их получить, нужно обосновать необходимость, а с этим были проблемы.

[ Дальше ]

This entry was originally posted at https://gul-kiev.dreamwidth.org/66054.html.