Содержание статьи
Что такое нейросеть: как устроен человеческий мозг «в цифре»
Как применяются нейросети
Глубокие нейронные сети отличаются тем, что искусственные нейроны в них связаны друг с другом, а каждой такой связи присваивается определенный вес, который отражает ее значимость. Кроме того, связь между нейронами может быть «упреждающей». Это означает, что данные проходят через них только в одном направлении. Такое происходит, если значение «веса» соединения ниже заданного.
Для работы в отрасли потребуются знания в области математики, статистики и основ программирования: знание языка Python, навыки работы с Linux, библиотеками Python для Data Science, в том числе Numpy, Matplotlib, Scikit-learn, навыки работы с базами данных, библиотеками машинного обучения PyTorch и TensorFlow.
Перцептроны — Это классические нейронные сети, изначально однослойные, позже многослойные. Сейчас используются в основном для вычислений. Сверточные нейронные сети — Это многослойные сети, которые состоят из чередующихся сверточных и субдискретизирующих слоев и предназначены специально для работы с изображениями. Рекуррентные нейронные сети Их особенность в возможности последовательно обрабатывать цепочки данных и «запоминать» предыдущую информацию. Поэтому их применяют для работы с изменяющимися сведениями или длинными цепочками данных, например рукописными текстами. Генеративные нейронные сети Предназначены для создания контента. Иногда используются генеративно-состязательные нейросети — связка из двух сетей, где одна создает контент, а другая оценивает его качество.
Нейронными сетями занимаются специалисты по машинному обучению. Они не пишут программы, основанные на алгоритмах: вместо этого они создают модель и обучают ее, а потом тестируют, насколько хорошо она работает. Есть отдельные компании, специализирующиеся на разработке нейросетей, а есть продуктовые отделы крупных IT-организаций, например Google.
Само обучение бывает контролируемым и глубоким. В первом случае специалисты по работе с данными загружают для обучения нейросети помеченные наборы данных, которые заранее содержат правильный ответ. В процессе обучения нейросеть накапливает знания, а затем получает новые данные, чтобы построить уже свои предположения.
Но по какой логике пересчитываются веса, понять можно. В ходе обучения нейросеть анализирует данные, а потом ей дают правильный ответ. Этот ответ для нее — числовое значение. Поэтому она подгоняет веса так, чтобы в своей работе сеть приближалась к эталонному значению. Мы подробнее расскажем об этом процессе ниже, когда поговорим про обучение.
Как обучают нейросети
Специалист по нейросетям должен быть знаком с передовыми методами разработки программного обеспечения, особенно с теми, которые касаются проектирования системы, контроля версий, тестирования и анализа требований. Также ему потребуются знания в области Data Science, такие как моделирование данных, оценка алгоритмов и моделей прогнозирования. Наконец, для презентации работы нейросети потребуется пользоваться технологиями пользовательского интерфейса, использовать диаграммы или визуализации.
Принцип действия нейросети не похож на классическую программу. Такой сети не дают четкого алгоритма: ее обучают, чтобы она могла самостоятельно выполнять ту или иную задачу. В результате деятельность программы становится менее предсказуемой, но более вариативной и даже творческой.
Нейросеть повторяет этот же принцип, но программно. Нейроны — это программные объекты, внутри которых хранится какая-то формула. Они соединены синапсами — связями, у которых есть веса: некоторые числовые значения. Веса отражают накопленную нейросетью информацию, но сами по себе, в отрыве от сети, не несут информационной ценности.
Идею нейронных сетей впервые предложили исследователи из Чикагского университета Уоррен Маккалоу и Уолтер Питтс в 1944 году. Первую обучаемую нейросеть в 1957 году продемонстрировал психолог Корнеллского университета Фрэнк Розенблатт. Она была примитивной (одноуровневой).
При глубоком обучении специалист по работе с данными предоставляет нейросети только необработанные данные, а та самостоятельно извлекает функции и обучается независимо. Если результат неудовлетворительный, то цикл обучения повторяется снова, пока нейросеть не будет давать корректные ответы.
Процесс обучения бывает ручным и автоматическим и выглядит обычно так. Нейросети дают на вход разные данные, она анализирует их, а потом ей сообщают, каким должен быть правильный ответ. Сеть устроена так, что будет «стремиться» подогнать веса синапсов, чтобы выдавать верные результаты.