Нейронные сети и слои

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

Jasmin Ludolf

Senior Data Science Content Developer, DataCamp

Слои нейронной сети

Диаграмма нейронной сети с входным, скрытым и выходным слоями

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

Слои нейронной сети

Диаграмма нейронной сети с входным, скрытым и выходным слоями

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

Слои нейронной сети

Диаграмма нейронной сети с входным, скрытым и выходным слоями

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

Слои нейронной сети

Диаграмма нейронной сети с входным, скрытым и выходным слоями

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

Наша первая нейронная сеть

Диаграмма простой нейронной сети только с входным и выходным слоями

  • Полносвязная сеть
  • Эквивалентна линейной модели
Введение в глубокое обучение с PyTorch

Проектирование нейронной сети

Три узла, представляющих входной слой нейронной сети

# Importing as nn to avoid writing torch.nn
import torch.nn as nn


# Create input_tensor with three features input_tensor = torch.tensor( [[0.3471, 0.4547, -0.2356]])
  • Нейроны входного слоя = признаки
  • Нейроны выходного слоя = классы
Введение в глубокое обучение с PyTorch

Проектирование нейронной сети

Три узла входного слоя нейронной сети со стрелками, указывающими вперёд на линейный слой

# Importing as nn to avoid writing torch.nn
import torch.nn as nn


# Create input_tensor with three features input_tensor = torch.tensor( [[0.3471, 0.4547, -0.2356]])
# Define our linear layer linear_layer = nn.Linear(
in_features=3,
out_features=2
)
Введение в глубокое обучение с PyTorch

Проектирование нейронной сети

Диаграмма простой нейронной сети только с входным и выходным слоями

# Importing as nn to avoid writing torch.nn
import torch.nn as nn


# Create input_tensor with three features input_tensor = torch.tensor( [[0.3471, 0.4547, -0.2356]])
# Define our linear layer linear_layer = nn.Linear( in_features=3, out_features=2 )
# Pass input through linear layer output = linear_layer(input_tensor) print(output)
Введение в глубокое обучение с PyTorch

Проектирование нейронной сети

Диаграмма простой нейронной сети только с входным и выходным слоями

$$ $$ $$

# Pass input through linear layer
output = linear_layer(input_tensor)
print(output)
tensor([[-0.2415, -0.1604]], 
    grad_fn=<AddmmBackward0>)
Введение в глубокое обучение с PyTorch

Веса и смещения

output = linear_layer(input_tensor)

Представление линейной операции

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

Веса и смещения

  • .weight
    print(linear_layer.weight)
    
Parameter containing:
tensor([[-0.4799,  0.4996,  0.1123],
        [-0.0365, -0.1855,  0.0432]], 
        requires_grad=True)

$$

  • Отражает значимость различных признаков
  • .bias
    print(linear_layer.bias)
    
Parameter containing:
tensor([0.0310, 0.1537], requires_grad=True)

$$

$$

  • Задаёт базовый выход нейрона
Введение в глубокое обучение с PyTorch

Полносвязная сеть в действии

Диаграмма простой нейронной сети только с входным и выходным слоями

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

Полносвязная сеть в действии

Диаграмма простой нейронной сети только с входным и выходным слоями

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

Полносвязная сеть в действии

Диаграмма простой нейронной сети только с входным и выходным слоями

  • Признак влажности получит более высокий вес
  • Смещение учитывает базовую информацию
Введение в глубокое обучение с PyTorch

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

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

Preparing Video For Download...