Знание того, как создавать нейронные сети, является фундаментальным шагом к применению алгоритмов машинного обучения для решения проблем. В этом посте я хотел бы кратко рассказать, что такое нейронная сеть и как ее построить с помощью Pytorch.
Что такое нейронная сеть?
Нейронные сети — это аппроксиматоры функций, они отображают входные данные в выходные так же, как это делают традиционные функции. Скрытые слои представляли веса и смещения, а добавление слоев активации реализовало цель построения нелинейных функций. Такая функция, как y=f(x1,…,xm)=f (w1*x+b1..wm*xm+bm), часто называется уровнем полного подключения (fc) в машинном обучении и оборачивает функцию механизмами активации ( Сигмоид, Тан, Релу).
Как построить нейронную сеть?
Используя Pytorch, мы можем создавать сети на лету. По сути, он предлагает два способа кодирования нейронных сетей.
- использовать модуль NN
from torch import nn class myNetwork(nn.Module): def __init__(self): super().__init__() # Hidden layer with linear transformation self.fc1 = nn.Linear(2, 16) self.fc2 = nn.Linear(16, 1) def forward(self, x): # Pass the input through all the layers x = self.fc1(x) x = self.relu(x) x = self.fc2(x) x = self.softmax(x) return x model = myNetwork() print(model)
2. используйте NN.sequential, чтобы сделать выражение более кратким
import torch from torch import nn class myNetwork(nn.Module): def __init__(self): super().__init__() self.layers = nn.Sequential( nn.Linear(2, 16), nn.ReLU(), nn.Linear(16, 1), nn.Sigmoid() ) def forward(self, x): x = self.layers(x) return x model = myNetwork() print(model)
Это наиболее часто используемые методы, если вы хотите настроить сети, вы можете вручную определить веса и смещения, до сих пор, как новичок, я никогда не использовал этот метод.