Этот конспект не сохранится

Закроешь вкладку — потеряешь. Зарегистрируйся — и он будет в библиотеке навсегда.

Telegram

Ваш конспект

YouTube[DeepLearning | видео 1] Что же такое нейронная сеть?

🧠 Распознавание цифр и основы нейронных сетей

Ключевые тезисы

  • Человеческий мозг легко распознаёт объекты (например, цифру «3») даже при низком разрешении и вариациях, что является сложной задачей для формализации.
  • Нейронные сети — это попытка создать математическую модель, способную решать подобные задачи распознавания образов.
  • Простейшая нейросеть для распознавания рукописных цифр состоит из слоёв нейронов и тысяч настраиваемых параметров (весов и сдвигов).
  • Обучение сети — это процесс автоматической настройки этих параметров на основе данных.

🎯 Что такое нейронная сеть?

Основная идея

Идея заимствована у биологии, но в контексте машинного обучения нейрон — это просто сущность, содержащая число (его активацию) в диапазоне от 0 до 1.

Структура сети для распознавания цифр

Сеть — это функция, которая принимает на вход пиксели изображения и выдаёт на выходе «уверенность» в каждой из цифр.

  • Входной слой: 784 нейрона (28×28 пикселей). Активация каждого нейрона соответствует оттенку серого в пикселе (0 — чёрный, 1 — белый).
  • Выходной слой: 10 нейронов. Активация каждого выражает уверенность сети, что на входе соответствующая цифра (от 0 до 9).
  • Скрытые слои: Промежуточные слои (в примере — два слоя по 16 нейронов), где происходит абстрактная обработка информации. Их структура и размер — предмет экспериментов.

⚙️ Как работает один слой?

Принцип: активации в одном слое определяют активации в следующем.

Механизм активации нейрона

  1. Взвешенная сумма: Для каждого нейрона следующего слоя вычисляется сумма активаций нейронов предыдущего слоя, умноженных на веса соединений.
    • Веса — это настраиваемые параметры. Их можно визуализировать: положительные веса (зелёные) «поощряют» определённые пиксели/признаки, отрицательные (красные) — «штрафуют» за них.
  2. Добавление сдвига: К взвешенной сумме прибавляется ещё один параметр — сдвиг (bias). Он определяет порог, после которого нейрон должен активироваться.
  3. Функция активации: Полученное число пропускается через функцию (например, сигмоиду или ReLU), которая «сжимает» его в диапазон от 0 до 1. Это и есть итоговая активация нейрона.

Пример: Чтобы нейрон второго слоя распознавал грань в определённой области, нужно задать положительные веса для пикселей в этой области и, возможно, отрицательные — для окружающих пикселей. Тогда его активация будет высокой, только если центр области ярче краёв.

Почему слоистая структура разумна?

Задача распознавания цифр естественно разбивается на иерархию признаков:

  1. Первый уровень абстракции (скрытые слои): Нейроны могут реагировать на простые грани (малые отрезки, кривые).
  2. Второй уровень абстракции: Нейроны следующего слоя комбинируют эти грани в более сложные шаблоны (кружки, линии).
  3. Финальный уровень (выход): Нейроны выходного слоя комбинируют шаблоны в целые цифры (например, «9» = кружок сверху + вертикальная линия).

Аналогия работает и для других задач (распознавание речи: звуки → слоги → слова → фразы).

📊 Масштаб параметров и обучение

  • Огромное число параметров: В рассмотренной сети между первыми двумя слоями уже 784 * 16 весов + 16 сдвигов. Вся сеть содержит около 13 000 настраиваемых параметров (весов и сдвигов).
  • Обучение — это процесс автоматического поиска компьютером таких значений для всех этих 13 000 «ручек настройки», чтобы сеть правильно решала задачу.
  • Ручная настройка всех весов нереальна, но понимание их смысла помогает не воспринимать сеть как «чёрный ящик» и даёт точку опоры для её улучшения.

🔢 Компактное математическое представление

Для эффективности вычисления между слоями представляются с помощью линейной алгебры:

  • Активации слоя — вектор.
  • Веса всех соединений между двумя слоями — матрица.
  • Добавление сдвига — прибавление вектора сдвигов.
  • Вся операция перехода от одного слоя к другому записывается компактно и эффективно вычисляется: σ( W * a + b ), где σ — функция активации, W — матрица весов, a — вектор активаций, b — вектор сдвигов.

💡 Выводы

  1. Нейронная сеть — это сложная функция с огромным количеством параметров, которая преобразует входные данные (пиксели) в выходные (распознанные классы).
  2. Её слоистая структура интуитивно соответствует иерархическому разбиению задачи на подзадачи (пиксели → грани → шаблоны → объекты).
  3. Работа каждого нейрона определяется взвешенной суммой входов, сдвигом и нелинейной функцией активации.
  4. Ключевая сложность и суть машинного обучения — не в структуре, а в том, как найти правильные значения всех весов и сдвигов (обучение сети), что будет рассмотрено далее.
🧠 Основы нейронных сетей и распознавание цифр — конспект на EchoNote