...

суббота, 27 февраля 2021 г.

В этом году Aptera Motors выпустит первый в мире серийный солнечный автомобиль

Калифорнийская компания Aptera Motors в этом году обещает начать производство первого в мире серийного электромобиля на солнечных батареях, пишет The Washington Post.

Разработка уникального электрокара ведётся очень давно, см. новость на Хабре от 19 февраля 2009 года. В этот раз завершить проект удалось благодаря краудфандингу.
Трёхколёсный электромобиль c выдающейся аэродинамикой покрыт 3,16 квадратными метрами солнечных батарей (700 Вт). Во время стоянки заряжается от Солнца — и этой энергии хватает на 60 км хода.

Если солнца нет или ночью машина заряжается от обычной розетки 220 В. Дополнительные панели можно установить на крышу, чтобы ускорить процесс. Комплектуется аккумуляторами от 25 до 100 кВтч, которые обеспечивают дальность хода от 250 до 1000 миль, то есть от 400 до 1600 километров.

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

Возможно, эта попытка окажется более успешной. Компания начала принимать деньги за предварительный заказ автомобилей по цене $25 900, около 7500 человек уже внесли депозит.

Let's block ads! (Why?)

Вышло приложение Fake Contacts для замусоривания адресной книги Android

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

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


Для работы достаточно установить программу и нажать кнопку «Create Fake Contacts». При желании можно удалить все сгенерированные контакты тоже нажатием одной кнопки.

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


Большинство юзеров с радостью отказывается от приватности ради удобства.

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

Let's block ads! (Why?)

[Перевод] Модификация, восстановление и кончина аналогового компьютера за $3 млн

Как в 1940-х годах можно было с большой скоростью записать выходные данные вашего трёхмиллионного аналогового компьютера, если результаты его работы видны только на аналоговых измерительных приборах? С этой проблемой столкнулась команда из технологического института Джорджии, ответственная за компьютер, на котором изучались свойства сетей электропередач переменного тока. Они придумали хитроумное решение – хакнуть панель управления и подключить к ней специальный стол для рисования.


Что это?


Что это за зверюга такая — аналоговый компьютер? Подобные машины разрабатывали во время и после Второй мировой войны. Строго говоря, их правильнее было бы отнести к классу масштабных моделей, чем называть настоящими компьютерами. И хотя они были достаточно гибкими, в основном они были разработаны для симуляции сетей электропередач. Теория их работы достаточно обширная, но для измерений просто строилась масштабная модель реальных многофазных сетей передачи энергии, работающая на одной фазе и частоте 400 Гц.

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

Работа на полставки


В начале 1980-х моей первой задачей в колледже стало восстановление одной из этих машин до рабочего состояния. В 1947 году её купила компания Georgia Power и подарила технологическому институту Джорджии. Там она работала практически без перерыва несколько десятилетий. Потом какое-то время её использовали как учебное пособие, и пару раз перевозили. Когда в игру вступил я, она уже давно не использовалась и пребывала в плачевном состоянии.

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

Рабочий процесс


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


Контрольная панель

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

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

Мы можем сделать что-то получше


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


Запись результатов симуляции

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

Внутри стола была решётка из сотен тщательно размеченных штырьков. Для каждого из элементов схемы был свой штырёк – от C1 до C99, от L1 до L99, и так далее. Инженеры зарывались в клавиатуру главной консоли и подключались к нужным логическим сигналам. Их перенаправляли на контуры, расположенные внутри стола, в результате чего контакты выводились на панель со штырьками.

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


Рисунок внешнего вида стола

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

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

Старые схемы


Я нашёл диаграмму схемы выбора измерительного прибора в патенте, заявку на который подали в 1940-м году. Мне она показалась очень интересной – хотя бы тем, что стиль и символы для обозначения элементов отличаются от сегодняшних. Сегодня такого большого количества реле на схемах не встретишь. Смысл устройства довольно легко понять, немного изучив схему. Это, по сути, шина для работы с десятичными индикаторами на 24 провода, с поддержкой вывода единиц измерения и десятков. На месте для индикации сотен видно только четыре провода вместо десяти. Они используются для выбора категории элемента схемы – источник питания, конденсатор, и т.п. Адресной шиной управляют с клавиатуры, а кнопка RESET освобождает «драйверы».

Мы с приятелями как-то рылись в ящиках столов, и нашли старую статью про Герберта Питерса – яркого инженера из компании Westinghouse, которого вместе с анализатором сети перевели в технологический институт Джорджии, и в итоге он прожил в Атланте всю жизнь. Питерс, судя по всему, был ярким представителем хардкорных инженеров старой школы. Мы так и представляли себе, как он в своём галстуке-бабочке склонился над компьютером раздумьях, периодически смахивая рукой сигаретный пепел, падающий на консоль.


Герберт Питерс за работой

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

Я слышал, что вскоре после того, как я окончил институт в 1985 году, половину анализатора сети выкинули из подвала, чтобы занять площадь чем-то другим. Его основная часть уцелела – просто некоторые элементы схемы были разрезаны пополам. А несколько лет назад избавились и от этих остатков. Сегодня от него остались лишь постепенно тускнеющие фотографии, генератор на 10 кВт в подвале, и прекрасные воспоминания о пользователях этой машины.

Let's block ads! (Why?)

Руководители NASA и Роскосмоса говорят об окончательном формировании экипажа для предстоящей миссии корабля «Союз». Spa

от Джеффа Фоаст -26 февраля 2021 г.
Первоисточник:

Российские космонавты Петр Дубров и Олег Новицкий тренируются на тренажере перед предстоящим полетом корабля «Союз МС-18». Нашивка миссии включает «Ванде Хей», очевидную ссылку на астронавта НАСА Марка Ванде Хей. Предоставлено: Роскосмос
Российские космонавты Петр Дубров и Олег Новицкий тренируются на тренажере перед предстоящим полетом корабля «Союз МС-18». Нашивка миссии включает «Ванде Хей», очевидную ссылку на астронавта НАСА Марка Ванде Хей. Предоставлено: Роскосмос

ВАШИНГТОН — Вероятность того, что в апреле астронавт NASA полетит в составе российского космического корабля «Союз» на Международную космическую станцию, возрастает, поскольку агентство завершает переговоры со своими российскими коллегами.

В заявлении от 25 февраля Роскосмос сообщил, что генеральный директор Дмитрий Рогозин в тот день разговаривал с исполняющим обязанности администратора NASA Стивом Юрчиком. В ходе беседы, как заявил Роскосмос, были поздравления Рогозина с посадкой марсохода NASA Perseverance и обсуждение предстоящего запуска российского спутника «Арктика-М» для мониторинга условий в Арктике.

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

9 февраля НАСА объявило, что работает над получением места в следующей миссии «Союза» на МКС, «Союз МС-18», запуск которого запланирован на 9 апреля. Агентство заявило, что получит место в результате обмена «услугами в натуральной форме». Предполагается, что сделка проведена через третью сторону — коммерческую космическую компанию Axiom Space.

Это объявление было связано с публикацией заявки на закупку «sources sough», что было необходимым шагом для любых альтернативных механизмов до заключения сделки. Крайний срок для ответа на заявку — 19 февраля.

Представители НАСА публично мало говорили о своих усилиях по получению места в корабле «Союз», ссылаясь на продолжающиеся переговоры. «Это активные переговоры прямо сейчас, и я просто не в состоянии говорить об этом», — сказал Кенни Тодд, заместитель руководителя программы МКС в NASA, 24 февраля во время брифинга о двух предстоящих выходах в открытый космос на станции.

Нашивка космического корабля "Союз МС-18" с именами экипажа, включая Марка Ванде Хей. Предоставлено: Роскосмос
Нашивка космического корабля "Союз МС-18" с именами экипажа, включая Марка Ванде Хей. Предоставлено: Роскосмос

Тодд отказался сообщить даже о том, кого NASA рассматривает кандидатом для полета на этом кресле «Союза», если получит его. Однако пресс-релиз Роскосмоса от 24 февраля, в котором обсуждалась подготовка российских космонавтов к предстоящей миссии, похоже, установил личность этого астронавта.

На одном из снимков космонавты Олег Новицкий и Петр Дубров тренируются на тренажере. На их летных костюмах видна нашивка миссии «Союз МС-18», на которой указаны их имена вместе с «Вандей Хей», что явно указывало на астронавта NASA Марка Ванде Хей. Его считали наиболее вероятным астронавтом для полета на эту миссию, учитывая, что он был дублером Кейт Рубинс во время предыдущей миссии «Союза» на станцию в октябре прошлого года, вместе с Новицким и Дубровым. Ванде Хей также был замечен на некоторых фотографиях в последние месяцы, тренируясь вместе с российскими космонавтами, входящими в основной и дублирующий экипажи.

В заявлении Роскосмоса не упоминается Ванде Хей, но также не упоминается и Сергей Корсаков, первоначально назначенный на «Союз МС-18». Рогозин сообщил российскому информационному агентству ТАСС 24 февраля, что предстоящий полет корабля «Союз» будет иметь «международный экипаж», но не уточнил состав.

Представители НАСА уже давно говорят о наличии «смешанных экипажей» как для «Союза», так и для коммерческих команд на МКС, при этом НАСА обменивает места на космических кораблях CST-100 Starliner и Crew Dragon в обмен на места на космических кораблях «Союз». Это обеспечит постоянное присутствие на станции как минимум одного россиянина и одного американца, если у одного транспортного корабля возникнут проблемы, которые выведут его из строя на длительный период.

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

В письме от 23 февраля к Юрчику, представители Фрэнка Лукаса (штат Оклахома) и Брайана Бабина (штат Техас), высокопоставленные члены полного научного комитета Палаты представителей и его космического подкомитета, соответственно, попросили проинформировать о деятельности НАСА по планам получения мест в «Союзе». «После того, как миллиарды долларов налогоплательщиков были потрачены на развитие возможностей для запуска американских астронавтов на американских ракетах с американской земли, для Конгресса важно понять существующие соглашения NASA и будущие планы доступа к Международной космической станции», — написали они.

NASA не опубликовало собственное сообщение о разговоре между Юрчиком и Рогозиным, и агентство не ответило на запрос о комментарии к заявлению России.

Первоисточник:

Let's block ads! (Why?)

TrendForce: мировой спрос на микросхемы на 30% выше предложения

Аналитики TrendForce выяснили, что мировой спрос на микросхемы на 10–30% выше текущего предложения, и потребуется не менее 3-4 кварталов, чтобы баланс на рынке восстановился. По подсчетам экспертов, в первом квартале 2021 года полупроводниковые предприятия увеличат выручку на 20% по сравнению с прошлым годом, поскольку их мощности будут полностью загружены.

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

По оценкам TrendForce, TSMC, Samsung и UMC продолжат лидировать на рынке в первом квартале и продемонстрируют заметный рост продаж из-за увеличения заказов. Сама TrendForce сейчас входит в пятерку компаний с доходом более $1 млрд.

TSMC является крупнейшим в мире производителем микросхем, контролирующим более половины рынка по доходам. Компания производит 5-нм и 7-нм чипы для таких технологических гигантов, как Apple, Qualcomm, Nvidia и AMD, которые перегружены заказами, и ее выручка, как ожидается, вырастет на 25% по сравнению с прошлым годом.

Samsung обслуживает множество дочерних компаний и предлагает передовые 5-нм и 7-нм чипы, поэтому стоит ждать увеличения выручки компании как минимум на 11% в этом квартале.

GlobalFoundries демонстрирует высокий уровень загрузки производственных мощностей, и, по прогнозам, в первом квартале объем ее продаж увеличится на 8% по сравнению с аналогичным периодом прошлого года. У предприятия значительное число заказов от автомобильной промышленности, а также от министерства обороны США.

Выручка UMC, которая производит микросхемы драйверов дисплея (DDIC), PMIC, RF-интерфейсов IoT, заработает на 14% по сравнению с аналогичным периодом прошлого года.

SMIC увеличит продажи на 17% в годовом исчислении.

Остальные пять предприятий из топ-10 (Towejazz, PSMC, VIS, Hua Hong и DB HiTek) производят специализированные микросхемы, а также BCD, CIS, DDIC, IGBT, PMIC, NOR и другие, пользующиеся большим спросом. Продажи этих продуктов растут вместе со спросом на электронику в целом, поэтому, по мнению TrendForce, эти компании продемонстрируют рост выручки на 4–42% в этом квартале.

Ранее такие же данные привели аналитики агентства J.P. Morgan. По их оценкам, объемы поставок полупроводников в разных отраслях на 10-30% ниже потребностей этих отраслей. Для того, чтобы промышленность смогла нарастить объемы производства, потребуется от 6 месяцев до года.

Let's block ads! (Why?)

Twitch удаляет антипрофсоюзную рекламу Amazon

Twitch начал удалять антипрофсоюзную рекламу, которую размещает на платформе материнская компания Amazon. В роликах сотрудники Amazon говорили о том, почему они хотят проголосовать против объединения в профсоюзы, и предлагали зрителям посетить сайт Amazon DoItWithoutDues.

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

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

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

Компания официально не комментирует ситуацию.

Между тем голосование за объединение в профсоюзы в Алабаме началось 8 февраля и завершится 29 марта.

Борьба за профсоюзы началась после череды сообщений работников Amazon о том, что компания заставляла складских рабочих выходить на 10-часовые ночные смены и планировала установить камеры наблюдения в своих транспортных средствах доставки. Кроме того, к компании возникли претензии из-за неспособности обеспечить безопасные условия труда для рабочих во время пандемии COVID-19.

В ноябре работники Amazon по всему миру провели массовые забастовки. Они требовали от компании соблюдения прав на организацию профсоюзов, уплаты налогов и повышения зарплат. Акции протеста поддержали в Бразилии, Мексике, США, Великобритании, Испании, Франции, Бельгии, Германии, Люксембурге, Италии, Польше, Индии, Бангладеш, Филиппинах и Австралии.

Let's block ads! (Why?)

За что IT-компании платят экономистам и сколько стоит человеческая жизнь?


На этой неделе наших соцсетях выступал Евгений Канашевский, экономист из Zalando, Economics Phd университета Штата Пенсильвания.

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

Делимся с вами расшифровкой эфира.



Меня зовут Евгений Канашевский. Сегодня мы поговорим о том, за что IT-компании платят экономистам, о том, чем экономисты отличаются от обычных data scientist-ов, и ответим на интересные вопросы вроде «сколько стоит человеческая жизнь?», которыми занимаются экономисты.

Для начала я представлю себя. Я сейчас работаю экономистом/data scientist-ом в большой компании Zalando. Это онлайн-магазин, который продает одежду, обувь, косметику в 16 странах Европы и планирует расширение на новые рынки. До того, как я присоединился к Zalando в 2020 году, я делал PhD по экономике в университете штата Пенсильвания. Я начал интересоваться экономикой задолго до этого, когда учился в МФТИ и потом также в Российской экономической школе.

До того, как поехать на PhD по экономике, я работал 2 года в агентстве контекстной рекламы в Москве; очень сильно хотел узнать больше о том, что такое экономика и как она устроена. Чтобы утолить свою жажду, я поехал в итоге на PhD. Сейчас я надеюсь поделиться с вами этим знанием. Надеюсь, вам будет интересно, и мы поймем, зачем бизнесу экономисты.
Для начала попробуем развенчать некоторые устоявшиеся представления об экономистах, которые, исходя из моего опыта, присутствуют в России. Многие из вас, наверно, брали курсы экономики в университете, и вы помните, что проходили рыночное равновесие, кривые спроса и предложения. Кто-то из вас, может быть, проходил макроэкономический баланс разного рода – из чего состоит ВВП, как считать его, что будет с ВВП в случае, если государство потратит столько-то денег, какие налоги собираются с населения. На такие вопросы вы, возможно, отвечали на курсах экономики в университете, и немногие из нас продвигались дальше.

Устоявшееся мнение об экономистах состоит в том, что они работают в научных институтах (РЭШ, ВШЭ) или международных организациях (МВФ, Мировой банк, Организация экономического содействия и развития), и там они помогают странам вырваться из ловушки бедности и провести экономические реформы. Они могут работать в государственных организациях – центральных банках, министерствах экономического развития своих стран. Если они супер-амбициозны, то они могут попробовать стать экономическим советником президента США. Стереотипное представление об экономистах в индустрии состоит в том, что в индустрии они работают в банковской сфере и в финансовой сфере.

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

Один из фундаментальных вопросов, на которые ищут ответы экономисты, звучит так: «Почему одни страны богатые, а другие бедные. Это вопрос вида «что было раньше – яйцо или курица?» Что было раньше: экономический рост или демократические институты? Страны англосаксонского мира такие богатые, потому что они установили у себя демократические институты (разделение властей, независимая законодательная власть, независимая судебная система, отделенные от исполнительной власти) – и поэтому стали такими богатыми впоследствии, смогли расти экономически? Или все наоборот: эти страны росли экономически, и потом, став богатыми, решили установить у себя демократические институты? Это нетривиальный вопрос, на него очень сложно ответить. Этот вопрос существенен для многих стран: например, Китай – это страна, чья экономика растет очень быстро. Сможет ли она расти дальше теми же темпами, и нужны ли Китаю эти самые демократические институты, либо Китай сможет продолжать расти в достаточно недемократичной среде?

Этот вопрос был актуален и раньше. В первой половине XX века СССР развивался очень быстро, возможно, быстрее, чем страны западного мира. Экономисты задавались вопросом – сможет ли СССР расти так и дальше, этот вопрос был крайне важен стратегически во время Холодной войны. Дальнейшая история показала, что СССР не смог продолжать свое экономическое развитие, и консенсус среди экономистов состоит в том, что это было невозможно из-за отсутствия демократических институтов и рыночных механизмов экономики.

Такими вопросами задаются экономисты. Эти вопросы сложны, потому что в мире не так уж и много стран; невозможно заглянуть в параллельную вселенную, где СССР развивался бы с применением рыночных механизмов экономики и демократических институтов. Помимо вопросов в глобальном масштабе, экономисты задаются и более повседневными вопросами, которые имеют хорошую практическую ценность. Например – как выгодно продать радиочастоты в нескольких штатах США. Представьте себе: вы владеете определенным диапазоном радиочастот (вы представляете государство). Вы хотите продать их наиболее выгодным способом – так, чтобы максимально принести денег в бюджет. Возникает вопрос: как устроить механизм, с помощью которого вы будете это делать? Экономисты предлагают использовать аукционы, чтобы продавать частоты; это кажется логичным, если вспомнить, как продаются произведения искусства, например. Но тогда возникает следующий вопрос: как оптимально устроить аукцион, чтобы получить в бюджет максимально много денег?

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

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

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

Конечно, ситуация может быть гораздо сложнее. Может быть, вам придется провернуть цепочку из очень многих ходов – привлечь очень много пар людей, в которых, когда они все вместе, получится найти такие обмены, чтобы все нуждающиеся люди из этих пар получили почку. Необязательно только две пары. Можно представить пример с тремя парами: почка здорового человека из одной пары подходит нуждающемуся человеку из следующей пары и так далее. Такие циклы могут доходить до 70 пар, на самом деле. Это пример случая, в котором экономисты разработали алгоритм для того, чтобы организовать «рынок» и помочь людям с пересадкой почек. За это была получена Нобелевская премия по экономике в 2012 году профессором Стэнфордского университета Элом Ротом.

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

Представьте, что вы хотите потратить деньги на улучшение дорог в России. Каждый год на дорогах погибает 15 тысяч человек, примерно. Вы думаете, сколько вы готовы инвестировать в улучшение дорог – с точки зрения государства. Хороший способ думать об этом – это сколько человеческих жизней спасет такое улучшение дорог. Для хорошей оценки издержек на построение дорог и пользы, которую можно получить от построения дорог, нужна как раз цена человеческой жизни.

Это оценки были сделаны; они были сделаны для США, потому что там есть хорошие данные на самом разном уровне. Эти оценки говорят, что цена человеческой жизни колеблется в диапазоне от 4 до 9 миллионов долларов. Такие оценки, конечно, нужно проецировать на Россию – мы должны измерить, как цена человеческой жизни отличается в странах, где люди меньше зарабатывают и приносят меньше ценности. Это очень грубый подсчет, но есть правила пересчета. И, как это ни грубо звучит, цена человеческой жизни в России меньше, чем в Америке, просто из-за того, что экономика в России менее производительна. Но, тем не менее, можно получить какие-то оценки и с помощью этого решать практические вопросы – например, сколько мы готовы тратить на улучшение безопасности на дорогах, чтобы терять меньше людей.

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

Где работают экономисты – помимо международных организаций, научных институтов, госорганизаций и банков? Экономисты работают в отраслевом консалтинге, в основном в разных консалтинговых фирмах. Все больше и больше работают в больших и не очень больших IT-компаниях. Просто чтобы назвать пример самых больших компаний – это Google, Amazon, Uber, Facebook; компания, в которой работаю я (Zalando) – это e-commerce-компания, у которой есть собственная команда экономистов для решения задач о поведении людей. Netflix – пример компании, не очень большой по штату сотрудников, которая при этом нанимает экономистов, которые решают очень интересные задачи.

Рынок компаний, которые нанимают экономистов, не ограничивается этими примерами. Но большие компании, которые нанимают много людей в принципе, нанимают все больше и больше экономистов.

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

Чтобы ответить более детально на вопрос «почему IT-фирмы набирают именно экономистов», разберем три пункта. Во-первых, почему экономисты исследуют, как принимают решения люди в самых разных ситуациях – как так получилось, что они этим занимаются и задают странные вопросы («какова ценность человеческой жизни?», «как устроить рынок пересадки почек?»). Во-вторых, мы разберем 4 вида задач, для которых бизнесу нужны экономисты. И, наконец, мы обсудим, почему бизнесу нужны именно экономисты, а не обычные data scientist-ы: в чем различия между ними.

Пункт первый: почему экономисты отвечают на вопросы о поведении людей? Здесь не помешает немного истории. Экономисты начали изучать рыночное равновесие еще в XVIII веке (как минимум). Они начали задавать вопросы: как устроены рынки, как формируется спрос, как устроено предложение. Они думали о классических рынках – давайте представим рынок хлопка или зерна, например. Это не было связано с такими «безумными» вопросами вроде ценности человеческой жизни. Однако в этих классических рынках равновесие – равновесная цена, количество проданных товаров – зависело от решений, принимаемых людьми, и от того, какими стимулами руководствуются люди при покупке и продаже товаров. Когда экономисты изучали рыночное равновесие, то для того, чтобы лучше давать ответы на возникающие вопросы, им приходилось разрабатывать достаточно продвинутые математические методы. К XX веку экономисты и математики разрабатывали математические методы для ответов на вопросы, связанные с рыночным равновесием.

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

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

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

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

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

Первая область – оценка спроса на товары или услуги. Здесь можно подумать о многих бизнесах, но я приведу самые яркие примеры. Amazon – один из крупнейших онлайн-магазинов (не могу сказать, кто самый крупный – Amazon или Alibaba), огромная компания с огромным штатом, которой очень важно оценивать спрос: сколько товаров будет продано, как изменение цен повлияет на продажи. Uber – рай для экономистов, потому что у него очень много данных: можно оценивать спрос на такси, можно отвечать на вопросы типа «как установить цены на Uber в час пик в центре Манхэттена, как эти цены должны отличаться от цен в другое время в этом же месте; как сделать так, чтобы Uber получил выручку, и при этом люди могли заказать такси и такси к ним приехало». То есть, мы видим, что здесь много людей, и у них разные стимулы: у клиента – стимул как можно быстрее и дешевле поехать на такси, Uber и таксист – хотят заработать денег.

Второй пример задачи – это аукционы. Здесь самые яркие примеры – это Google и Yandex, рынки онлайн-рекламы. Каждый раз, когда вы вбиваете в поиск что-либо, проводится маленький аукцион, и кто-то платит за то, чтобы показать вам рекламу. От 70 до 90% выручки материнской компании Google – Alphabet – приходится на эти аукционы, то есть, Google живет за счет рекламы (Yandex тоже). Экономисты работают над тем, как спроектировать эти аукционы таким образом, чтобы бизнесы не тратили на рекламу лишние деньги, а пользователи получали релевантную рекламу. Все эти стимулы учитываются в проектировании аукционов экономистами.
Третий пласт задач – это эксперименты и квазиэксперименты (A/B-тесты). A/B-тестирование проводится рутинно, постоянно в больших компаниях. Экономисты здесь занимаются проектированием систем для A/B-тестирования; на самом деле, провести его легко, сложно сделать это хорошо. Как правильно провести A/B-тестирование, подсчитать результаты, затратить минимум ресурсов и получить максимальную выгоду – этим всем занимаются экономисты в таких компаниях, как Google, Facebook или Zalando. Компания Netflix хорошо известна своей платформой для экспериментов и A/B-тестов.

Четвертый пласт – это измерение downstream impact: как продукт влияет на, допустим, lifetime value, которые вы получаете от одного клиента. Представьте, что вы хотите оценить, сколько должен стоить подписочный сервис вроде Amazon Prime: какую цену просить у подписчиков, чтобы максимизировать количество подписок, чтобы люди не отписывались? Для этого нужно оценить, сколько ценности Amazon Prime приносит клиенту – не за день или месяц, а годами. И такие задачи, когда есть долгосрочное планирование и прогнозирование, долгосрочная оценка, решают экономисты для бизнеса.

Мы видим эти задачи, и вроде бы все хорошо, но возникает вопрос: чем экономисты отличаются от обычных data scientist-ов, ведь они тоже решают похожие задачи? Почему экономисты особенные, в чем их сравнительное преимущество? Объясним на примере «лестницы причинно-следственных связей» (ladder of causality). У нее три уровня. На примере трех вопросов в контексте оффлайн-магазина я попытаюсь объяснить, почему бизнесу нужны экономисты.

Представьте, что вы – владелец обыкновенного магазина на углу, и вы хотите предсказать спрос на пиво и чипсы. Вы хотите пополнить запас товаров для продажи на следующую неделю – для этого нужно предсказание спроса. Представим первый случай: следующая неделя не отличается существенно от предыдущей. Тогда на основании истории предыдущих покупок мы сможем построить модель, которая предсказывает спрос на чипсы и пиво на следующую неделю. Вопрос, который вы задаете, таков: «сколько пива и чипсов люди купят при текущих ценах в нашем магазине, или в других похожих магазинах?» Здесь очень важно словосочетание «при текущих ценах» — то есть, мы смотрим на статус-кво.

Это мы назовем вопросом первого уровня: нам не важно, почему спрос на товары был именно таким на прошлой неделе. Хорошая предсказательная модель, которую мы будем строить, не обязана давать объяснения того, почему люди покупали столько пива и чипсов – она должна на основе прошлых данных предсказать будущее с достаточной точностью. Примеры таких моделей: распознавание визуальных образов (отличить кошку от собаки на фото), определение спам-сообщений в e-mail, определение кредитного рейтинга потенциального клиента. В предсказательных моделях не важны причинно-следственные связи; основываясь на данных, которые у вас уже есть, вы хотите сделать предсказание для нового объекта – картинки, сообщения, клиента. Здесь методы машинного обучения замечательно работают. Мы можем обучить продвинутые методы и сделать очень хорошее предсказание.

Перейдем ко второму вопросу и второму уровню лестницы. Допустим, мы захотели изменить цену на пиво на следующую неделю. Вопрос, который мы задаем, звучит так: «что произойдет на следующей неделе с продажами пива, если поднять цену? А что произойдет с продажами чипсов, которые, возможно, связаны с продажами пива?» Почему мы не можем просто использовать случаи из прошлого, когда в прошлом менялась цена на пиво? Именно потому, что, возможно, в прошлом цена менялась по другим причинам. Сейчас мы хотим сами поднять цену; в прошлом, может быть, все магазины автоматически подняли ее одновременно, из-за изменения акцизов. Или это могло случиться по иным причинам. Но предсказательная модель не способна знать этих причин, и здесь мы не можем просто методом машинного обучения подкрутить цену на пиво, увеличить ее как-то и предсказать, что будет с продажами пива и чипсов. Модели машинного обучения не работают в терминах причин и следствий. Они просто видят корреляции, которые были в данных в прошлом, и видят условные вероятности: например, вероятность того, что человек купит чипсы, если он уже купил пиво.

Что делать в таком случае? Мы можем провести эксперимент. Мы можем поднять цену на пиво лишь в отдельном магазине нашей сети (предположим, у нас имеется сеть магазинов) и посмотреть, что в этом магазине произойдет на следующей неделе с продажами пива и чипсов – и в других магазинах тоже. Здесь мы проводим простейший A/B-тест. Как его правильно провести – именно такими задачами задаются экономисты в компаниях. Это второй уровень вопросов по причинно-следственным связям. Здесь, в отличие от первого уровня, мы хотим узнать, что произойдет, если мы внесем изменение – то есть, мы можем пощупать причину и следствие, изменение, которое мы вносим, и конечный результат (продажи пива и чипсов).

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

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

Пример такого вопроса: в 70-е годы XX века в Стране басков – регионе Испании – было сильное сепаратистское движение, происходило много терактов. Экономисты хотели оценить, что было бы со Страной басков – как бы она развивалась экономически – если бы этих терактов не было. Как экономисты это делают? Они строят параллельную реальность, в которой они строят воображаемую мирную Страну басков, и смотрят, как она развивается, какой в ней экономический рост. Результаты говорят о том, что террористическая активность в Стране басков уменьшила ее экономический рост на 10%. Тут мы можем понять, что именно такие вопросы экономиста задают уже давно, и они разработали много методов для ответа на такие вопросы. Именно этим они ценны бизнесу.

Итак, мы попробовали объяснить, чем экономисты ценны бизнесу и как они отличаются от обычных data scientist-ов. Последний вопрос нашего вебинара: «Почему бизнесы будут нанимать все больше экономистов?»; ответим с помощью примера онлайн-рекламы.

Компании тратят огромные деньги на рекламу – онлайн и оффлайн. Если говорить в двух словах – на самом деле, никто не знает, как именно работает реклама. Статус-кво среди маркетологов — в том, что реклама работает. Многие экономисты имеют другое мнение, они считают, что в 90% случаев она не работает – но статус-кво состоит в том, что она работает «как-то» (и никто не может сказать, как именно). Вопрос «как именно работает реклама» — это как раз вопрос из 2-3 уровней лестницы причинно-следственных связей, и ответить на него хорошо с помощью предсказательных моделей невозможно.

Более конкретные примеры вопросов, которыми задаются бизнесы: «Что будет с продажами, если в следующем месяце потратить на рекламу в 2 раза больше?» Конечно, мы можем провести эксперимент – потратить в 2 раза больше на рекламу. Но как понять потом, что новые продажи принесла именно реклама? Это могло произойти благодаря сезонным распродажам в том же месяце, или благодаря другой рекламной активности. У компании может быть много каналов рекламы, особенно у такой большой, как Zalando, и бюджеты могут меняться по многим из них. Допустим, мы хотим увеличить бюджет в одном из них и понять, что происходит с продажами – но как понять, что именно это изменение привело к дополнительным продажам? Что, если продажи отложенные — пользователь увидел рекламу, но покупку совершил только через месяц?
Следующий вопрос: как отвечать на такие сложные вопросы при условии, что пользователи в Европе и в других странах все меньше и меньше готовы делиться своими данными – cookies и прочими? Бизнесам все сложнее отслеживать пользователей. Отслеживание пользователей за пределами вашего сайта на индивидуальном уровне невозможно в большинстве случаев; вы не можете знать, что пользователь делал на той платформе, где была ваша реклама – в Facebook или Instagram. Такими вопросами задаются бизнесы, и ради таких вопросов они нанимают экономистов.

В завершение разговора про экономистов в бизнесе я хочу рассказать одну итальянскую притчу. У владельца пиццерии было два сына, и он отправил их раздавать купоны на бесплатный кофе – просто чтобы привлечь больше покупателей в свою пиццерию. И он устроил соревнование между сыновьями. Сказал: я вам даю синие и красные купоны, чтобы различать, от кого пришел покупатель с купоном, и я куплю футбольный мяч тому, чьих купонов на кассе окажется больше. Один сын пошел на улицу раздавать купоны, чтобы привлечь посетителей. А другой сын остался в пиццерии и, пока отец готовил пиццу на кухне, стал раздавать купоны людям в очереди, которые уже собирались купить пиццу. Вопрос: кто же из этих сыновей победил?

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

Я расскажу, что вам делать, если вы хотите больше знать об экономике. Я могу посоветовать книги и подкасты. Замечательная книга, с которой стоит начать – книга бывшего ректора РЭШ Сергея Гуриева, «Мифы экономики». Оттуда я сегодня взял пример о стоимости человеческой жизни. Вы можете в этой книге прочитать о мифах, которые существуют о том, что делают экономисты и как устроена экономика, и о развенчании этих мифов. Про то, почему одни страны богатые, а другие – нет, какой консенсус у экономистов и сколько работы они проделали, изучая историю стран, вы можете прочитать в книге «Why Nations Fail». Про более микроуровневые задачи, когда мы смотрим не на страны, а на поведение отдельных людей, и про то, чем экономисты отличаются от normal data scientists, которые занимаются задачами предсказания или классификации, вы можете прочитать в книге «Mostly Harmless Econometrics» — это про эконометрические методы, специальные статистические методы для изучения причинно-следственных связей. Книга «The Book of Why» также фокусируется на причинно-следственных связях, как раз оттуда я взял концепцию трехуровневой лестницы причинно-следованных связей; она отлично объясняет, почему бизнесам нужно все больше и больше экономистов.

Также я хотел поделиться подкастами и лекциями. На русском языке есть «Экономика на слух» — отличный подкаст от VTimes. Также подкаст «Экономика и жизнь» — это на YouTube-канале РЭШ; вообще, на нем можно найти много интересных лекций.

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

Q: сейчас в России потолок зарплат экономистов $1000 в месяц – что нужно, чтобы устроиться в Google?

На самом деле, для того, чтобы устроиться в Google экономистом, вам нужен PhD по экономике – Google может себе позволить выбирать только из PhD по экономике. Хотя это не значит, что вы совсем не можете заниматься экономическими вопросами в Google: вы можете заниматься ими, будучи data scientist-ом и сотрудничая с экономистами. Это мне известно от моих коллег, которые работают в Google. Это будет не так-то просто, но, я думаю, возможно.

Если у вас будут вопросы по тому, что я рассказал, то я на самые интересные из них отвечу еще позже. Спасибо всем, кто задавал интересные вопросы и кому была интересна эта лекция.

Let's block ads! (Why?)

Соглашение Эйнштейна и einsum

Удивительное дело, но в русскоязычном сегменте интернета почти нет материала, разъясняющего понятным языком соглашение Эйнштейна о суммировании. Не менее удивительно то, что материалов, позволяющих понять принцип работы функции einsum в русскоязычном интернете ещё меньше. На английском есть довольно развёрнутый ответ о работе einsum на stack overflow, а на русском только некоторое число сайтов, предоставляющих кривой перевод этого самого ответа. Хочу исправить эту проблему с недостатком материалов, и всех, кому интересно приглашаю к прочтению!


Обсуждаем соглашение Эйнштейна

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

Соглашение: далее в статье объекты вида a_ix_iилиa_ix^i я буду называть термами.

О чём вообще соглашение Эйнштейна?

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

Правило № 1: Суммирование ведётся по всем индексам, повторяющимся дважды в одном терме.

Пример: рассмотрим выражение следующего вида:

\sum_{i = 1}^3 a_ix_i = a_1x_1 + a_2x_2 + a_3x_3

С использованием соглашения Эйнштейна это выражение может быть переписано так:

a_ix_i \text{ или } a_ix^i

Таким образом мы избавляемся от знака суммы, и просто пишем единственный терм. Обратим внимание, что в этом терме индекс i повторяется дважды, а значит, в соответствие с первым правилом мы понимаем, что суммирование ведётся по индексу i, а точнее, по всем возможным значениям, которые принимает этот индекс.


Рассмотрим ещё один пример: пусть нам нужно умножить матрицу A \in \mathbb{R}^{m\times n} на вектор v \in \mathbb{R}^{n}. Результатом будет являться вектор b \in \mathbb{R}^{m}. По определению:

b_i = \sum\limits_{j = 1}^n A_{ij} v_j, ~ i = 1, \ldots, m

Соглашение Эйнштейна позволяет избавиться от знака суммы:

b_i = A_{ij}v_{j} = A_{ij}v^{j}

Заметим, что в терм индекс i входит один раз, а индекс j входит два раза, а значит, суммирование ведётся по индексу j.

Определение 1. Индекс, который входит в терм дважды, называется фиктивным индексом.

Определение 2. Свободным индексом назовём все индексы в терме, не являющие фиктивными.

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

  1. Новый фиктивный индекс не входит в множество свободных индексов терма.

  2. Новый фиктивный индекс принимает то же множество значений, что и старый фиктивный индекс.

Чтобы объяснить проще, рассмотрим следующий код на языке Python:

for i in range(M):
    for j in range(N):
        b[i, j] = A[i, j] * v[j]

Этот код кратко описывает процесс умножения матрицы на вектор, а точнее, этот пример. Здесь индекс j является фиктивным, а индекс i – свободным. Суммирование в соглашении Эйнштейна ведётся по фиктивным индексам. Имя переменной j мы можем заменить на любое другое.

Правило № 2. В каждом терме не может встречаться более двух одинаковых индексов.

Второе правило говорит нам, что мы можем написать a_{ij}b_{ij}, но не можем написать a_{ii}b_{ij} или a_{ij}b_{jj}, несмотря на то, что на практике такие выражения всё же имеют смысл.
Больше примеров:

a_i^i– здесь i является фиктивным индексом, т.к. повторяется дважды;

a_i^{jj}– здесь i является свободным индексом, а j – фиктивным;

a_{ii}^{jj}– здесь и i, и j являются фиктивными индексами;

a_{ij}^{ij}– здесь и i, и j являются фиктивными индексами;

a_{ii}^{ij}– не правильно по второму правилу (индекс i входит в терм трижды);

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

a_{ij}b_{i} + a_{ji}b_{j}

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

Правило № 3. В уравнениях, записанных с использованием соглашения Эйнштейна свободные индексы слева и свободные индексы справа должны совпадать.

Рассмотрим несколько примеров для закрепления этого правила:

b_i = A_{ij}v_{j}– этот пример мы уже рассматривали выше, здесь i является свободным индексом левой части уравнения, и свободным индексом правой части уравнения;

a_i = A_{ki}B_{kj}x_{j} + C_{ik}u_{k}– пример посложнее. Посчитаем вхождения индексов для каждого терма: в первый терм правой части k и j входят дважды, значит, они являются фиктивными индексами, i входит один раз, значит, является свободным. Во второй терм правой части k входит два раза, i – один, значит, k – фиктивный, i – свободный. В левой части индекс i входит один раз, а значит, является свободным. Итог: индекс i является свободным для обеих частей уравнения, а значит, правило 3 выполнено.

Рассмотрим так же несколько примеров, в которых третье правило не выполняется:

x_i = A_{ij}– слева i является свободным индексом, но справа свободны индексы i и j;

x_j=A_{ik}u_k– слева свободен индекс j, но справа свободен индекс i. Свободные индексы не совпадают;

x_i = A_{ik}u_k + c_j– здесь слева свободен индекс i, а справа свободны индексы i, j;

Пример упрощения сложного выражения с помощью соглашения Эйнштейна: тензорный поезд

Пусть A – пятимерный тензор. Тогда утверждается, что он может быть представлен в следующем виде:

A_{i_1i_2i_3i_4i_5} = \sum_{j_4=1}^{R_4}\sum_{j_3=1}^{R_3}\sum_{j_2=1}^{R_2}\sum_{j_1=1}^{R_1}G^{(1)}_{i_1j_1}G^{(2)}_{j_1i_2j_2}G^{(3)}_{j_2i_3j_3}G^{(4)}_{j_3i_4j_4}G^{(5)}_{j_4i_5}

Там сейчас не очень важно, что из себя представляется каждая G^{(k)}, и что такое R_i. Наша задача сейчас – исключительно синтаксическая игра. Нужно упростить выражение, особо не вникая в смысл происходящего.
Прежде всего видно, что свободными индексами являются i_1, i_2, i_3, i_4, i_5, а фиктивными, соответственно индексы j_1, j_2, j_3, j_4. Расположим индексы в соседних множителях так, чтобы в первом множителе индекс, по которому идёт суммирование, стоял снизу, а во втором тот же самый индекс стоял сверху. Так же заметим, что множителями являются тензоры G^{(k)}, и у них в верхнем регистре уже стоит (k). Чтобы повысить читаемость, будем оборачивать множители в скобки, и только потом ставить индексы. Само же упрощённое выражение переписывается из исходного почти дословно:

A_{i_1i_2i_3i_4i_5}=\left(G^{(1)}\right)_{i_1j_1}\left(G^{(2)}\right)_{i_2j_2}^{j_1}\left(G^{(3)}\right)_{i_3j_3}^{j_2}\left(G^{(4)}\right)_{i_4j_4}^{j_3}\left(G^{(5)}\right)_{i_5}^{j_4}

Ура, мы научились упрощать сложные выражения с помощью соглашения Эйнштейна!

Обсуждаем einsum

einsum это функция, присутствующая в нескольких популярных библиотеках для Python (NumPy, TensorFlow, PyTorch). Во всех библиотеках, в которых эта функция реализована, она работает одинаково (с точностью до функционала структур, определённых в конкретной библиотеке), поэтому нет смысла рассматривать один и тот же пример в разных библиотеках, достаточно рассказать про einsum в одной конкретной библиотеке. Далее в статье я буду использовать NumPy. einsum применяет соглашение Эйнштейна о суммировании к переданным массивам. Функция принимает множество опционально аргументов, про них лучше почитать в документации, мы же сейчас разберём, как передавать шаблон, по которому функция будет применять соглашение Эйнштейна.

Рассмотрим сразу такой пример: пусть A \in \mathbb{R}^{3\times5}, B \in \mathbb{R}^{5\times2} – две матрицы, и мы хотим их перемножить. Результатом будет матрица M \in \mathbb{R}^{3\times2}, которую мы можем записать следующим образом, используя определение матричного умножения и соглашение Эйнштейна:

M_{ij}=\sum_{k=1}^{5}A_{ik}B_{kj} = A_{ik}B_{kj}

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

M = np.zeros((3, 2))
for i in range(3):
    for j in range(2):
        for k in range(5):
            M[i, j] = A[i, k] * B[k, j]

Либо, используя функцию einsum можно написать это произведение в одну строчку:

M = np.einsum("ik,kj->ij", A, B)

Разберёмся, что за магия происходит в этой строчке. einsum принимает один обязательный аргумент: шаблон, по которому будет применено соглашение Эйнштейна. Шаблон этот выглядит так:

"{индексы, определяющие размерность первого массива},{индексы, определяющие размерность второго массива}->{индексы, определяющие размерность результирующего массива}"

Поведение шаблона einsum определяется следующими правилами:

  • Если один и тот же индекс встречается слева и справа от запятой (до стрелочки), то суммирование будет вестись по этому индексу;

  • Если после стрелочки ничего не написано, то суммирование произойдёт по всем встреченным осям;

  • Никакой индекс не должен встречаться 3 и более раз;

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

Рассмотрим теперь некоторое количество примеров разной степени сложности, чтобы закрепить понимание einsum:

Одна einsum, чтобы править всеми

Пример 1. Сумма всех значений вектора:

vector = np.array([1, 2, 3, 4, 5])
result = np.einsum("i->", vector)
print(result)
Output

Пример 2. Сумма всех значений матрицы:

matrix = np.array([[1, 2], [3, 4], [5, 6]])
result = np.einsum("ij->", matrix)
print(result)
Output

Пример 3. Сумма значений по столбцам:

matrix = np.array([[1, 2], [3, 4], [5, 6]])
result = np.einsum("ij->j", matrix)
print(result)
Output

Пример 4. Сумма значений по строкам:

matrix = np.array([[1, 2], [3, 4], [5, 6]])
result = np.einsum("ij->i", matrix)
print(result)
Output

[3, 7, 11]

Пример 5. Транспонирование (я об этом не написал, но оси, по которым суммирования не произошло, мы можем возвращать в любом порядке):

matrix = np.array([[1, 2], [3, 4], [5, 6]])
result = np.einsum("ij->ji", matrix)
print(result)
Output

[[1, 3, 5], [2, 4, 6]]

Пример 6. Умножение матрицы на вектор:

matrix = np.array([[1, 2], [3, 4], [5, 6]])
vector = np.array([[1, 2]])
result = np.einsum("ij,kj->ik", matrix, vector)
print(result)

Заметим, что вектор имеет форму 1 \times 2, и чтобы умножить матрицу на него по правилам, его нужно было бы транспонировать. Однако с помощью einsum мы можем задать ось, по которой будет вестись суммирование, и немного выиграть по памяти, не создавая копию уже существующего вектора.

Output

[[5], [11], [17]]

Пример 7. Умножение матрицы на матрицу:

matrix1 = np.array([[1, 2], [3, 4], [5, 6]])
matrix2 = np.array([[1, 0], [0, 1]])
result = np.einsum("ik,kj->ij", matrix1, matrix2)
print(result)
Output

[[1, 2], [3, 4], [5, 6]]

Пример 8. Скалярное произведение векторов:

vector1 = np.array([[1, 2, 3]])
vector2 = np.array([[1, 1, 1]])
result = np.einsum("ik,jk->", vector1, vector2)
print(result)
Output

Пример 9. След матрицы:

matrix1 = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
result = np.einsum("ii->", matrix1)
print(result)
Output

Пример 10. Адамарово (покомпонентное) произведение:

matrix1 = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
matrix2 = np.array([[1, 0, 0], [0, 1, 0], [0, 0, 1]])
result = np.einsum("ij,ij->ij", matrix1, matrix2)
print(result)

Это может показаться контринтутивно, но, как написано выше: если не понятно, что делает einsum – запиши через циклы:

result = np.zeros(matrix1.shape, dtype="int32")
for i in range(result.shape[0]):
    for j in range(result.shape[1]):
        result[i, j] += matrix1[i, j] * matrix2[i, j]
print(result)
Output

[[1, 0, 0], [0, 5, 0], [0, 0, 9]]

Пример 11. Кронекерово (внешнее) произведение векторов:

vector1 = np.array([1, 2, 3])
vector2 = np.array([1, 0, 0])
result = np.einsum("i,j->ij", vector1, vector2)
print(result)
Output

[[1, 0, 0], [2, 0, 0], [3, 0, 0]]

Пример 12. Транспонирование тензора:

A = np.array([[[0, 1], [1, 2], [2, 3]], [[1, 2], [2, 3], [3, 4]], [[2, 3], [3, 4], [4, 5]]])
result = np.einsum("ijk->jki", A)
print(result)
Output

[[[0, 1, 2], [1, 2, 3]], [[1, 2, 3], [2, 3, 4]], [[2, 3, 4], [3, 4, 5]]]

Пример 13. Произведение тензора на матрицу по третьей моде:

A = np.array([[[0, 1], [1, 2], [2, 3]], [[1, 2], [2, 3], [3, 4]], [[2, 3], [3, 4], [4, 5]]])
U = np.array([[1, 2], [2, 3]])
result = np.einsum("ijk,nk->ijn", A, U)
print(result)
Output

[[[2, 3], [5, 8], [8, 13]], [[5, 8], [8, 13], [11. 18]], [[8, 13], [11, 18], [14, 23]]]

Итоги

Конечно, einsum поставляет только дополнительный синтаксический сахар. Всегда можно использовать цепочки вложенных циклов, множество библиотечных функций (np.dot, np.outer, np.tensordot, np.transpose, np.cumsum и т.д.), и вообще не использовать einsum. Но если потратить время и понять, как она работает, то можно научиться писать гораздо более сжатый, и, не побоюсь этого слова, эффективный код.

Ссылки

Ролик с примерами einsum (ещё больше примеров).

Соглашение Эйнштейна (база)

Соглашение Эйнштейна (продвинутая часть)

Let's block ads! (Why?)