Найти тему
"Бестселлеры IT-рынка"

“Университет искусственного интеллекта”: практика нейросетей - от основ до трудоустройства

Оглавление

Дистанционное обучение в Университете искусственного интеллекта по программе “Data Science, нейронные сети, машинное обучение и искусственный интеллект” - из личного опыта студента.

С курсами и стоимостью можно ознакомиться на сайте Университет искусственного интеллекта

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

Чат-боты способные генерировать тексты любой проблематики на базе больших текстовых моделей типа GPT - в первую очередь ChatGPT от OpenAI; генерация изображений Midjourney или Kandinsky от Сбер; и даже автоматическое создание программного кода - тот же ChatGPT или Copilot. И десятки других имен для разных применений, появляющихся чуть ли не ежедневно. В том числе и отечественных.

Нейросети действительно могут взять на себя рутинную работу в большинстве digital-специальностей. Уже сегодня сложно найти сферу, связанную с информацией и данными, в которой не сыщется несколько готовых AI-сервисов. “Умных” помощников для маркетологов, рекламщиков, копирайтеров, дизайнеров, блоггеров и журналистов, SEO-специалистов, биржевых игроков и даже для корпоративных аналитиков и разработчиков бизнес-стратегий.

Ответ Telegram-бота на основе ChatGPT (GPT 3.5.)
Ответ Telegram-бота на основе ChatGPT (GPT 3.5.)

Работа с такими сервисами, конечно ускоряет получение конечного результата. И качество ответа AI - чем дальше тем более совершенно. Но какими бы “умными” ни были готовые ML-модели и публичные сервисы на их основе - их выдача по-прежнему требует существенной доработки под свои задачи и условия.

Реальная автоматизация бизнес-процессов - изготовление полноценного робота, способного взять на себя работу сотрудника (или десятка сотрудников): будь то узконаправленная система компьютерного зрения или чат-бот службы поддержки - требует либо создания своих собственных AI-моделей с нуля на своем наборе данных; либо же дообучения готовых моделей на этих данных через API. И тут уже не обойтись без навыков программирования.

Все проще, чем представляется

Именно созданию собственных законченных нейросетевых решений - для своих нужд, либо под заказ - и учит Университет искусственного интеллекта.

Университет специализируется именно на ML - и ни на чем другом.

На on-line курсах данного учебного центра можно освоить процессы создания реальных моделей, их обучения, настройки и, главное, развертывания на “боевом” сервере.

Кажется, все это очень сложно, требует немыслимого объема знаний и навыков причем в самых разных сферах. В общем того, что в сфере ИТ именуют full-stack разработка. Реальность же оказывается гораздо проще.

Плюс, страшное слово - “математика”. По сети ходит масса мемов, что работа в сфере ИИ без пресловутой математики невозможна по определению.

-3

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

Понятно, все это по срокам растягивается года на полтора, а по деньгам выходит от 200 тыс. руб в лучшем случае.

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

Единственный курс в рунете, учебный план которого меня показался оптимальным именно с вышеприведенной точки зрения - оказался именно от Университета искусственного интеллекта.

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

Первую в своей жизни нейронку - это было распознавание изображений для игры “Крестики-Нолики” - я обучил где-то часа через три после того, как впервые зашёл на учебную платформу:

Техническое Задание: Самостоятельно напишите нейронную сеть, которая может стать составной частью системы бота для игры в "Крестики-нолики". Используя подготовленную базу изображений, создайте и обучите нейронную сеть, распознающую две категории изображений: крестики и нолики. Добейтесь точности распознавания более 95% (accuracy)
Техническое Задание: Самостоятельно напишите нейронную сеть, которая может стать составной частью системы бота для игры в "Крестики-нолики". Используя подготовленную базу изображений, создайте и обучите нейронную сеть, распознающую две категории изображений: крестики и нолики. Добейтесь точности распознавания более 95% (accuracy)

Что дает Онлайн-Университет сверх базового обучения

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

Дело в том, что некоторые из них и станут основными бонусами, которые вы можете получить в итоге.

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

Надо понимать, что “Университет искусственного интеллекта” - это, фактически, ИТ-компания, специализирующаяся на решениях в сфере AI, а не только фирма из сферы online-образования. Точнее и то и другое. У компании есть несколько своих платформ и авторских решений в области инструментария для создания и обучения ML-моделей. Команда выполняет собственные проекты для конечных клиентов.

В списке контрагентов числятся, такие серьезные имена, как например: СовкомБанк, Ростелеком, Камаз, 1С-Рарус, СК Самолет. И многие другие.

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

Также здесь помогут с составлением вашего портфолио. А вообще-то именно портфолио - подтвержденный опыт выполненных проектов, - а вовсе не резюме, сегодня является основанием для найма в штат; да и для фрилансера он необходим. Допустим, HR-менеджер еще может поинтересоваться какие фреймворки Python вами освоены теоретически, и знаете ли вы SQL или JavaScript. Но будущий прямой руководитель просто попросит ссылку на ваш GitHub.

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

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

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

Таким образом, объем знаний и навыков на выходе - у вас будет гарантированно больше, чем в оглавлении курса. И это будут самые “горячие” разработки в области инструментов AI.

Это важно, потому как этот рынок меняется с пугающей интенсивностью.

Базовый курс по ML

Вот учебная программа курса Университета искусственного интеллекта “Data Science, нейронные сети, машинное обучение и искусственный интеллект”, который я прохожу в данный момент. Он разделяется на два блока - базовый и продвинутый.

Базовый блок

  1. Синтаксис Python
  2. Библиотеки Numpy и Matplotlib
  3. Введение в нейронные сети. Линейный слой (Dense)
  4. Обучающая, проверочная и тестовая выборки. Переобучение нейронных сетей
  5. Сверточные нейронные сети
  6. Модули. Интеграция нейронной сети на ДЕМО-ПАНЕЛЬ
  7. Обработка текстов с помощью нейронных сетей
  8. Рекуррентные и одномерные сверточные нейронные сети
  9. Библиотеки Pandas и Matplotlib
  10. Решение задачи регрессии с помощью нейронных сетей
  11. Обработка временных рядов с помощью нейронных сетей
  12. Обработка аудиосигналов с помощью нейронных сетей
  13. Архитектура автокодировщика (Autoencoder)
  14. Сегментация изображений
  15. Создание простого веб-сервера и настройка параметров работы
  16. Библиотека requests. Обращение к модели по API

Продвинутый блок

  1. Вариационные автокодировщики
  2. Генеративно-состязательные сети
  3. Обработка текста. Модель Sequence-to-sequence
  4. Обработка текста. Механизм Attention (Сети с вниманием)
  5. Обработка текста. Механизм Transformers
  6. Обучение с подкреплением. Введение. Алгоритм Q-learning
  7. Обучение с подкреплением. Политические методы обучения, алгоритм Reinforce
  8. Обучение с подкреплением. Сети с преимуществом, улучшенный алгоритм Q-learning.
  9. Обнаружение объектов (Object Detection). Модель YOLOv3
  10. Обнаружение объектов (Object Detection). Модели YOLOv4, RetinaNet
  11. Обнаружение объектов. Технология треккинга объектов
  12. Генетические алгоритмы. Введение. Базовые принципы
  13. Генетические алгоритмы. Подбор гиперпараметров нейронной сети
  14. Алгоритмы кластеризации данных
  15. Обработка аудио. Распознавание речи (SpeechToText)
  16. Обработка аудио. Технология TextToSpeech

Тут следует отметить, что для обучения необходимо освоить язык Python. Я владел им на достаточном уровне изначально, поэтому соответствующие разделы в мой список не включены. Если вы не владеете Python - его необходимо дополнительно включить в программу.

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

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

О теоретической части можно сказать, что написана она очень сжато, иногда даже кажется, что слишком поверхностно. Но внутри всегда есть ссылки на более пространные материалы по упоминаемым темам из Базы Знаний Университета. На самом деле в теоретической части дается именно та суть, которая вам нужна для общего понимания темы. При желании - в сети достаточно материалов на русском (не говоря уже про английский) на любую тему; главное - знать что искать, а знать вы будете. Это если вам приспичило разобраться, почему в глубоких нейросетях активационная функция нейронов должна быть дифференцируемой или как выглядит латентное пространство в архитектуре encoder-decoder. Понимать, конечно, подобные вещи желательно, но вообще-то живут и без этого. Главное - отсутствие глубинного понимания процесса на низовом уровне решать задачи, решительно, ничем не мешает.

В качестве лирического отступления, хочется добавить, что и сама тематика искусственных нейронных сетей, благоволит такому "легковесному" подходу.
Никто никогда не заглядывает во внутренние слои нейросети - ведь это бессмысленный с точки зрения наблюдателя набор цифр. Тем не менее - на выходе образуется результат, и этот результат способен потрясать воображение, как впечатляют нас сегодня картинки Stable Diffusion или мудрые высказывания ChatGPT.
Нейросеть - это “черный ящик”: на вход что-то подается, на выходе что-то образуется. Как? Никто не знает как - главное, чтобы выход соответствовал требованиям.
Если вдуматься, мы и с “естественным” интеллектом - своим мозгом - обращаемся точно также. Мы видим некий объект - у нас возникает мысль, допустим какая-то ассоциация. Как она возникла? Почему именно эта ассоциация, как мы пришли к этой мысли? Спроси нас - мы не сможем ответить на этот вопрос даже закопавшись в свою память. Тем не менее мы мыслим, следовательно, по Декарту, существуем. И некоторые - даже неплохо существуют.
Homo Sapiens как виду несколько десятков тысяч лет. О каких-то там нейронах-аксонах мы вообще узнали в последнее столетие. В середине XX века создали первые простейшие математические модели эмулирующие это дело. И лишь в последние несколько… даже не лет - месяцев, всей своей многомиллиардной массой с наслаждением навалились на сайты AI-сервисов. Но ведь жили до этого - и, да, многие даже неплохо жили.
Так стоит ли страдать, что вы недостаточно четко представляете себе “алгоритм обратного распространения ошибки для deep learning”? Главное, вы можете пользоваться результатами его работы.

Далее вы переходите к домашним заданиям. И тут важный момент. Для них есть уже готовое решение от авторов курса - полный разбор с откомментированным кодом.

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

Кроме того, в деле нейронок, на практике 80% кода не имеют отношения, собственно, к созданию модели сети и ее обучению. Этот код нужен для формирования входа/выхода в нужном формате - подготовка датасета и вывод результатов обучения для проверки и анализа. С алгоритмической точки зрения - задачи эти, как правило, тривиальны. Но на них уходит много времени, чтобы все грамотно сверстать. В итоге, если с python, его структурами данных, у вас пока не очень - лучше эти функции писать самостоятельно. Но если для вас это уже не проблема, можно не тратить свое время на скучную писанину, скопировать нужный код из разбора задания. А экспериментировать уже, собственно, с целевой моделью нейронки.

Плюс, каждый раздел снабжен авторским видео с полным разбором всех задач построчно, если в коде что-то не ясно.

Наконец - поддержка. На связи куратор курса, которому можно задать вопрос в рабочее время. В любое же время можно задать вопрос в telegram-канале для студентов. В целом, могу сказать, что за время обучения мне ни разу не пришлось задавать вопрос где-то на сторонних ресурсах, типа, Stack Overflow - со мной такое впервые.

Диплом

В процессе обучения (не обязательно в конце) вы беретесь за дипломный проект. Вам помогут составить ТЗ и проконсультируют по ходу исполнения. Собственно, это и будет ваше портфолио на выходе.

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

Collab и Jupiter Notebook

Вся работа происходит в Google Collab - облачном сервисе, где вам выдается бесплатная виртуальная машина для запуска кода. Большинство необходимых библиотек python на сервере уже инсталлировано. Главное - сервис предоставляет GPU или TPU - аппаратные акселераторы для расчетов. Это значительно ускоряет процесс обучения нейросетей. Для решения учебных задач бесплатного посуточного времени вполне хватает.

Все файлы материалов, как теоретических так и практических, представлены в формате Jupiter Notebook - вы сохраняете их себе в облаке (Google-Диск) или локально. Таким образом, они останутся с вами навсегда, вы всегда можете к ним вернуться в процессе дальнейшей работы.

Notebook в Google Collab
Notebook в Google Collab

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

Саму среду Jupiter Notebook можно запускать и офлайн на локальном ПК, без Collab, например, установив ее в составе пакета Anaconda, где есть все для Python.

Резюме

Выделяя преимущества “Университета искусственного интеллекта”, как учебного центра в области технологий машинного обучения и нейросетей, можно выделить следующие:

  • Узкая специализация именно на практическом освоении задач машинного обучения
  • Отсутствие пустого теоретизирования, акцент на практику
  • Возможность получить стажировку в реальных проектах для крупных заказчиков
  • Готовое портфолио выполненных проектов на выходе
  • Помощь в трудоустройстве
  • Развитое комьюнити студентов и преподавателей, всегда способных помочь найти решение и не только в рамках курса, но и по прочим вопросам в области AI и ML
  • Возможность самостоятельно регулировать скорость прохождения курса и глубину проработки отдельных разделов, в зависимости от собственных интересов
  • Удобная среда для программирования и обучения на базе облачных виртуальных машин от Google, доступных из любой точки мира, хоть со смартфона.