[Python, Искусственный интеллект] Искусственные нейронные сети. Часть 2

Автор Сообщение
news_bot ®

Стаж: 6 лет 9 месяцев
Сообщений: 27286

Создавать темы news_bot ® написал(а)
16-Фев-2021 05:30

Нейронная сетьВ этой части мы изучим принципы работы нейронных сетей и напишем нейронную сеть из 2 слоев.Нейронные сети состоят из связанных между собой нейронов.Подробнее о нейронах я писал в предыдущей части.Нейронные сети делятся на слои:
  • Входной слой
  • Скрытые слои
  • Выходной слой
Скрытые слои это слои между входным и выходным, количество скрытых слоев может быть любым.Мы напишем нейронную сеть из 2 слоев, входного и выходного слоев.Вначале разберем принципы работы нейронных сетей.Как я уже говорил нейронные сети делятся на слои. В каждом слое некоторое количество нейронов. Выходы всех нейронов в слое, отправляются на входы всех нейронов следующего слоя.Схема нейронной сети из 3 слоев с 2 нейронами на входе, 3 скрытыми, 1 выходным будет выглядеть так
Такая связь между слоями называется, прямой связью.В итоге у нас получилось 3 слоя и 6 нейронов.Для больших проектов это немного, но так как мы только учимся, мы напишем нейронную сеть из 2 слоев с 2 входными нейронами и 1 выходным.Схема для нашей нейронной сети
Создадим файл NeuronNet.pyПодключим класс нейрона который писали в прошлой части:
from Neuron import *
Опишем в файле класс NeuronNet и конструктор для него:
class NeuronNet:
    def __init__(self):
        self.n = []
        for i in range(3):
            self.n.append(Neuron(2))
В конструкторе класса создается массив из объектов класса Neuron размером в 3 нейрона. Нейрону передаем в параметры число 2, так как входов для всех нейронов будет по 2.Для работы нейронной сети нам надо запустить функцию активации нейронов, запустить функцию активации 3 нейрона и передать ему выходы из 1 и 2 нейрона, на вход 1 и 2 нейрону передаем входные данные полученные от пользователя:
def activate(self, inputs):
    return self.n[2].activate(np.array([self.n[0].activate(inputs), self.n[1].activate(inputs)]))
В итоге у нас получился класс NeuronNet. Который мы записали в файл NeuronNet.py.Полное содержание NeuronNet.py:
from Neuron import *
class NeuronNet:
    def __init__(self):
        self.n = []
        for i in range(3):
            self.n.append(Neuron(2))
    def activate(self, inputs):
        return self.n[2].activate(np.array([self.n[0].activate(inputs), self.n[1].activate(inputs)]))
Теперь создадим файл main.py, чтобы проверить работоспособность нашей нейронной сети.Подключим к файлу main.py библиотеку numpy и наш файл NeuronNet.py:
import numpy as np
from NeuronNet import *
Создадим объект нейронной сети:
net = NeuronNet()
Объявим массив с входными данными и передадим его в нейронную сеть:
x = np.array([1, 2])
print(net.activate(x))
Полное содержание файла:
import numpy as np
from NeuronNet import *
net = NeuronNet()
x = np.array([1, 2])
print(net.activate(x))
Теперь запустим наш код. Введем в консоль:
python main.py
Вывод программы
Запустим еще раз
Наша программа будет выдавать каждый раз новый результат так как веса и смещения нейронов генерируются случайно. Это исправится когда мы начнем обучать нашу нейронную сеть.Подведем итоги.Сегодня мы:
  • Узнали принципы работы нейронных сетей
  • Выучили принципы связи нейронов в нейронных сетях
  • Написали класс NeuronNet на языке программирования python
  • Запустили свою первую нейронную сеть
В следующей части мы реализуем обучение нашей нейронной сети.Если остались вопросы после чтения статьи, задайте их в комментариях.
===========
Источник:
habr.com
===========

Похожие новости: Теги для поиска: #_python, #_iskusstvennyj_intellekt (Искусственный интеллект), #_nejoroset (нейоросеть), #_nejronnye_seti (нейронные сети), #_nejronnaja_set (нейронная сеть), #_nejronnaja_set_s_nulja (нейронная сеть с нуля), #_machine_learning, #_nejroseti (нейросети), #_iskusstvennyj_intellekt (искусственный интеллект), #_ai, #_ii (ии), #_mashinnoe_obuchenie (машинное обучение), #_python, #_iskusstvennyj_intellekt (
Искусственный интеллект
)
Профиль  ЛС 
Показать сообщения:     

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

Текущее время: 22-Ноя 19:41
Часовой пояс: UTC + 5