PyTorch - Основы нейронной сети
Основной принцип нейронной сети - это совокупность базовых элементов, то есть искусственный нейрон или перцептрон. Он включает в себя несколько основных входов, таких как x1, x2… .. xn, которые выдают двоичный выход, если сумма больше, чем потенциал активации.
Схематическое изображение образца нейрона упоминается ниже -
Сгенерированный выходной сигнал можно рассматривать как взвешенную сумму с потенциалом активации или смещением.
$$ Выход = \ sum_jw_jx_j + Bias $$
Типичная архитектура нейронной сети описана ниже -
Слои между входом и выходом называются скрытыми слоями, а плотность и тип связей между слоями - это конфигурация. Например, в полностью связанной конфигурации все нейроны слоя L связаны с нейронами L + 1. Для более выраженной локализации мы можем подключить к следующему слою только локальное соседство, скажем девять нейронов. На рис. 1-9 показаны два скрытых слоя с плотными связями.
Различные типы нейронных сетей следующие:
Нейронные сети с прямой связью
Нейронные сети с прямой связью включают в себя основные элементы семейства нейронных сетей. Движение данных в нейронной сети этого типа происходит от входного уровня к выходному слою через существующие скрытые слои. Выход одного уровня служит входным слоем с ограничениями на любые петли в сетевой архитектуре.
Рекуррентные нейронные сети
Рекуррентные нейронные сети - это когда шаблон данных последовательно изменяется за период. В RNN тот же слой применяется для приема входных параметров и отображения выходных параметров в указанной нейронной сети.
Нейронные сети можно построить с помощью пакета torch.nn.
Это простая сеть прямого распространения. Он принимает входные данные, пропускает их через несколько слоев один за другим и, наконец, выдает выходные данные.
С помощью PyTorch мы можем использовать следующие шаги для типичной процедуры обучения нейронной сети:
- Определите нейронную сеть с некоторыми изучаемыми параметрами (или весами).
- Перебирать набор входных данных.
- Обработка ввода через сеть.
- Вычислите потерю (насколько результат отличается от правильного).
- Распространение градиентов обратно в параметры сети.
- Обновите веса сети, обычно используя простое обновление, как показано ниже.
rule: weight = weight -learning_rate * gradient