10755

Нейросетевой детектор лжи

Курсовая

Информатика, кибернетика и программирование

Нейросетевой детектор лжи Курсовая работа Содержание Введение История детектора лжи в России Детектор лжи в аэропортах Правовое применение полиграфа детектора лжи в России Отношение россиян к детектору лжи Разработка нейросетевого де...

Русский

2013-04-01

280.5 KB

8 чел.

Нейросетевой детектор лжи

Курсовая работа

Содержание

Введение

  1.   История детектора лжи в России
  2.   Детектор лжи в аэропортах
  3.   Правовое применение полиграфа, детектора лжи в России
  4.  Отношение россиян к детектору лжи
  5.  Разработка нейросетевого детектора лжи

5.1   Дедукция

5.2   Основные параметры

5.3   Внешнее оформление

5.4   Дальнейшие направления развития нейросетевогоё   детектора лжи

6.   Листинг программы “Нейросетевой детектор лжи”

Библиографический список

Введение: Общее представление о «Детекторе лжи»

"...Я не знаю, как работает полиграф,

но знаю, что люди его боятся,

как черт ладана."

Президент США Р. Никсон: 

Детектор лжи сегодня

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

Сферы применения 

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

Эффективность прибора 

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

1. Описание предметной области

1.1. История детектора лжи в России [1].

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

В становлении отечественного полиграфа можно выделить две исторические вехи: первая – Александр Романович Лурия и вторая Валерий Алексеевич Варламов, а его начало отнести к 1923 году, когда наш соотечественник А.Р. Лурия провел первое исследование по выявлению ложных ответов. Уже через четыре года им было обследовано 50 человек, подозреваемых в убийстве.

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

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

В США была издана его книга. Исследования А.Р. Лурия имели большой научный и практический резонанс за рубежом. К сожалению, советские «ученые», отражая установочные мнения власти, негативно отнеслись к его работе.

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

В 1937 году А.Я Вышинский писал, что использование психологической диагностики в уголовном процессе – это не только абсурд, но и грубейшее нарушение прав человека. По-видимому, в 1937 году это было единственное нарушение человеческих прав.

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

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

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

В России правовое обеспечение применения полиграфа находится на начальной стадии. Отсчет времени его формирования можно считать с момента принятия указания МВД от 30 июля 1992 года «О правовом и нормативном обеспечении использования полиграфа в системе МВД РФ». Организация и проведение полиграфных проверок была поручена так называемому «Бюро специальных мероприятий». Позже его переименовали в «Управление оперативно-технических мероприятий» (УОТМ). Основная причина передачи полиграфной тематики этому подразделению МВД РФ заключалась в том, что руководство министерства было «старой закалки» и считало использование полиграфа для раскрытия преступлений ненужным, и, следовательно, судьба полиграфа была бы предрешена.

В это время во главе УОТМ был поставлен молодой, энергичный и смелый сотрудник С.В. Игнатов, умеющий отстаивать свои взгляды и убеждения. При его непосредственном участии были созданы подразделения ВНИИ МВД РФ и УОТМ, на которые возлагались как разработка теоретических проблем, так и проведение практических обследований. Только благодаря С.В. Игнатову 28 декабря 1994 года была принята первая в МВД РФ инструкция, регламентирующая использование полиграфа в расследовании преступлений.

Эта инструкция разрушила сложившийся у наших чиновников психологический барьер и дала возможность создать полиграфную службу в России. До появления инструкции полиграфные проверки в МВД проводились отдельными «смельчаками» и встречали резкую критику со стороны прокуратуры, вплоть до угроз привлечь к уголовной ответственности за несоблюдение законов СССР. Юридическую предпосылку для проведения полиграфных проверок давал статья № 6 Федерального Закона «Об оперативно-розыскной деятельности». В основу разработки этой инструкции был положен опыт работы полиграфной службы США.

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

В 1999 году была утверждена инструкция по применению полиграфа и в Министерстве обороны «Инструкция о порядке применения обследования с помощью полиграфа в отношении контактов о прохождении военной службы (трудовых договоров) и при допуске к государственной тайне». Она регламентировала только кадровые проверки. Министерство обороны не является субъектом оперативно-розыскной деятельности и по законам Российской Федерации не может заниматься раскрытием преступлений, совершаемых в его структурах.

Введение перечисленных инструкций – явление прогрессивное и долгожданное. Полиграф в России перестает быть каким-то экзотическим прибором. В то же время все они носят узковедомственный характер. До сих пор отсутствует документ, регламентирующий применение полиграфа в негосударственных структурах. Ряд положений, инструкций стереотипно копируют правовые документы США, которые не адаптированы к российским реалиям. Слепо переносить зарубежный опыт в Россию – задача неблагодарная. Социально-юридическая культура США настолько отличается от нашей, что их иногда вообще невозможно сравнивать.

Хочется верить, что эти недостатки в правовой базе явление временное.

В 1994 году во Всероссийском научно-исследовательском институте МВД РФ была проведена первая конференция по нетрадиционным методам в раскрытии преступлений. Одна из ее секций была посвящена проблеме использования полиграфа («детектора лжи») в оперативно-розыскной деятельности, на ней было заслушано 12 докладов.

В одном из них И.С. Зубрилова и С.Ю. Савин представили материалы об успешных полиграфных проверках, способствующих раскрытию преступлений: убийства, квартирной кражи, и трех угонов автомобилей.

1994 год можно считать началом массового внедрения полиграфа в России. В этот же период наряду с полиграфами В.А. Варламова на рынке России появились системы, разработанные другими производителями: «Интекс», «Эпос», а позже – «Диагноз» фирмы « Ареопаг», которая в дальнейшем, из-за низкого качества продукции, была переименована на «Ареопаг-М», а выпускаемый ею полиграф стал называться «Поларг».

Фирма-изготовитель, выпускающая полиграфы «Барьер – 14», «Крис» и «Риф», дает на свои приборы гарантию на пять лет и, мало того, еще 10-летнее научно-производственное сопровождение.

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

Рынок постепенно входит в цивилизованное русло.

Освещая историю развития полиграфа в России, в основном приходится говорить о Краснодарском крае, поскольку так уж сложилось, что именно здесь так много сделано для становления полиграфа.

В декабре 1993 года по инициативе начальника ГУВД Краснодарского края генерал-лейтенанта милиции А.Г. Сапрунова было проведено совещание руководителей и подразделений ОВД, на котором выступил представитель ВНИИ МВД РФ В.А. Варламов. Он рассказал о возможностях применения полиграфных устройств в борьбе с преступностью, и тогда же им были проведены тестирования по резонансному преступлению.

Несмотря на мощный нажим из центра в 90-е годы, в ГУВД Краснодарского края, благодаря усилиям его начальника А.Г. Сапрунова и сотрудника УСТМ С.Л. Николаева, были приобретены несколько полиграфов «Барьер -14», трехлетняя массовая эксплуатация которых позволила резко повысить раскрываемость преступлений по краю и собрать большой научно-практический материал для дальнейшего усовершенствования работы с применением полиграфа. Так, только по заказным убийствам было проведено около 40 полиграфных проверок.

Уже в январе 1995 года на базе ВНИИ МВД РФ были подготовлены два сотрудника ГУВД – И.Н. Николаева и С.Л. Николаев.

Вскоре в Краснодаре были проведены первые курсы по подготовке специалистов полиграфа. За 11 лет работы на базе ГУВД Краснодарского края первичную подготовку прошли более 300 человек из них 49 -представители других стран. По просьбе спец-структур было подготовлено 16 специалистов для России и ближайшего зарубежья.

В крае впервые начали проводить и курсы повышения квалификации для специалистов-полиграфологов.

Интенсивное использование полиграфа в течение ряда лет позволило провести в 1997 году 1-ю научно-практическую конференцию операторов полиграфа ГУВД Краснодарского края, где было заслушано 22 доклада.

В Краснодарском крае велась большая научная работа. При участии сотрудников ГУВД впервые в России были подготовлены и изданы методические рекомендации «О проведении полиграфных проверок при раскрытии заказных убийств». Имеются уникальные специальные рекомендации по использованию полиграфа при работе по поиску без вести пропавших людей. В г. Краснодаре издана первая в России книга-учебник для специалистов полиграфа, в которой обобщен почти 40-летний опыт работы на полиграфе.

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

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

В последнее время и в России также стали проводиться полиграфные экспертизы для рассмотрения в суде. Но это уже отдельная тема.

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

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

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

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

Тем более жалко, что время, затраченное МВД на освоение полиграфа, несмотря на убедительную эффективность его в работе, неоправданно велико.

1.2. Детектор лжи в аэропортах

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

В случае первого варианта – путешественник спокойно дойдет до самолета. Если отправят в красный – пассажир встретится со службой безопасности аэропорта и прочими «агентами», которые уже приготовили провокационные вопросы.

Как сообщается в пресс-релизе группы Ист Лайн, управляющей аэропортом Домодедово, испытание системы контроля доступа GК-1 длилось около четырех месяцев. Система, разработанная израильской компанией NEMESYSCO, испытывалась специалистами «Ист Лайн Авиэйшн Секьюрити».
 

Суть проверки GК-1 состоит в следующем: компьютер задает пассажиру четыре вопроса, анализирует психоэмоциональные характеристики голоса и принимает решение о направлении по зеленому или красному коридору. Вопросы совершенно отвлеченные: «вас встречают?», «кто?», «вы из Москвы?», «есть ли у встречающих телефон?» и т.д. Опрос проходит на родном языке тестируемого. Время проверки одного пассажира занимает от 30 до 90 секунд.
 

Если «все в порядке», то пассажир отправится по зеленому коридору на посадку. Если же компьютер решит, что вы представляете «оперативный интерес», то в конце красного коридора пассажира будут ждать специалисты службы безопасности. Тест повторят, и если результат снова насторожит, то придется пройти специальный контроль.
 

Специалисты Домодедова утверждают, что все результаты тестирования пассажиров на GК-1 «полностью совпали с результатами независимого контроля и показали высокую эффективность системы». Система успешно диагностировала случаи, представляющие оперативный интерес.
 

Расходы на усовершенствование безопасности московских аэропортов после терактов на Ту-134 и Ту-154 постоянно увеличиваются. К примеру, Внуково потратило около 5 млн. долларов, в Шереметьево на этот год выделено 65 млн. рублей, Домодедово помимо потраченных 5 млн. долларов выделяет дополнительные средства. Помимо GK-1 в Домодедово установлена и система EntryScan3, которая обнаруживает даже на одетом человеке следовые количества взрывчатых веществ. 
 
По материалам газеты ВЗГЛЯД - vzglyad.ru

от 20 сентября 2005 г.

1.3. Правовое применение полиграфа, детектора лжи в РФ.

Применение опросов с использованием полиграфа (детектора лжи) (ОИП) разрешено законом (ОРД) в 1992 г, где сказано, что "разрешается проведение устного опроса граждан с использованием технических средств (полиграфа), не причиняющего вреда их здоровью, с их письменного добровольного согласия".
    Проведение проверки на полиграфе (детекторе лжи) разрешено ТК РФ (ст.№ 70), где сказано, что: "может быть обусловлено испытание работника в целях его проверки соответствия поручаемой работе". Т. е. проверка на полиграфе (детекторе лжи) является абсолютно законной во всех её проявлениях. Ведь никого не удивляет, что работники, связанные с пищевыми продуктами, обязаны проходить медосмотр и сдавать ряд анализов. Законом не запрещается предложить пройти проверку на полиграфе (детекторе лжи) любому дееспособному гражданину, если возникли сомнения в его искренности. Чтобы не нарушать конституционные права граждан, проверка на полиграфе (детекторе лжи) проводится только с письменного добровольного согласия опрашиваемого лица перед тестированием, а в ходе опроса запрещено задавать вопросы, касающиеся военной и гос. тайны РФ, расовых, религиозных и политических убеждений, личной жизни, унижающих честь и достоинство человека и т. д. Работодатель, чтобы использовать полиграф, должен внести пункт о прохождении проверки в текст трудового договора, как одно из условий при приёме на работу, а для работающего персонала, сделать соответствующее предложение (можно устное) или внести пункт о необходимости периодического прохождения опросов в трудовой договор с работником, например, в ходе ежегодной переаттестации. Результаты проверки на полиграфе (детекторе лжи) в РФ имеют ориентирующее значение и не могут являться юридическим доказательством вины.
   Никто не в праве заставить человека проходить проверку, если он этого не захочет, однако никто не может и запретить использовать проверки на полиграфе (детекторе лжи) работодателю и получать ответы на вопросы, касающиеся лояльности, деловых и профессиональных качеств работника.

1.4. Отношение россиян к детектору лжи

В проверке на «детекторе лжи» при устройстве на работу большинство россиян не видят ничего плохого

Большинство россиян не возражали бы против проверки на детекторе лжи при устройстве на работу, сообщает сайт исследовательского центра Кадрового Дома "СуперДжоб". Только каждый пятый полагает, что это было бы нарушением его прав.
70% опрошенных согласились бы с подобным предложением потенциального работодателя. "Идиотизм, но если работодатель хочет - это его право! Я честный человек, и мне нечего скрывать", - комментируют они. Хотя некоторые поясняли, что согласились бы из чистого любопытства - чтобы посмотреть, что такое полиграф и как он работает.
11% опрошенных затруднились с ответом, а 19% ответили бы категорическим отказом, полагая, что это противоречит трудовому кодексу и конституции, является нарушением прав человека и вообще «в нашей стране нет настоящих специалистов в области расшифровки полученных данных».
"Каждый нормальный человек хочет выгодно представить себя работодателю. Но складывается впечатление, что рекрутерам нравится издеваться над соискателями, задавая провоцирующие и неприятные вопросы, на которые не всегда можно дать правдивый ответ".

ВЛАДИВОСТОК, 2 октября, PrimaMedia.

2. Цели курсовой работы. Постановка задачи

Дедукция

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

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

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

 

3. Основная часть курсовой работы

3.1. Основные параметры разрабатываемого

детектора лжи

Как и в предыдущей версии был мною использован алгоритм обратного распространения ошибки .

Количество входных нейронов – 9;  по количеству значимых параметров, снимаемых с человека, таких как верхнее дыхание, нижнее дыхание, пульс, давление, и т.д. Всего таких параметров пока 12, но мы используем только первые 9 из них. Вообще, со временем планируется увеличить это число. На основе предварительного анкетирования людей, возможно, добавятся такие параметры как возраст, вес, курит человек или нет и тому подобные.

Количество выходных нейронов – 1, он принимает значение 0 или 1, в зависимости от того, врёт человек или говорит правду.

Пока что в детекторе 2 скрытых слоя. На первом 2 нейрона, на втором – 1 нейрон.

Количество итераций в данной версии детектора – 5000.

Скорость обучения  - 0,07.

Количество скрытых слоёв, число нейронов на них, а также скорость обучения и число итераций были подобраны опытным путём в процессе разработки детектора. То есть, основываясь на правильной и неправильной  работе детектора при тестировании одного и того же человека, эти данные корректировались до тех пор, пока детектор не показывал 100% результат. В конце концов, эти данные приняли свой настоящий вид.

Никто не пытается утверждать, что эти данные окончательные и не подлежат изменению. Как раз наоборот, одно из дальнейших направлений работы над нынешним детектором – корректировка этих параметров на основе заранее сформированной выборки опрошенных людей. То есть, в конце концов, перечисленные выше параметры должны подходить для большинства человек. Вряд ли детектор всегда будет давать 100% результат распознавания при опросе, но подобрать такие параметры, при которых процент правильного определения будет близок к 100% вполне возможно. Сейчас он составляет порядка 75-85% для общей выборки и 70-75% для индивидуального тестирования. Но, поскольку направление, основывающееся на общей выборке, считается тупиковым, то дальше программа, скорее всего, будет корректироваться только в сторону индивидуального тестирования.

3.2. Внешнее оформление и функциональные возможности

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

Сейчас она выглядит следующим образом:

Возможно выбрать 2 режима работы программы – “Общий” и “Индивидуальный”.

В режиме “Общий” обучающая выборка уже сформирована и не корректируется. Нейросеть уже обучена на соответствующей выборке. Есть возможность только загрузить данные человека при опросе и, соответственно, получить результат – врёт данный человек или говорит правду.

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

Как видно на иллюстрации, результатом программы является несколько строк, в которых написано “Человек говорит правду”, либо “Человек говорит неправду”. Количество этих строк зависит от количества вопросов, которые задавались человеку. И, соответсвенно, детектор лжи показывает нам, где человек солгал, а где нет.

Возможные варианты результатов работы программы:

  •  Показано 2 и более строк, в которых человек говорит неправду
  •  Во всех случаях человек говорит правду
  •  Во всех случая человек говорит неправду

Все эти случаи, к сожалению, отражают неправильную работу нашего

детектора лжи. При внесении некоторых изменений, таких как – изменение скорости обучения, изменение количества итераций, количества скрытых слоёв и нейронов на скрытых слоях, можно добиться результата, когда детектор всегда будет выводить нам верные сведения. Но это может занять большое количество времени. Это говорит о том, что для идеальной работы детектор лжи нужно настраивать на конкретного человека. Или, по крайне мере, найти такие параметры работы, которые будут удовлетворять большинству людей.

4. Заключение

4.1. Итоги курсовой работы

Здесь еще раз указать – что из поставленных целей достигнуто, а что - нет

4.2. Дальнейшие направления развития нейросетевого детектора лжи

  •  Увеличение процента правильного определения результатов, стремление приблизить процент к 100.
  •  Корректировка некоторых основных параметров детектора лжи (таких как скорость обучения, число итераций, количество скрытых слоёв и нейронов на них; также возможно увеличение числа входных нейронов).
  •  Увеличение количества опрошенных людей, исправление работы программы уже на основе полученных данных.
  •  Улучшение интерфейса детектора, стремление сделать его как можно более доступным обычному пользователю

Список литературы:

  1.  Баринов М.Я. История полиграфа в России // Российский полиграф. – 2006. - № 1. – С.2-6.
  2.  Ясницкий Л.Н. Введение в искусственный интеллект. М.: Издательский центр «Академия», 2005. – 176с
  3.  Зибатова А.Н., Петров А.М., Сичинава З.И., Сошников А.П., Ясницкий Л.Н. Интеллектуальный полиграф // Российский полиграф. – 2006. - № 1. – С.76-83.
  4.  Зибатова А.Н., Петров А.М., Сичинава З.И., Ясницкий Л.Н. Этапы создания интеллектуального детектора лжи // Актуальные проблемы математики, механики, информатики: Международная научно-методическая конференция, посвященная 90-летию высшего математического образования на Урале / Перм. Гос. Ун-т; под ред. Л.И.Лядовой, В.И.Яковлева, Л.Н.Ясницкого. – Пермь, 2006. – С.125-126.
  5.  Петров А.М., Ясницкий Л.Н. Возможности создания нейросетевого полиграфа. Вестник Пермского университета. Математика. Информатика. Механика. Вып.2. Пермь: Изд. Пермского ун-та, 2005.  с.43-47

  1.  http://www.poiskistiny.ru/
  2.  http://www.poligraftest.ru/
  3.  http://www.psihoteh.ru/


ПРИЛОЖЕНИЕ

Листинг программы “Нейросетевой детектор лжи ”

unit NeuroDL;

interface

uses

 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

 Dialogs, StdCtrls, desc1, func1, Menus, IdBaseComponent, IdMessage;

type

 TForm1 = class(TForm)

   Open: TButton;

   OpenDialog1: TOpenDialog;

   Edit12: TEdit;

   Interval: TCheckBox;

   Int1: TEdit;

   Int2: TEdit;

   Edit14: TEdit;

   ForTest: TCheckBox;

   Memo2: TMemo;

   MainMenu1: TMainMenu;

   N1: TMenuItem;

   N2: TMenuItem;

   N3: TMenuItem;

   N4: TMenuItem;

   N5: TMenuItem;

   N6: TMenuItem;

   N7: TMenuItem;

   N8: TMenuItem;

   N10: TMenuItem;

   vb: TButton;

   ed: TButton;

   Edit1: TEdit;

   Label1: TLabel;

   Label2: TLabel;

   procedure Click;

   procedure FormCreate(Sender: TObject);

   procedure OpenClick(Sender: TObject);

   procedure vbClick(Sender: TObject);

   procedure N3Click(Sender: TObject);

   procedure N4Click(Sender: TObject);

   procedure N5Click(Sender: TObject);

   procedure IntervalClick(Sender: TObject);

   procedure N10Click(Sender: TObject);

   procedure N8Click(Sender: TObject);

   procedure edClick(Sender: TObject);

 private

   procedure Educate;

   procedure MinMax;

 public

   SL:TStringList;

 end;

const n=9;

     NI=5000;

     Speed=0.07;

var

 Form1: TForm1;

 a,b,c,min,max: array [1..n] of real;

 code,i,d,y,z,z1,z2 : integer;

 s,s1: string [11];

 AA,x:real;

 st1:string;

implementation

procedure TForm1.Click;

var mas: array[0..9] of Real;

   i,z,ze: Integer;

   s: String;

begin

DecimalSeparator:='.';

for Z:=0 to (SL.Count-1) div 9 do

begin

for ze:=0 to 8 do

a[ze+1]:=StrToFloat(SL[Z*9+ze]);

d:=0;

//вспомогательная операция

mas[0]:=(a[1]-(Ne.InMax[0]+Ne.InMin[0])/2)/((Ne.InMax[0]-Ne.InMin[0])/2);

mas[1]:=(a[2]-(Ne.InMax[1]+Ne.InMin[1])/2)/((Ne.InMax[1]-Ne.InMin[1])/2);

mas[2]:=(a[3]-(Ne.InMax[2]+Ne.InMin[2])/2)/((Ne.InMax[2]-Ne.InMin[2])/2);

mas[3]:=(a[4]-(Ne.InMax[3]+Ne.InMin[3])/2)/((Ne.InMax[3]-Ne.InMin[3])/2);

mas[4]:=(a[5]-(Ne.InMax[4]+Ne.InMin[4])/2)/((Ne.InMax[4]-Ne.InMin[4])/2);

mas[5]:=(a[6]-(Ne.InMax[5]+Ne.InMin[5])/2)/((Ne.InMax[5]-Ne.InMin[5])/2);

mas[6]:=(a[7]-(Ne.InMax[6]+Ne.InMin[6])/2)/((Ne.InMax[6]-Ne.InMin[6])/2);

mas[7]:=(a[8]-(Ne.InMax[7]+Ne.InMin[7])/2)/((Ne.InMax[7]-Ne.InMin[7])/2);

mas[8]:=(a[9]-(Ne.InMax[8]+Ne.InMin[8])/2)/((Ne.InMax[8]-Ne.InMin[8])/2);

Ne:=RunningNet(Ne, mas);

AA:=Ne.N[Ne.NumLayer+1,0].vout*(Ne.OutMax[0]-Ne.OutMin[0])/2+(Ne.OutMax[0]+Ne.OutMin[0])/2;

            str(AA:2:2,st1);

if AA>=0.98 then Memo2.Lines.Add('Человек говорит правду ')

           else Memo2.Lines.Add('Человек говорит неправду ');

end;

end;

procedure TForm1.Educate;

var

   mas: array[1..10] of Integer;

   k, i, j, ActiveIn, cicl, kol, l: Integer;

   Eps: Extended;

   s10: string;

   file0 : TextFile;

   file1 : TextFile;

begin

//Заполним основные параметры

Ne.NumLayer:=2; //число скрытых слоев

SetLength(Ne.N,Ne.NumLayer+2);

Ne.NumInput:=9;

Ne.NumOutput:=1;

SetLength(Ne.N[0],Ne.NumInput);

//вспомогательная операция

mas[1]:=2;//число нейронов скрытого слоя

mas[2]:=1;

mas[3]:=0;

mas[4]:=0;

mas[5]:=0;

mas[6]:=0;

mas[7]:=0;

mas[8]:=0;

mas[9]:=0;

mas[10]:=0;

//

SetLength(Ne.NumNeuron,Ne.NumLayer+2);

Ne.NumNeuron[0]:=Ne.NumInput;

for i:=1 to Ne.NumLayer do

begin

SetLength(Ne.N[i],mas[i]);

Ne.NumNeuron[i]:=mas[i];

end;

Ne.NumNeuron[Ne.NumLayer+1]:=Ne.NumOutput;

SetLength(Ne.N[Ne.NumLayer+1],Ne.NumOutput);

AssignFile(Ne.InFile,'In.dat');

AssignFile(Ne.OutFile,'Out.dat');

//типы активационных функций

Ne.ActiveIn:=0;

Ne.ActiveInOut:=2;

Ne.ActiveOut:=0;

//инициализируем сеть

if z1=1 then Ne.Master:=40 else Ne.Master:=2*strtoint(edit1.text);

Ne:=InitNet(Ne,Speed);

//Загрузим обучающую выборку

SetLength(Ne.InTrain,Ne.Master);

for i:=0 to Ne.Master-1 do

SetLength(Ne.InTrain[i],Ne.NumInput);

SetLength(Ne.OutTrain,Ne.Master);

for i:=0 to Ne.Master-1 do

SetLength(Ne.OutTrain[i],Ne.NumOutput);

if z1=1 then

 begin

   AssignFile(file0, 'result0.txt');

   AssignFile(file1, 'result1.txt');

 end

else

 begin

   AssignFile(file0, ExtractFilePath(ParamStr(0))+'R0.txt');

   AssignFile(file1, ExtractFilePath(ParamStr(0))+'R0.txt');

 end;

Reset(file0);

Reset(file1);

//входные параметры

for i:=0 to (Ne.Master div 2)-1  do

begin

j:=0;

for k:=0 to Ne.NumInput-1 do

 begin

  ReadLn(file0, s10);

  Ne.InTrain[2*i,j]:=StrToFloat(s10);

  ReadLn(file1, s10);

  Ne.InTrain[2*i+1,j]:=StrToFloat(s10);

  j:=j+1;

 end;

 ReadLn(file0);

 ReadLN(file1);

end;

CloseFile(file0);

CloseFile(file1);

//соответствующий вывод

for i:=0 to Ne.Master-1 do

for j:=0 to Ne.NumOutput-1 do

if (i div 2 =0) then

   Ne.OutTrain[i,j]:=0

 else

   Ne.OutTrain[i,j]:=1;

//нормировка

SetLength(Ne.InMax,Ne.NumInput);

SetLength(Ne.InMin,Ne.NumInput);

SetLength(Ne.OutMax,Ne.NumOutput);

SetLength(Ne.OutMin,Ne.NumOutput);

for j:=0 to Ne.NumInput-1 do

begin

Ne.InMax[j]:=Ne.InTrain[0,j];

Ne.InMin[j]:=Ne.InTrain[0,j];

end;

for j:=0 to Ne.NumOutput-1 do

begin

Ne.OutMax[j]:=Ne.OutTrain[0,j];

Ne.OutMin[j]:=Ne.OutTrain[0,j];

end;

for i:=0 to Ne.Master-1 do

begin

for j:=0 to Ne.NumInput-1 do

begin

 if Ne.InTrain[i,j]<Ne.InMin[j] then

  Ne.InMin[j]:=Ne.InTrain[i,j];

 if Ne.InTrain[i,j]>Ne.InMax[j] then

  Ne.InMax[j]:=Ne.InTrain[i,j];

end;

for j:=0 to Ne.NumOutput-1 do

begin

 if Ne.OutTrain[i,j]<Ne.OutMin[j] then

  Ne.OutMin[j]:=Ne.OutTrain[i,j];

 if Ne.OutTrain[i,j]>Ne.OutMax[j] then

  Ne.OutMax[j]:=Ne.OutTrain[i,j];

end;

end;

for i:=0 to Ne.Master-1 do

begin

for j:=0 to Ne.NumInput-1 do

 Ne.InTrain[i,j]:=(Ne.InTrain[i,j]-(Ne.InMax[j]+Ne.InMin[j])/2)/((Ne.InMax[j]-Ne.InMin[j])/2);

for j:=0 to Ne.NumOutput-1 do

 Ne.OutTrain[i,j]:=(Ne.OutTrain[i,j]-(Ne.OutMax[j]+Ne.OutMin[j])/2)/((Ne.OutMax[j]-Ne.OutMin[j])/2);

end;

//нормировка конец

cicl:=NI;

Ne:=TrainNet(Ne, cicl);

showmessage('Процесс обучения завершён');

end;

procedure Tform1.MinMax;

var

   st:array[1..10000] of string;

   b,b1,d,d1: array[1..9] of real;

   c: real;

   i,j,k: integer;

   s10: string;

   file0 : TextFile;

   file1 : TextFile;

begin

AssignFile(file0, 'result0.txt');

AssignFile(file1, 'result1.txt');

Reset(file0);

Reset(file1);

for i:=1 to 9 do

 begin

   b[i]:=10000;

   b1[i]:=-1;

 end;

j:=1;

while not eof(file0) do

begin

  k:=j mod 10;

  ReadLn(file0, s10);

  val(s10,x,y);

  if x<>0 then

  c:=StrToFloat(s10);

  if c<b[k] then b[k]:=c;

  if c>b1[k] then b1[k]:=c;

  j:=j+1;

end;

for i:=1 to 9 do

 begin

   d[i]:=10000;

   d1[i]:=-1;

 end;

j:=1;

while not eof(file1) do

begin

  k:=j mod 10;

  ReadLn(file1, s10);

  val(s10,x,y);

  if x<>0 then

  c:=StrToFloat(s10);

  if c<d[k] then d[k]:=c;

  if c>d1[k] then d1[k]:=c;

  j:=j+1;

end;

closefile(file1);

closefile(file0);

for i:=1 to 9 do

begin

if d[i]<b[i] then min[i]:=d[i] else min[i]:=b[i];

if d1[i]<b1[i] then max[i]:=b1[i] else max[i]:=d1[i];

end;

//for i:=1 to 9 do

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

 DecimalSeparator:='.';

 SL:=TStringList.Create;

 z:=0;

end;

procedure TForm1.OpenClick(Sender: TObject);

var st:array[1..10000] of string;

   vihod:array[1..15,1..15] of string;

   k,t,i,strok,stolbcov,j,znac,znacend: Integer;

   predel: extended;

   myfilename, stroka,nomer,Fileqs,predznac,name,s: string;

   fin,r0,r1:textfile;

begin

 Memo2.Lines.Clear;

 SL.Clear;

 if Not OpenDialog1.Execute then Exit;

  myfilename:=OpenDialog1.FileName;

 AssignFile(fin,myfilename);

 Reset(fin);

//пропуск 30 строк

for i:=1 to 30 do  begin

if i=2 then

//считали имя субъекта

   readln(fin,name);

if i=11 then

 Readln(fin,nomer);//количество строк

 readln(fin);

end;

//имя в форму

label2.Caption:=Name;

k:=1 ;  //счетчик для элементов в файле

t:=1;  //счетчик для перевода строки

i:=1;   //счетчик для окончания загрузки

j:=1;   //счетчик по строкам

strok:=strtoint(nomer);//количество строк в повторении у нас 5

stolbcov:=strtoint(Edit12.text);//Edit12.text=12; 12 столбцов тк 12 параметров изначально

//берем в нужном интервале

If Interval.checked=True Then

begin

znac:=strtoint(Int1.text);//у нас будет Int1.text=3 Int2.text=5 тк значащая цифра 4

znacend:=strtoint(Int2.text);

end

Else

begin

znac:=strtoint(Edit14.text);//Edit14.text=4

znacend:=strtoint(Edit14.text)+1;

End;

//всего значений т.е. сколько всего должно быть значений

predel:=strok*stolbcov;

//запишем данные в массив строк

while not eof(fin) do

begin

readln(fin,st[k]);

//считываемая строка

stroka:=copy(st[k],2,23);

//пропускаем строки меньше 22 символов и 0

if (length(Stroka)= 22) and (Stroka<>'0.00000000000000E+0000')  Then

begin

if i<=predel then

  begin

   vihod[j,t]:=stroka;

   t:=t+1;

   i:=i+1;

   if t=stolbcov+1 then

     begin

     //переход строки

     //снова начинаем на след строке

     j:=j+1;

     t:=1;

     end;

   end;

end;

//след символ

k:=k+1;

end;

closefile(fin);

//запишем  из массива в файл

//или в массив здесь наверно можно присваивать 1 или 0

//для тестовых примеров записываем все

if ForTest.Checked=True then //галочка тестовый или обучающий

begin

    for i:=2 to strok do

      begin

//только 9 параметров

        for j:=1 to 9 do

          begin

           val(vihod[i,j],x,y);

            str(x:2:2,st1);

            SL.Add(vihod[i,j]);

    //после последней строки ставим переход строки

             if j=9 then

             begin

             end;

         end;

       end;

    end

else

//для обучающих примеров записываем только строки в интервале

  begin

    for i:=znac to znacend do

      begin

        for j:=1 to 9 do

          begin

            SL.Add(vihod[i,j]);

    //после последней строки ставим переход строки

             if j=9 then

             begin

             end;

          end;

      end;

end;

Click;

end;

procedure TForm1.N3Click(Sender: TObject);

begin

showmessage('Эта программа выполнена студентом 4-го курса Лупало Кириллом');

end;

procedure TForm1.N4Click(Sender: TObject);

begin

z1:=1;

Educate;

interval.Visible:=true;

forTest.Visible:=true;

edit14.Visible:=true;

edit12.Visible:=true;

open.Visible:=true;

memo2.Visible:=true;

end;

procedure TForm1.N5Click(Sender: TObject);

begin

interval.Visible:=false;

forTest.Visible:=false;

int1.Visible:=false;

int2.Visible:=false;

edit14.Visible:=false;

edit12.Visible:=false;

open.Visible:=false;

memo2.Visible:=false;

vb.Visible:=false;

ed.Visible:=false;

label2.Visible:=false;

label1.Visible:=false;

edit1.Visible:=false;

end;

procedure TForm1.IntervalClick(Sender: TObject);

begin

if interval.Checked=True then

   begin

   int1.Visible:=true;

   int2.Visible:=true;

   edit14.Visible:=false;

   end;

if interval.Checked=false then

   begin

   int1.Visible:=false;

   int2.Visible:=false;

   edit14.Visible:=true;

   end;

end;

procedure TForm1.N10Click(Sender: TObject);

begin

close;

end;

procedure TForm1.vbClick(Sender: TObject);

var st:array[1..10000] of string;

   vihod:array[1..15,1..15] of string;

   l,k,t,i,strok,stolbcov,j,znac,znacend: Integer;

   predel: extended;

   myfilename, stroka,nomer,Fileqs,predznac,name,s: string;

   fin,r0,r1:textfile;

begin

 if Not OpenDialog1.Execute then Exit;

  myfilename:=OpenDialog1.FileName;

 l:=strtoint(edit1.Text);

 l:=l+1;

 str(l,st1);

 edit1.Text:=st1;

 AssignFile(fin,myfilename);

 AssignFile(r0,ExtractFilePath(ParamStr(0))+'R0.txt');

 AssignFile(r1,ExtractFilePath(ParamStr(0))+'R1.txt');

 Reset(fin);

 if z=0 then

   begin

     rewrite(r0);

     rewrite(r1);

   end

   else

   begin

     append(r0);

     append(r1);

     writeln(r0);

     writeln(r1);

     writeln(r0);

     writeln(r1);

   end;

//пропуск 30 строк

for i:=1 to 30 do  begin

 if i=2 then

//считали имя субъекта

   readln(fin,name);

if i=11 then

 Readln(fin,nomer);//количество строк

 readln(fin);

end;

//имя в форму

//caption:=Name;

k:=1 ;  //счетчик для элементов в файле

t:=1;  //счетчик для перевода строки

i:=1;   //счетчик для окончания загрузки

j:=1;   //счетчик по строкам

strok:=strtoint(nomer);//количество строк в повторении у нас 5

stolbcov:=strtoint(Edit12.text);//Edit12.text=12; 12 столбцов тк 12 параметров изначально

//берем в нужном интервале

If Interval.checked=True Then

begin

//int1.Enabled:=true;

znac:=strtoint(Int1.text);//у нас будет Int1.text=3 Int2.text=5 тк значащая цифра 4

znacend:=strtoint(Int2.text);

end

Else

begin

znac:=strtoint(Edit14.text);//Edit14.text=4

znacend:=strtoint(Edit14.text)+1;

End;

//всего значений т.е. сколько всего должно быть значений

predel:=strok*stolbcov;

//запишем данные в массив строк

while not eof(fin) do

begin

readln(fin,st[k]);

//считываемая строка

stroka:=copy(st[k],2,23);

//пропускаем строки меньше 22 символов и 0

if (length(Stroka)= 22) and (Stroka<>'0.00000000000000E+0000')  Then

begin

if i<=predel then

  begin

   vihod[j,t]:=stroka;

   t:=t+1;

   i:=i+1;

   if t=stolbcov+1 then

     begin

     //переход строки

     //снова начинаем на след строке

     j:=j+1;

     t:=1;

     end;

   end;

end;

//след символ

k:=k+1;

end;

closefile(fin);

//запишем  из массива в файл

//или в массив здесь наверно можно присваивать 1 или 0

//для тестовых примеров записываем все

if ForTest.Checked=True then //галочка тестовый или обучающий

begin

    for i:=4 to 5 do

      begin

 //только 9 параметров

        for j:=1 to 9 do

          begin

           if j<>9 then

           begin

           val(vihod[i,j],x,y);

            if i=4 then

                   writeln(r0,x:2:2)

            else

                   writeln(r1,x:2:2);

           end

    //после последней строки ставим переход строки

            else

             begin

           val(vihod[i,j],x,y);

            if i=4 then

                   write(r0,x:2:2)

            else

                   write(r1,x:2:2);

             end;

         end;

       end;

    end

else

//для обучающих примеров записываем только строки в интервале

  begin

    for i:=znac to znacend do

      begin

//только 9 параметров

        for j:=1 to 9 do

          begin

           if j<>9 then

           begin

           val(vihod[i,j],x,y);

            if i=znac then

                   writeln(r0,x:2:2)

            else

                   writeln(r1,x:2:2);

           end

    //после последней строки ставим переход строки

            else

             begin

           val(vihod[i,j],x,y);

            if i=znac then

                   write(r0,x:2:2)

            else

                   write(r1,x:2:2);

             end;

         end;

       end;

end;

closefile(r0);

closefile(r1);

z:=z+1;

end;

procedure TForm1.N8Click(Sender: TObject);

begin

z1:=0;

interval.Visible:=true;

forTest.Visible:=true;

edit14.Visible:=true;

edit12.Visible:=true;

edit1.Visible:=true;

open.Visible:=true;

memo2.Visible:=true;

vb.Visible:=true;

ed.Visible:=true;

label1.Visible:=true;

label2.Visible:=true;

end;

procedure TForm1.edClick(Sender: TObject);

begin

Educate;

end;

end.


 

А также другие работы, которые могут Вас заинтересовать

54899. План уроку як візуальний образ 183 KB
  Якщо план уроку нам необхідний для предявлення його учням групі то варто задуматися наскільки ефективно ми використовуємо цей навчальний епізод уроку. План уроку це і постановка навчальних завдань і стисле подання всієї навчальної інформації. Найбільш близькі до такого розуміння плану уроку опорні конспекти про них ми поговоримо в наступних публікаціях.
54900. Профессия «журналист» 336 KB
  Ларри Кинг Король в подтяжках Если даже вы понятия не имеете кто такой Ларри Кинг вы точно помните вопрос который он задал своему собеседнику 8 сентября 2000 года в передаче Ларри Кинг в прямом эфире. К этому моменту Владимир Путин работал президентом России восемь месяцев а Ларри Кинг вел прямые эфиры 43 года. Неизменные подтяжки и скрипучий голос Ларри превратились в...
54902. Оптимальное соотношение ресурсов 27.43 KB
  Считается, что ресурсы используются эффективно, когда невозможно за счет иного их применения улучшить благосостояние хотя бы одного хозяйства, не ухудшив при этом состояния других хозяйств.
54905. MY PLANS FOR FUTURE 73 KB
  Objectives: to revise and enrich students vocabulary on the topic; to practise reading for gist and then for more intensive understanding; to improve learners skills of listening and comprehension; to provide opportunities for developing learnersspeaking and writing skills ( group work, free discussion); to present students projects; to broaden students knowledge of the topic.
54906. Попеременный двухшажный ход, одновременные классические ходы 48.5 KB
  Создать представление о предстоящей деятельности на уроке Выполнить переход на учебную лыжню Подготовить все системы организма к дальнейшей работе Увеличить эластичность мышц и подвижность суставов Увеличить подвижность плечевого сустава Увеличить подвижность коленного сустава Увеличить эластичность задней поверхности бедра Увеличить подвижность позвоночника и эластичность прямых мышц спины Способствовать развитию равновесия Отработать детали техники классических лыжных ходов Учить переносу массы тела на скользящую лыжу...
54907. План анализа стихотворения для урока литературы 30 KB
  Итак Восприятие: Какое впечатление произвело на вас стихотворение Чем привлекло среди других произведений поэта его современников авторов обращавшихся к этой теме Какие картины возникают в вашем воображении когда вы читаете стихотворение Как лучше его читать вслух или про себя Почему Каким настроением проникнуто произведение Меняется ли оно Почему Истолкование: Тема стихотворения ситуация воплощенная в произведении которая иногда может быть обозначена уже в названии: Весенняя гроза К морю Незнакомка ; иногда название...