Московский государственный университет путей сообщения
Опубликован: 12.09.2011 | Доступ: свободный | Студентов: 3726 / 300 | Оценка: 4.67 / 4.33 | Длительность: 18:55:00
Специальности: Программист
Лекция 2:

Построение обученных логических нейронных сетей

Аннотация: Приводятся примеры построения нейронных сетей на основе нечеткой логики для различных применений: для распознавания букв, в играх, в бизнесе. Связи между нейронами выбираются в соответствии с логическим описанием системы принятия решений. Таким образом, сети строятся обученными. Целью лекции является внедрение начальных (и вполне достаточных) навыков в построении систем принятия решений на логических нейронных сетях.
Ключевые слова: конъюнктор, предикат, конъюнкция, дизъюнкция, булева функция, булева переменная, рецептор, мышление, алгебра, нейронная сеть, нейрон, рецепторный слой, дизъюнктор, выходной слой, передаточная функция, функция активации, нейросеть, верификация, персептрон, длина, искусственный интеллект, интерполяция, ассоциативное мышление, система принятия решений, расходы, ПО, нейроподобный элемент, входной слой, индекс, сеть, булевский тип, достоверность, исчерпывающее множество событий, математическим ожиданием, трудно формализуемая задача, распараллеливание, параллельная обработка, алгебра логики, функция активации нейрона, логическое описание, логическая нейронная сеть, средняя величина, абстрагирование, отрицание, значение выражения, нечеткая логика, значения порогов, C2, однослойная сеть, аппаратные средства, нейрокомпьютер, внешнее устройство, интегральная схема, подсеть, выходной нейрон, множество событий, комбинаторика, эвристика, терм, путь возбуждения, схемотехническая модель, единица, вывод, значение, ловушка, excel, разделы, однослойная нейронная сеть

Нейронная сеть для распознавания символов

Построение "схемотехнической" модели распознавания букв

Пусть перед нами экран, разбитый на двенадцать клеток, 4 x 3. Клетки отображают дискретность элементов изображения. При фокусировании изображения клетка либо засвечивается, либо нет. "Засветка" определяет единичное значение величины ее возбуждения, "не засветка" — нулевое. Так, буква О определяет засветку клеток, определяемую на рис.2.1. Буква А засвечивает экран, как показано на рис.2.2.

Что надо сделать, чтобы некий конструируемый нами прибор мог сказать, какая это буква?

Очевидно, надо все сигналы возбуждения клеток экрана, засвечиваемые буквой О, подать на конъюнктор, реализующий схему И. Единичный сигнал на выходе конъюнктора, как показано на рис.2.1, сформируется тогда и только тогда, когда засветятся все клетки экрана, на которое ложится изображение буквы О. Наличие единичного сигнала на выходе конъюнктора и определит ответ: "Это буква О".

Обучение букве "О"

Рис. 2.1. Обучение букве "О"
Обучение букве "А"

Рис. 2.2. Обучение букве "А"

То же необходимо сделать и для буквы А.

Пометим каждую клетку экрана ее координатами. Тогда на языке математической логики сделанное нами можно записать в виде логических высказываний — предикатов:

(1,2) \land (2,1) \land (2,3) \land (3,1) \land (3,3) \land (4,2) \to О
(1,1) \land (1,3) \land (2,1) \land (2,2) \land (2,3) \land (3,1) \land (3,3) \land (4,2) \to А.

Эти предикаты определяют "электронное" воплощение методами схемотехники.

При этом буквы не будут "мешать" друг другу, так как засветка соответствующих им клеток экрана частично не совпадает, и единичное значение конъюнкции определится только для одной из них.

А если на экран подать букву К? Тогда ни один из двух конъюнкторов не выработает единичное значение, так как не произойдет полное совпадение засветки соответствующих им клеток экрана. Чтобы "научить" систему букве К, необходимо ввести еще один конъюнктор и проделать те же построения, что и выше.

Таким образом, мы можем говорить, что построили систему распознавания двух "правильно" заданных букв.

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

Рассмотрим возможность распознавания буквы О, допустив возможность засветки клеток (1,1), (1,3), (4,1), (4,3). Тогда ранее построенный предикат примет вид:

((1,1) \lor (1,2) \lor (1,3)) \land (2,1) \land (2,3) \land (3,1) \land (3,2) \land (3,3) \land ((4,1) \lor (4,2) \lor (4,3)) \to О.

Аналогично, для буквы А допустим засветку клеток (4,1) и (4,3):

(1,1) \land (2,1) \land (2,2) \land (2,3) \land (3,1) \land (3,2) \land (3,3) \land ((4,1) \lor (4,2) \lor (4,3)) \to А.
Совместное обучение буквам "О" и "А"

Рис. 2.3. Совместное обучение буквам "О" и "А"

Объединив оба предиката, получим схему на рис.2.3.

Таким образом, мы реализовали для обучения и распознавания "схемотехнический" подход, основанный на применении булевых функций и оперирующий булевыми переменными 0, 1.

Построение логической нейронной сети, обученной распознаванию букв

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

Природа и мы, как ее часть, никогда не располагает точной, определенной и достоверной информацией. Засветка клеток экрана, как и рецепторов нашего глаза, не бывает полной, образ не бывает правильным, присутствуют шумы, пропуски и т.д. Тогда жизненную важность обретают понятия похожести, ассоциаций. "На что более всего похож "показанный" образ, возникшая ситуация, и какие ответные действия наиболее обоснованы?" — вот вопрос, определяющий принцип нашей жизни среди многих опасностей и свершений. Ассоциативность нашего мышления является абсолютной.

Значит, надо уйти от вполне определенных булевых переменных (0, 1, "да — нет", "белое — черное" и т.д.) в сторону неопределенности, достоверности или других оценок информации, — в сторону действительных переменных.

Но тогда необходимо уйти и от булевой алгебры, так как понятия конъюнкции и дизъюнкции для действительных переменных не определены. Тут и приходит на помощь анализ и применение принципов природной реализации — принципов нейронной сети, воплощенных в нашем мозге.

Преобразуем полученную нами обученную схему в нейронную сеть (рис.2.4).

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

Рецепторы, подобно экрану, возбуждаются извне. Все же другие нейроны, имитируя распространение возбуждения в мозге, реализуют передаточную функцию (в терминах теории автоматического регулирования) или функцию активации (в терминах теории нейронных сетей). Эта функция преобразует сигналы на входе нейрона, с учетом весов этих входов (пока отложим их рассмотрение), в величину возбуждения данного нейрона, передаваемого далее по сети в соответствии со связями нейронов и достигающего одного или более нейронов выходного слоя.

 Нейронная сеть для распознавания букв "О" и "А"

Рис. 2.4. Нейронная сеть для распознавания букв "О" и "А"

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

Первоначально находим V=\sum \limits_jV_j

Затем положим V_i= \begin{cases}
V,&\text{если V>h}\\
0,&\text{в противном случае}
\end{cases}

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

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

Пусть при показе буквы О засветились нейроны-рецепторы (1,1), (1,2), (1,3), (2,1), (2,3), (3,1), (3,3), (4,2). Тогда, при h = 0 величины возбуждения нейронов примут значения V_1 = 3, V_2 = 1, V_O = 8, V_A = 7. Нейрон О возбудился более, чем нейрон А, указывая тем самым, что скорее всего была показана буква О. Аналогично можно рассчитать реакцию нейросети на все возможные конфигурации четко заданных эталонов букв.

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

 V_{(1,1)} = 0,2, V_{(1,2)} = 0,7, V_{(1,3)} = 0, V_{(2,1)} = 0,5, V_{(2,2)} = 0,1, V_{(2,3)} = 0,5,
V_{(3,1)} = 0,5, V_{(3,2)} = 0,5, V_{(3,3)} = 0,1, V_{(4,1)} = 0,4, V_{(4,2)} = 0,4, V_{(4,3)} = 0,5.

Считаем: V_1 = 0,9, V_2 = 1,3, V_O = 3,8, V_A = 3,9.

Что ж, по-видимому, мы потребовали невозможного. Ведь при таком "крупнозернистом" экране налагаемые на него образы букв О и А пересекаются весьма существенно, и зашумленный показ букв обладает малой устойчивостью.

Рассмотренный принцип распознавания является обобщением принципа простейшего Персептрона, предложенного Ф. Розенблатом в 1959 г. [4] и ставшего классическим.

Кирилл Артамонов
Кирилл Артамонов

"Тогда как задать возбуждение рецепторов, если инспектор точно установил, что скорость автомобиля при наезде на пешехода была равна 114 км/час?
По-видимому, он рассуждает на основе близости скорости к границам указанного интервала: "Достоверность того, что скорость автомобиля составляет 100 км/час, я найду как (114 – 100):(120 – 100), а достоверность того, что скорость автомобиля составляет 120 км/час, я найду как (120 – 114):(120 – 100). Следует обратить внимание на то, что сумма найденных достоверностей равна единице."

Вопрос по расчёту скорости и сумме достоверности: этот математический (приведенный выше в виде контекста из материала лекции 1, страницы 3) метод справедлив к скоростным показателям выходящим за рамки диапазона 100-120. 
То есть, практически применяв к расчёту, скорости из диапазона 114-155, к диапазону 100-120, получал в результате суммирования достоверностей единицу.
Это похоже на то, как я видимые разные скоростные показатели своим рецептором, буду воспринимать линейно с помощью одного диапазона, так как он универсален. 
Правильно ли это ? 
И как манипулировать данными показателями, если есть универсальный диапазон, по результату выводящий в сумме постоянно единицу на разных скоростных показателях стремящегося.

Владислав Гладышев
Владислав Гладышев

А как проходить курс ? я же могу прямо сейчас все лекции прочитать и здать экзамен, к чему там даты ?