Sztuczne sieci neuronowe


Uczenie perceptronu z warstwą ukrytą

Cel

Celem ćwiczenia jest implementacja perceptronu z warstwą ukrytą i zbadanie jego działania dla przykładowych problemów (przede wszystkim XOR).

Ograniczenia neuronu

W 1969 Minsky i Papert udowodnili, że perceptron dwuwarstwowy ma bardzo ograniczone zastosowanie, m.in. nie jest w stanie rozwiązać problemu różnicy symetrycznej (XOR). Późniejsze badania wykazały, że wystarczy dodać warstwę ukrytą, by to ograniczenie pokonać. W ćwiczeniu tym zbudujemy właśnie taki model sieci.

Zagadnienia

  1. zbudować model wg wzoru zawartego w arkuszu Excela (nie stosować VBA), z logistycznymi funkcjami aktywacji (gotowy arkusz - tutaj),
  2. manualnie spróbować dobrać wagi dla problemu z pierwszego ćwiczenia,
  3. potraktować uczenie (dobór wag) jako proces optymalizacyjny; w tym celu użyć Solvera,
  4. w VBA napisać program na dobór wag przyjmując:
    • losowa inicjalizacja wag z przedziału [-2.5 , 2.5]
    • ruch polegający na wylosowaniu liczby z rozkładu normalnego o średniej Wij oraz odchyleniu standardowym równym s (przekształcenie Boxa-Mullera),
    • warunek stopu - osiągnięcie błędu dopuszczalnego lub 3000 iteracji,
    • akceptowane tylko lepsze rozwiązanie.
  5. zbadać wpływ s na szybkość uczenia,
  6. spróbować dobrać wagi techniką symulowanego wyżarzania (o ile jest już poznana); wnioski?
  7. powtórzyć ćwiczenie dla operatorów AND, OR i XOR.