Файл: Нечеткая логика и нейронные сети (История развития нейронных сетей).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 14.03.2024

Просмотров: 59

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

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

Именно с этой целью и создаются обучающие выборки.

Обучающая выборка (Training set) — конечный набор входных сигналов (иногда вместе с правильными выходными сигналами), по которым происходит обучение сети.

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

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

Тестовая выборка (Testing set) — конечный набор входных сигналов (иногда вместе с правильными выходными сигналами), по которым происходит оценка качества работы сети.

Мы поняли, что такое «обучение сети» – подбор правильного набора весов. Теперь возникает вопрос – а как можно обучать сеть? В самом общем случае есть два подхода, приводящие к разным результатам: обучение с учителем и обучение без учителя.

5.1 Обучение с учителем

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

Важный момент. Не путайте правильные ответы и известный алгоритм решения! Вы можете обвести пальцем лицо на фото (правильный ответ), но не сможете сказать, как это сделали (известный алгоритм). Тут такая же ситуация.

Затем, с помощью специальных алгоритмов, вы меняете веса связей нейронной сети и снова даете ей входной сигнал. Сравниваете ее ответ с правильным и повторяете этот процесс до тех пор, пока сеть не начнет отвечать с приемлемой точностью (как я говорил в 1 главе, однозначно точных ответов сеть давать не может).

Обучение с учителем (Supervised learning) — вид обучения сети, при котором ее веса меняются так, чтобы ответы сети минимально отличались от уже готовых правильных ответов.

Где взять правильные ответы?

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

Если мы хотим, чтобы сеть прогнозировала рост/падение цен, то обучающую выборку надо делать, основываясь на прошлых данных. В качестве входных сигналов можно брать определенные дни, общее состояние рынка и другие параметры. А в качестве правильных ответов – рост и падение цены в те дни.


И так далее…

Стоит отметить, что учитель, конечно же, не обязательно человек. Дело в том, что порой сеть приходится тренировать часами и днями, совершая и десятки тысяч попыток. В 99% случаев эту роль выполняет компьютер, а точнее, специальная компьютерная программа.

5.2 Обучение без учителя

Обучение без учителя применяют тогда, когда у нас нет правильных ответов на входные сигналы. В этом случае вся обучающая выборка состоит из набора входных сигналов.

Что же происходит при таком обучении сети? Оказывается, что при таком «обучении» сеть начинает выделять классы подаваемых на вход сигналов. Короче говоря – сеть начинает кластеризацию.

Например, вы демонстрируете сети конфеты, пирожные и торты. Вы никак не регулируете работу сети. Вы просто подаете на ее входы данные о данном объекте. Со временем сеть начнет выдавать сигналы трех разных типов, которые и отвечают за объекты на входе.

Обучение без учителя (Unsupervised learning) — вид обучения сети, при котором сеть самостоятельно классифицирует входные сигналы. Правильные (эталонные) выходные сигналы не демонстрируются.

Часть II.

Глава 6. Применение нечеткой логики на практике

Задача на расход топлива автомобиля

В задаче требуется определить расход топлива автомобиля. Входные сигналы: а) скорость движения автомобиля (низкая, средняя, высокая); б) температура окружающего воздуха (если высокая температура, то включается кондиционер) (высокая температура, низкая температура). Выходной сигнал: значение величины расхода топлива (большой расход, средний расход, маленький расход). Правила: 1. Если скорость движения низкая, температура воздуха низкая, то расход топлива маленький. 2. Если скорость движения средняя, температура воздуха низкая, то расход средний. 3. Если скорость высокая, температура воздуха высокая, то расход большой.

Построим задачу нечеткой логики чтобы определить расход топлива автомобиля в разных температурных условиях и разной скоростью. В задаче буду основываться на скорость автомобиля и температуру окружающего воздуха. Оценивать буду скорость [1 100] (где 1 – низкая, а 100 – высокая), температуру [0 30] (где 0 –низкая, а 30 – высокая). Средний расход автомобиля 12 л.


Для решения задачи выделю три основные правила:

  • Если скорость движения низкая, температура воздуха низкая, то расход топлива маленький;
  • Если скорость движения средняя, температура воздуха низкая, то расход топлива средний;
  • Если скорость высокая, температура воздуха высокая, то расход большой.

Для решения этой задачи сформулирую задачу нечеткого вывода с нуля.

Алгоритм решения:

  • Создам входы и выходы;
  • Определю функции принадлежности для нечетких переменных;
  • Определю правила работы системы

Решение.

Рис. 7 Начальное состояние редактора

В системе должно быть два входа (скорость движения автомобиля и температура окружающего воздуха). Добавим входы в редакторе: Edit → Add variable…→ Input. Появится новый блок с именем Input2. Изменяю имя Input1 на «скорость», а Input2 на «температуру». Выходной блок назову «расход». Имя всей сети «TipExpert» через меню File → Export → To WorkSpace…

Рис. 8 Состояние редактора после создания и переименования входных сигналов

Теперь нужно отредактировать функцию принадлежности для входа «скорость».

В поле Range, Display Range установлю диапазон переменных [1; 100]

Через пункт меню Edit → Add MFs..

Перейду к диалоговому окну, в котором задам функцию принадлежности гауссовского вида «gaussmf» с общим числом 3. Изменю имена функций на: низкая, средняя, высокая.

Рис. 9 Редактирование функции принадлежности входного сигнала «скорость»

Затем отредактирую функции принадлежности для входа «температура». В поле Range, Display Range установлю диапазон переменных [0; 30]. Создам две функции принадлежности трапецидальной формы «tramf» с соответствующими параметрами. Функции назову «низкая» и «высокая». Для функции «низкая» задам следующие значения параметров Params [0 0 5 10] и для функции «высокая» Params [20 25 30 30]

Рис. 10 Редактирование функций принадлежности входного сигнала «температура»

Далее отредактирую переменную «расход». Задам 3 функции принадлежности треугольной формы (trimf) с именами «маленький» (Params [0 4 8], «средний» (Params [8 12 16], «высокий» (Params [16 20 24]). Установлю диапазон для переменной Range [0 24]

Рис. 11 Редактирование функции принадлежности выходного сигнала «расход»


Создание правил.

Для создания правил, выбираю соответствующий пункт меню Edit → Rules…

Правила:

  • Если скорость движения низкая, температура воздуха низкая, то расход топлива маленький;
  • Если скорость движения средняя, температура воздуха низкая, то расход топлива средний;
  • Если скорость высокая, температура воздуха высокая, то расход большой.

Рис. 12 Создание правил

На этом конструирование экспертной системы закончено.

Проверка работы системы

Открою через пункт меню View/View rules... окно просмотра правил и установлю следующие значения переменных: скорость=50,5 (средняя), температура=3,31 (низкая). Ответ будет 12 литров (т. е. средний)

Рис. 13 Проверка результатов

Проверю другие варианты. При выборе «скорость=100, температура=26,4» расход топлива будет 20 литров (высокий).

Рис. 14 Проверка результатов

Подтверждением отмеченной зависимости выходной переменной от входных может служить вид поверхности отклика, который представляется при выборе пункта меню View/View surface.

Рис. 15 Диаграмма результатов.

Выводы

Благодаря возможности формулировать логические выводы, основанные на анализе накопленных знаний, информационные технологии, основанные на нечеткой логике, нашли широкое применение в различных отраслях, медицине и экономике в последние годы. Объем теоретических исследований и практических приложений в этой области, а также количество публикаций по этой теме в 1990-х и 2000-х годах росло с каждым годом.

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


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

В основе всех технологий Fuzzy и их приложений лежит теория нечетких множеств (FuzzySetTheorie), которая в 1965 году была предложена и обоснована проф. lofti zadeh (Лофти А. Заде) (Университет Беркли, Калифорния, США) [1, 2, 48]. По словам проф. Заде можно для каждого математического понятия найти нестрогий (размытый) аналог и, таким образом, создать новый математический аппарат, который моделирует мышление человека и позволяет средствам, описывающим логику мышления и процессы принятия решений человека, решать многие технико-экономические проблемы.

Теория нечетких множеств (методы нечеткой логики) является развитием классической теории множеств и бинарной логики. Если в классической бинарной логике отличаются только два результата: истина (1) и ложь (0), то в случае нечетких множеств существуют также промежуточные знания между крайними категориями (такими как истина и ложь), которые могут выражать определенную ненадежность рассматриваемые ценности или степень их взаимосвязи. Классические понятия бинарной логики «истина» и «ложь» в нечеткой логике расширяются понятиями, которые определяют некоторые промежуточные стадии истинности и ложности с помощью операторов многозначной нечеткой логики, эти понятия связаны между собой, что позволяет на основе накопленной базы знаний сделать нетривиальные выводы.

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

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