назад Оглавление вперед


[Старт] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85] [86] [87] [88] [89] [90] [91] [92] [93] [94] [95] [96] [97] [98] [99] [100] [101] [102] [103] [104] [105] [106] [107] [108] [109] [110] [111] [112] [113] [114] [115] [116] [117] [118] [119] [120] [121] [122] [123] [124] [125] [126] [127] [128] [129] [130] [131] [132] [133] [134] [135] [ 136 ] [137] [138] [139] [140] [141] [142] [143] [144] [145] [146] [147]


136

Глава 14 НЕЙРОСЕТЕВЫЕ ТЕХНОЛОГИИ

14.1. Что такое нейросеть

Познакомимся с основной идеей построения так называемых нейро-сетевых моделей и рассмотрим примеры успешного применения нейро-сетевых моделей.

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

Можно считать, что при прохождении синапса сила импульса меняется в определенное число раз, которое мы будем называть весом синапса. Импульсы, поступившие к нейрону одновременно по нескольким денд-ритам, суммируются. Если суммарный импульс превышает некоторый порог, нейрон возбуждается, формирует собственный импульс и передает его далее по аксону. Важно отметить, что веса синапсов могут изменяться со временем, а значит меняется и поведение соответствующего нейрона.

Нетрудно построить математическую модель описанного процесса. Рассмотрим модель нейрона с тремя входами (дендритами), причем синапсы этих дендритов имеют веса w\, W2, w. Пусть к синапсам поступают импульсы силы Хь Х2, Хз соответственно, тогда после прохождения синапсов и дендритов к нейрону поступают импульсы wixi, W2X2, W3X3. Нейрон преобразует полученный суммарный импульс х = wixi + W2X2 + W3X3 в соответствии с некоторой передаточной функцией Дх). Сила вы-



ходного импульса равна = fix) = fiyv\X\ + W2X2 + 3X3). Таким образом, нейрон полностью описывается своими весами Wk и передаточной функцией Дх). Получив набор чисел (вектор) Xk в качестве входов, нейрон выдает некоторое число у на выходе.

14.2. Как работает нейросеть

Таким образом, работа нейросети состоит в преобразовании входного вектора в выходной вектор, причем это преобразование задается весами сети.

Одной из основных областей применения нейросетевых технологий являются задачи классификации, то есть задачи, в которых нужно отнести входные данные к одной из известных категорий.

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

любые числа на входы сети, мы получаем какой-то набор чисел на выходах сети. Таким образом, работа нейросети состоит в преобразовании входного вектора в выходной вектор, причем это преобразование задается весами сети. Практически любую задачу можно свести к задаче, решаемой нейросетью. В табл. 14.1 показано, каким образом следует формулировать в терминах нейросети задачу распознавания рукописных букв.

Таблица 14.1

Задача распознавания рукописных букв

Дано растровое черно-белое изображение буквы размером 30 х 30 пикселов

Надо определить, какая это буква (в алфавите 33 буквы)

Формулировка для нейросети

Дано: входной вектор из 900 двоичных символов (900 = 30 X 30)

Надо построить нейросеть с 900 входами и 33 выходами, которые помечены буквами. Если на входе сети- изображение буквы «А», то максимальное значение выходного сигнала достигается на выходе «А». Аналогично сеть работает для всех 33 букв

Поясним, зачем требуется выбирать выход с максимальным уровнем сигнала. Дело в том, что уровень выходного сигнала, как правило, может принимать любые значения из какого-то отрезка. Однако в данной задаче нас интересует не аналоговый ответ, а всего лишь номер катего-



рии (номер буквы в алфавите). Поэтому используется следующий подход- каждой категории сопоставляется свой выход, а ответом сети считается та категория, на чьем выходе уровень сигнала максимален. В определенном смысле уровень сигнала на выходе «А» - это достоверность того, что на вход была подана рукописная буква «А». Задачи, в которых нужно отнести входные данные к одной из известных категорий, называются задачами классификации. Изложенный подход - стандартный. Теперь, когда стало ясно, что именно мы хотим построить, можно переходить к вопросу «как строить такую сеть». Этот вопрос решается в два этапа: 1) выбор типа (архитектуры) сети; 2) подбор весов (обучение) сети;

На первом этапе следует выбрать: какие нейроны мы хотим использовать (число входов, передаточные функции); каким образом следует соединить их между собой; что взять в качестве входов и выходов сети.

Эта задача на первый взгляд кажется необозримой, но к счастью нам необязательно придумывать нейросеть «с нуля» - существует несколько десятков различных нейросетевых архитектур, причем эффективность многих из них доказана математически. Наиболее популярные и изученные архитектуры - это многослойный персептрон, нейросеть с общей регрессией, сети Кохонена и другие.

На втором этапе следует «обучить» выбранную сеть, т.е. подобрать такие значения ее весов, чтобы сеть работала нужным образом. Необученная сеть подобна ребенку- ее можно научить чему угодно. В используемых на практике нейросетях количество весов может составлять несколько десятков тысяч, поэтому обучение - действительно сложный процесс. Для многих архитектур разработаны специальные алгоритмы обучения, которые позволяют настроить веса сети определенным образом. Наиболее популярный из этих алгоритмов - метод обратного распространения ошибки (Error Back Propagation), используемый, например, для обучения персептрона.

14.3. Обучение нейросети

Обучить нейросеть - значит сообщить ей, чего мы от нее добиваемся. Этот процесс очень похож на обучение ребенка алфавиту. Показав ребенку изображение буквы «А», мы спрашиваем его: «Какая это буква?» Если ответ неверен, мы сообщаем ребенку тот ответ, который хотели бы

[Старт] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85] [86] [87] [88] [89] [90] [91] [92] [93] [94] [95] [96] [97] [98] [99] [100] [101] [102] [103] [104] [105] [106] [107] [108] [109] [110] [111] [112] [113] [114] [115] [116] [117] [118] [119] [120] [121] [122] [123] [124] [125] [126] [127] [128] [129] [130] [131] [132] [133] [134] [135] [ 136 ] [137] [138] [139] [140] [141] [142] [143] [144] [145] [146] [147]