Yolo Vision Shenzhen
Шэньчжэнь
Присоединиться сейчас
Глоссарий

SiLU (Sigmoid Linear Unit)

Узнайте, как функция активации SiLU (Swish) повышает производительность глубокого обучения в задачах ИИ, таких как обнаружение объектов и NLP.

Сигмоидальный линейный блок, широко известный как SiLU, является самой современной функция активации, которая играет важную роль в современных архитектурах нейронных сетей (НС). Первоначально она была обнаружена в исследованиях, посвященных автоматизированного поиска функций активации, гдеона была названа Swish-SiLU стала предпочтительным выбором для глубоких слоев в высокопроизводительных моделях. Он функционирует как мост между линейным и нелинейным поведением, позволяя системам глубокого обучения (ГОО) моделировать сложные данные моделировать сложные модели данных более эффективно, чем старые методы. Умножая входной сигнал на его Сигмоидное преобразование, SiLU создает плавную, саморегулирующуюся кривую, которая улучшает поток информации во время обучения.

Механика SiLU

Математическое определение SiLU просто: $f(x) = x \cdot \sigma(x)$, где $\sigma(x)$ - сигмоидная функция. функция. Несмотря на свою простоту, эта структура обладает уникальными свойствами, которые выгодно отличают модели машинного обучения (ML).

  • Гладкость: В отличие от неровных "углов", встречающихся в ReLU (Rectified Linear Unit), SiLU является непрерывная, дифференцируемая функция. Эта гладкость помогает алгоритмам оптимизации, таким как градиентный спуск, обеспечивая последовательный ландшафт для обновления весов, что часто приводит к ускорению сходимости в процессе обучения модели.
  • Немонотонность: Ключевой особенностью SiLU является то, что он немонотонность, то есть его значение может уменьшаться даже при при увеличении входного сигнала (особенно в отрицательной области). Это свойство позволяет сети улавливать сложные особенности и "негативную" информацию, которая может быть отброшена функциями типа ReLU, что помогает предотвратить проблему проблемы исчезающего градиента.
  • Самостоятельный гейтинг: Функция действует как собственный гейт, определяя, какая часть входного сигнала проходит в зависимости от величины входного сигнала. Это имитирует механизмы стробирования, используемые в LSTM, но в упрощенном виде, эффективным с точки зрения вычислений способом, подходящим для Конволюционные нейронные сети (КНС).

Сравнение со смежными понятиями

Чтобы понять, когда использовать SiLU, нужно отличить ее от других распространенных функций активации, которые можно найти в глоссарии глоссарииUltralytics .

  • ReLU против SiLU: ReLU традиционно используется по умолчанию для скрытых слоев из-за своей скорости. Однако ReLU выдает жесткий ноль для всех отрицательных что приводит к появлению "мертвых нейронов", которые перестают обучаться. SiLU позволяет небольшому градиенту проходить через отрицательные значения, поддерживая активность нейронов и повышая точность глубоких сетей.
  • GELU по сравнению с SiLU: Линейный блок с гауссовой ошибкой (GELU) визуально и функционально очень похож на SiLU. Хотя GELU преимущественно используется в архитектурах преобразователей (таких как BERT или GPT), SiLU часто является стандартом для задач компьютерного зрения, включая Ultralytics YOLO11 семейство моделей.
  • Сигмоид против SiLU: В SiLU используется Sigmoid, они служат разным целям. Сигмоид обычно используется в выходном слое для бинарной классификации, чтобы получить вероятности, в то время как SiLU используется в скрытых слоях, чтобы облегчить извлечение признаков. извлечения признаков.

Применение в реальном мире

SiLU является неотъемлемой частью многих передовых решений в области искусственного интеллекта, где точность и эффективность имеют первостепенное значение.

  • Обнаружение объектов в режиме реального времени: Современные детекторы, такие как YOLO11 используют SiLU в своих магистральных и шейных архитектуры. Это позволяет модели поддерживать высокую скорость вывода, точно обнаруживая объекты в сложных условиях, таких как системы автономного транспорта, идентифицирующие пешеходов в ночное время.
  • Медицинская диагностика: В Анализ медицинских изображений, модели должны различать тонкие текстурные различия на снимках МРТ или КТ. Сохраняющий градиент характер SiLU помогает этим сетям изучать мелкие детали, необходимые для обнаружения опухолей на ранних стадиях, повышая надежность ИИ в здравоохранении.

Реализация на языке Python

Современные фреймворки позволяют легко реализовать SiLU. Ниже приведен краткий пример с использованием PyTorch демонстрирующий, как SiLU преобразует входные данные по сравнению со стандартным линейным преобразованием.

import torch
import torch.nn as nn

# Initialize the SiLU activation function
silu = nn.SiLU()

# Create a sample tensor with positive, negative, and zero values
input_tensor = torch.tensor([-2.0, -1.0, 0.0, 1.0, 2.0])

# Apply SiLU: Negative values represent the non-monotonic "dip"
output = silu(input_tensor)

print(f"Input:  {input_tensor}")
print(f"Output: {output}")
# Output demonstrates the smooth transition and retention of negative gradients

Для получения более подробной технической информации разработчики могут обратиться к официальной документации по PyTorch SiLU или эквивалентной реализацииTensorFlow SiLU. Понимание этих функций активации - ключевой шаг в освоении оптимизации модели.

Присоединяйтесь к сообществу Ultralytics

Присоединяйтесь к будущему ИИ. Общайтесь, сотрудничайте и развивайтесь вместе с мировыми новаторами

Присоединиться сейчас