Wrocław, 16 czerwca 2008
Raport opracowany na zaliczenie przedmiotu:
ARE3513 "Metody i
algorytmy sztucznej inteligencji"
Temat:
Wykrywacz kłamstw
Autorzy:
Grzegorz Puzio 140398(ARR)
Łukasz Ulanicki 140430 (ARR)
Prowadzący:
dr inż. Witold Paluszyński
Wrocław, June 16 2008
This report has been prepared as a requirement for the course:
ARE3513 "Methods and
algorithms of artificial intelligence"
Subject:
Lie detector
Authors:
Grzegorz Puzio 140398 (ARR)
Łukasz Ulanicki 140430 (ARR)
Conducted by:
Dr Witold Paluszyński
The aim of our project was to create an algorytm of 'detecting lies' basing on three biometric signals - pulse, galvanic-skin responce and rhythm of perspiration. What is more, we based on an analysis of stress' level in a human voice. The biometric signals came from a device built by us and the voice was recorded from a microphone connected directly to a computer. The main task was to extract noteworthy parameters from the signals. Then we had to create a system based on patterns that would learn how to correctly sort these signals. For this purpose we used artificial neural networks. Creating patterns occured to be the biggest problem, especially the lie's pattern, as we had to survey some number of people and maintain appropriate conditions of the mensurations at the same time.
1. Wstęp
Celem naszego projektu było stworzenie algorytmu "wykrywania kłamstw" na podstawie 3 sygnałów biometrycznych - pulsu, reakcji skórno-galwanicznej oraz miarowości oddechu, oraz na podstawie analizy poziomu stresu w głosie. Sygnały biometryczne pochodziły z urządzenia zbudowanego przez nas, natomiast głos nagrywany był z mikrofonu bezpośrednio podłączonego do komputera. Głównym zadaniem było wyekstrahowanie z sygnałów interesujących nas parametrów, a następnie budowa systemu opartego na wzorcach, który nauczyłby się poprawnej klasyfikacji tych sygnałów. W tym celu wykorzystaliśmy sztuczne sieci neuronowe. Największym problemem okazało się tworzenie wzorców, zwłaszcza wzorców kłamstwa, gdyż w tym celu musieliśmy przeprowadzić szereg pomiarów na ludziach przy zachowaniu odpowiednich warunków badania.
2. Zrealizowane zadania
Większość założeń projektu udało nam się zrealizować, jednak ze względów technicznych musieliśmy zrezygnować z pomiaru oddechu, ponieważ wybór metody pomiaru przy pomocy tensometru okazał się bardzo kłopotliwy. Po pierwsze pomiary obarczone były dużym błędem ze względu na zaszumienia, a po drugie metoda była podatna na wszelkie zakłócenia w postaci ruchów osoby badanej. Praktycznie uniemożliwiało to obliczenie poprawnej wartości liczby oddechów. Dodatkowo, że wszystkich sygnałów biometrycznych, ten najłatwiej jest niezauważalnie kontrolować, celowo wprowadzając urządzenie w błąd. W naszym projekcie skupiliśmy się na pozostałych sygnałach.3 Analiza zagadnienia
Wśród istniejących metod badania prawdomówności dominują dwie techniki: badania poligraficzne oraz analiza stresu w głosie (VSA - Voice Stress Analisys). Obie techniki posiadają swoich zwolenników i przeciwników, którzy nawzajem oskarżają te metody o nieskuteczność. Wychodzą z założenia, że prawda leży po środku, postanowiliśmy wykorzystać obie te techniki naraz, z małym zastrzeżeniem, że nasze techniki poligraficzne zostały ograniczone do 2 sygnałów. Warto w tym miejscu podkreślić, że termin "wykrywacz kłamstw" jest pojęciem zwyczajowym i odbiegającym znacznie od prawdy. W rzeczywistości urządzenie to nie spełnia swojej dosłownej funkcji, a jedynie ujawnia ślady pamięciowe i emocjonalne u badanej osoby. Podstawą stosowania tych urządzeń do badania prawdomówności jest założenie, że podczas kłamania u ludzi wywoływany jest stres związany z obawą, że oszustwo zostanie wykryte. Stres jest tym większy, im większe kłamstwo i odpowiedzialność z nim związana. Znajduje on swoje odbicie w wielu parametrach życiowych.
4 Problemy
W punkcie 3 przedstawiliśmy ogólną zasadę działania wykrywaczy, teraz chcielibyśmy wspomnieć o problemach z nią związanych. Ponieważ postanowiliśmy wykorzystać sztuczne sieci neuronowe, potrzebne nam były wzorce zachowania się sygnałów, zarówno dla prawdy, jak i kłamstwa. O ile stworzenie wzorców dla prawdy nie sprawiło nam żadnych kłopotów, o tyle stworzenie wzorców dla kłamstwa okazało się najtrudniejszym zadaniem. Po pierwsze, aby uzyskać taki wzorzec należy wywołać stan emocjonalny (czyli stres) poprzez zadanie odpowiedniego pytania. Badania na wykrywaczu kłamstw stosuje się zwykle w procesach karnych, w celu ustalenia winy bądź niewinności podejrzanych. Na nasze nieszczęście nie dysponowaliśmy grupą ochotników spełniających te warunki, pozostało nam poradzić sobie z tym problemem w inny sposób, mianowicie poprzez zadawanie potencjalnie "niewygodnych" pytań z zaskoczenia związanych z przeszłością osób badanych. Grupę badanych stanowili znajomi oraz my sami.
W związku z tym co napisaliśmy powyżej powstaje jeszcze jeden problem - skuteczność działania algorytmu. Ze względu na obecność czynnika ludzkiego bardzo trudno jest ją ocenić. Możemy jedynie szacować na podstawie kształtów sygnałów, czy sieć zachowała się prawidłowo, jednak sytuacji w której urządzenie mówi, że badany kłamał, a on sam twierdzi że nie, nie jesteśmy w stanie rozstrzygnąć. W dalszej części raportu przedstawimy sposób analizy poszczególnych sygnałów i ich kształty.
5 Opis aplikacji
Do wizualizacji pomiarów z urządzenia służy aplikacja, którą stworzyliśmy na potrzeby innego projektu. Widok okna głównego znajduje na rysunku poniżej:6 Sygnały - metody pomiaru, przygotowanie danych do sieci
6.1 Pomiar tętna
Pomiar tętna obdywa się przy pomocy czujnika do którego przykłada się palec. Widok czujnika znajduje się na rysunkach poniżej
92.3077 | 95.2381 | 95.2381 | 95.2381 | 93.7500 | 92.3077 | 98.3607 |
0 | 2.9304 | 2.9304 | 2.9304 | 1.4423 | 0.0000 | 6.0530 |
6.1 Pomiar rezystancji
Pomiaru rezystancji dokonujemy przy pomocy czujnika umieszczonego na dwóch palcach osoby badanej. Sytuacje stresowe powodują dość nagłe i niekontrolowane pocenie się, które jest widoczne zwłaszcza na dłoniach. Dzięki temu na wykresie reakcji skórno-galwanicznej widać spadek wartości. Czujnik używany przez nas widoczny jest na rysunku poniżej:
6.1 Pomiar stresu w głosie
Pobranie głosu (odpowiedzi badanej osoby na pytanie) jest zsynchronizowane z pozostałymi pomiarami, jednak ze względu na to, że nie ma potrzeby nagrywać aż 7 sekund, nagrywamy tylko 3 sekundy. Nagranie zapisywanie jest w formacie "*.wav" i następnie dokonywana jest na nim operacja dyskretnej transformacji Fouriera. Głównym założeniem metody VSA jest to, że podczas kłamania do normalnych częstotliwości głosu dochodzą inne częstotliwości na poziomie 8-12 Hz spowodowane nierównomiernym napięciem mięśni napinających struny głosowe człowieka. Stąd też pojawia się dodatkowa energia w sygnale, która jest szukana. Badane przez nas częstotliwości zawarte są w granicy 10-100Hz. Przykładowy wykres znajduje się na rysunku poniżej:6. Sieci neuronowe
Ze względu na zaimplementowane funkcje do analizy częstotliwościowej dźwięku, jak również gotowych funkcji do wczytywania plików "*.wav" jako środowisko do napisania wybraliśmy Matlaba. Posiada on również wbudowane biblioteki do tworzenia sieci neuronowych.7. Przeprowadzone badania
Badania końcowe przeprowadzaliśmy jedynie na sobie, zatem ocenienie skuteczności działania algorytmu może być kłopotliwe. Podstawową trudnością, o czym wspomnieliśmy wcześniej, było "stworzenie" sygnałów o których z cała pewnością moglibyśmy powiedzieć, że powinny być zakwalifikowane jako kłamstwo. Poszczególne sieci częściej typowały odpowiedź "Prawda", jednak zauważyliśmy, że często wyniku nie dało się poprawnie ocenić ze względu na zakłócenia. Dotyczy to zwłaczsza pomiaru tętna, które jest dość wrażliwe na ruchy, oraz pomiaru głosu, który z kolei można świadomie modulować.8. Podsumowanie
Naszym zdaniem udało nam się zrealizować zadanie, przynajmniej w jakimś stopniu. Na pewno zwiększenie liczby próbek uczących poprawiłoby działanie sieci. Dodatkowo nie zdążyliśmy przeprowadzić badań dla innych architektur sieci i sprawdzić ich działania.9. Literatura