Три составляющие обучения
Чтобы умные системы работали, нужны разные специалисты: для извлечения данных, их обработки, структурирования и внедрения в жизнь. Для начала рассмотрим диаграмму Венна, состоящую из трех пересекающихся кругов, каждый из которых обозначает определенное понятие. Один круг обозначен как “Data” (Данные), второй – как “Features” (Признаки), а третий – как “Algorithms” (Алгоритмы).
Data (данные) — это область, включающая все виды данных, которые могут быть использованы для анализа, обучения и предсказаний. Вся работа с данными начинается с их сбора, хранения и обработки.
Features (признаки) — это аспекты данных, которые были отобраны или трансформированы для использования в моделях. Это характеристики данных, которые помогают моделям делать прогнозы.
Algorithms (алгоритмы) — методы и инструкции, с помощью которых осуществляется анализ данных, включая как классические методы программирования, так и алгоритмы машинного обучения.
Области пересечений:
Data Science (наука о данных) — находится в центре пересечения данных и признаков. Эта область включает анализ данных и использование признаков для извлечения знаний, но при этом может использовать как простые алгоритмы, так и более сложные модели.
Data Mining (добыча данных) — находится в пересечении данных и алгоритмов. Это процесс обнаружения скрытых закономерностей в данных, который требует как обработки данных, так и применения алгоритмов. При переводе на русский язык используются следующие словосочетания: просев информации, добыча данных, извлечение данных, а также интеллектуальный анализ данных.
Classical Programming (классическое программирование) — пересечение признаков и алгоритмов. Здесь используются алгоритмы, но без участия данных в традиционном смысле; это подход, при котором разработчики вручную создают правила и логику на основе имеющихся признаков.
Machine Learning (машинное обучение) — область на пересечении данных, признаков и алгоритмов, представляющая использование алгоритмов для обучения на данных с использованием признаков. Машинное обучение опирается на все три аспекта для создания предсказательных моделей.
Профессии в области работы с данными
«Data» в переводе с английского — «данные», «Features» в переводе с английского — «фичи (признаки)», а «Algoritms» в переводе с английского — «алгоритмы. От этих слова и пошли названия профессий в этой области. Разберёмся, чем занимаются специалисты в сфере данных.
Дата-инженер (Data Engineer)
Чтобы дата-сайентисту было с чем работать, нужен дата-инженер. Он собирает и структурирует информацию, чтобы другие специалисты могли использовать её в работе.
Например, дата-сайентисту нужно улучшить ленту рекомендаций в соцсети. Для этого дата-инженер собирает необходимые данные с устройств пользователей, а также продумывает, как соотнести их с конкретными типами пользователей. Он отвечает за сбор информации, её обработку и хранение.
Дата-сайентист (Data Scientist)
Специалист по Data Science помогает компаниями работать с данными, которые уже доступны, но ещё не обработаны.
Например, нужно увеличить среднее время, которое пользователи проводят в соцсети. Чтобы добиться этого, нужно усовершенствовать рекомендации и сделать их ещё интереснее. Дата-сайентист разбирается, какие именно для этого нужны данные, какие закономерности искать и как они помогут решить задачу.
Аналитик данных (Data Analyst)
Аналитик данных, или дата-аналитик, тоже работает с данными. Его часто путают с дата-сайентистом, но между этими двумя профессиями есть разница: дата-сайентист занимается крупными проектами и работает с математическими моделями машинного обучения. А дата-аналитик решает более прикладные задачи и работает не с моделями, а с самими данными.
Например, в компании дата-аналитик может изучать, почему один и тот же товар на разных площадках продаётся с разным успехом.
Инженер по машинному обучению (Machine Learning Engineer)
Как и все предыдущие специалисты, ML-инженер разрабатывает и внедряет правила для работы с данными. Он создаёт алгоритмы обучения компьютеров, делает их полезным для бизнеса и следит за тем, как они выполняют свои функции.
Например, компании нужен сервис распознавания рукописного текста. Для этого ML-инженер создаст алгоритм обработки текста, обучит его считывать текст, а потом внедрит этот алгоритм в готовый продукт, то есть сделает так, чтобы программой могли пользоваться миллионы людей.
Classical Programming — это традиционный подход к разработке программного обеспечения, в котором разработчики вручную пишут логику и правила, которые компьютер должен выполнять. В отличие от машинного обучения, где система обучается на данных и выявляет зависимости самостоятельно, в классическом программировании все правила и алгоритмы задаются программистом.
Профессии, занимающиеся классическим программированием, включают:
- Software Developer (Программист/Разработчик ПО) — разрабатывает и поддерживает программное обеспечение, пишет код, тестирует и исправляет ошибки. Специалист в этой роли использует классическое программирование для создания приложений, служб, игр, веб-сайтов и других программных продуктов.
- Frontend Developer (Фронтенд-разработчик) — занимается созданием интерфейсов для взаимодействия пользователя с программой или веб-приложением. Использует языки программирования, такие как JavaScript, HTML, CSS, и фреймворки (например, React, Angular) для создания интерактивного и удобного интерфейса.
- Backend Developer (Бэкенд-разработчик) — отвечает за серверную часть приложения, занимается написанием логики работы системы, созданием API, обработкой запросов от клиента, управлением базами данных. Использует классические языки и методы программирования, такие как Python, Java, C#, Ruby и PHP.
- Full-Stack Developer (Фуллстек-разработчик) — специалист, работающий как с клиентской, так и с серверной частью приложения. Он использует классическое программирование для разработки полнофункциональных решений, соединяя интерфейс и серверную логику.
- Embedded Systems Engineer (Инженер встроенных систем) — разрабатывает программное обеспечение для встроенных систем, таких как микроконтроллеры, системы управления в автомобилях и бытовая техника. Использует классическое программирование (чаще всего на C или C++) для оптимизации кода под специфическое железо.
- Game Developer (Разработчик игр) — создает видеоигры, разрабатывает логику игрового процесса, физику, искусственный интеллект и графику. Game Developer использует классические методы программирования, чтобы управлять поведением персонажей, работой игровой механики и графикой.
- Mobile Developer (Мобильный разработчик) — занимается разработкой приложений для мобильных устройств. Использует классическое программирование на языках, таких как Swift для iOS или Kotlin и Java для Android.
- System Programmer (Системный программист) — работает с операционными системами, драйверами, утилитами и другими компонентами на уровне ядра. Использует классические языки программирования, такие как C и C++, и пишет высокопроизводительный код, взаимодействующий с оборудованием.
- Database Developer (Разработчик баз данных) — создает и оптимизирует базы данных, разрабатывает запросы и структуры данных. Использует SQL и другие методы классического программирования для управления данными, обеспечения их целостности и безопасности.
- Security Engineer (Инженер по безопасности) — разрабатывает и внедряет системы защиты для программного обеспечения и данных. Использует классические методы программирования для создания и настройки систем безопасности, шифрования и анализа уязвимостей.
Эти специалисты обычно работают с традиционными языками программирования, такими как C, C++, Java, Python, и используют логические структуры, функции, алгоритмы и структуры данных, которые они сами разрабатывают и кодируют для решения конкретных задач.