# Джош Стармер: как работают нейронные сети на самом деле

Источник: https://www.youtube.com/watch?v=CqOfi41LfDw
Канал: StatQuest with Josh Starmer
Опубликовано: 31.08.2020

---

## Понимание «черного ящика»: как работают нейронные сети 
[[JUMP:0:00]]

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

## Что такое нейронная сеть и зачем она нужна
[[JUMP:3:34]]

Основная задача нейронной сети — прогнозирование на основе данных, которые нельзя описать простой прямой линией. Если при тестировании лекарства мы видим, что низкие и высокие дозы неэффективны (значение 0), а средние — эффективны (значение 1), обычная линейная модель не справится с предсказанием. Нейронная сеть решает эту проблему, создавая сложную кривую — «зеленую извилину» (green squiggle), которая точно проходит через точки данных.

### Базовая архитектура
[[JUMP:3:49]]

Любая, даже самая сложная нейронная сеть, состоит из одних и тех же строительных блоков:

* **Узлы (Nodes):** точки, в которых происходят вычисления.
* **Соединения (Connections):** пути между узлами, вдоль которых передаются данные.
* **Параметры:** значения, которые «настраиваются» (обучаются) при подгонке сети к данным. В их роли выступают **веса (weights)** и **смещения (biases)**.
* **Скрытые слои (Hidden layers):** слои узлов между входом и выходом.

### Активационные функции
[[JUMP:5:34]]

Внутри узлов расположены изогнутые линии, называемые **активационными функциями**. Они позволяют сети создавать сложные формы. Стармер отмечает, что хотя в учебниках часто используют сигмоиду (sigmoid), на практике чаще применяют:

* **Softplus:** функция, напоминающая по форме изгиб, используемая в примере.
* **ReLU (Rectified Linear Unit):** «выпрямленный линейный юнит», популярный стандарт в современных сетях.

## Как работает «машина для рисования извилин»
[[JUMP:7:47]]

Процесс создания предсказания выглядит как последовательное преобразование входных данных через скрытый слой.

1.  **Вход и умножение:** Входное значение (дозировка) умножается на вес и к нему прибавляется смещение.
2.  **Активация:** Результат передается в активационную функцию (например, Softplus), которая превращает его в новую кривую.
3.  **Масштабирование:** Каждая кривая в скрытом слое масштабируется своим весом — это позволяет «срезать», «переворачивать» и «растягивать» базовые функции.
4.  **Сложение:** Все преобразованные кривые складываются вместе, образуя итоговую «зеленую извилину».
5.  **Финальный сдвиг:** Корректировка по оси Y позволяет «посадить» кривую точно на данные.

В итоге, чтобы узнать эффективность новой дозы, достаточно подставить число в сеть и получить координату на итоговой кривой. Если результат близок к 1, прогноз — эффективно, если к 0 — нет.

## Почему это называется «нейронной сетью»?
[[JUMP:16:44]]

Название возникло в 1940-х и 50-х годах из-за аналогии между узлами и биологическими нейронами, а соединениями и синапсами. Однако Стармер считает, что более точным термином было бы «машина для подгонки сложных извилин» (big fancy squiggle fitting machine), так как именно это они и делают в математическом смысле. 

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