Wrocław, 17.06.2007r.

Metody i algorytmy sztucznej inteligencji


Raport z zadania 4.
Rozpoznawanie znaków zodiaku.




Anna Napierała 137097

Politechnika Wrocławska, Wydział Elektroniki, 4 ARR


Spis treści

  1. Wstęp
  2. Program
  3. Sieć neuronowa
  4. Wnioski
  5. Bibliografia



1. Wstęp

W astrologii wytępuje dwanaście znaków zodiaku. O tym jaki znak zodiaku przypada danej osobie decyduje data urodzenia. Wierzy się, że człowiek urodzony pod danym znakiem zodiaku ma cechy charakterystyczne dla tego znaku. Dlatego na podstwie pytań o osobowość można stwierdzić spod jakiego znaku zodiaku jest dana osoba nie pytając jej o datę urodzenia.
  • Baran (21 III - 20 IV)
  • Byk (21 IV - 21 V)
  • Bliźnięta (22 V - 21 VI)
  • Rak (22 VI - 22 VII)
  • Lew (23 VII - 23 VIII)
  • Panna (24 VIII - 23 IX)
  • Waga (24 IX - 23 X)
  • Skorpion (24 X - 23 XI)
  • Strzelec (24 XI - 22 XII)
  • Koziorożec (23 XII - 20 I)
  • Wodnik (21 I - 19 II)
  • Ryby (20 II - 20 III)



3. Program

Napisano program w języku C++, który zadaje pytania użytkownikowi, korzysta z wcześniej wyuczonej sieci neuronowej i informuje użytkownika spod jakiego znaku zodiaku jest.

Pierwsza strona programu
Druga strona programu
Rys.1 Przykładowa sesja z programem.



2. Sieć neuronowa

Do rowiązania tego problemu wykorzystano sieć neuronową jednokierunkową, składającą się z jednej warstwy wejściowej, jedenj warstwy ukrytej oraz jednej warstwy wyjściowej. Warstwa wejściowa składa się ze 120 neuronów, reprezentują one 24 pytania i 5 możliwych odpowiedzi na każde z tych pytań. Na warstwę ukrytą przypada 20 neuronów - liczba ta została dobrana empirycznie. W warstwie wyjściowej jest 12 neuronów, każdy z nich reprezentuje jeden znak zodiaku. Na podstawie badań dr. inż. Pawła Piotrowskiego [klik] opracowano jeden wzorzec dla każdego znaku, na ich podstwaie metodą Std_Backpropagation nauczono sieć.

Sieć neuronowa
Rys.2 Sieć neuronowa.


Po lewej stronie znajduje się tablica neuronów wejściowych 5x24, której każdy neuron jest połączony z każdym neuronem warstwy ukrytej (środkowej) składającej się z 20 neuronów. Warstwa wyjściowa (po prawej) połączona jest każdym neuronem z neuronami warstwy ukrytej.

Sieć stworzono i nauczono w programie SNNS. Tak przygotowaną sieć wykorzystano w programie zadającym pytania użytkownikowi.


3. Wnioski

Zastosowanie jednego zestawu dwunastu wzorców pochodzących z 650 ankiet okazało się niewystarczające do nieomylnego działania sieci. Zapewne lepsze rezultaty otrzymanoby wykorzystując 650 wzorców stworzonych na podstawie ankiet, zamiast po jednym zbiorczym wzorcu na każdy znak. Nestety zdobycie tych ankiet okazało się niemożliwe.


4. Bibliografia