— Мне нужен генератор случайных чисел
— 42!
Программистский анекдот

— Если на клетке слона прочтёшь надпись «буйвол», не верь глазам своим.
Козьма Прутков

Я начинал писать эту заметку давно и возвращался к ней, дописывая, много раз. Но всё не хватало какого-то финального аккорда, чтобы её закончить. Или повода. Но вот недавно он случился. Хотя в итоге я решил “финальный аккорд” поставить в начало заметки. Для привлечения внимания.

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

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

А ещё я очень надеялся, что великая ИТ-компания Яндекс всем покажет, что могут сделать технологии в таком традиционном бизнесе, как транспорт. Artificial Intelligence с Machine Learning, вот это всё. Уж кто, как не Яндекс, сможет это сделать?

Но нет. Первый звоночек прозвучал, когда Яндекс.Драйв очень долго не подтверждал мою заявку на регистрацию. Почему другие каршеринги делают это за пару часов (как мой любимый YouDrive) или в худшем случае за несколько дней, а Яндекс не был способен проверить меня и за несколько недель, хотя со всей информацией, которую Яндекс знает о нас, он мог бы делать это за минуты? Благодаря обращению в поддержку, мне удалось в итоге зарегистрироваться. Оказалось, мешал тот самый Machine Learning, который почему-то посчитал меня подозрительным. Ну ладно, квест был пройден, и я стал ездить на Яндексе.

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

— У вас должно быть действующее российское водительское удостоверение, возраст от 26 лет, водительский стаж от 6 лет и последняя версия приложения.

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

(На всякий случай — мне сильно больше 26 лет, да и стаж сильно больше шести). Сначала я думал, что мой случай исключительный и единичный, но потом оказалось, что недоумевает об избирательности Яндексовского механизма определения избранных пол-интернета (включая и сотрудников Яндекса, которые ничего не могут с этим поделать). В том числе людей взрослых, опытных и в общем состоятельных.

И всем им отказывает Яндекс по одной и той же причине — “наш алгоритм решает сам, кому давать машину и кому нет, и мы ничего не можем поделать”. И это и есть как раз то самое “восстание машин”, которым нас так долго пугали фантасты. Мы всё думали, что оно придёт в виде Шварценеггера в образе Терминатора, а оно пришло в виде невозможности взять хорошую машину в каршеринге по непонятным причинам.

В этом примере наглядно демонстрируется случившаяся в программировании с приходом алгоритмов AI и ML революция. Революция недетерминируемости процесса. Всю предыдущую историю компьютерные программы были торжеством предсказуемости и определённости. Сколько раз одну и ту же программу не запускай — на одних и тех же входных данных она выдаст одни и те же результаты (кроме заведомо известных случаев, когда программа специально выдаёт случайный ответ). Это здорово отличается от реальной жизни, в которой из-за огромного количества случайностей достоверно нельзя ничего предсказать.

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

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

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

В Uber женщины зарабатывают меньше мужчин, но не потому, что их кто-то притесняет, а потому, что компьютеру всё равно, кто за рулём: мужчина или женщина. Алгоритм платит больше тому, кто лучше работает.

Это всё заставляет задуматься о такой вещи, как совесть и мораль (как тонко и точно заметил Влад Шершульский, “совесть — это авторефлексия второго порядка”), но, пожалуй, это тема отдельной заметки.

Поэтому не буду заходить в дебри, а лишь замечу, что Яндексу поскорее надо что-то сделать со своим алгоритмом определения хороших водителей. Иначе вместо хорошего примера использования Machine Learning мы получаем прямо анти-пример, где компания отдаёт свой бизнес на волю бездушной машине, лишая себя прибыли. И носится с этой машиной, как обитатели “Села Степанчикова” у Достоевского с Фомой Фомичём Опискиным, не понимая, как эта машина работает и лишая себя возможности на неё повлиять, соглашаясь с описками.

Machine Learning даёт нам кучу удивительных и казавшихся ещё вчера фантастическими возможностей. Но внедряя эти технологии, помните, что машина — это всего лишь машина. И она должна оставаться всегда помощником человека, а не становится хозяином. Не позорьтесь так, как Яндекс. Ну а на Яндекс я всё ещё надеюсь. Там всё-таки ещё достаточно много работает умных людей, которые должны быть поумнее, чем бездумная машина. И разрешить мне наконец-то Мерседесы и BMW (собственно в этом цель заметки и состоит)!