AI для чайников | Александр Троицкий
1.63K subscribers
37 photos
6 videos
6 files
40 links
Ex- ING (IB), Big4, Lamoda, Oliver Wyman. Занимаюсь разработкой AI-моделей и продуктов. Сюда пишу мысли вечного новичка в AI since 2018.

Автор канала: @troitskii

#machinelearning #datascience #python
Download Telegram
Дамы и господа, хочу сообщить одну маленькую новость: я меняю место работы и ухожу заниматься старт-апом. Моими инвесторами выступают крупнейшие компании США, а штат моих работников - программистов уже укомплектован ребятами из Калифорнии, Лондона и Москвы. Мы будем создавать искуственный интеллект для банковского сектора. На мне полное управление компанией и доля в бизнесе. В связи с этим я обещаю писать больше и интереснее! Надеюсь, кроме кода вам будет интересно узнать про продажи и то, как мыслит российский топ-менеджмент. Поехали!
👍1
Айтишники - натуры хрупкие. Чем больше человек занимается кодом, тем слабее становятся его социальные скиллы (в лучшем случае остаются на том же уровне). Так вот гении-программисты - это обычно асоциальные люди, в разговоре с которыми надо максимально фильтровать свою речь, чтобы (1) их не обидеть (2) не заставить их сомневаться в целесообразности твоей бизнес-идеи (3) не демотивировать их. Обычно в компаниях существует прослойка между бизнесом и программистами, которая зовётся IT project management. Эти ребята умеют разговаривать с обеими сторонами процесса и имеют верхнеуровневое представление как о деятельности реального бизнеса, так и об основах программирования. Они приоритезируют задачки от бизнеса и следят за производительностью кодеров.
Немного про самомотивацию. Японское понятие икигай переводится как «смысл жизни». Эта структура и правда классная: с её помощью можно расставить приоритеты в жизни и лучше понять себя и свою работу!
Откуда берутся данные?

Сканеры, кассы, мобильные, камеры безопасности и ERP системы постоянно посылают данные в компании, которые ими владеют. На входе эта информация сырая и неструктурированная. Чтобы привести её в порядок, в больших компаниях есть специальные люди, которые создают хранилище данных в виде таблиц и витрин. Части единого хранилища могут различаться по быстродействию и тематике: из-за этого на первый взгляд простой анализ может оказаться муторной работой по собиранию данных в течение месяца из разных источников. Всегда следите за тем, откуда у вас данные и чем вы кормите своё машинное обучение и нейросети.
Лично мне больше всего понравилась вот такая картинка про устройство BI в компаниях.
Расскажу про первые дни в своей новой роли. У нас небольшая команда, я единственный человек который не понимает математического смысла нормализации с помощью натурального логарифма и экспоненты. Машинное обучение это чистая математика, причём сложная и недоступная пониманию обычного человека. Если ты не выпускник мехмата МГУ или Бауманки, то в лучшем случае ты просто понимаешь, что что-то можно посчитать с помощью каких-то факторов, но сделать это просто не можешь. Или делаешь с огромным количеством лишних действий.
У людей с математическим складом ума очень сложно с общением и верхнеуровневым мышлением. Я стал замечать это давно. Человек очень круто понимает суть какого-то предмета, но не видит всей картины, потому что мало общается с окружающими. Отсюда возникает огромное количество проблем, связанных с конечной производительностью труда. Математики очень нужны современному миру - они двигают его вперёд и их труд в бизнесе хорошо оплачивается, но бизнес расцветает, когда soft skills встречаются с hard skills и поэтому нужна синергия с гуманитарными и творческими науками.
👍2
Сегодня расскажу о Джини. Это такой показатель, с помощью которого меряют предсказательную силу модели или её отдельных факторов в задачах машинного обучения. Указывается в виде процента. Чем выше процент, тем лучше модель что-либо предсказывает. Вообще, этот коэффициент был изобретён экономистом Коррадо Джини в 1912 году, чтобы определять степень расслоения общества относительно их дохода.
Всё дело в выборке! Сегодня чтобы запустить сложный алгоритм machine learning достаточно просто написать одну строку кода. Всё остальное сделает библиотека, которую вы используете - напрягаться не надо, надо просто понимать где какую библиотеку использовать. Если всё так просто, почему дата саентисты получают большие деньги и так ценятся среди работодателей? Вся суть кроется в данных, на которых вы запускаете алгоритм. Если они кривые - будут кривые результаты машинного обучения, поэтому 90% времени дата саентисты проводят за очисткой и обработкой данных. Эта задача не всегда требует высоко интеллекта от своего исполнителя, от этого у дата саентистов (которые считают себя элитой среди людей здесь и сейчас) часто пригорает и они работают медленно и неохотно, мол "пусть кто-нибудь другой делает за меня это дерьмо, я слишком умён для этого": они ругаются, но делают.
Кандидаты разлетаются как горячие пирожки. Уже полтора месяца не могу найти себе Junior Data Scientist. Ребята, которые присылают резюме становятся не актуальными уже через неделю - так быстро находят работу! Не могу понять, что делать в такой ситуации: может быть, брать в штат без интервью и тестов? Просто смотреть на образование и хватать, пока есть? Это, конечно, шутка, но ситуация выглядит нездорово и напоминает крипто-бум два года назад, только сейчас вместо биткоина это датасаентисты.
👍1
Сегодня возвращается владелец нашего супер-стартапа. Отдыхал 2 недели в Испании, при этом первую неделю всегда был на связи и каждый день созванивался со мной на 15-30 минут, чтобы обсудить основные моменты. К чему я это? Когда ты создаёшь свой бизнес, ты должен быть готов, что твоё время не сможет чётко разделяться на работу и отдых. Ты всегда должен держать руку на пульсе. Построить своё дело на принципе "оно же автоматические работает, мне ничего не нужно делать", "это же код, всё работает, ничего не сломается" - это миф, как и сказки про "пассивный доход".
Разработка - процесс постоянный! Допустим, вы написали код, который классно работает и даёт высокий показатель Джини. Думаете на этом можно закончить? НЕТ. Модель требует постоянной поддержки и переобучения. Допустим, вы сделали ИИ, который принимает решение стоит ли выдавать кредит физическому лицу. Прошло два года: половина источников данных отвалилось, потому что теперь вместо 4 столбцов в привычной таблице на сайте ФНС их вдруг стало 6, а один из провайдеров данных по API вдруг решил изменить аттрибуты запросов. Кроме того, экономическая ситуация изменилась, и теперь потребителей надо судить не по их текущему балансу в рублях, а в евро (например).
В общем, с машинным обучением и ИИ расслабляться нельзя! Надо держать руку на пульсе и заново разрабатывать модель раз в какой-то срок. У меня это два года.
Полезные штуки! Коэффициент корреляции Пирсона (r-Пирсона) применяется для исследования взаимосвязи двух переменных, измеренных в метрических шкалах на одной и той же выборке.
Он позволяет определить, насколько пропорциональная изменчивость двух переменных. Грубо говоря, насколько вероятно, что если изменится А, то изменится и В. Объясняя картинку сверху: если коэффициент равен 1, значит данные А и В - это по сути одно и то же. Если 0, то признаки никак не зависят друг от друга. -1 значит отрицательное отношение: чем больше А, тем меньше В. Например, мы решили взять продолжительность жизни по годам и расходы на здравоохранение на душу населения за тот же период. Корреляция этих двух признаков равна 0,6 (или 60%), значит чем больше расходы - тем больше продолжительность жизни. Корреляция нужна в машинном обучении прежде всего, чтобы отсеивать дублирующие друг друга признаки.
Новая рубрика нейросеть дня: ИИ для обнаружения паразитов на голове лосося. Нейросеть будет сканировать головы рыб, составляя индивидуальные медицинские карточки каждой из них. Сумасшествие? Нет! Будущее!
Без SQL не нужен Python / R. Сегодня хотел бы затронуть важную тему: с какого из вышеперечисленных языков лучше начинать? Здесь всё зависит от ситуации. Например, вы работаете в консалтинге и все данные вам приносят готовыми на блюдечке - в такой ситуации SQL и правда не нужен. Другое дело, если вы работаете "в индустрии" (то есть не в консалтинге), и чтобы получить данные вам приходится ждать очереди в BI по 2-3 недели - в такой ситуации проще запросить права доступа к базам данных и начать работать самому.
Без SQL не нужен Python / R. Part 2. Продолжая рассуждения по теме, скажу, что у SQL есть входные барьеры. Пример 1. У вашей организации 100500 баз данных, нету нормального описация таблиц - без главы BI хрен разберёшься что и где лежит. Пример 2. Вы можете получить доступ к базе Х, но не можете получить доступ к базам У и Й по каким-то политическим причинам, а без них у вас не получится провести нормальный анализ. Пример 3. Вы хорошо закорешились с аналитиком из BI, и он отвечает на ваши запросы в тот же день в телеграме. Пример 4. Вы не уверены, что правильно написали код. В таком случае вы можете просто нагрузить базу данных (она даже может перестать работать на время), вас отругают и лишат прав доступа.
👍2
Как выходят обновления. Так исторически сложилось, что каждое обновление IT продукта (в том числе созданное на машинном обучении) надо как следует протестировать перед тем, как "вывешивать" на основной сайт. Поэтому обычно есть три версии продукта (сайта / приложения):
Development - среда для разработки. Так сказать, черновик. Обычно он превращается в полный пипец через пару лет и его надо иногда удалять и ставить сюда Production или Staging версии.
Staging - место, в которое пропускают уже хорошо работающие фичи, но с правом всё похерить.
Production - то, чем пользуются клиенты. Чистовик - продукт - лицо компании.
Не переобучи! Модель на основе машинного обучения легко можно переобучить. Что это значит? Для примера приведу ситуацию с лабораторной мышкой, потому что искуственный интеллект работает примерно так же, как и самый настоящий (пусть и примитивный) интеллект живого существа. Допустим, мы поставим две кормушки в одной клетке. Когда мышка пьёт из правой кормушки - её немного ударяет током. Если пьёт из левой - всё хорошо. Со временем мышка будет пить только из левой кормушки, потому что когда тебя бьёт током - это не очень приятно. Теперь запустим эту мышку в другую клетку тоже с двумя кормушками, но теперь бить током будет только левая. Мышка, конечно, сразу кинется к ней и её ударит током, потому что раньше она не была в этой клетке, и поэтому её "машинное обучение" происходило на небольшой выборке клеток, и она переобучилась.
👍1
Переобучение происходит из-за того, что дата саентист неправильно составил выборку для разработки. Он не учёл, что возможны другие ситуации или у него просто не было источника данных, чтобы разнообразить выборку. Следите за своей выборкой!