Продолжительный хайп вокруг AI и Big Data так и не привел к образованию общепринятых определений этих понятий. ИИ отождествляют с машинным обучением (не всегда безосновательно), а бигдатой кличут любые данные и используют везде только потому, что на волне хайпа образовался индустриальный стандарт работы с данными - удобнее, быстрее и дешевле.
Искусственный интеллект
Как уже и сказал, до сих пор нет общепринятого определения искусственного интеллекта. Популярным является “ИИ - это система, решающая задачи по подобию человека”, но мне нравится идея о том, что интеллект человека не стоит брать за эталон. Всё, что может машина - это хранить и вычислять, ей чужда интуиция. Возможно, проблема в подходе, но над исследованием возможности реализации полноценной самодостаточной системы, способной решать любые задачи (global/strong artificial intelligence), работают пацаны из OpenAI и других организаций, получающие по 5млн рублёв в месяц, но пока что получается не очень.
Большей популярностью пользуется слабый ИИ (narrow/weak artificial intelligence), который заточен под конкретные прикладные задачи и реализуется при помощи машинного обучения.
Машинное обучение
ML - с ним проблема в том что он тупорылый. Он основан на статистике и почти всё, что он умеет - это взятие производной сложной функции и комбинаторика (чуть интереснее дело обстоит с генеративными моделями - но в них я не буду углубляться, так как сам не разбираюсь). Машинное обучение можно разделить на 3 основных подхода:
  • Обучение с учителем - есть много определений, одно из них: “Аппроксимация неизвестной зависимости искомой переменной от набора известных переменных по истории наблюдений”. То есть у вас есть набор данных - строки это наблюдения, а столбцы это параметры объектов наблюдения - и вы строете модель, которая принимает на вход набор известных параметров и постепенно минимизирует ошибку предсказания по ним искомого параметра. На выходе получается уравнение f(x1,x2, x3, ...), которое по набору входных параметров выдает искомый параметр с минимальной ошибкой.

  • Обучение без учителя - “сделай предположение о том, что все объекты, находящиеся близко друг к другу (в разных смыслах: по евклидову расстоянию, по плотности и тд), относятся к одному кластеру, а все находящиеся далеко - в разным”. Одним из самых интересных применений является тематическое моделирование (формально оно стоит особняком, но использует те же техники - например, ЕМ-алгоритм)

  • Генеративные модели - это про генерацию текстов, видео, музыки, объектов и так далее. Реализуется при помощи марковских моделей и различных архитектур нейронных сетей.



Большие данные
Big data - это свод принципов, касающихся того как закачивать, хранить и обрабатывать данные быстрее и дешевле. На рынке бигдата - это Hadoop.
Apache Hadoop это экосистема программных продуктов, разрабатываемых компанией Apache - СУБД, фреймворки и прочие черти, ложащиеся в парадигму биг даты.
Наука о данных
Наука о данных - это про анализ любых данных. Чаще больших, чем малых, но например если бизнес задача сводится к поиску минимального остовного дерева - то это тоже задача для дата саентиста, хотя тут может и не быть никакой бигдаты.
Data Scientist - специалист, занимающийся всеми этапами цикла обработки и анализа данных, а отличается от бомжарного аналитика он тем, что знает машинное обучение. Он выкачивает данные из всяких бигдат, приводит их к нужному виду, прогоняет через ML модель (или нет, в зависимости от математической интерпретации задачи) и делает выводы о том, есть решение у исследуемой проблемы или его нет. Еще его могут попросить написать программу для автоматического прогона потока данных через модель (уже обученную) и интегрировать это решение в инфраструктуру компании - как правило, такой навык отличает стажера от более старших позиций в data science.
Но чтобы была эта самая инфраструктура, куда можно было бы что-то интегрировать, нужен дата инженер. Без него, кстати, дата саентист никакую бигдату ниоткуда не выкачает - в компании без дата инженера он хуй без палки.
Инженерия данных
Data Engineer - специалист, занимающийся разработкой и поддержкой инфраструктуры данных компании. Если он занимается только приведением ML моделей к стадии продакшна - он называется ML Engineer. Одной из главных задач дата инженера является создание и поддержка хранилища данных компании, т.к. ввиду особенностей архитектур баз данных наличие хранилища является стандартом в компаниях, работающих с различной бигдатой и датасаенсом.

В следующей статье я расскажу про полный жизненный цикл data science проекта - в частности, какую именно ценность и в каком виде он несет для бизнеса.