Джоел Спольски
Иногда, когда вы пытаетесь понять, как устроен мир, базовой математики достаточно. Если мы увеличим поток горячей воды на x, температура смеси повысится на y.
Иногда вы работаете над чем-то более сложным, и даже не можете начать гадать как входные данные влияют на выходные. На складе, кажется, все идет хорошо, когда у вас меньше четырех сотрудников, но когда Вы берете пятого, они начинают наступать друг другу на пятки, и пятый не приносит никакой пользы.
Вы можете не понимать взаимосвязь между количеством сотрудников и пропускной способностью склада, но вы определенно знаете что все остальные. Если вы можете представить себе написание небольшого количества кода на JavaScript для моделирования поведения каждого из ваших работников, вы можете запустить симуляцию и посмотреть, что на самом деле происходит. Вы можете настроить параметры и правила, которым следуют сотрудники, чтобы увидеть что может помочь, и вы действительно можете получить некоторое понимание ситуации, а затем и решение сложных проблем.
Вот что такое hash.ai. Прочитайте пост о запуске в блоге Дэвида, а затем попробуйте построить свои собственные симуляции!
Дэвид Уилкинсон
Сегодня, вместе с Джоэлом Спольски и Джуд Оллред, я рад представить HASH, компанию, которую мы основали чуть более года назад. Мы считаем, что большинство проблем нашего мира являются продуктами какого-то информационного сбоя. Экономические коллапсы, войны и болезни, выбор правильного жизненного партнера или университетского диплома – наша миссия состоит в том, чтобы помочь всем принять правильные решения и преодолевать информационные сбои.
Гениальные новаторы стремились упорядочить мировую информацию и сделать ее доступной для всех, и следующий шаг на этом пути — сделать эту информацию понятной и пригодной для использования всеми.
В то время как высокотехнологичные организации с высоким уровнем финансирования (такие как хедж-фонды) способны эффективно обрабатывать огромные массивы мировой информации, получая при этом незначительные доходы и мельчайшие доли секунды в экономических сделках, подавляющее большинство предприятий и частных лиц не имеют возможности систематически анализировать все многообразие сигналов, содержащихся в окружающем мире.
Моделирование способно открыть лучший мир: улучшить наше понимание и восприятие окружающего мира. Моделирование не только является полезным инструментом человеческого познания, оно также обладает потенциалом стать богатым и понятным способом машинного отображением реальных мировых проблем. По сути, модели являются универсальными интерфейсами как для человека, так и для искусственного интеллекта, и мы считаем, что, модели могут стать соединительной тканью между миром людей и миром машин.
Мы надеемся, что модели будут способствовать более эффективному принятию человеческих и автоматизированных решений: рациональному разрешению конфликтов, сокращению и устранению сбоев в работе рынков, а также помогут людям жить счастливой и здоровой жизнью. И мы не хотим ждать наступления этого светлого будущего.
Если вы тоже не можете дождаться начала, зарегистрируйтесь сейчас — или читайте дальше, чтобы узнать больше.
Истоки
Раньше я руководил цифровой консалтинговой компанией в Лондоне, которая разрабатывала сайты, программное обеспечение и проводила кампании, основанные на данных, для широкого круга клиентов: от частных инвестиционных компаний и стартапов до государственных клиентов самого крупного размера.
Время от времени мы сталкивались с действительно интересными задачами, такими как отслеживание распространения заболеваний (например, инфекций, передающихся половым путем), оценка эффективности мероприятий по борьбе с ними (например, информационных рекламных кампаний), а также оптимизация рекламных расходов (т.е. определение объектов, влияющих на узлы в сетях, которые с наибольшей вероятностью будут препятствовать распространению болезней).
Оказывается, существует единый золотой стандарт как в эпидемиологии, так и в поведенческой рекламе для ответов на такого рода вопросы, и этим стандартом является «агентоориентированное моделирование» (ABM). ABM работает следующим образом.
- Агенты представляют участников: будь то отдельные лица, компании, домашние хозяйства, машины на заводе или что-то еще. Различные модели смотрят на системы с разной степенью детализации. В теории «агент» может быть даже молекулой.
- Агенты обладают свойствами, значениями, прикрепленными к ним, которые варьируются в зависимости от агента. Так, у человека, свойство может быть булевым, таким как «зарегистрированный избиратель» (да/нет), «партийная принадлежность» (множественный выбор) или «годовой доход» (некоторое числовое значение).
- Агенты существуют в окружающей среде (и зачастую сразу нескольких), например, в геопространстве или сетевом графике.
- Агенты определяются своим поведением: по сути, поведение представляет собой код, объясняющий, как агенты должны взаимодействовать с окружающим миром и реагировать на него.
ABM могут быть построены на основе базовых принципов и полезны для проверки гипотез «А что если…», что позволит безопасно исследовать цифровых близнецов систем реального мира. Это делает моделирование с участием нескольких агентов гораздо более полезным, чем прогнозирование распространения болезней и информации в сети.
Решение проблем, которые не может решить Data Science
Целый ряд сложных системных проблем бросает вызов попыткам предсказуемого моделирования. Как правило, это проблемы, классифицируемые по нелинейности, возникновению, приспособлению, взаимозависимости и циклам обратной связи между агентами. Возникающие события типа «черный лебедь» по определению не отражаются в существующих закономерностях и исторических данных, а потому полностью пропускаются.
Никакие системы не существуют в полной изоляции – все они являются частью нашего сложного реального мира – и поэтому все проблемы бизнеса, политики и человека, в конечном счете, являются проблемами понимания сложных систем. В большинстве случаев разумная абстракция позволяет нам сбрасывать со счетов большую часть посторонних факторов, но трудно понять, что, когда и при каких обстоятельствах может вызывать интерес.
В некоторых системах все это неважно, но при ответе на некоторые вопросы (например, как мы можем способствовать созданию более стабильной экономики или хороших внешних отношений) мы можем столкнуться с вопросами жизни и смерти. Для того, чтобы в полной мере понять эти чрезвычайно важные проблемы, сопряженные с критическим риском, нам необходимо провести обобщенный поиск в пространстве, в котором они существуют, основываясь на наблюдаемой динамике этих систем. Одно лишь распознавание образов и анализ исторических результатов хорошо подходит для формирования базовой оболочки, но не дает представления о сути проблем.
Поскольку пространство вокруг проблем, представляющих все возможные конфигурации мира, намного больше, чем историческое пространство, в котором эти проблемы наблюдались, иногда возникает соблазн списывать правильное научное моделирование со счетов и считать его несбыточным. В то же время, правильно применяемое имитационное моделирование не стремится симулировать все возможные версии мира, которые могут когда-либо возникнуть (конечно, их бесконечно много), а, скорее, помогает людям понять, какие из этих версий могут произойти, и привлечь внимание к возможным новым сценариям, неизвестным аналитикам-людям в силу природы этих сценариев.
Такие кризисы, как финансовый крах 07/08 года, стали катастрофой именно потому, что лица, принимающие решения, не понимали и не учитывали основополагающую динамику сложных систем – экономики, в данном случае. В таких нормативных актах, как Базель II, были введены требования к резерву капитала, что в сочетании с практикой учета по методу «от рынка к рынку» привело к продаже активов, при этом участники рынка были вынуждены идти на угасающие рынки, увеличивая разрыв.
Несмотря на то, что данные об исторической и текущей стоимости могут быть использованы для предварительного заполнения и обратного тестирования агентских моделей, создавать ABM не обязательно, что открывает дверь для прямого формального моделирования в широком спектре областей, где машинное обучение не может быть применено в настоящее время.
Более того, симуляция сочетает преимущества формального моделирования с богатством качественного описания, что делает модели в высшей степени объяснимыми и легкими для понимания человеком. В отличие от моделей, которые иногда похожи на черный ящик, симуляции на основе агентов по своей природе поддаются проверке, и пользователи могут шаг за шагом следить за тем, как именно получаются те или иные результаты и какие факторы способствуют их получению.
Так почему же тогда они остаются так неосведомленными, недооцененными и редкоиспользуемыми?
Современные проблемы моделирования на основе агентов
Моделирование представляет собой трудоемкий, ресурсозатратный, а также дорогостоящий в обслуживании, эксплуатации и поддержке процесс. Оно требует знания специализированных инструментов, фреймворков и даже странных проприетарных языков программирования. Полученные в результате симуляции зачастую не являются переносимыми или перепрофилируемыми, а в тех случаях, когда логика симуляции формируется на основе догадок или не поддается калибровке, эти модели могут привести к ложному ощущению уверенности или безопасности, которое может усугубить существующее некачественное принятие решений.
Несмотря на то, что симуляции претендуют на распространненость в мире цепей поставок, производства, финансов, обороны и т.п., лидирующие на рынке пакеты программного обеспечения для агентного моделирования сегодня работают в ограниченных объемах и основаны на устаревших технологиях и парадигмах, которые плохо поддаются распределенным вычислениям в реальном масштабе. Их пользовательские интерфейсы не менялись с 1990-х годов, опыт разработчиков, которые их предлагают, в равной степени устарел, они вообще не запускаются в браузере, их нельзя использовать на мобильных устройствах, и пользователям часто приходится разворачивать специальное программное обеспечение просто для доступа к ним.
По большей части эти симуляции представляют собой игрушечные модели, созданные для демонстрации определенной динамики, и не обладающие функциональной совместимостью. После того, как эти модели построены, они становятся разрозненными, ими мало кто делится, и никто в своей работе не опирается на результаты коллег. Большинство построенных моделей настолько ограничены (для обеспечения их своевременной работы), что они захватывают лишь малую часть динамики систем, которые они представляют. Вместо того, чтобы строить богатые виртуальные миры и избирательно включать соответствующие аспекты, исходя из результатов экспериментов, создаются дешевые игрушечные абстракции, которые не внушают доверия пользователям и которые гораздо проще исследовать. Существует глубокий и оправданный скептицизм относительно того, являются ли игрушечные модели действительно «научными», а также сомнение насчет того, что более сложные модели могут быть соответствующим образом откалиброваны и параметризованы.
Обратите внимание на проблемы поиска подходящих и гранулированных данных на уровне агентов, на трудности преобразования опыта предметных областей в код, а также на широкий спектр структурных барьеров на пути создания ABM, и вы поймете почему моделирование общего назначения проигрывает и редко используется в современном бизнесе.
Симуляция, доступная всем
Мы столкнулись с множеством системных проблем, и теперь хотим создавать решения системного уровня. HASH стремится решить задачу симуляции путем вертикальной интеграции всего стека, создавая единую платформу для построения, запуска и обучения на основе симуляций.
Сегодня мы публично запускаем две части HASH:
- HASH Core: веб-среда для разработчиков и средство просмотра симуляций.
- HASH Index: коллекция симуляций и модульных компонентов.
Все симуляции в HASH состоят из агентов (представленных описательными схемами) и моделей поведения (которые, как правило, являются представлены чистыми функциями). Модели поведения руководят агентами, наборы данных могут использоваться для инициализации или обновления агентов в рамках моделирования на основе реальных наблюдений, а также использоваться для подкрепления и калибровки моделей. Схемы поведения и наборы данных привязываются к соответствующим объектам и схемам, благодаря чему разработчики могут легко искать модели с помощью HASH Index и объединять их с помощью HASH Core.
Все модели, наборы данных и схемы поведения доступны в HASH Index. Все содержимое HASH Index сейчас доступно бесплатно. HASH Index – среда, задуманная как нечто среднее между GitHub и менеджером пакетов, которая в будущем будет расширена для создания дополнительного рынка, облегчающего покупку и продажу платных схем поведения, наборов данных и имитационных моделей. Мы представляем себе компании, которые будут публиковать бесплатные компоненты, чтобы завоевать доверие и авторитет, а затем будут продавать более полные симуляции и консалтинговые услуги.
Наши планы на будущее, касающиеся H-Index, предполагают реализацию форков, веток, обсуждений и пулл-реквестов – мы хотим добавить функциональность из Git, которая, как и использование менеджеров пакетов, в настоящее время является второй натурой большинства современных разработчиков программного обеспечения.
Влияние этих изменений на рабочий процесс разработчиков значительно: по мере развития H-Index, отраслевые специалисты с ограниченными знаниями программирования смогут делать форки и адаптировать (или полностью внедрять) существующие поведенческие модели в симуляцию, что позволит им моделировать сложную динамику без необходимости программировать масштабные проекты с чистого листа.
Однако наш текущий продуктовый ряд не является полным. Несмотря на то, что наш молниеносно быстрый HASH Engine позволяет проводить симуляцию с непревзойденной скоростью, в настоящее время он доступен только через веб-интерфейс H-Core, что неизбежно ограничивает его памятью и ресурсами процессора, доступными на вкладке браузера. Все это значит, что хоть H-Engine и предназначен для работы с симуляциями действительно мирового масштаба, наши ранние бета-пользователи были ограничены и могли создавать только сравнительно небольшие модели. Таким образом, H-Core в своей текущей итерации сравним с чем-то вроде NetLogo, академическим инструментом моделирования на основе агентов: полезным для иллюстрации влияния однородных агентов в сложных системах и объяснения пользователям динамики этих систем, но ограниченным в своих возможностях при моделировании реальных сред с высокой степенью достоверности или в масштабом. Из-за этих текущих ограничений, инструменты для проведения оптимизационных экспериментов (параметрические развертки, моделирование Монте-Карло, и более экзотическое обучение с подкреплением) пока недоступны – но очень важны для нас.
С этой целью сегодня мы выпускаем нашу дорожную карту по реализации этих возможностей и использованию имитационного моделирования для повседневного принятия решений в реальном мире:
HASH Core и HASH Index теперь официально вышли в бета-версии.
- В ближайшие недели мы будем интенсивно работать над обеими платформами и будем рады вашему вкладу.
Мы с гордостью объявляем, что в конце этого года мы откроем исходный код движка HASH Engine, сердца нашей системы симуляций.
- Написанный на Rust, и уже имеющий привязки для JavaScript и Python, H-Engine является сверхпроизводительной системой, лежащей в основе всех вычислений в HASH.
- Наша цель – сделать платформу доступной для всех, и дать людям возможность запускать H-Engine локально и в закрытых системах.
- В настоящее время мы планируем выпустить публичную версию H-Engine по лицензии с открытым исходным кодом к концу 2020 года.
В этом году мы также начнем развертывание HASH Cloud и проведем набор бета-пользователей.
- H-Cloud – это часть нашей платформы, которая позволит пользователям запускать симуляции в облаке одним щелчком мыши из существующего интерфейса авторизации и просмотра H-Core (а также через работу с open-source сборкой H-Engine в командной строке)
- Параллельно с этим в H-Core будет открыт экспериментальный интерфейс, который даст возможность получить понимание коммерческой пользы от симуляций в масштабе.
- Через H-Cloud пользователи смогут получить доступ к симуляциям и результатам экспериментов программно, чтобы управлять алгоритмами и приложениями вне HASH.
Вы можете узнать больше о наших предстоящих продуктах в публичной дорожной карте на hash.ai/roadmap
Мы начинали вдвоем чуть больше года назад, сейчас в нашей команде около десяти человек. Я невероятно горжусь командой, которую мы создали, и тем, чего мы достигли за это время.
Мы рады знакомству с пользователями HASH и запустили сообщество в Slack, доступ к которому можно получить через иконку в правом нижнем углу любой страницы на hash.ai – мы будем рады помочь вам построить ваши модели, ответить на ваши вопросы, а также примем ваши предложения и сообщения об ошибках.
Мы работаем над доступностью и распространением HASH на максимально широкую аудиторию разработчиков. В движке на Rust есть привязки для Python, а также для JavaScript, но до сих пор работа с поведениями в H-Core поддерживало только JS. С сегодняшнего дня мы с гордостью сообщаем, что разработка поведения и его симуляция на Python поддерживается локально в браузере через H-Core. Благодаря потрясающему проекту Pyodide от компании Mozilla мы смогли внедрить экспериментальную поддержку Python в нашу браузерную H-Core IDE, и хотя в настоящее время она показывает невероятную производительность, мы надеемся, что до полного развертывания H-Cloud и H-Engine мы сможем сделать поддержку еще лучше (что позволит пользователям избегать каких-либо проблем с производительностью). Теперь разработчики могут строить модели в HASH с использованием Python, а также импортировать любое количество популярных научных пакетов(подробнее в нашей документации).
Чтобы устранить информационный провал, необходимо создавать инструменты, которых ранее не существовало, для решения проблем, которые сегодня не могут быть решены. Мы должны дать людям суперспособности, в этом заключается наша миссия.
Если вы хотите построить модель с помощью HASH, вы можете зарегистрироваться на hash.ai/signup.
Если вы хотите участвовать в нашей миссии, помогая всем принимать правильные решения, вы можете помочь публиковать симуляции, поведение и данные для H-Index, или подать заявку на любую из наших открытых вакансий на hash.ai/careers.
И, наконец, если вы принимаете решения в бизнесе и заинтересованы в том, чтобы узнать, как можно применить HASH, свяжитесь с нами – hash.ai/contact.
Мы благодарны ранним инвесторам HASH за их поддержку: потрясающим создателям сообществ, таким как основатель Stack Overflow Джоэл Спольски и основатель Kaggle Энтони Голдблум, а также Эшу Фонтане и Ли Эдвардсу из Zetta Venture Partners и Root Ventures. Мы рады начать нашу публичную миссию.
Дэвид Уилкинсон
Founder and CEO of HASH
Узнайте подробности, как получить востребованную профессию с нуля или Level Up по навыкам и зарплате, пройдя платные онлайн-курсы SkillFactory:
- Курс по Machine Learning (12 недель)
- Обучение профессии Data Science с нуля (12 месяцев)
- Профессия аналитика с любым стартовым уровнем (9 месяцев)
- Курс «Python для веб-разработки» (9 месяцев)
Читать еще
- Тренды в Data Scienсe 2020
- Data Science умерла. Да здравствует Business Science
- Крутые Data Scientist не тратят время на статистику
- Как стать Data Scientist без онлайн-курсов
- 450 бесплатных курсов от Лиги Плюща
- Data Science для гуманитариев: что такое «data»
- Data Scienсe на стероидах: знакомство с Decision Intelligence