Узнайте, как стохастический градиентный спуск оптимизирует модели машинного обучения, обеспечивая эффективное обучение для больших наборов данных и задач глубокого обучения.
Стохастический градиентный спускSGD) является краеугольным алгоритм оптимизации, широко используемый в машинном обучении (ML) и глубоком обучении (DL). Он выступает в качестве движущей силы при обучении модели, итеративно корректируя внутренние весов и смещений модели, чтобы минимизировать ошибку вычисляемой функцией потерь. В отличие от традиционного градиентного спуска, который обрабатывает весь набор данных для вычисления одного обновления, SGD изменяет параметры модели используя только один, случайно выбранный обучающий пример за раз. Такой "стохастический" или случайный подход делает алгоритм вычислительно эффективным и высокомасштабируемым, создавая реальный путь для обучения на больших данных, где одновременная обработка всего набора данных не хватает памяти.
Основная цель обучения нейронной сети - перемещение по сложному ландшафту ошибок с целью нахождения наименьшей точки, представляющей наивысшую точность. SGD достигает этой цели с помощью повторяющегося цикла. Сначала вычисляется градиент - направление наибольшего увеличения ошибки для конкретного образца с помощью обратного распространения. Затем обновляет веса в противоположном направлении, чтобы уменьшить ошибку.
Величина этого шага контролируется скорость обучения, критическое значение, задаваемое во время настройки гиперпараметров. Поскольку SGD использует единичные выборки, путь к минимуму является зашумленным и зигзагообразным, а не прямым. Этот шум часто полезен, поскольку помогает модели избежать локальных минимумов - субоптимальных решений, в которых могут застрять нестохастические алгоритмы. что позволяет ей найти лучшее глобальное решение. Этот процесс повторяется в течение многих эпох, или полных проходов по набору данных, пока модель не сходится. пока модель не сходится. Читатели могут изучить математическую интуицию в Stanford CS231n optimization notes.
Понимание того, чем SGD отличается от родственных концепций, крайне важно для выбора правильной стратегии для ваших обучающих данных.
SGD и его разновидности являются стандартом для обучения современных систем искусственного интеллекта в различных отраслях.
Сайт ultralytics библиотека позволяет пользователям легко переключаться между оптимизаторами. В то время как AdamW может быть
по умолчанию для некоторых задач, SGD часто используется для тонкой настройки или специфических исследований. Приведенный ниже фрагмент
демонстрирует, как явно выбрать SGD для обучения модели.
from ultralytics import YOLO
# Load the latest YOLO11 model (nano version)
model = YOLO("yolo11n.pt")
# Train the model on the COCO8 dataset using the SGD optimizer
# The 'lr0' argument sets the initial learning rate
results = model.train(data="coco8.yaml", epochs=50, optimizer="SGD", lr0=0.01)
Этот код инициализирует YOLO11 модель и начинает обучение
с optimizer="SGD". Для дальнейшей настройки обратитесь к разделу
конфигурация обучения модели документация. Такие фреймворки, как
TensorFlow и
Scikit-learn также предлагают надежные реализации SGD
для различных задач машинного обучения.