Нейрон В этой статье вы узнаете основы работы искусственных нейронов.
В последующих статьях мы изучим основы нейронных сетей и напишем простую нейросеть на питоне.
Нейронные сети состоят из нейронов, связанных друг с другом, поэтому нейрон является основной частью нейронной сети.
Нейроны выполняют всего 2 действия: умножают входные данные на веса, суммируют их и добавляют смещение, а второе действие — активацию.
Теперь давайте узнаем больше о входных данных, весах, смещениях и функции активации.
Входные данные — это данные, которые нейрон получает от предыдущих нейронов или от пользователя.
Каждому входу нейрона присваиваются веса, изначально присваиваемые случайные числа.
При обучении нейронной сети изменяется значение нейронов и смещений.
Входные данные, подаваемые в нейрон, умножаются на веса.
Смещения присваиваются каждому нейрону, как и начальные веса смещения; это случайные числа.
Смещение упрощает и ускоряет обучение нейронной сети.
Функция активации, которую мы будем использовать в нашей нейронной сети, называется сигмоидой.
Сигмовидная формула выглядит так:
Эта функция помещает любое число от -∞ до +∞ в диапазон от 0 до 1. Если математически описать задачи, которые выполняет нейрон, то получим 2 формулы: Обозначения: f(x) - функция активации x - сумма произведения входных данных на веса и смещение i - массив входных данных w - массив весов б - смещение j - количество входных данных и весов
Алгоритм работы нейрона будет выглядеть так
Теперь давайте реализуем этот алгоритм на языке программирования Python. Прежде чем реализовывать нейрон, вам необходимо скачать и подключить библиотеку numpy. Чтобы загрузить библиотеку, напишите в терминале Linux или Window:
Чтобы подключить библиотеку к нашей программе, напишите в начале программы:pip install numpy
import numpy as np
Для удобства использования в больших программах и для удобства чтения кода реализуем класс Neuron и напишем для него конструктор:
class Neuron:
def __init__(self, number_of_weights = 1):
self.w = np.random.normal(size=number_of_weights)
self.b = np.random.normal()
Конструктор класса получает количество входов для нейрона в качестве параметра и заполняет массив весов случайными числами, после чего мы генерируем смещение.
Также для работы нейрона нам необходимо инициализировать функцию активации.
Это будет выглядеть так: def activate(self, inputs):
x = np.dot(self.w, inputs) + self.b
return sig(x)
Функция принимает входные данные, суммирует их и возвращает результат сигмовидной формы.
Чтобы функция активации работала, нам нужно написать сигмовидную функцию: def sig(x):
return 1 / (1 + np.exp(-x))
Эмы поместим эту функцию в файл Math.py Перед функцией снова подключим numpy: import numpy as np
Мы напишем класс нейрона в файле Neuron.py. И подключите файл Math.py к Neuron.py: from Math import *
В результате получаем 2 файла: Нейрон.
py import numpy as np
from Math import *
class Neuron:
def __init__(self, number_of_weights = 1):
self.w = np.random.normal(size=number_of_weights)
self.b = np.random.normal()
def activate(self, inputs):
x = np.dot(self.w, inputs) + self.b
return sig(x)
Math.py import numpy as np
def sig(x):
return 1 / (1 + np.exp(-x))
Эти файлы мы будем использовать в следующих статьях при построении нейронных сетей.
Итак, подведем итоги:
- Мы изучили принципы работы искусственных нейронов
- Мы изучили формулы, которые используются при работе нейронов
- Написал класс нейрона на языке программирования Python.
Теги: #python #искусственный интеллект #нейронные сети #нейронные сети #нейронная сеть #ais #нейроны #нейрон #нейронная сеть #ins #sigmoid #искусственные нейронные сети
-
Ввод Данных Дома – Начало Работы
19 Oct, 24 -
Книга "Майнкрафт. Программируй Свой Мир"
19 Oct, 24 -
Инструменты Ci/Cd: Gitlab Ci
19 Oct, 24 -
Университет Хабра
19 Oct, 24