[Python, Искусственный интеллект] Искусственные нейронные сети. Часть 2
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Нейронная сетьВ этой части мы изучим принципы работы нейронных сетей и напишем нейронную сеть из 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
===========
Похожие новости:
- [Информационная безопасность, Разработка мобильных приложений, IT-компании] ЦБ сообщил банкам о новом типе атаки на счета юридических лиц через мобильное приложение
- [Информационная безопасность] Security Week 07: конфуз с зависимостями в софте
- [Здоровье] «Клинит» кисть и стреляет в руку у программистов — почему? Что с этим делать?
- [Научно-популярное, Химия, Экология, Будущее здесь] Окна будущего: прозрачная древесина вместо стекла (перевод)
- [Интернет-маркетинг, Карьера в IT-индустрии, IT-компании] ИСТОРИЯ ОДНОЙ ПОКУПКИ В ИНТЕРНЕТ-МАГИЗИНЕ МТС ИЛИ КАДРЫ РЕШАЮТ ВСЕ
- [Развитие стартапа, Законодательство в IT, Финансы в IT, IT-компании] Сотрудничество с самозанятыми: преимущества и «подводные камни»
- [Математика, Машинное обучение, Будущее здесь] Ученые создали машину для изобретения математики
- [Nginx, Управление проектами, Лайфхаки для гиков, Мозг] Уточняем детали проекта методами практической психологии
- [JavaScript, Node.JS, Профессиональная литература] Книга «Веб-разработка с применением Node и Express. Полноценное использование стека JavaScript. 2-е издание »
- [Python, Программирование] Разбираемся с not в Python (перевод)
Теги для поиска: #_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-Ноя 14:32
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Нейронная сетьВ этой части мы изучим принципы работы нейронных сетей и напишем нейронную сеть из 2 слоев.Нейронные сети состоят из связанных между собой нейронов.Подробнее о нейронах я писал в предыдущей части.Нейронные сети делятся на слои:
Такая связь между слоями называется, прямой связью.В итоге у нас получилось 3 слоя и 6 нейронов.Для больших проектов это немного, но так как мы только учимся, мы напишем нейронную сеть из 2 слоев с 2 входными нейронами и 1 выходным.Схема для нашей нейронной сети Создадим файл 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)])) 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)])) 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
Запустим еще раз Наша программа будет выдавать каждый раз новый результат так как веса и смещения нейронов генерируются случайно. Это исправится когда мы начнем обучать нашу нейронную сеть.Подведем итоги.Сегодня мы:
=========== Источник: habr.com =========== Похожие новости:
Искусственный интеллект ) |
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 14:32
Часовой пояс: UTC + 5