- Краткая история нейросетей
- Зачем нужны нейросети
- Как работают нейросети
- Как обучить нейросеть
- Классификация нейросетей
- Как стать специалистом по нейросетям
Нейросеть как программный комплекс обработки данных, является математической моделью, созданной на принципах построения нервной системы живого организма, и взаимодействия нейронов в человеческом мозге. Отдельные такие сети создаются для решения определенных интеллектуальных задач. Не обладая строго заданным алгоритмом, они работают на спрогнозированный (заданный) результат.
С этой целью в них закладывается способность обучаться при решении задачи – как при управлении человеком, так и в самостоятельном режиме. Нейросеть – один из способов, реализующих искусственный интеллект.
Краткая история нейросетей
Идея нейросетей в 1943-1944 годах была сформирована Уолтером Питтсом и Уорреном Мак-Калоком в Чикагском университете при разработке математической модели нейрона.
1949 год – психологом и физиологом Дональдом Хеббом в Канаде высказана теория обучения нейронов мозга, поддерживаемого синоптическими связями.
1954 год, Массачусетский технологический институт. Фарли и Кларком была имитирована работа нейросети на компьютере. Через два года группа ученых исследовала нейронные сети, используя компьютерное моделирование.
Следующий этап – 1957 год. Фрэнком Розенблаттом в Корнеллском университете создана примитивная двухслойная обучаемая нейросеть в одном уровне – перцептрон (реализованный в машине Марк-1 в 1960-м). Через год в 1958-м начались разработки машины, имитирующей человеческое мышление, а через еще два года машиной распознавались некоторые буквы с карточек.
В 1969-м М. Минский и Пеперт опубликовали доклад, где выделили две проблемы одноуровневых систем на тот момент: невозможность реализации исключающего «ИЛИ», и недостаток вычислительных мощностей.
Через три года Т. Кохоненом и Дж. Андерсоном по отдельности предлагается использовать новые нейросети, чтобы реализовать память. Еще через год Б. В. Хакимовым внедряется нелинейная модель для медицины и геологии.
1974 год – Полом Вербосом и А. И. Галушкиным в одно время изобретается модель алгоритма с обратным распространением ошибок, обучая многослойные перцептроны. А спустя год – представление Фукусимой когнитрона – самоорганизующейся сети при распознавании образов инвариантным способом.
С 1982 года после появления мощных компьютеров – серия сетей: Хопфилда с минимизацией энергии, Кохонена с самостоятельным обучением, кластеризацией и визуализацией при предварительном анализе информации. До 2000-х заново прорабатывается метод с обратным распространением ошибки, использование нелинейных функций активации.
В 2000-х с появлением мощных графических процессоров разрабатываются алгоритмы Deep Learning по обработке больших массивов с данными.
В 2007 году Джеффри Хинтон (университет Торонто) создает многослойные нейронные сети на алгоритмах с глубоким обучением.
Реальное внедрение алгоритмов началось в 2010-х годах. Разрабатываются новые архитектуры и инструменты.
В 2020-х прорывной стала языковая модель GPT-3 от OpenAI, и там же перед окончанием 2020-го создан ChatGPT. За два месяца он собрал больше 100 млн. пользователей, став самым быстрорастущим сервисом. На основе GPT принялись создавать свои проекты и мировые IT-гиганты.
Зачем нужны нейросети
Они уже сейчас применяются для машинного обучения и в прикладных задачах с распознаванием образов, а в математике для решения задач с множеством входных параметров. В робототехнике реализуют адаптивное управление устройствами.
Главное использование – основной элемент моделирования в искусственном интеллекте.
Сети, автоматически генерирующие контент
К ним относятся следующие:
- генерирующие картинку по текстовым заданиям – Midjourney, DALL-E;
- поддерживающий диалог и отвечающий на вопросы, пишущий сценарии и стихи ChatGPT;
- озвучивание текста с имитацией голоса и интонации – VALL-E;
- создание музыки по картинкам - Imaginary soundscape;
- омолаживающая лицо в клипе MARZ.
Существуют также сети, создающие аниме по фото.
Распознавание языков
К ним относятся беседующие и советующие чат-боты ChatGPT и LaMDA, а сеть Yandex Cloud переводит и отвечает на десятках языков.
Последняя может быть голосовым помощником в кол-центрах.
Работа по классификации
Такие сети обрабатывают и распределяют массивы данных по заданным критериям:
- с московскими камерами в городе работает NTechLab. Выявляются нарушители, идентифицируются лица в пропускных системах предприятий, транспорта;
- Google Cloud, а также SkinVision занимаются диагностикой в онкологии;
- в отечественном сервисе YouScan можно отслеживать бренды из соцсетей и сегментировать их;
- управляет работой автопилотов Ford BlueCruise.
Разные нейросети прогнозируют цены валют и недвижимости, уровень платежеспособности заемщика в банке, сортируют кластеры данных по признакам (например картинки).
Сети облегчают 3D-моделирование и печать объектов.
Как работают нейросети
Любая НС – совокупность искусственных нейронов подобно человеческим, в виде программных модулей и узлов. В базовой НС такие нейроны сосредоточены в трех слоях:
- Входном, принимающем исходные данные, анализирующим их и обрабатывающим.
- Скрытом или базовом слое (одном или нескольких). Он обрабатывает данные с входного слоя, и передает их на следующий слой.
- Выходном, выдающем окончательные результаты.
Все нейроны связаны между собой. Каждый обрабатывает входной сигнал, и имеет свой изначально случайный вес (значение). Между всеми нейронами существуют связи, аналогичные синапсам в человеческих нейронах – веса. Поэтому сочетание весов каждого нейрона создают абсолютно разные значения. В дальнейшем веса формируются изменением набора заданных признаков для каждого сигнала, и уже принимают скорректированные значения.
Значения входных чисел на каждом слое перемножаются на значения соответствующих весов нейронов, а полученные результаты суммируются. Так происходит, пока значения весов не начнут принимать правильные значения. Тогда суммы превышают заданный порог, происходит активация нейрона, и данные передаются следующему уровню. Это продолжается до тех пор, пока достигается результат с максимальной вероятностью.
Как обучить нейросеть
Алгоритм обучения концептуально содержит такие блоки:
- Выбираются исходные данные – тем больше, чем сложнее и многочисленнее задачи. Ответы алгоритмов строятся на формулах и числовых коэффициентах.
- Преобразование данных по признакам и коэффициентам от учителей, задающих законы обработки.
- Обработка данных каждым нейроном со своим весом по важности, который в процессе изменяется.
- Формирование результатов в цифровом виде, и адаптация под восприятие человеком. При этом числовые значения имеют вероятностный характер – не 0 или 1, а какое-то промежуточное дробное число.
Обучение бывает глубокое или контролируемое.
При контролируемом обучении алгоритму задаются задачи с заведомо правильным ответом. По ходу накопления новых данных он уже выстраивает варианты своих предположений.
Глубокое обучение строится на необработанных данных с самостоятельными выборками сетью. Обучение происходит до появления удовлетворительных ответов.
При этом в таком типе обучения применяется работа с подкреплением – сеть оповещается сигналами о неправильных решениях.
Классификация нейросетей
Существуют такие типы нейронных сетей:
- Персептроны – простые одноуровневые модели для классификаций элементов. По набору данных могут распознать человека или машину, сортировать изображения.
- Полно связные или прямые НС – самые простые с несколькими слоями нейронов. Их применение – классификация и прогнозирование рынка, распознавание рукописных текстов.
- Сверточные НС (CNN) – самые распространенные, обрабатывают фото и видео, фильтруя их в каждом слое с нарастанием более сложных признаков. Применяются в автомобильной промышленности, робототехнике, медицине.
- Рекуррентные НС, или RNN – обрабатывают последовательные данные текстов и аудио. Способны сохранять предыдущие данные для использования в построении следующих элементов. Выполняют машинные переводы, генерируют тексты, анализируют временные ряды.
- Глубокие НС с сотнями слоев (DNN) для распознавания речи, обработки естественных языков.
- Генеративно-состязательные НС (GAN), в которых одной частью генерируются данные, а другой проводится анализ их качества. Создают новые тексты, реалистичные изображения.
Уже сейчас большинство обучающих материалов создано существующими нейросетями.
Как стать специалистом по нейросетям
Такие специалисты работают над созданием архитектуры НС, решением прикладных и теоретических задач с искусственным интеллектом. Более подробно – это:
- работа по обучению НС и созданию алгоритмов, реализующих машинное обучение;
- визуализация данных и оптимизация существующих НС;
- адаптация НС к прикладным задачам, их анализ с минимизацией рисков ошибок;
- разработка алгоритмов и программ, нового функционала, поддерживающих работу сетей, используя, в том числе методы ИИ.
Специалист по нейросетям и искусственному интеллекту имеет профиль, входящий в состав направления Data Science, которое продвигается ведущими IT-компаниями.
Можно изучать большое число бесплатных материалов по НС и ИИ на сайтах и видеохостингах, и получить общее структурное представление о профессии.
Но глубоких знаний и практических навыков такие материалы не принесут. Необходимо углубленное обучение в специализирующихся на этом направлении ведущих обучающих онлайн и офлайн компаниях со сроком обучения до года, с кураторами-практиками. Среди них ведущие SkillFactory, Skillbox, Нетология, GeekBrains.
Но полное освоение специальности на инженерном уровне возможно только с обучением в высших учебных заведениях. В университетах и институтах, имеющих программные и информационные или компьютерные факультеты. Также на офлайн дневном, и онлайн-обучении, а в некоторых и вечернем. Ведущие среди них – МИФИ, МФТИ и МГУ, СПБГУ и ВШЭ.
Специалисту необходимо знать математику, статистику, языки программирования Python и Linux, языки работы с базами данных. Работать с библиотеками по машинному обучению PyTorch, TensorFlow. Знать методы разработки программ и алгоритмов, проектирования систем, моделирования и прогнозирования.