Прямой проход

Введение в глубокое обучение с PyTorch

Jasmin Ludolf

Senior Data Science Content Developer, DataCamp

Что такое прямой проход?

$$

  • Входные данные проходят через слои
  • На каждом слое выполняются вычисления
  • Последний слой формирует выходные данные

$$

  • Выходные данные зависят от весов и смещений
  • Используются для обучения и формирования предсказаний

Схема прямого прохода

Введение в глубокое обучение с PyTorch

Что такое прямой проход?

$$

Возможные выходные данные:

  • Бинарная классификация
  • Многоклассовая классификация
  • Регрессия

Схема прямого прохода с выделенным финальным выходом

Введение в глубокое обучение с PyTorch

Бинарная классификация: прямой проход

Блок кода с добавленными комментариями

# Create binary classification model
model = nn.Sequential(
  nn.Linear(6, 4), # First linear layer
  nn.Linear(4, 1), # Second linear layer
  nn.Sigmoid() # Sigmoid activation function
)
Введение в глубокое обучение с PyTorch

Бинарная классификация: прямой проход

# Pass input data through model
output = model(input_data)
print(output)
tensor([[0.5188], [0.3761], [0.5015], [0.3718], [0.4663]], 
    grad_fn=<SigmoidBackward0>)
  • Вывод: пять вероятностей от 0 до 1, по одной для каждого животного

  • Классификация (порог 0,5):

    • Класс = 1 (млекопитающее) при значениях ≥ 0,5 (0.5188, 0.5015)
    • Класс = 0 (не млекопитающее) при значениях < 0,5 (0.3761, 0.3718, 0.4633)
Введение в глубокое обучение с PyTorch

Многоклассовая классификация: прямой проход

  • Класс 1 – млекопитающее, класс 2 – птица, класс 3 – рептилия
n_classes = 3


# Create multi-class classification model model = nn.Sequential( nn.Linear(6, 4), # First linear layer nn.Linear(4, n_classes), # Second linear layer
nn.Softmax(dim=-1) # Softmax activation )
# Pass input data through model output = model(input_data) print(output.shape)
torch.Size([5, 3])
Введение в глубокое обучение с PyTorch

Многоклассовая классификация: прямой проход

multiclass.jpg

  • Сумма значений в каждой строке равна единице
  • Предсказанный класс – тот, у которого наибольшая вероятность
  • Строка 1 – класс 1 (млекопитающее), строка 2 – класс 1 (млекопитающее), строка 3 – класс 3 (рептилия)
Введение в глубокое обучение с PyTorch

Регрессия: прямой проход

# Create regression model
model = nn.Sequential(
  nn.Linear(6, 4), # First linear layer
  nn.Linear(4, 1) # Second linear layer
)

# Pass input data through model
output = model(input_data)

# Return output
print(output)
tensor([[0.3818],
        [0.0712],
        [0.3376],
        [0.0231],
        [0.0757]], 
        grad_fn=<AddmmBackward0>)
Введение в глубокое обучение с PyTorch

Давайте потренируемся!

Введение в глубокое обучение с PyTorch

Preparing Video For Download...