НЕЙРОННЫЕ СЕТИ: ИЗ БИОЛОГИИ В DS
karpov.courses
Искусственные нейронные сети построены «по образу и подобию» биологических нейронных сетей, в частности — мозга человека. От своего прототипа нейросети и наследуют способность анализировать, запоминать и обучаться.
Классическая многослойная нейросеть состоит из нейронов и синапсов (аналогов, соответственно, нервных клеток и связей между ними) и разделена на слои:
● входной слой принимает данные,
● скрытые слои производят вычисления,
● выходной слой выводит результат.
Каждый нейрон принадлежит к какому-то одному слою и связан синапсами со всеми нейронами соседних слоёв, при этом внутри слоёв связи отсутствуют.
Каждый синапс имеет вес — коэффициент, изменяющий числовые значения при передаче от одного нейрона к другому.
Нейроны входного слоя принимают данные на вход и отправляют на следующий слой в неизменном виде. Нейроны остальных слоёв получают на вход взвешенные суммы выходных данных всех нейронов предыдущего слоя, нормализуют их и передают дальше.
С точки зрения линейной алгебры, каждый слой нейронной сети можно вычислить как входной (относительно этого слоя) вектор x, умноженный на матрицу весов W.
Например, у нас есть типичная задача классификации — распознавание цифр на картинках. Каждое изображение (объект) можно описать с помощью набора числовых значений — это и есть наш исходный вектор x.
Чтобы разбить изображения на 10 классов, поместим в выходной слой ровно 10 нейронов. Обученная нейросеть («знающая», какие веса использовать) пропустит входные данные через все свои скрытые слои и на выходе выдаст вероятности принадлежности изображения к каждому классу.
Но как, собственно, обучаются нейронные сети?
Как правило — с помощью supervised learning (обучения с учителем), о котором мы не раз писали в контексте разбора ML-алгоритмов.
Тезисно напомним его суть:
● В процессе обучения мы пропускаем через нейросеть обучающую выборку: наборы пар «числовые признаки объекта + правильный ответ» — и она на ней учится.
● Наша конечная цель: чтобы обученная нейронная сеть делала как можно меньше ошибок. Говоря математическим языком, мы хотим минимизировать разницу между предсказанными и правильными ответами.
● Параметры сети подбираются так, чтобы минимизировать функцию потерь. Существуют необучаемые гиперпараметры (как глубина сети и ширина слоёв) — они задаются вручную. А есть обучаемые параметры — они подбираются в процессе обучения.
Конкретные алгоритмы подбора обучаемых параметров — тема для отдельного большого разговора, актуального не только для нейросетей, но и для всего ML. Отметим только, что в основе самых популярных решений лежит градиентный спуск — итерационный метод поиска локального минимума / максимума функции.
Почему нейросети — крутая и перспективная сфера DS?
Конечно, даже самая продвинутая нейронная сеть — это всего лишь модель, далёкая по функциональности от реального человеческого мозга. Но уже сейчас нейросети успешно распознают речь и изображения, проводят медицинскую диагностику и даже рисуют картины — и нередко превосходят во всём этом живых людей. Кто знает, что ждёт нас через пару десятков лет?