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

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

Telegram

Ваш конспект

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

🧠 Введение в нейронные сети: распознавание рукописных цифр

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

  • 🎯 Мозг легко распознаёт образы (например, цифру "3") даже при низком качестве, что является сложной задачей для программирования.
  • 🔥 Нейронные сети — это математическая модель, вдохновлённая мозгом, способная решать такие задачи.
  • 💡 Простейшая сеть для распознавания цифр состоит из слоёв нейронов, связанных весами и сдвигами.
  • ⚙️ Обучение сети — это поиск оптимальных значений 13 000+ параметров (весов и сдвигов).
  • 📊 Вся сеть — это сложная функция, преобразующая 784 входных значения (пиксели) в 10 выходных (уверенность в цифрах).

🤔 Почему это сложно и почему нейросети?

Задача написать программу, которая по сетке 28×28 пикселей определяет цифру, оказывается невероятно сложной. Нейронные сети — актуальный и мощный подход к решению таких задач машинного обучения.

🏗️ Структура простейшей нейронной сети

Нейрон в данном контексте — это сущность, содержащая число от 0 до 1, называемое активацией.

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

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

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

🎯 Как может работать распознавание? (Идеальная картина)

Сеть может научиться выявлять иерархию признаков:

  1. Второй слой распознаёт мелкие грани (края, штрихи).
  2. Третий слой комбинирует грани в компоненты цифр (кружок, вертикальная линия).
  3. Выходной слой комбинирует компоненты в целые цифры.

Пример: Цифра 9 = кружок сверху + линия справа. Сеть активирует нейроны, отвечающие за эти компоненты, что в итоге сильно активирует нейрон "9".

⚙️ Механика связи между слоями: Веса и сдвиги

Активация нейрона в следующем слое вычисляется на основе нейронов предыдущего слоя.

Процесс для одного нейрона:

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

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

📐 Масштаб параметров и компактная запись

  • Между первыми двумя слоями: 784 × 16 весов + 16 сдвигов.
  • Вся рассмотренная сеть содержит около 13 000 параметров (весов и сдвигов). Обучение — это настройка всех этих "ручек".

Компактное представление (линейная алгебра):

  • Активации слоя → вектор.
  • Веса между слоями → матрица.
  • Взвешенная сумма → матричное умножение.
  • Добавление сдвига и применение функции активации записывается в одну компактную формулу. Это эффективно для вычислений.

🧮 Сеть как функция

Вся нейронная сеть — это одна сложная функция с 13 000 параметров. Она принимает 784 числа (пиксели) на вход и выдаёт 10 чисел (уверенность в цифрах) на выходе.

💎 Выводы

  1. Нейронная сеть — это слоистая структура нейронов-функций, преобразующих активации от входа к выходу.
  2. Веса и сдвиги — настраиваемые параметры, определяющие, какие шаблоны ищет каждый нейрон.
  3. Обучение (рассматривается в следующем видео) — это автоматический поиск значений этих параметров на основе данных.
  4. Понимание роли весов и сдвигов помогает не воспринимать сеть как "чёрный ящик" и даёт инструменты для её улучшения.

P.S.: В современных сетях вместо сигмоиды часто используют ReLU (выпрямитель) — функцию, возвращающую максимум из 0 и входного значения, что ускоряет и облегчает обучение глубоких сетей.

🧠 Нейронные сети: распознавание рукописных цифр — конспект на EchoNote