ИНС — это воплощение нейронной структуры головного мозга в виде компьютерной программы. Нейронная сеть мозга — гигантская взаимосвязанная систематизированная сеть нейронов, сигнал в которых от оного нейрона передается во множество других. Ее обучение происходит с помощью повторной активации некоторых нейронных соединений. Благодаря этому возрастает шанс вывода верного результата при входе соответствующей информации.
Искусственный нейрон, как и настоящий нейрон, может находиться либо в возбужденном, либо в заторможенном состоянии. Определить это можно, как сумму состояний всех его входов.
Мы видим, что значение при входе в синапс, представляет собой его произведение на собственный вес, после все значения суммируются и тем самым получаем состояние нейрона в настоящее время.
float summ = 0;
for (int i = 0; i < N; i++)
{ summ += inputs[i]*weights[i]; }
Биологический нейрон имитируется в ИНС с помощью активационной функции. Другими словами, когда вход превышает некоторое значение, выход меняет свое состояние (0 на 1). Таким образом эмитируется активация биологического нейрона в головном мозге. Для применения этой методики в программировании, часто применяют функцию в виде этой части кода:
import matplotlib.pylab as plt
import numpy as np
x = np.arange(-8, 8, 0.1)
f = 1 / (1 + np.exp(-x))
plt.plot(x, f)
plt.xlabel('x')
plt.ylabel('f(x)')
plt.show()
А как же развита ИНС в настоящее время? Но прежде чем рассмотреть ее развитие и где она используется, давайте выясним, как она появилась.
В 1948 году публикует свою работу на тему кибернетики Н. Винер с его соратниками. В публикации представляется идея, с помощью которой можно представить биологические процессы математическими моделями. И уже в 1958 году Ф. Розенблатт создает первый однослойный перцептрон (узел нейронов) и показывает его умение находить решения задачь классификации.
В первой половине следующего столетия, в2007 году Джеффри Хинтоном в университете Торонто разработаны и использованы новые алгоритмы глубокого обучения многослойных нейронных сетей. После прохождения обучения ИНС, можно получить бысторо функционирующее приложение, которое может успешно выполнить конкретную задачу (поиск лиц на изображении). На сегодняшний день функция поиска человеческого лица стала стандартной на цифровых фотоаппаратах. Использованные при распознавании ИНС могут иметь до 9 слоёв нейронов, их обучение производится на миллионах изображениях с похожими образами.
Искусственные нейронные сети применяют во многих сферах жизни. Например, в Google картах в режиме Street View можно заметить скрытые лица людей и номерные знаки машин – это сделали нейронные сети. А также их используют при наборе текста с помощью голоса или звуковой дорожки (задействует распознавание речи). В интернете есть огромное множество приложений, использующих ИНС для подстановки масок на лица людей в реальном времени.
Потенциал нейросетей огромен, но при работе с ними самым проблемным и трудным процессом является обучение ИНС решать разнообразные задачи. При этом необходимо учитывать все мелочи, так как даже малосущественная ошибка или отсутствие элементарной части данных приведет к неверной работе нейронной сети в целом.