Сетевое издание
Международный студенческий научный вестник
ISSN 2409-529X

NEURAL NETWORKS

Maslov A.S. 1 Paltsev V.Y. 1
1 Stavropol State Agrarian University
The article is devoted to the problem of optimizing the process of using a computer connected with neural networks. Daily use of the computer encourages constant improvement of the conditions of its use, expansion of its functional spectrum, reliability. The article draws a parallel between the processes occurring in the human brain and associated with neurons and synapses, and processes occurring in the computer system and connected with nodes, directed joins and their weight. It is concluded that neural networks can not make computers think like people, but their capabilities allow to optimize the work of the computer user due to their positive qualities and the possibility of using without distraction for parallel processes, in the system, and multifunctionality. They also open the field for further research.
mathematics
neural networks
connection nodes
backward propagation
transfer function

Современные компьютеры несмотря на то, что могут сделать довольно простые. Они берут исходные данные, делают вычисления и выводят данные. Человеческий мозг гораздо сложнее. Человеческий мозг имеет миллиарды нейронов, и они общаются друг с другом, используя электрические импульсы. Таким образом, они создают синапсы, и масса синапсов отвечает за способность мозга думать и иметь сознание [1].

Некоторые ученые думали, что смогут сделать компьютеры, смоделировав эту систему нейронных связей. Они назвали свою идею нейронными сетями. Идея, стоящая за нейронными сетями, состоит в том, что у нас есть узлы, которые связаны друг с другом. Это похоже на нейроны и синапсы в мозге. Мы побуждаем узел с помощью исходных данных, а этот узел в свою очередь побуждает связанные с ним узлы. Но это не очень полезно, поэтому нейтронные сети организовывают так, как нужно для необходимых результатов. С тех пор как мы стали использовать компьютерную модель вычисления мы бы хотели использовать хорошо определенные входные и выходные узлы. Мы также хотели бы иметь направленные соединения, чтобы знать каким путем пройдет информация. Но кроме этого, мы хотим, чтобы у наших соединений были разные значения, это означает, что некоторые соединения более важные, чем другие. Эти разные значения называются весом, который показывает отличие одних областей от других. Назначение обладания разным весом в соединениях заключается в том, что это позволяет нашим узлам вести себя как настоящие нейроны. Когда узел возбуждается двумя разными узлами, вы можете решить какой из двух узлов более важен ему, используя вес.

На этом примере узлы А и В имеют разный вес, и они пытаются передать свои значения узлу С, так как они связаны с ним (рис. 1). Но связь между В и С толще, чем связь между А и С. Поэтому узел С решает, что В более важен и принимает его значения. В некоторых случаях мы бы хотели, чтобы узлы сами решали каких возбудителей им выбрать. Поэтому каждый узел думает о своих действиях. Для решения у каждого узла есть функции передачи для суждения входных данных. Так как компьютеры рассматривают всю информацию в виде чисел, функция передачи – это математическое уравнение, обычно не слишком сложное [2].

masl1.tif

Рис. 1

Примерами функций передачи являются: линейная функция; пороговая функция; сигмоидальная функция; логистическая функция; гиперболический тангенс; модифицированный гиперболический тангенс.

ms1.wmf, (1)

где t – параметр функции

ms2.wmf, (2)

где T – сдвиг функции активации

ms3.wmf, (3)

ms4.wmf, (4)

ms5.wmf, (5)

ms6.wmf (6)

при (a,b>1).

После принятия решения, узел принимает значение от выбранного возбудителя и сам становится возбудителем. Принятие решения о передаче значения очень полезно для выходных данных, так как эти узлы создают результаты, которые нам обычно нужны. Обычно функция передачи возвращает значение, как комбинацию узлов с разными значениями. Итак, для использования веса соединений и функций передачи, нейронные сети берут начальные (входные) и производит конечные (выходные) данные. Это та же задача, которую делает компьютер. Но она выполнена в виде более близком для нашего мозга [3].

Так как важны только входные и выходные узлы, мы полагаем, что узлы в середине скрыты. Они делают большую часть работы, но получают меньше похвалы. Один из самых важных вопросов – как определен вес соединения. Оказывается, нейронные сети могут выучить их. Сам это процесс называется обратным распространением. Если выбрать соединения с разным весом, тогда с данным набором входных данных мы выбираем желаемый набор выходных данных (рис. 2 и 3). Используя случайный вес, мы позволяем сети вычислять некоторые выходы, потом мы сравниваем вычисленные нейронной сетью данные с желаемыми данными.

masl2.tif

Рис. 2

masl3.tif

Рис. 3

Так как мы дали сети случайные данные, то не можем ожидать, что два выхода будут иметь одинаковые значения. Итак, мы находим разницу. Мы называем эту разницу ошибкой в сети. На примере мы дали каждой ячейке численное значение (рис. 4). Можно увидеть, что мы находим ошибку, просто вычитая и получая значения, называемые отрицательные ошибки. Теперь, имея ошибки, мы должны привести в порядок вес соединений. Попытаться получить меньшие ошибки, здесь нам поможет обратное распространение ошибки.

Выходные узлы сообщают скрытым узлам, что они соединены к ошибке и вместе они исправляют соединение между ними. Новые данные вычисляются по формуле (7), основанной на старых данных, ошибке и скоростью обучения.

ms7.wmf

ms8.wmf. (7)

masl4.tif

Рис. 4

Мы вернемся к определению скорости обучения позже. Скрытые узлы высчитывают собственную ошибку используя похожую на прежнюю формулу. Потом эти узлы с новыми высчитанными ошибками, прогоняют эти ошибки через скрытые узлы и исправляют вес позади них. Этот процесс будет идти, пока каждый вес не будет исправлен и определена каждая ошибка. Идея заключается в том, чтобы определить какие узлы виновны за ошибки в конечных данных и попытаться исправить вес. После обновления данных в узлах, сеть пытается использовать первоначальные данные и вычислить выходные данные. Данные будут близки к желаемым, но все еще будет ошибка. И весь процесс исправлений будет повторяться, пока ошибка полностью не исчезнет. Кроме того, нейронной сети нужно проделать этот процесс для всех входных данных в узлах [3].

Но это работает, обычно нейронная сеть произведет желаемые данные. Можно попытаться вычислить желаемый результат намного быстрее, изменив скорость обучения и также количество узлов в сети. Но все еще на это уйдет миллион попыток нейронной сети для решения простой проблемы.

Итак, могут ли нейронные сети заставить компьютеры думать как люди? Скорее всего нет, но мы можем многое получить от нейронных сетей. Их способность обучаться делает их гибкими и мощными. Кроме того, нет необходимости разрабатывать алгоритм для выполнения конкретной задачи; то есть нет необходимости понимать внутренние механизмы этой задачи. Они также очень хорошо подходят для систем реального времени из-за их быстрого ответа и времени вычисления, которое обусловлено их параллельной архитектурой. Нейронные сети также способствуют другим областям исследований, таким как неврология и психология. Они регулярно используются для моделирования частей живых организмов и для исследования внутренних механизмов мозга.

Возможно, самым захватывающим аспектом нейронных сетей является возможность создания каких-то «сознательных» сетей. Существует целый ряд ученых, утверждающих, что сознание является «механическим» свойством и что «сознательные» нейронные сети являются реалистичной возможностью.