Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Федеральное агентство по образованию
Государственное образовательное учреждение высшего профессионального образования
«ПЕРМСКИЙ ГОСУДАРСТВЕННЫЙ ПЕДАГОГИЧЕСКИЙ УНИВЕРСИТЕТ»
Факультет информатики и экономики
Кафедра прикладной информатики
КУРСОВАЯ РАБОТА
по дисциплине
«Интеллектуальные информационные системы»
«Использование нейронных сетей для прогнозирования моделей цифрового фотоаппарата фирмы Nikon»
ИСПОЛНИТЕЛЬ: студентка гр. 1233
Толкачева Кристина Юрьевна
НАУЧНЫЙ РУКОВОДИТЕЛЬ: профессор
Ясницкий Леонид Нахимович
Пермь 2007
[1] Содержание
[2] [3] 1.1. Искусственные нейронные сети [4] 1.2. Примеры использования нейросетей [5] Глава 2. Практическое применение нейронных сетей для прогнозирования моделей цифрового фотоаппарата фирмы Nikon [6] 2.1. Метод прогнозирования [7] 2.2. Постановка задачи [8] Заключение [9] Список использованной литературы |
Введение
Искусственный интеллект- это раздел информатики, посвященный моделированию интеллектуальной деятельности человека. Сегодня - это обширная область исследований и разработок интеллектуальных систем, предназначенных для работ в трудно формализуемых областях деятельности человека. Для задач, решаемых методом искусственного интеллекта, характерно наличие большого числа степеней свободы с числом вариантов поиска решений, приближающимся к бесконечности. В отличие от жестко детерминированных компьютерных программ системы искусственного интеллекта сами ищут пути решения поставленной задачи. При этом они могут менять свои параметры и структуру, совершенствоваться и развиваться, не зависящей от воли разработчика жизнью1.
Сегодня методы искусственного интеллекта позволили создать эффективные компьютерные программы в самых разнообразных, ранее считавшихся недоступными для формализации и алгоритмизации, сферах человеческой деятельности, таких как медицина, биология, социология, культурология, политология, экономика, бизнес, криминалистика и т.п. идеи обучения и самообучения компьютерных программ, накопления знаний, приемы обработки нечетких и неконкретных знаний позволили создать программы, творящие чудеса. Компьютеры успешно борются за звание чемпиона мира по шахматам, моделируют творческую деятельность человека, создавая музыкальные и поэтические произведения, распознают образы и сцены, распознают, понимают и обрабатывают речь, тексты на естественном человеческом языке.
На сегодняшний день выделяют несколько направлений развития искусственного интеллекта, такие как:
Нейронные сети это набор нейронов, соединенных между собой. Нейронные сети и нейрокомпьютеры - это одно из направлений компьютерной индустрии, в основе которого лежит идея создания искусственных интеллектуальных устройств по образу и подобию человеческого мозга. Искусственный нейронные сети в значительной мере заимствуют принципы работы головного мозга. Знания в них не отделены от процессора, а равномерно распределены и существуют неявно в виде сил синаптических связей. Такие знания не закладываются изначально, а приобретаются в процессе обучения.
Нейроматематика эффективно применяется для трудноформализуемых и неформализуемых задач. При обучении на вход нейросети один за другим подаются исходные данные и сеть генерирует свои ответы. Полученные ответы сравнивается с известными, а сеть изменяется до тех пор, пока не выдаст правильные ответы на все исходные данные из обучающей выборки.
В последние десятилетия в мире бурно развивается новая прикладная область математики, специализирующаяся на искусственных нейронных сетях. Актуальность исследований в этом направлении подтверждается массой различных применений нейронных сетей: автоматизация процессов распознавания образов и адаптивное управление, аппроксимация функционалов и прогнозирование, создание экспертных систем и организация ассоциативной памяти и многое, многое другое. С помощью нейронных сетей можно, например, предсказывать показатели биржевого рынка, распознавать оптические или звуковые сигналы, строить самообучающиеся системы, способные управлять автомашиной при парковке или синтезировать речь по тексту.
Остановимся на рассмотрении нейросетевых технологий, которые и будут являться объектом данной курсовой работы. Для них главными принципами служат принципы работы головного мозга. Другими словами, нейротехнологии моделируют головной мозг человека. Исторически первой работой по созданию интеллектуальных устройств, которые моделируют не только работу, но и структуру, человеческого мозга, принято считать статью Мак-Каллока и Питтса. Эти авторы выдвинули гипотезу математического нейрона, моделирующего нейрон мозга человека. Далее идея Мак-Каллока-Питтса была материализована Фрэнком Розенблаттом2. Это устройство, имеющее в качестве элементной базы модельные нейроны Мак-Каллока-Питтса и названное персептроном, удалось обучить решению сложнейшей интеллектуальной задачи распознаванию букв латинского алфавита. Далее была усложнена структура персептрона, усовершенствована модель математического нейрона, разработано множество алгоритмов обучения, созданы персептроны на основе гибридных нейросетей, а так же расширился круг задач, решаемых с помощью нейросетей.
Пользуясь знаниями из области нейросетевых технологий, я в данной курсовой работе с помощью персептрона с двумя скрытыми слоями попытаюсь решить прикладную задачу, а именно попытаюсь смоделировать цены на акции ООО «Лукойл» на день вперед. Выбор данной темы было обусловлен тем, что в данной области применение методов искусственного интеллекта пока ещё не распространено достаточно широко, и с помощью своих исследований я бы хотела показать, что и в данной сфере возможно применение нейросетевых технологий, это и будет являться целью моей работы.
Для достижения поставленной цели необходимо решить ряд следующих задач:
- раскрыть сущность искусственного интеллекта;
- обучить один из нейросимуляторов;
- сделать выводы о результате проделанной работы.
Нейронные сети, представляют собой сеть элементов математических нейронов, связанных между собой синоптическими соединениями. Сеть обрабатывает входную информацию и в процессе изменения своего состояния во времени формирует совокупность выходных сигналов. Работа сети состоит в преобразовании входных сигналов во времени, в результате чего меняется внутреннее состояние сети и формируются выходные воздействия. Обычно нейронные сети оперирует цифровыми величинами.
Когда мы говорим о нейронных сетях, то чаще имеем в виду искусственные нейронные сети. Некоторые из них моделируют биологические нейронные сети, некоторые нет. Однако исторически сложилось так, что первые искусственные нейронные сети, были созданы в результате попыток создать компьютерную модель, воспроизводящую деятельность мозга в упрощенной форме. Конечно, возможности человеческого мозга неизмеримо больше, чем возможности самой мощной искусственной нейронной сети3.
Искусственные нейросети обладают рядом свойств, присущих биологическим нейросетям, в том числе и человеческому мозгу. Главное свойство нейросетей способность к обучению. Для решения какой-либо задачи на компьютере традиционным методом необходимо знать правила (математические формулы), по которым из входных данных можно получит выходные (найти решение задачи). С помощью нейросети можно найти решение, не зная правил, а имея несколько примеров. Нейросети используют подход к решению задач более близкий к человеческому, чем традиционные вычисления. В самом деле, например, когда человек переходит улицу, он оценивает скорость движения автомобиле исходя из предыдущего опыта не используя математических вычислений4. При этом часто он не может точно сказать, по каким признакам он их отличает, т.е. он не знает четкого алгоритма. Другое важное свойство нейросетей способность находить решение, основываясь на зашумленных, искаженных и даже противоречивых данных! Еще одно замечательное свойство это отказоустойчивость. В случае выхода из строя части нейронов, вся сеть в целом продолжает оставаться работоспособной, хотя, конечно, точность снижается. Это свойство важно для аппаратно реализованных нейросетей, т.к. если нейросеть эмулируется на традиционном компьютере, то в случае выхода из строя центрального процессора вся нейросеть потеряет работоспособность.
Нейронная сеть представляет собой совокупность большого числа сравнительно простых элементов - нейронов, топология соединений которых зависит от типа сети5. В основу искусственных нейронных сетей положены следующие черты живых нейронных сетей, позволяющие им хорошо справляться с нерегулярными задачами:
Как уже было сказано, прототипом для создания нейрона послужил биологический нейрон головного мозга. Биологический нейрон имеет тело, совокупность отростков - дендритов, по которым в нейрон поступают входные сигналы, и отросток иного рода - аксон, передающий выходной сигнал нейрона другим клеткам. Точка соединения дендрита и аксона называется синапсом. Упрощенно функционирование нейрона можно представить следующим образом: нейрон получает от дендритов набор (вектор) входных сигналов. В теле нейрона оценивается суммарное значение входных сигналов. Однако входы нейрона неравнозначны. Каждый вход характеризуется некоторым весовым коэффициентом, определяющим важность поступающей по нему информации. Таким образом, нейрон не просто суммирует значения входных сигналов, а вычисляет скалярное произведение вектора входных сигналов и вектора весовых коэффициентов. Далее нейрон формирует выходной сигнал, интенсивность которого зависит от значения вычисленного скалярного произведения. Если оно не превышает некоторого заданного порога, то выходной сигнал не формируется вовсе - нейрон "не срабатывает". И затем выходной сигнал поступает на аксон и передается дендритам других нейронов6. Поведение искусственной нейронной сети зависит как от значения весовых параметров, так и от функции возбуждения нейронов. Известны три основных вида функции возбуждения: пороговая, линейная и сигмоидальная. Для пороговых элементов выход устанавливается на одном из двух уровней в зависимости от того, стал ли суммарный сигнал на входе нейрона больше или меньше некоторого порогового значения. Для линейных элементов выходная активность пропорциональна суммарному взвешенному входу нейрона. Для сигмоидальных элементов в зависимости от входного сигнала выход варьируется непрерывно (но не линейно) по мере изменения входа. Сигмоидальные элементы имеют больше сходства с реальными нейронами, чем линейные или пороговые, но любой из этих типов можно рассматривать лишь как приближение.
Искусственные нейронные сети индуцированы биологией, так как они состоят из элементов, функциональные возможности которых аналогичны большинству элементарных функций биологического нейрона. Эти элементы затем организуются по способу, который может соответствовать анатомии мозга. Несмотря на такое поверхностное сходство, искусственные нейронные сети демонстрируют удивительное число свойств присущих мозгу. Например, они обучаются на основе опыта, обобщают предыдущие прецеденты на новые случаи и извлекают существенные свойства из поступающей информации, содержащей излишние данные.
Искусственные нейронные сети могут менять свое поведение в зависимости от внешней среды. Этот фактор в большей степени, чем любой другой, ответствен за тот интерес, который они вызывают. После предъявления входных сигналов (возможно, вместе с требуемыми выходами) они самонастраиваются, чтобы обеспечивать требуемую реакцию.
Имеется много впечатляющих демонстраций возможностей искусственных нейронных сетей: сеть научили превращать текст в фонетическое представление, которое затем с помощью уже иных методов превращалось в речь; другая сеть может распознавать рукописные буквы; сконструирована система сжатия изображений, основанная на нейронной сети.
Мы имеем дело с областью, продемонстрировавшей свою работоспособность, имеющей уникальные потенциальные возможности, много ограничений и множество открытых вопросов. Такая ситуация настраивает на умеренный оптимизм. Авторы склонны публиковать свои успехи, но не неудачи, создавая тем самым впечатление, которое может оказаться нереалистичным. Те, кто ищет капитал, чтобы рискнуть и основать новые фирмы, должны представить убедительный проект последующего осуществления и прибыли. Существует, следовательно, опасность, что искусственные нейронные сети начнут продавать раньше, чем придет их время, обещая функциональные возможности, которых пока невозможно достигнуть. Если это произойдет, то область в целом может пострадать от потери кредита доверия и вернется к застойному периоду семидесятых годов. Для улучшения существующих сетей требуется много основательной работы. Должны быть развиты новые технологии, улучшены существующие методы и расширены теоретические основы, прежде чем данная область сможет полностью реализовать свои потенциальные возможности.
Искусственные нейронные сети предложены для задач, простирающихся от управления боем до присмотра за ребенком. Потенциальными приложениями являются те, где человеческий интеллект малоэффективен, а обычные вычисления трудоемки или неадекватны. Этот класс приложений во всяком случае не меньше класса, обслуживаемого обычными вычислениями, и можно предполагать, что искусственные нейронные сети займут свое место наряду с обычными вычислениями в качестве дополнения такого же объема и важности.
Прежде чем искусственные нейронные сети можно будет использовать там, где поставлены на карту человеческая жизнь или ценное имущество, должны быть решены вопросы, относящиеся к их надежности.
Подобно людям, структуру мозга которых они копируют, искусственные нейронные сети сохраняют в определенной мере непредсказуемость. Единственный способ точно знать выход состоит в испытании всех возможных входных сигналов. В большой сети такая полная проверка практически неосуществима и должны использоваться статистические методы для оценки функционирования. В некоторых случаях это недопустимо. Например, что является допустимым уровнем ошибок для сети, управляющей системой космической обороны? Большинство людей скажет, любая ошибка недопустима, так как ведет к огромному числу жертв и разрушений. Это отношение не меняется от того обстоятельства, что человек в подобной ситуации также может допускать ошибки.
Проблема возникает из-за допущения полной безошибочности компьютеров. Так как искусственные нейронные сети иногда будут совершать ошибки даже при правильном функционировании, то, как ощущается многими, это ведет к ненадежности качеству, которое мы считаем недопустимым для наших машин.
Сходная трудность заключается в неспособности традиционных искусственных нейронных сетей "объяснить", как они решают задачу. Внутреннее представление, получающееся в результате обучения, часто настолько сложно, что его невозможно проанализировать, за исключением самых простых случаев. Это напоминает нашу неспособность объяснить, как мы узнаем человека, несмотря на различие в расстоянии, угле, освещении и на прошедшие годы. Экспертная система может проследить процесс своих рассуждений в обратном порядке, так что человек может проверить ее на разумность.
Теория искусственных нейронных сетей в настоящее время развивается стремительно.
Приведем несколько примеров использования нейросетей.
В принципе, нейронные сети могут вычислить любую функцию, имеющую решение, иными словами, делать все, что могут делать традиционные компьютеры.
На практике для того, чтобы применение нейронной сети было оправдано, необходимо, чтобы задача обладала следующими признаками:
Таким образом, нейронные сети хорошо подходят для распознавания образов и решения задач классификации, оптимизации и прогнозирования. Ниже приведен перечень возможных промышленных применений нейронных сетей, на базе которых либо уже созданы коммерческие продукты, либо реализованы демонстрационные прототипы.
И это далеко не весь список. Ежемесячно западные средства массовой информации сообщают о новых коммерческих продуктах на базе нейронных сетей.
1.3. Обзор программных продуктов
На сегодняшний день на рынке программного обеспечения можно встретить различные нейросимуляторы. Толковый нейросимулятор легко приспособить для решения практических задач на персональном компьютере, если не требуется производить вычисления как можно быстрее. Существуют симуляторы, поддерживающие нейроускорители - платы с процессорами цифровой обработки сигналов (DSP). Признаком добротного симулятора является подробное описание по применению с вводным курсом в теорию НС плюс техническая поддержка. Самые продвинутые симуляторы позволяют конструировать НС с экзотическими архитектурами и применять алгоритмы обучения, разработанные пользователем, а также обеспечивают мощное графическое отображение поведения НС при обучении. У «продвинутых», как и следовало ожидать, единственный недостаток очень высока цена.
Ознакомимся с некоторыми наиболее интересными нейросимуляторами для персональных компьютеров.
NeuroSolution (NeuroDimension)7
Цена зависит от комплектации и предоставляемых возможностей и колеблется от $195 до $1995. Лицензия для коммерческого использования созданных продуктов - еще $1995. Дополнительный модуль ($195-1495 в зависимости от уровня основной программы) генерирует DLL-библиотеки нейросетей, созданных в NeuroSolution, а удовольствие работать непосредственно из Excel обойдется еще в $195. Широкий набор типов нейросетей (Multi Layer Perceptron, модульные MLP, симбиоз IIR-фильтров с MLP, гибридные нейросети, нейросети анализа главных компонентов - PCA, адаптивный фильтр, нейросети с обратными связями, Кохонен, LVQ и т. д.) и алгоритмов обучения: BPE, Momentum, QuickProp, а так же Sanger и Oja для PCA. Общее количество весовых коэффициентов - до одного миллиона. Симулятор прост в освоении, у него хорошая справочная система, прекрасный графический интерфейс.
Работа с этим нейросимулятором сродни игре в Lego, и создать НС можно четырьмя путями. Первый - с помощью wizardа - очень полезен для начинающих. По ходу дела «помощник» будет выводить на экран множество информации о выбранной НС и окажет реальное содействие при создании нейросети с запланированной архитектурой. Другой путь - модифицировать прилагаемые демо-макросы. Третий - изменить макеты нейросетей из электронного руководства. Наконец, можно собирать (макетировать) НС «ручками», используя меню и пиктограммы.
NeuralWorks Pro II/Plus (Aspen Technology)7
Цена от $1995 до $4995 в зависимости от платформы (DOS, Windows, NT, Sun, RS6000, SGI) плюс $1,5-3 тыс. за консультации, обучение и поддержку. Судя по описанию, один из самых крутых - поддерживаются все известные типы нейросетей и алгоритмов обучения, включая разрабатываемые с использованием средств симулятора, обеспечивается автоматическая оптимизация спрятанного слоя нейронов, графически отображаются функционирование нейросетей и средства диагностики. Профессиональный вариант ($9995-14995), выполненный в виде специализированной среды разработки, позволяет генерировать исходный Си-код и использовать программирование на Си, то есть разрабатывать любые новые нейросети, а также включает пакеты для применений в реальном времени в совокупности с нечеткой логикой и генетическими алгоритмами.
MatLab+Neural Network Toolbox (MathWorks)8
Этому пакету досталось тяжелое наследство предыдущих версий: командно-строковый интерфейс, украшенный «виндовым» обрамлением. Запомнить все функции и их параметры - все равно что выучить от корки до корки новый язык, правда, по мере терпеливого освоения «языка» его достоинства видишь все лучше. Набор типов нейросетей стандартен. В версии 3.0 появилась возможность гибкого конструирования НС, а также были добавлены вероятностные и регрессионные нейросети. Несколько веселее с алгоритмами обучения: современный алгоритм обучения Levenberg-Marquardt собственной персоной.
Предусмотрен демонстрационный режим, воспользовавшись которым, оценим работу пресловутой НС с обратными связями (Elman). Здесь нейросеть должна предсказать периодические прямоугольные импульсы. Задачка служит хорошей проверкой на работоспособность НС подобной архитектуры. Не меняя настроек, можно загрузить готовый матлабовский файл, и обучение начинается. За изменением ошибки можно наблюдать в отдельном окне прямо по ходу обучения. Согласно замыслу авторов демонстрации, ошибка должна достичь величины 0,01. После предусмотренных пяти сотен повторов ошибка опустилась лишь до 1,00 (рис. 1), и даже начиная обучение заново, желаемого результата не последовало. Взамен программа предлагала попытаться продолжить обучение или добавить спрятанных нейронов.
Рис.1. MatLab+Neural Network Toolbox (MathWorks)
BrainMaker (California Scientific Software)9
Цена пакета в Штатах варьируется от $195 за обычную версию до $795 за профессиональную (95/98/NT/2000). Реализована только MLP-нейросеть: до 512 нейронов в каждом слое, до 8 слоев, до 32К весов между слоями нейронов. Работает с форматами Excel, Lotus, dBase, ASCII, binary. В профи-версии добавлены «финансовые» форматы (CompuTrack, MetaStock, CSI), а также отображение тренда весов во времени, прунинг (шаманство с весовыми коэффициентами) и генерация Си-кода. Задействовано 32-битное ускорение вычислений за счет использования MMX-команд. Поддерживаются нейросетевые платы-ускорители, в частности производства Adaptive Solutions. Любопытная деталь: California Scientific Software не предлагает модные алгоритмы ускорения обучения, делая ставку на аппаратное ускорение, благо дешевеющие, но шустрые в векторно-матричных вычислениях DSP справляются с MLP отменно.
Рис.2. BrainMaker (California Scientific Software)
Демонстрация BrainMaker сделана в лучших традициях черно-белого кино (рис. 2), поиграть можно только рандомизацией весовых коэффициентов. Классический по архитектуре MLP не является идеальным предсказателем в сравнении со специализированными нейросетями.
NeuroPro (Институт вычислительного моделирования СО РАН)10
Реализована лишь MLP-нейросеть: до десяти слоев, до ста нейронов в каждом слое. Судя по поведению при обучении на прилагаемых данных, действительно работает нейросеть. Назначение пакета - классификация и прогнозирование. Сначала надо ввести файл входных данных (форматы: dBase, FoxBase, FoxPro, Clipper, Paradox), после чего затруднений с освоением возникнуть не должно. Предусмотрено сокращение количества нейронов, весов и входов усилиями самой программы. Недостаток: трудно понять, как обеспечить соответствие входов (симптомов) желаемому отклику (синдромам).
NeuroOffice98 (АОЗТ «Альфа Систем», Санкт-Петербург)11
Уникальность ее кроется в возможности создания многослойной НС разветвленной архитектуры по усмотрению пользователя и с обучением по правилу обратного распространения ошибок.
В составе демо-версии - две программы. Первая, NeuroView+, предназначена для визуально-графического проектирования структурной модели и топологии нейронной сети. Утверждается, что размеры нейронной сети программно не ограничены. Вторая, NeuroEmulator, служит для обучения и тестовых испытаний спроектированной нейросети, а также для редактирования «синаптической карты» и функций активации нейронов.
Рис.3. NeuroOffice98 (АОЗТ «Альфа Систем», Санкт-Петербург)
Главный недостаток в том, что каждую связь между нейронами приходится задавать вручную (рис. 3), поэтому соорудить большую НС очень тяжело, да и времени на это уходит уйма. Вот если бы связи можно было тянуть (и копировать!) мышкой, как при создании рисунков в MS Word, а также размножать на целые группы нейронов, то работа бы закипела.
Еще один недостаток: после успешного завершения конструирования архитектуры не выдается подтверждающего сообщения.
Загрузив созданный проект в NeuroEmulator можно получить возможность инициализировать весовые коэффициенты, задать тип пороговой функции для каждого слоя, открыть файл входных данных (форматы Excel: CSV и BDT), предъявить эталоны на выходе и, наконец, приступить к обучению. Предусмотрена генерация тестовых входных данных (в частности, синус), но что именно предъявить для них на выходе в качестве эталона, программа не подсказывает. А ведь как раз в демо-версии была бы очень уместна автоматическая загрузка всех данных, на которых демонстрировалась бы работа программы в режиме обучения. Чтобы оценить работоспособность самой нейросети, пришлось быстренько сочинять хоть какие-то входные и эталонные данные.
Рис.4. Процедура обучения НС
Процедура обучения НС имеет собственное окно, разделенное на четыре части, назначение которых ясно из рис. 4. Предусмотрено пошаговое обучение («одиночный урок») с выводом значения достигнутой ошибки для каждого примера из входных данных. Так называемое статическое обучение, по идее, должно формировать оптимальные стартовые значения весовых коэффициентов с учетом конкретных входных данных. Режим «обучения множеству» предполагает обучение на всех данных вплоть до задаваемого значения ошибки. К сожалению, проследить за процессом обучения во времени можно лишь по мелькающим цифрам среднеквадратичной ошибки (СКО), чего явно недостаточно, чтобы выяснить причину тех или иных «затыков». Возможность просмотра значений весовых коэффициентов и порогов («смещений»), безусловно, полезна, но в случае «затыка» положения не спасает.
NNet (бета-версия)12
NNet выделяется среди общей массы не только оригинальным интерфейсом (рис. 5), который облегчает освоение и делает программу очень удобной в работе, но и хорошей скоростью вычислений (полностью 32-разрядная и многонитевая) и грандиозными возможностями. Хотя в бета-версии воплощена лишь MLP-нейросеть, зато предусмотрено функционирование в трех режимах (аппроксимация, фильтрация и классификация), но главное - количество нейронов в каждом слое может достигать 64К, а максимальное число весов - четырех миллиардов.
Рис.5. NNet (бета-версия)
Алгоритмы обучения: BPE, Momentum и скрытый Scaled Conjugate Gradient. Формат файлов ввода/вывода данных - double (8 байт на число), доступен всем, кто способен запрограммировать пару операндов.
Другие типы нейросетей (с обратными связями, комбинированные, сети анализа независимых компонентов, слепого разделения сигналов) не были включены в бета-версию программы.
Все рассмотренные выше нейросимуляторы зарубежного производства и, как правило, они очень дорогие. Нейросимуляторы российского производства, в полной мере удовлетворяющего требованиям сегодняшнего дня и способного конкурировать с зарубежными, мне найти не удалось, хотя некоторые отечественные образцы, целиком и полностью разработанные без использования зарубежных кодов, могли бы послужить основой (скорее всего, после объединения усилий) для создания передового программного продукта, в том числе для продажи на мировом рынке. Поэтому я использовала уже готовый нейросимулятор (рис. 6).
Рис.6. Нейросимулятор
На вкладке «Проектирование сети» указываются: тип активационной функции у каждого слоя сети, число нейронов входного и выходного слоя сети, а также число скрытых слоев. На вкладке «Обучение» мы загружаем саму выборку, используемую для обучения. На этой вкладке задается число итераций обучения и скорость обучения, а уже на вкладке «Вычисления» вводим входные параметры для проверки работы нейросимулятора.
Основной принцип работы этого нейросимулятора: сигналы, поступающие на входы Х1,…,Хn, умножаются на коэффициенты (веса, синапсы) соответствующие каждому входу и определяют уровень возбуждения нейрона. Выходной сигнал получается пропусканием суммарного сигнала возбужденных нейронов скрытого слоя через нелинейную функцию.
Итак, в настоящее время существуют методы, алгоритмы и устройства, которые позволяют нам довольно неплохо решать различные прикладные задачи. В рамках данной главы мы рассмотрели основные положения нейросетевых технологий: определения, необходимость их возникновения, а также перспективы развития нейросетей и различные виды современных программных продуктов, а также области применения нейросетевых технологий.
Для данной задачи ознакомимся с методом прогнозирования подробнее.
Прогноз (от греч. πρόγνωσις предвидение, предсказание) предсказание будущего с помощью научных методов или сам результат предсказания.
Прогнозирование, разработка прогноза; в узком значении специальное научное исследование конкретных перспектив развития какого-либо процесса.
Прогноз обоснованное суждение о возможном состоянии объекта в будущем или альтернативных путях и сроках достижения этих состояний. Прогнозирование процесс разработки прогноза.
Этап прогнозирования часть процесса разработки прогнозов, характеризующаяся своими задачами, методами и результатами. Деление на этапы связано со спецификой построения систематизированного описания объекта прогнозирования, сбора данных, с построением модели, верификацией прогноза.
Прием прогнозирования одна или несколько математических или логических операций, направленных на получение конкретного результата в процессе разработки прогноза. В качестве приема могут выступать сглаживание динамического ряда, определение компетентности эксперта, вычисление средневзвешенного значения оценок экспертов и т.д.
Модель прогнозирования модель объекта прогнозирования, исследование которой позволяет получить информацию о возможных состояниях объекта прогнозирования в будущем и (или) путях и сроках их осуществления.
Метод прогнозирования способ исследования объекта прогнозирования, направленный на разработку прогноза. Методы прогнозирования являются основанием для методик прогнозирования.
Методика прогнозирования совокупность специальных правил и приемов (одного или нескольких методов) разработки прогнозов.
Прогнозирующая система система методов и средств их реализации, функционирующая в соответствии с основными принципами прогнозирования. Средствами реализации являются экспертная группа, совокупность программ и т.д. Прогнозирующие системы могут быть автоматизированными и неавтоматизированными.
Прогнозный вариант один из прогнозов, составляющих группу возможных прогнозов.
Объект прогнозирования процесс, система, или явление, о состоянии которого даётся прогноз.
Характеристика объекта прогнозирования качественное или количественное отражение какого-либо свойства объекта прогнозирования.
Переменная объекта прогнозирования количественная характеристика объекта прогнозирования, которая является или принимается за изменяемую в течение периода основания и (или) периода упреждения прогноза.
Сложность объекта прогнозирования характеристика объекта прогнозирования, определяющая разнообразие его элементов, свойств и отношений.
Период основания прогноза промежуток времени, за который используют информацию для разработки прогноза. Этот промежуток времени называют также периодом предыстории.
Период упреждения прогноза промежуток времени, на который разрабатывается прогноз.
Прогнозный горизонт максимально возможный период упреждения прогноза заданной точности.
Точность прогноза оценка доверительного интервала прогноза для заданной вероятности его осуществления.
Достоверность прогноза оценка вероятности осуществления прогноза для заданного доверительного интервала.
Ошибка прогноза апостериорная величина отклонения прогноза от действительного состояния объекта.
Источник ошибки прогноза фактор, способный привести к появлению ошибки прогноза. Различают источники регулярных и нерегулярных ошибок.
Приведем пример использования нейронных сетей для прогнозирования моделей фотоаппарата фирмы Nikon. Покажем, какие параметры подавались на вход:
1. Дисплей (в дюймах)
2.Объектив (оптический зум)
3. Цифровое увеличение (цифровой зум)
4. Память (Мб)
5. Специальные функции: печать без использования компьютера, снижение эффекта красных глаз, слайд-шоу, поворот при просмотре снимков, поиск по дате.
0-нет;
1- снижение эффекта красных глаз;
2-снижение эффекта красных глаз+печать без использования компьютера;
3- снижение эффекта красных глаз+печать без использования компьютера+слайд-шоу;
4- снижение эффекта красных глаз+печать без использования компьютера+слайд-шоу+поворотр при просмотре снимков;
5- снижение эффекта красных глаз+печать без использования компьютера+слайд-шоу+поворотр при просмотре снимков+ поиск по дате.
6. Вес (гр)
7. Непрерывная съемка (кадр/сек)
8. Разрешение (Мпик)
9. Видео
0-нет;
1-есть.
10. Звук
0-нет;
1-есть
Я использовала Нейросимулятор, который был создан студентом 4 курса механико-математического факультета, Черепановым Ф. Внешний вид нейросимулятора представлен на рис.7.
Рис.7. Нейросимулятор
На данном рисунке видно, что мы использовали 10 входных параметров, 1 скрытый слой с 14-ю нейронами скрытого слоя и 12 нейронами на выходе.
Этот нейросимулятор мы обучали по выборке, составленной из параметров, представленных выше и указанных в таблице 1.
Данные обучающей выборки Таблица 1
Модель |
X1 |
X2 |
X3 |
X4 |
X5 |
X6 |
X7 |
X8 |
X9 |
X10 |
Y1 |
Y2 |
Y3 |
Y4 |
Y5 |
Y6 |
Y7 |
Y8 |
Y9 |
Y10 |
Y11 |
Y12 |
7900 |
2 |
3 |
3 |
13,5 |
1 |
180 |
1,8 |
7,1 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
D200 |
2,5 |
3 |
3 |
14 |
0 |
330 |
1,8 |
10,2 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
D40 |
2,5 |
3 |
3 |
20 |
1 |
495 |
3 |
10,2 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
D80 |
2,5 |
3 |
3 |
13 |
1 |
585 |
3 |
10,2 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
L12 |
2,5 |
3 |
4 |
21 |
2 |
125 |
3 |
7,1 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
L4 |
2 |
3 |
4 |
16 |
2 |
115 |
3 |
4 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
L5 |
2,5 |
5 |
4 |
8 |
2 |
170 |
3 |
7,2 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
P4 |
2,5 |
3,5 |
4 |
23 |
1 |
170 |
1,8 |
8,1 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
P500 |
2,5 |
3,5 |
4 |
21 |
1 |
200 |
2,2 |
10 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
S5 |
2,5 |
3 |
4 |
21 |
2 |
135 |
2,2 |
6 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
S500 |
2,5 |
3 |
4 |
26 |
1 |
125 |
3 |
7,1 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
S6 |
3 |
3 |
4 |
20 |
5 |
130 |
3 |
6 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
S7 |
3 |
3 |
4 |
14 |
3 |
140 |
4 |
7,1 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
D2 |
3 |
5 |
5 |
30 |
2 |
1070 |
5 |
12,4 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
D40 |
2,5 |
5 |
4 |
24 |
2 |
522 |
6 |
6,1 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Х1. Дисплей (в дюймах)
Х2.Объектив
Х3. Цифровое увеличение
Х4. Память (Мб)
Х5. Специальные функции
Х6. Вес (в граммах)
Х7. Непрерывная съемка (кадр/в секунду)
Х8. Разрешение (Мпик)
Х9. Видео
Х10. Звук
2.1. Обучение персептрона
Результаты, полученные при обучении персептрона, представлены на рис.8, а также в таблице 2. Так как параметров много, для наглядности возьмем первые 10 моделей.
Рис.8. Результаты нейросетевого моделирования цифровых фотоаппаратов.
Из графика видно, что нейросеть обучилась хорошо. В основном точность обучения составила 0,98, только в модели L5 точность составила 0,89. Покажем в таблице 2 результаты обучения.
Результат обучения Таблица 2
Y1 |
Y2 |
Y3 |
Y4 |
Y5 |
Y6 |
Y7 |
Y8 |
Y9 |
Y10 |
Y11 |
Y12 |
0,99 |
0 |
0 |
0 |
-0,01 |
0,01 |
0,01 |
0 |
0 |
-0,01 |
0 |
0 |
0 |
0,99 |
0 |
0 |
0 |
0 |
0 |
-0,01 |
0,01 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0,99 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0,98 |
0 |
0 |
0 |
0,01 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
-0,02 |
0,99 |
0,02 |
0,01 |
0,01 |
-0,02 |
0 |
0 |
-0,01 |
0 |
0 |
0,01 |
-0,05 |
0,02 |
0,99 |
0,01 |
0,05 |
-0,08 |
0,04 |
-0,03 |
-0,01 |
0 |
0 |
0,02 |
0,01 |
0,06 |
0,06 |
0,89 |
0,12 |
0,02 |
-0,09 |
0 |
0,01 |
0 |
0 |
0,01 |
0 |
0,03 |
0,03 |
0 |
0,99 |
0 |
0 |
-0,01 |
-0,01 |
0 |
0 |
-0,01 |
0,02 |
-0,05 |
-0,05 |
-0,04 |
0,08 |
1,01 |
-0,04 |
0 |
0 |
0 |
0 |
0 |
0 |
0,01 |
0,01 |
-0,08 |
0,12 |
0,01 |
0,93 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
-0,01 |
0,02 |
0 |
0 |
0,99 |
На рис.9 можно увидеть, насколько точно обучилась наша сеть:
Рис.9. Ошибка сети
Для того, чтобы понять, как же Нейросимулятор отреагирует на новые параметры, мы для тестируемой выборки подобрали 3 примера с различными данными, представленные в таблице 3.
Тестируемая выборка Таблица 3
Дисплей |
Объектив |
Цифр-ое увел-е |
Память |
Спец. ф-ции |
Вес |
Непрер-ая съемка |
Разрешение |
Видео |
Звук |
2,5 |
3 |
3 |
21 |
3 |
200 |
3 |
8 |
1 |
0 |
2 |
3 |
3 |
18 |
2 |
200 |
1,8 |
6 |
0 |
0 |
2,5 |
3 |
4 |
26 |
5 |
300 |
3 |
10 |
1 |
1 |
После обучения на тестовых примерах Нейросимулятор показал следующие результаты:
Первый тестируемый пример Таблица 4
2,5 |
3 |
3 |
21 |
3 |
200 |
3 |
8 |
1 |
0 |
|
S6 |
3 |
3 |
4 |
20 |
5 |
130 |
3 |
6 |
1 |
1 |
В первом тестируемом примере (таблица 4) на запрошенные данные (указаны в таблице жирным шрифтом),с точностью 1,26, Нейросимулятор выдал 1 наиболее подходящую модель- S6. В этой модели не совпали параметры: вес и разрешение, остальные параметры очень схожи.
Второй тестируемый пример Таблица 5
2 |
3 |
3 |
18 |
2 |
200 |
1,8 |
6 |
0 |
0 |
Во втором примере (таблица 5) Нейросимулятор не смог определить подходящую модель, возможно, это связано с тем, что такой модели нет, т.к. параметры брались произвольно по желанию покупателя..
Третий тестируемый пример Таблица 6
2,5 |
3 |
4 |
26 |
5 |
300 |
3 |
10 |
1 |
1 |
|
P5000 |
2,5 |
3,5 |
4 |
21 |
1 |
200 |
2,2 |
10 |
1 |
1 |
На третий пример с высокой точностью (0,90) Нейросимулятор на введенные данные выдал самый подходящий фотоаппарат модели P5000, в чем можно убедиться из таблицы 6.
Представим для наглядности результаты обобщения на рисунке 10.
Рис.10. Результаты обобщения тестируемой выборки
При проектировании персептронов необходимо понимать, что персептрон должен не только правильно реагировать на примеры, на которых он обучен, но и уметь обобщать приобретенные знания, т.е. правильно реагировать на примеры, которых в обучающей выборке не было. Погрешность персептрона, вычисленная на обучающей выборке называется погрешностью обучения, обозначаемой, а вычисленная на тестовой выборке- погрешностью обобщения, обозначаемой T. При увеличении числа нейронов внутренних слоев персептрона N погрешность обучения обычно падает, тогда как погрешность обобщения сначала падает, а затем, начиная с некоторого оптимального значения N=N0, возрастает [3]. Характерные кривые зависимости погрешностей обучения и обобщения от числа нейронов внутренних слоев персептрона приведены на рис. 11.
Рис.11. Характерные зависимости погрешности обучения и погрешности обобщения от числа нейронов внутренних слоев персептрона
Подведём итоги проделанной работы.
В первой части своей работы я обобщила свои знания в области нейросетевых технологий, а также сделала обзор программных продуктов, таких как:
Во второй (практической) части работы для определения модели цифрового фотоаппарата по введенным параметрам я использовала Нейросимулятор 1.0, в который подавались некоторые статистические данные, указанные в работе. Далее я обучала нейросеть и проверяла его работу. Для обучения сети использовался метод обратного распространения (Back Propagation)- перед началом обучения сети весам и порогам случайным образом присваиваются небольшие по величине начальные значения.. По мере того, как происходит обучение, поверхности отклика элементов сети вращаются и сдвигаются в нужное положение, а значения весов увеличиваются, поскольку они должны моделировать отдельные участки целевой поверхности отклика. Затем вычисляется вектор градиента поверхности ошибок. Этот вектор указывает направление кратчайшего спуска по поверхности из данной точки, поэтому при продвижении по нему, ошибка уменьшится. Значение ошибки, а также градиента поверхности ошибок используется для корректировки весов, после чего все действия повторяются.
В результате, Нейросимулятор хорошо обучился, но при проверке на тестируемых данных было выявлено, что из трех представленных примеров он смог определить только 2 наиболее подходящие модели фотоаппарата по заданным параметрам.
Моделей фотоаппаратов существует много, но у каждого человека свои потребности и невозможно угодить каждому, поэтому, используя Нейросимулятор, можно предложить потребителю наиболее близкие варианты моделей по нужным ему параметрам. Выбор уже остается за потребителем.
Ссылки на ресурсы Интернет
Нейронные сети;
1Ясницкий Л.Н.Введение в искусственный интеллект:Учеб. пособие для студ. высш. учеб. заведений/Леонид Нахимович Ясницкий.-М.:Издательский центр «Академия», 2005. с.10
2 Ясницкий Л.Н.Введение в искусственный интеллект:Учеб. пособие для студ. высш. учеб. заведений/Леонид Нахимович Ясницкий.-М.:Издательский центр «Академия», 2005.
3 Ф. Уоссермен. Нейрокомпьютерная техника: Теория и практика. Перевод на русский язык, Ю. А. Зуев, В. А. Точенов, 1992.
4 Хайкин С. Нейронные сети. Издательство «Вильямс», 2005.-1104 с.
5 Хайкин С. Нейронные сети. Издательство «Вильямс», 2005.-1104 с.
6 Ясницкий Л.Н.Введение в искусственный интеллект:Учеб. пособие для студ. высш. учеб. заведений/Леонид Нахимович Ясницкий.-М.:Издательский центр «Академия», 2005.
7 NeuroSolutions-http://www.neurosolutions.com
8 MathLab-http://www.Mathworks.com
9 NeuralNetworks-http://www.nd.com
10 NeuralNetworks-http://www.nd.com
11 NeuroSolutions-http://www.neurosolutions.com
12 NeuralNetworks-http://www.nd.com