Sieci neuronowe w symulacji dynamiki duopolu


Szkoła Główna Handlowa
Michał Komorowski
Nr albumu: 20317
Sieci neuronowe w symulacji
dynamiki duopolu
Praca magisterska
na kierunku METODY ILOŚCIOWE I SYSTEMY INFORMACYJNE
Praca wykonana pod kierunkiem
prof.dr hab. Sławomira Dorosiewicza
Katedra Ekonomii Matematycznej
pazdziernik 2004
Pracę przedkładam do oceny
Data Podpis autora pracy:
Praca jest gotowa do oceny przez recenzenta
Data Podpis kierującego pracą:
Streszczenie
W pracy przedstawiono model duopolu wykorzystujący sieci neuronowe, w celu badania wpły-
wu zdolności uczenia się producentów na występującą dynamikę. W rozdziale pierwszym,
przedstawione są podstawowe fakty dotyczące sztucznych sieci neuronowych, w kontekście
ich zdolności aproksymacyjnych. Następnie następuje prezentacja klasycznych modeli duopo-
lu, ze szczególnym naciskiem na badanie złożoności dynamiki. W rozdziale trzecim proponuje
się nowy model uchylający założenie o znajomości przez producentów własnych funkcji zysku.
Słowa kluczowe
duopol, dynamika duopolu, chaos, sieci neuronowe, uczenie maszynowe
Klasyfikacja tematyczna
D.
D.127.
D.127.6.
Spis treści
Wprowadzenie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1. Sieci neuronowe: biologiczne podstawy i sztuczne modele . . . . . . . . . 7
1.1. Biologiczne podstawy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.2. Modele sieci neuronowych . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.3. Zdolności aproksymacyjne sieci . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.4. Uczenie sieci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2. Duopol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.1. Historia problemu duopolu . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.2. Ogólny model duopolu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.3. Problem równowagi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.4. Model oparty na zysku krańcowym . . . . . . . . . . . . . . . . . . . . . . . . 24
2.5. Dostosowania zakładające pełną wiedzę o funkcjach zysku . . . . . . . . . . . 27
3. Model duopolu oparty o jednokierunkowe sieci neuronowe . . . . . . . . . 33
3.1. Sformułowanie modelu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.2. Wyniki symulacji . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.3. Uczący się model opisany przez równania różniczkowe zwyczajne (RRZ) . . . 43
4. Uwagi końcowe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
A. Generowanie trajektorii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
B. Ważne definicje i twierdzenia . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Bibliografia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
3
Wprowadzenie
Rozwój matematyki prawie zawsze był inspirowany rozwojem w innych dziedzinach nauki.
Takie zjawisko obserwujemy w czasach obecnych, kiedy szybki rozwój biologii skutkuje po-
wstawaniem nowych metod matematyki. Z drugiej strony to matematyka przyczynia się do
znacznego przyspieszenia rozwoju nauk przyrodniczych. Jesteśmy świadkami sytuacji, w któ-
rej metody nauk przyrodniczych i społecznym wzajemnie się przenikają, przyczyniając do
wzajemnego rozwoju. Mamy zatem prawo oczekiwać, że również postęp w ekonomii zostanie
dokonany dzięki innym dziedzinom nauki, a matematyka będzie pomostem, który transpor-
tuje wiedzę z jednej dziedziny do drugiej.
Celem tej pracy jest prezentacja przykładu ilustrującego powyższe stwierdzenia. Będziemy
starali się pokazać w jaki sposób dzięki nowym metodom wywodzącym się z odkryć na polu
biologii możemy zmodyfikować klasyczne podejście do pewnych zagadnień ekonomii mate-
matycznej i jakie dzięki temu osiągamy korzyści. Zastosowanie sztucznych sieci neuronowych
(SSN), którego ta praca będzie dotyczyć, przyniosło już znaczne korzyści w wielu obszarach
nauki, w tym również w samej ekonomii. SSN są metodą sztucznej inteligencji, a ich po-
wstanie wiąże się z odkryciem mechanizmów funkcjonowania ludzkiego mózgu. Swoje szybkie
przenikanie do wielu dziedzin zawdzięczają następującym cechom: stanowią uniwersalny spo-
sób przybliżania wartości nieznanej funkcji na podstawie dostępnego zbioru danych, mają
zdolność uczenia się i adaptacji do zmieniających się warunków środowiskowych, zdolność
uogólniania nabytej wiedzy ([Osow96] s.11). W naukach ekonomicznych SSN znalazły swoje
zastosowanie nie tylko w analizach statystycznym potrzebnych w finansach czy bankowości
ale także w teorii gier, gdzie np. reprezentują algorytm decyzyjny stosowany przez graczy
[Tai99]. Nawet dziedziny mniej związane z metodami matematyki, jak socjologia stosują te
metody sztucznej inteligencji. W [Hutch90] wykorzystano zdolności uczenia się sieci do stwo-
rzenia modelu rozwoju kulturowego. Tak szerokie spektrum zastosowań SSN, od fizyki po
nauki humanistyczne świadczy, że są one narzędziem mogącym przyczynić się również do
rozwoju ekonomii matematycznej.
Zaprezentowania potencjału, jaki SSN mogą stanowić dla ekonomii matematycznej, jest
również celem tej pracy. Aby to osiągnąć wybraliśmy problem znany i już dość dobrze ugrun-
towany1, mianowicie problem duopolu2. Zagadnienie to jest w pewnym sensie uniwersalne,
gdyż w wielu obszarach teorii ekonomii mamy doczynienia z sytuacją, gdzie próbuje się opi-
sać zachowanie indywidualnych agentów maksymalizujących zadane wielkości (użyteczność,
zysk). Stwarza to możliwość uogólnienia przedstawionych tu rezultatów. Zaletą zagadnienia
duopolu w prezentowanym tu kontekście jest fakt, że problem ten jest dość jasno sformuło-
wany. Chodzi o to, aby w ścisły sposób opisać zachowanie producentów, którzy postępują
zgodnie z pewną przyjętą definicją racjonalności.
Ważnym zadaniem tej pracy jest również podjęcie próby modelowania mechanizmów, któ-
1
mamy tu na myśli, że problem zajmowało się wielu naukowców w przeciągu ponad 150 lat
2
duopolem nazywamy sytuacją, w której dostawcami pewnego dobra jest dokładnie dwóch producentów.
Więcej w rozdziale 2
5
re są pomijane w klasycznych modelach. Będzie nam chodziło o to, aby na przykładzie prostej
dynamiki duopolu modelować przekonania producentów o własnej, nieznanej sobie funkcji zy-
sku oraz ewolucję tych przekonań. W tym celu przedstawimy model zaproponowany przez
autora tej pracy, w którym dzięki sieciom neuronowym możemy reprezentować przekonania
producenta. Wydaje się, że przyjęta metoda spełnia oczekiwania, które należałoby przed nią
stawiać. Nijako przy okazji pojawiają się pewne wnioski dotyczące zbieżności do określonych
punktów równowagi.
Relatywna prostota zagadnienia stwarza możliwości osiągnięcia stawianych sobie celów.
Jak pisze J. von Neumann w [Neum44]:
Jest rzeczą ważna aby zaczynać od tych problemów, które są określone w sposób
jasny, nawet gdyby były one mniej ważne z innego punktu widzenia.
Zasadnicza część pracy składa się z trzech rozdziałów. W rozdziale pierwszym prezentuje-
my jednokierunkową sztuczną sieć neuronową, będącą narzędziem, którym będziemy chcieli
się posłużyć. Punkt wyjścia stanowi prezentacja podstawowych wyników uzyskanych w ba-
daniach nad ludzkim mózgiem, w szczególności budowy i działania rzeczywistego neuronu.
Następnie prezentujemy model pojedynczego neuronu tzw.: perceptron. Przez odpowiednie
połączeniu perceptronów otrzymuje się jednokierunkową sztuczną sieć neuronową, którą opi-
sujemy koncentrując się na jej zdolnościach aproksymacyjnych. Rozdział zamykamy przed-
stawieniem podstawowego algorytmu uczącego: algorytmu wstecznej propagacji błędu oraz
bardziej zaawansowanego algorytmu BFGS.
Rozdział drugi skupia się na prezentacji ważnych z punktu widzenia tej pracy dokonań w
analizie duopolu. Zaczynamy od zdefiniowania pojęcia duopolu i przedstawienia jego krótkie-
go rysu historycznego. Następnie opisujemy ujęcie statyczne problemu wprowadzając pojęcie
równowagi Nasha. Powyższe informacje pozwalają do przejścia do aspektu dynamicznego.
Dla zupełności ujęcia bierzemy pod uwagę dwa rodzaje dostosowań dokonywanych przez pro-
ducentów. Pierwsze oparte na wiedzy o zysku krańcowym, drugie zakładające pełną wiedzę
o funkcji zysków. W obu przypadkach koncentrujemy się na badaniu istnienia i stabilności
punktów równowagi, w zależności od wartości parametrów dynamiki.
W rozdziale trzecim przedstawiamy model autora pracy wykorzystujący sieci neuronowe.
Model ten eliminuje założenie znajomości przez producentów własnych funkcji zysku. SSN
są użyte do reprezentacji wiedzy producentów o możliwości zwiększenia profitów. Po sformu-
łowaniu modelu prezentujemy generowane przez niego trajektorie kładąc nacisk na czynniki,
które mają wpływ na ich kształt. Następnie przedstawiamy ewolucję przekonań producenta
podczas generowania trajektorii. Rozdział kończymy proponując układ równań różniczko-
wych zwyczajnych, który wydaje się opisywać dynamikę modelu opartego o sieci neuronowe.
Na końcu znajdują się dodatki zawierające ważne twierdzenia, z których korzystano w
pracy, a także kod w języku R, który był używany do przeprowadzenia doświadczeń nume-
rycznych.
6
Rozdział 1
Sieci neuronowe: biologiczne
podstawy i sztuczne modele
W przypadku wielu naukowych odkryć ich autorem nie jest człowiek ale sama natura. Czło-
wiek jest jedynie narzędziem, który używa swej inteligencji aby naśladować to, czego sam
nie stworzył i czego jeszcze nie zdołał zrozumieć. Stara się poznać to czego sam nie byłby w
stanie stworzyć, bo przewyższa to jego zdolności. Rzeczywistość natomiast sama opowiada
człowiekowi o swojej istocie i chce być poznana. Obserwacja natury jest zródłem i inspiracją
największych odkryć w historii matematyki. Wystarczy tu przytoczyć, choćby rachunek róż-
niczkowy, który dla człowieka rozumiejącego jego istotę jest koncepcją zupełnie naturalną,
narzucającą się przez naturę.
Idea stworzenia sztucznej sieci neuronowej (SSN) powstała dzięki badaniom i obserwa-
cjom ludzkiego mózgu, które zrodziły chęć konstrukcji sztucznego tworu na jego kształt. W
tym rozdziale postaramy się przedstawić w jaki sposób obserwacja mózgu doprowadziła do
powstania SSN. Pokażemy także mechanizmy ich funkcjonowania.
Mózg jest dla człowieka, cały czas jednym z największych wyzwań. Choć w ciągu ostat-
nich dekad poczyniono duże postępy w jego poznawaniu, to jednak znacznie więcej pozostaje
jeszcze do zrobienia. Ponieważ mózg jest najbardziej skomplikowanym mechanizmem jaki
jest znany człowiekowi więc badania nad nim mogą przynieść wiele rewolucyjnych odkryć.
Jeśli zwiążemy z mózgiem fakt, że człowiek jest jedynym organizmem żywym, który ma
świadomość swojego istnienia i własnej tożsamości, to bez wątpienia można zaryzykować
stwierdzenie, że jest to najważniejsze pytanie w historii świata. Pytanie o człowieka, jego
naturę, pochodzenie. Pytanie o sens. Warto uświadomić sobie, że rozwiązanie tego problemu
może być szczególnie trudne, bądz niemożliwe, ze względu na nieobecny w innych dziedzinach
problem następującej natury: narzędzie badań jest jednocześnie ich przedmiotem (więcej w
[Kosin02] s. 182). Mózg próbuje poznać sam siebie. Takiej sytuacji nie ma w żadnej innej
dziedzinie nauki. Część naukowców jest zdania, że zagadka świadomości nie może być roz-
wiązana przez człowieka. Powołują się oni na twierdzenie Gdla, które mówi, że nie można
stwierdzić poprawności dwóch systemów formalnych za pomocą środków wywodzących się z
tych systemów. Poznanie istoty świadomości mogło by się okazać dostępne jedynie istotom
stojącym na innym poziomie rozwoju.
Są również inne poglądy na ten temat, między innymi wiążące istnienie świadomości z
procesami kwantowymi zachodzącymi w białkowych strukturach neuronów.
7
1.1. Biologiczne podstawy
W tym podrozdziale przedstawimy za [Kosin02] główne fakty, których odkrycie doprowadziło
do stworzenia SSN.
Pierwowzorem SSN jest mózg. U człowieka organ ten ma masę 1100-2000 g. Ma pofał-
dowaną powierzchnię i dwie wyraznie zaznaczone, połączone ze sobą półkule (patrz rysunek
1.1).
Rysunek 1.1: Mózg człowieka (zdjęcie pochodzi ze strony internetowej
http://www.wellesley.edu/Chemistry/Chem101/brain/brain.htm)
Komórki, z których składa się mózg zwane są neuronami. Waga pojedynczego neuronu
to 10-9g. Szacuje się, że w układzie nerwowym człowiek jest ok. 100 miliardów neuronów.
Pojedynczy neuron przedstawiony jest na rysunku 1.2. Każdy neuron może być połączony z
innymi neuronami za pomocą wypustek - dendrytów. Szacuje się, że każdy neuron jest po-
łączony średnio z 103 - 104 neuronami, choć są takie które są połączone zaledwie z kilkoma
lub aż dziesiątkami tysięcy neuronów. Odległość między połączonymi neuronami jest zróżni-
cowana i waha się od 10-6m do 1 m. Neurony mają ponadto różną budowę w zależności od
wykonywanej funkcji. Oprócz neuronów w mózgu znajdują się komórki glejowe (odżywianie
neuronów), komórki mielinowe (funkcje izolacyjne).
Typowy neuron składa się z błony komórkowej, otaczającej cytoplazmę, w centrum znaj-
duje się jądro komórkowe, z otoczenia którego wyrastają wypustki (dendryty). Jedna z wy-
pustek zwana aksonem jest grubsza i znacznie dłuższa niż inne (dł. do 1 m). Neurony komu-
nikują się ze sobą wysyłając potencjały czynnościowe (impulsy o złożonej naturze elektroche-
micznej), które docierają do neuronu przez dendryty. Neuron może po spełnieniu pewnych
warunków wysłać przez akson nowy potencjał czynnościowy. Zakończenie aksonu wieloma
rozgałęzieniami umożliwia potencjałowi czynnościowemu dotarcie do wielu innych neuronów.
Zakończenia aksonu są połączone z dendrytami innych neuronów przez tzw. synapsy.
Działanie neuronu polega na odbieraniu potencjałów czynnościowych przez połączenia
synaptyczne od innych neuronów (presynaptycznych) i wysyłaniu wzdłuż aksonu nowego
potencjału czynnościowego do innych neuronów (postsynaptycznych). Aby nowy potencjał
czynnościowy został wysłany muszą być spełnione odpowiednie warunki ( np. jeśli neuron
był w poprzedzającym okresie często wzbudzany to z dużym prawdopodobieństwem nie od-
powie na napływający potencjał czynnościowy).
Cały zbiór neuronów wraz z systemem wzajemnych połączeń tworzy sieć neuronową.
Topologia tych połączeń jest bardzo skomplikowana i jak widać na rysunku 1.3 nie można
spotkać dwóch neuronów, które maja taki sam układ neuronów presynaptycznych i postsy-
naptycznych. Układ i efektywność działania poszczególnych synaps składające się na topologię
8
Rysunek 1.2: Wygląd typowego neuronu
sieci nie są stałe w czasie i zmieniają się pod wpływem procesu uczenia. Dla przykładu na
rysunku 1.4 widzimy wzrost gęstości dendrytów i aksonów u dziecka nowonarodzonego i dwu-
letniego. Proces uczenia polega na tym, że miedzy neuronami, które często komunikują się ze
sobą tworzą się liczne i efektywne połączenia synaptyczne, które zwiększają zdolności aprok-
symacyjne sieci. Z kolei degeneracji ulegają połączenia synaptyczne, które są uruchamiane
rzadko. Taki wpływ na synapsy mają procesy starzenia lub zmiany chorobowe.
Rysunek 1.3: Fotografia fragmentu prawdziwej sieci neuronowej (Zdjęcie pochodzi ze strony
internetowej http : //www.alanturing.net/turing archive/graphics/realneurons.gif)
1.2. Modele sieci neuronowych
Perceptron
Pierwszym krokiem do stworzenia SSN, była próba stworzenia sztucznego pojedynczego
neuronu. Pojedynczy sztuczny neuron nazywa się perceptronem. Po raz pierwszy został on
9
Rysunek 1.4: Schematyczny obraz wzrostu gęstości połączeń synaptycznych w rozwijającym
się mózgu człowieka: a) dziecko nowonarodzone, b) dziecko dwuletnie ([Kosin02] s. 27)
zaprezentowany w 1943 roku przez McCullloch a i Pittsa. Jego twórcy bazowali na pomyśle
aby w sposób naśladujący prawdziwy neuron przetworzyć sygnały wchodzące do neuronu na
sygnał wyjściowy. Niech zatem
x = (x1, ..., xN ), x " RN
oznacza wektor sygnałów wejściowych do perceptronu, a y " R oznacza sygnał wyjściowy.
Konstrukcja perceptronu to w zasadzie konstrukcja funkcji, która przetwarza x na y. Zgodnie
z zasadą działania rzeczywistego neuronu, jeśli sygnał wchodzący jest słaby to neuron nie
powinien wzbudzić potencjału czynnościowego lub powinien wzbudzić potencjał słaby. To
zadanie w perceptronie jest realizowane przez funkcję aktywacji g, której kształt jest dobrany
do zadania, które ma pełnić. Przykładowe funkcje aktywacji widzimy na rysunku 1.5.
-4 0 4 -4 0 4 -4 0 4
(a) (b) (c)
Rysunek 1.5: Przykładowe funkcję aktywacji neuronu: (a) funkcja Heaviside a (b) funkcja
1
, gdzie a jest tzw. parametrem wzmocnienia (c) tangens hiperboliczny
1+e-ax
Ponadto neuron może wzmacniać lub osłabiać sygnały pochodzące od pewnych neuronów
10
tgh(x)
(sgn(x)+1)/2
0.0
0.6
0.0
0.6
-1.0
0.5
1/(1+exp(-ax))
presynaptycznych. Dla tego wprowadza się wektor wag
w = (w0, ..., wN ).
Ponadto każdy neuron posiada pewną wartość progową, po przekroczeniu której jest wzbudza-
ny. Wartość tą dla perceptronu oznaczamy przez w0. Tak zbudowany perceptron zapisujemy
jako funkcję następująco:
S : RN R
N

S(x) = g(w0 + wixi) (1.1)
i=1
Schemat perceptronu widzimy na rysunku 1.6. W celu prezentacji właściwości perceptronu
Rysunek 1.6: Perceptron
przyjmijmy, że g jest tzw. funkcją Heaviside a:

1 dla x > 0
g(x) = (1.2)
0 dla x 0
Wówczas:

N
1 dla w0 + wixi > 0
S(x) = i=1 (1.3)
N
0 dla w0 + wixi 0
i=1
Zauważmy, że perceptron jest w takim wypadku pewnym cięciem w przestrzeni wejść i kla-
syfikuje obiekty tej przestrzenie na dwie grupy (rysunek 1.7).
Możliwości tak skonstruowanego perceptron są jednak dość niewelkie. Załóżmy, że chcie-
libyśmy aby reprezentował on następujące funkcje logiczne: i (AND), lub (OR), alternatywę
wyłączającą (XOR). Taki perceptron powinien mieć dwa wejścia. Okazuje się, że da się przed-
stawić funkcje AND i OR jak liniowe cięcie na płaszczyznie ale nie da się tak przedstawić
funkcji XOR. Sytuację taką widzimy na rysunku 1.8.
Uczenie perceptronu polega na znajdowaniu takich wag, dla których będzie on umiał roz-
wiązać dany problem. Pomijamy tu kwestię sposobu w jaki należy nauczyć perceptron danej
funkcji (funkcji o wartościach w zbiorze {0, 1}). Zaznaczymy tylko, że jeżeli zbiór danych
(zbiór argumentów funkcji) jest liniowo separowalny to istnieje algorytm, który znajdzie od-
powiednie wagi. Widzimy zatem, że pojedynczy perceptron nie spełnia stawianych przed nim
oczekiwań.
11
Rysunek 1.7: Perceptron prezentuje liniowe cięcie w przestrzeni wejść
Rysunek 1.8: Możliwość reprezentacji funkcji logicznych jako cięcia na płaszczyznie
Jednokierunkowa jednowarstwowa sztuczna sieć neuronowa
Ponieważ chcielibyśmy umieć aproksymować przy użyciu sieci (uczyć sieć) dość skom-
plikowane funkcje zatem należało by w pewien sposób zwiększyć zdolności perceptronu. Jeśli
postąpimy tak, jak nakazuje nam wiedza zdobyta w badaniem nad mózgiem i połączymy po-
jedyncze perceptrony w sieć, to zdolności aproksymacyjne otrzymanego tworu (sztucznej sieci
neuronowej) będą znacznie większe. Rodzi się pytanie jak połączyć pojedyncze perceptrony.
Jednoznacznej odpowiedzi nie ma. Istnieje wiele różnych typów sieci, różniących się właśnie
topologią połączeń. My zaprezentujemy tu jeden z najbardziej popularnych typów sieci: sieć
jednokierunkową.
Zaczniemy od sieci z jedną warstwą ukrytą. Na rysunku 1.9 widzimy topologię takiej
Rysunek 1.9: Sieć jednokierunkowa jednowarstwowa
sieci.W odróżnieniu od perceptronu może mieć ona (choć nie musi) więcej niż jedno wyjście.
12
Schematycznie wielkość sieci będziemy oznaczać N1 - N2 - N3, gdzie N1, N2, N3 oznacza-
ją odpowiednio rozmiar warstwy wejściowej, ukrytej i wyjściowej. Wektor wyjść będziemy
oznaczać następująco:
y = (y1, ..., yN3).
(0) (1)
Dodatkowo wagi będą teraz dwiema macierzami WN2N1, WN3N2 i dwoma wektorami (war-
tości progowych) w(0), w(1). Tak skonstruowana sieć, podobnie jak perceptron jest funkcją1:
Ż Ż
S : RN1 RN3
S(x) = g(W(1)g(W(0)x + w(0)) + w(1)) (1.4)
Ż Ż
Jednokierunkowa wielowarstwowa sztuczna sieć neuronowa
Oczywiście konstruowanie coraz to większych sieci można rozszerzać otrzymując sieć wie-
lowarstwową. Przyjmując, że m jest liczbą warstw ukrytych a L liczbą wszystkich warstw2
ma ona postać:
S : RN1 RNm+2
S(x) = g(W(m)g(...g(W(1)g(W(0)x + w(0)) + w(1))...) + w(m)), (1.5)
Ż Ż Ż
gdzie W(i), w(i) oznaczają wagi następujące po (i + 1)-szej warstwie neuronów (i = 0, .., m).
Ż
Schematycznie sieć neuronowa wielowarstwowa przedstawiona jest na rysunku 1.10. W prak-
tyce konieczność stosowania sieci wielowarstwowej zachodzi tylko wówczas, gdy chcemy, aby
sieć nauczyła się funkcji, która ma pochodną w pewnym kierunku bliską nieskończoności, tak
jakby była nieciągła ([Mast96] s.89).
Rysunek 1.10: Sieć jednokierunkowa wielowarstwowa
1.3. Zdolności aproksymacyjne sieci
W tej części pokażemy, że tak naprawdę sieć neuronowa jest sposobem aproksymacji funkcji,
dzięki któremu możemy aproksymować z dowolną dokładnością każdą funkcję ciągłą określoną
na zbiorze zwartym. Pierwszy szeroko uznawany rezultat na temat zdolności aproksymacyj-
nych sieci neuronowych zawiera praca [Horn89]. My przedstawimy tu pózniejszy wynik z
1
Przyjmujemy konwencje zapisu taką, że jeśli f : R R, a x = (x1, ..., xn) to f(x) = (f(x1), ..., f(xn)).
2
liczba warstw sieci jest zawsze o 2 większa od liczby warstw ukrytych bo zawsze mamy dwie warstwy
zewnętrzne:wejsciową i wyjściową (L = m + 2)
13
[Cyben89], którego uogólnienia znajdują się w [Ito91], [Ito92].
Niech M(Id) oznacza zbiór regularnych miar borelowski na Id, gdzie Id = [0, 1] ... [0, 1] "

d razy
Rd. Nim pokażemy, że każdą funkcję z C(Id) można z dowolną dokładnością (w sensie metryki
jednostajnej) aproksymować używając sieci neuronowej wprowadzimy kilka definicji.
Definicja 1.3.1 Mówimy, że funkcja g jest dyskryminująca jeśli dla miary " M(Id) z
faktu, że

g( x + )d(x) = 0
Ż
Id
dla każdego  " Rd i  " R wynika, że = 0 ( x oznacza iloczyn skalarny wektorów , x).
Ż
Definicja 1.3.2 Mówimy, że funkcja g jest funkcją sigmoidalną, jeśli

1 dla t ",
g(t) (1.6)
0 dla t -".
Twierdzenie 1.3.1 Niech g będzie dyskryminującą funkcją ciągła. Wówczas dla dowolnej
funkcji f " C(Id) oraz dowolnego  > 0 istnieją: n " N, i " R, ai " R,  " Rd (i = 1, ..n)
Ż
takie, że dla
n

S(x) = aig(i x + i) (1.7)
Ż
i=1
spełniony jest warunek:
f - S C(I )< .
d
Innymi słowy oznaczając zbiór funkcji postaci 1.7 przez S twierdzimy, że S jest gęste w C(Id).
Dowód
Dowód opiera się na zastosowaniu dwóch twierdzeń analizy funkcjonalnej (tw. Hahna-Banacha
i tw. Riesza o reprezentacji patrz dodatek B), dzięki czemu jest dość prosty. Oczywiście S jest
podprzestrzenią liniową C(Id). Pokażemy, że cl(S) = C(Id). Załóżmy przeciwnie, że istnieje
funkcja 0 " C(Id), która nie należy do cl(S). Wówczas z tw. H-B wiemy, że istnieje ciągły
liniowy funkcjonał  taki, że (0) = 1 i () = 0 dla każdego  " cl(S). Wówczas z
twierdzenia Riesza o reprezentacji wiemy, że funkcjonał  ma postać:

() = (x)d(x),
Id
gdzie jest pewna miarą z M(Id). Ponieważ g( x + ) " S dla dowolnych  " Rd  " R
Ż Ż
musi być, że

g( x + )d(x) = 0
Ż
Id

Ale g jest funkcją dyskryminującą więc = 0, ale to nie prawda bo 0(x)d(x) = 1 i
Id
mamy sprzeczność. Co oznacza, że S jest gęste w C(Id).
Lemat 1.3.1 Każda ograniczona, mierzalna funkcja sigmoidalna jest dyskryminująca.
Dowód tego lematu pomijamy, można go znalezć w [Cyben89].
1
Przykład 1.3.1 Przykładowymi funkcjami sigmoidalnymi dyskryminującymi są: ,
1+exp(-x)
1 1
+ arctg(x).
2 Ą
14
Uwaga 1.3.1 Zauważmy, że pokazaliśmy gęstość skończonych sum postaci 1.7 w C(Id). Su-
my takiej postaci to tzw. sieć jednowarstwowa jednokierunkowa z wyjściem liniowym. Bardzo
często jednak stosuję się wyjście standardowe tzn. takie jak w przyjętej definicji sieci jedno-
kierunkowej. Wówczas należało by pokazać gęstość funkcji postaci
n

S(x) = g( aig(i x + i) + (1)) (1.8)
Ż Ż
i=1
w zbiorze:

C(Id, (0, 1)) = f " C(Id) : f(Id) " (0, 1)
z topologią generowaną, przez metrykę zbieżności jednostajnej. Tak będzie, o ile g traktowana
jako operator g : C(Id) C(Id, (0, 1)) będzie operatorem ciągłym. Ciągłość g jako operatora
możemy zapewnić żądając aby g : R R było funkcją jednostajnie ciągłą. Zauważmy, że
funkcje z przykładu 1.3.1 są jednostajnie ciągłe.
Uwaga 1.3.2 Warto mieć świadomość faktu, że choć już wiemy, że sieć neuronowa może
aproksymować dowolną funkcję ciągłą, to jednak nie wiemy, jak duża ta sieć powinna być.
Oczywiste jest, że im więcej warstw i im więcej neuronów ma sieć tym jej zdolności aprok-
symacyjne są większe. Pewne granice dotyczące dotyczące wymaganej liczby neuronów (dla
sieci z dwoma warstwami ukrytymi) przedstawione są w [Kurk92].
1.4. Uczenie sieci
Problem ucznia sieci zaprezentujemy na przykładzie sieci L warstwowej o wymiarach N1 -
N2 - ... - NL-1 - NL (N1 to rozmiar warstwy wejściowej, zaś NL wyjściowej) opierając
się głównie na [Rutko97]. W procesie uczenia sieć otrzymuje do zapamiętania pewne wzor-
ce. Tymi wzorcami są często wartości funkcji dla ustalonych argumentów. Zatem każde-
mu wektorowi wejściowemu u(k) = [u1(k), ..., uN1(k)] towarzyszy zadany wektor wyjścio-
wy d(k) = [d1(k), ..., dNL(k)]. Dane uczące są podawane w postaci par (u(k), d(k)), dla
k = 1, 2, ..., p, gdzie p oznacza liczbę wzorów uczących. Uczenie polega na doborze wag mini-
malizujących funkcję celu E, która jest miarą błędu dopasowania sieci. Najczęściej definiuje
się ją wzorem:
p NL

E = (yi(k) - di(k))2 (1.9)
l=1 j=1
Jeśli funkcje aktywacji neuronów są różniczkowalne to do uczenia sieci można używać standar-
dowych algorytmów gradientowej optymalizacji, np. algorytmu największego spadku, zgodnie
z którym:
"W (t) = -"E(W )
W (t + 1) = W (t) + "W (t) (1.10)
t = 0, 1, 2... . (1.11)
W powyższym wzorze  oznacza dodatni parametr (chcemy bowiem minimalizować funkcję
błędu) , W natomiast jest wektorem wszystkich wag sieci.
Przedstawimy teraz sposób wyznaczania wielkości "E(W ). Policzenie pochodnej funkcji celu
względem wag warstwy wyjściowej jest prawie natychmiastowe. W przypadku pochodnych
wag innych warstw stosuje się tzw. procedurę wstecznej propagacji błędu. Z tego właśnie
powodu prezentowany tu algorytm nosi nazwę algorytmu wstecznej propagacji błędu. Jest to
15
jeden z bardziej popularnych algorytmów, choć obecnie w czystej postaci ze względu na długi
czas uczenia dość rzadko stosowany. Stanowi on jednak podstawę do konstruowania bardziej
skutecznych algorytmów.
Algorytm najszybszego spadku
Nim przejdziemy do wyprowadzenia konkretnych wzorów musimy ustalić oznaczenia i pod-
sumować pewne informacje dotyczące oznaczeń. Zatem:
" x(k) to i-ty sygnał wejściowy neuronu w k-tej warstwie, a wektor wejść do neuronów
i
k-tej warstwy x(k) ma postać:
x(k) = [x(k)...x(k) ]
0 Nk-1
(k)
" wij to waga przyporządkowana sygnałowi płynącemu z j-tego neuronu warstwy (k -
1) - szej do i-tego neuronu warstwy k-tej.
" wektor wag odpowiadający sygnałom wchodzącym do i-tego neuronu k-tej warstwy ma
postać
(k) (k) (k)
wi = [wi0 ...wiNk-1].
(k)
" zakładamy, że x(k) a" 1 (k = 1, ..., L) w ten sposób wi0 (i = 0, ..., Nk) jest stałą progową.
0
" całkowity sygnał dochodzący do i-tego neuronu w k-tej warstwie ma postać:
Nk-1

(k) (k)
s(k) = x(k)wij + wi0
i j
j=1
k
" yi = g(s(k)), to sygnał wyjściowy i-tego neuronu w k-tej warstwie (g jest funkcją akty-
i
wacji neuronu).
" wartości w momentach czasu będziemy indeksowali literą t (t = 0, 1, 2...).
Rysunek 1.11: Schemat i-tego neuronu k-tej warstwy (tu bedzie lepszy rysunek).
Dokonajmy dodatkowo następujących spostrzeżeń:
ńł
ł ui dla k = 1
ł
(k-1)
" x(k) =
yi dla k = 2, ..., L
i
ł
ół
1 dla i = 0, k = 1, ..., L
16
(L) (L)
" Sygnały wyjściowe neuronów w warstwie L-tej [y1 , ..., yNL ] są sygnałami wyjściowymi
całej sieci.
" funkcja błędu w momencie t, w przypadku, gdy zbiór uczący składa się tylko z jednego
wzorca ma postać:
NL

(L)
E(t) = (d(L)(t) - yi (t))2 (1.12)
i
i=1
Teraz możemy wyprowadzić wzory określające dostosowania wag.
Korzystając z reguły najszybszego spadku określonej wzorem 1.10 otrzymujemy:
"E(t)
(k) (k)
wij (t + 1) = wij (t) - (1.13)
(k)
"wij (t)
Zauważmy, że
"E(t) "E(t) "s(k)(t) "E(t)
i
= = x(t)(t). (1.14)
j
(k) (k)
"wij (t) "s(k)(t) "wij (t) "s(k)(t)
i i
Oznaczając:
1 "E(t)
(k)
i (t) = - , (1.15)
2
"s(k)(t)
i
otrzymujemy
"E(t)
(k)
= -2i x(k)(t) (1.16)
j
(k)
"wij (t)
i wzór 1.13 przybiera postać:
(k) (k) (k)
wij (t + 1) = wij (t) + 2i (t)x(k)(t). (1.17)
j
(k)
Sposób obliczania wyrażenia i (t) danego wzorem 1.15 zależy od warstwy. Najłatwiej jest
je obliczyć dla warstwy wyjściowej L. Wówczas:
2 2
NL
(L)
1 "E(t) 1 " (L)(t) 1 "(L)(t) "yi (t)
(L) m m
m=1
i (t) = - = - = - = L(t) = (L)(t)g (s(L)(t))
i i i
2 2 2
"s(L)(t) "s(L)(t) "s(L)(t) "s(L)(t)
i i i i
(1.18)
Dla warstwy k = L mamy sytuacje trochę bardziej skomplikowaną:

Nk+1

1 "E(t) 1 "E(t) "s(k+1)(t)
(k) m
i (t) = - = - =
2 2
"s(k)(t) "s(k+1)(t) "s(k)(t)
m=1 m
i i
Nk+1 Nk+1

(k+1) (k+1)
(k+1) (k+1)
= m wmi (t)g (s(k)(t)) = g (s(L)(t)) m wmi (t) (1.19)
i i
m=1 m=1
W ten sposób otrzymujemy uproszczony wzór na błąd warstwy k-tej (k = L):

Nk+1

(k+1)
(k+1)
(k)(t) = m wmi (t) (1.20)
i
m=1
gdzie:
(k)
i (t) = (k)(t)g (s(k)(t)). (1.21)
i i
17
(i)
Znając m dla warstwy poprzedzającej warstwę k umiemy policzyć wartość błędu w war-
stwie k-tej. Stąd nazwa wstecznej propagacji błędu.
Podsumujmy nasze wyprowadzenia najważniejszymi wzorami :
Nk-1

(k) (k)
yi (t) = g (s(k)(t)), s(k)(t) = wij (t)xk(t) (1.22)
i i j
j=0

(L)
d(L)(t) - yi (t) dla k = L
i
(k)(t) = (1.23)
Nk+1 (k+1) (k+1)
i
m (t)wmi (t) dla k = 1, ..., L - 1
m=1
(k)
i (t) = (k)(t)g (s(k)(t)) (1.24)
i i
Nk+1

(k+1)
(k+1)
(k)(t) = m wmi (t) (1.25)
i
m=1
(k) (k) (k)
wij (t + 1) = wij (t) + 2i (t)x(k)(t) (1.26)
j
Uwaga 1.4.1 Zauważmy, że przedstawiony algorytm wymaga pewnych modyfikacji jeśli dys-
ponujemy zbiorem uczącym zawierającym więcej niż jeden element. Z taką właśnie sytuacją
mamy najczęściej doczynienia w praktyce. Jeśli zbiór uczący składa się z p elementów i funk-
cja błędu ma postać 1.9 to z własności addytywności pochodnej dostajemy, że uaktualnianie
wag powinno odbywać się wg. wzoru:
p

(k) (k) (k)(l)
wij (t + 1) = wij (t) + 2 i (t)x(k)(l)(t), (1.27)
j
l=1
(k)(l) (k)
gdzie subskrypt l przy i (t)x(k)(l)(t) oznacza, że chodzi o i (t)x(k)(t) zdefiniowanych jak
j j
wcześniej dla zbioru uczącego składającego się tylko z l-tego elementu.
Algorytm wstecznej propagacji błędu w przedstawionej tu postaci jest mało skuteczny o czym
świadczą opinie przedstawiane w literaturze (np. [Kosin02] s.73) jak również doświadczenia
autora. Dzieje się tak między innymi dlatego, że algorytm ten nie wykorzystuje informacji o
krzywiznie funkcji celu zawartej w macierzy drugich pochodnych funkcji celu względem wag
(tzw. hesjanie).
Algorytm BFGS
Algorytmem pozbawionym powyższej wady jest algorytm BFGS (Broydena - Goldfarba -
Fletchera - Shanno). Jest zaimplementowany w pakiecie R, którego będziemy używać w dal-
szych symulacjach. Przedstawimy go tutaj na podstawie [Osow96]. Załóżmy znowu, że mamy
pewna funkcję celu E(W), zależną od wektora wag W. W celu wyznaczenia kierunku mini-
malizacji d(t) w algorytmie BFGS stosuję się kwadratowe przybliżenie funkcji E w postaci:
1
E(W(t) + d(t)) H" E(W(t)) + [g(W(t)]T d(t) + d(t)T H(W(t))d(t), (1.28)
2
gdzie g(W(t)) i H(W(t)) oznaczają odowiednio gradient i hesjsan funkcji E w punkcie W(t).
dE(W(t)+p)
Warunkiem koniecznym dla istnienia minimum funkcji E jest by = 0. Różniczkując
dp
prawą stronę 1.28 otrzymujemy warunek:
g(W(t)) + H(W(t))d(t) = 0. (1.29)
18
Stąd otrzymujemy kierunek minimalizacji:
d(t) = -[H(W(t))]-1g(W(t)). (1.30)
W rzeczywistości jednak nie dysponujemy macierzą H(W(t))-1 i stosujemy jej pewne przybli-
żenie B(t), które dane jest pewną zależnością rekurencyjną, którą przedstawimy prezentując
schemat całego algorytmu:
1. t:=0, ustaw wagi początkowe W(0) i dowolną rzeczywistą macierz dodatnio określoną
B(0) (w praktyce często B(0) jest macierzą jednostkową )
2. Jeśli g(t)=0 to stop ; w przeciwnym wypadku d(t) = -B(t)g(t)
3. ą(t) := arg miną>0(E(W(t) + ąd(t)));
W(t + 1) := W(t) + ą(t)d(t)
4. nadaj wartości B(t + 1) zgodnie ze wzorem 1.31; t:=t+1; idz do kroku 2.
Przybliżenia odwrotności hesjanu są zadane wzorem:

"g(t)T B(t)"g(t) "W(t)"W(t)T
B(t + 1) = B(t) + 1 + +
"g(t)T "W(t)
"W(t)T "g(t)
"W(t)"g(t)T B(t) + B(t)"g(t)"W(t)T
- , (1.31)
"W(t)T "g(t)
gdzie:
"W(t) = ą(t)d(t), "g(t) = g(t + 1) - g(t).
Zaprezentowane w tym rozdziela fakty dotyczące SSN pozwolą nam na zbudowanie mode-
lu duopolu, w którym unikniemy założenia znajomości przez producentów własnych funkcji
zysku. Nim jednak przejdziemy do konstruowania nowego modelu, przedstawimy w kolejnym
rozdziale ważne osiągnięcia ekonomii matematycznej w dziedzinie analizy poruszanego tu
zagadnienia.
19
Rozdział 2
Duopol
W tym rozdziale przedstawimy klasyczny, matematyczny model duopolu. Zdefiniujemy na
początku pojęcie duopolu po czy przedstawimy krótki rys historyczny. Następnie zaprezen-
tujemy główny cel tego rozdziału, którym jest analiza duopolu jako układu dynamicznego.
Duopolem nazywamy sytuację, w której wytwarzanie jakiegoś dobra jest całkowicie opano-
wane przez dwóch producentów. Istnienie dokładnie dwóch producentów nadaje takiej formie
rynku pewne szczególne cechy, które czynią ją szczególnie dogodną i interesującą do analizy.
Zauważmy, że wówczas w odróżnieniu od monopolu, producenci przy ustalaniu wielkości pro-
dukcji muszą brać pod uwagę nie tylko wielkość popytu i swoje funkcje kosztów ale również
zachowanie konkurenta. To właśnie czyni duopol problemem, którym ekonomiści nie przesta-
ją się interesować od ponad 150 lat. Duopol jest również formą rynku, w której wpływ działań
każdego producenta na swoją konkurencję jest największy. W monopolu bowiem konkurencja
nie istnieje, a w konkurencji doskonałej pojedynczy uczestnik rynku nie wywiera na swoje
otoczenie istotnego wpływu.
Analiza duopolu ma ponadto te zalety, że daje się w prosty sposób sformalizować i w jasny
sposób ilustruje mechanizmy powodujące, że racjonale postępowanie producentów prowadzi
do dość skomplikowanych zjawisk.
2.1. Historia problemu duopolu
W tej części przedstawimy krótko historię rozwoju modeli duopolu opierając się na [Puu02].
Pierwszą osobą, która sformułowała problem duopolu i podjęła się jego analizy był Francuz
Antoine Augustin Cournot (1801-1877), który swoją prace na ten temat Recherces sur les
Principes Mathematiques de la Theorie des Richesses opublikował w 1838 r. Zajął się on
oddziaływaniami między dwoma firmami (producentami wody mineralnej w małym mieście),
w których decyzje jednej firmy wpływały na decyzje drugiej. Praca Cournota jest szczególnie
ważna z kilku względów. Otóż Cournot analizował swój model badając istnienie równowagi
przy jednokrotnym ustalaniu wielkości produkcji, jak również traktując sytuację jako układ
dynamiczny. Ponadto wyznaczona przez niego równowaga Cournota jest szczególnym przy-
padkiem równowagi Nasha. Na uwagę zasługuje również fakt, że w pracy tej po raz pierwszy
zastosowano rachunek różniczkowy do analizy optymalizacyjnego problemu ekonomicznego.
Praca Cournota nie przestała być dla naukowców inspirująca przez przeszło 150 lat. Po opu-
blikowaniu jednak nie wywołała ono żadnych komentarzy przez ponad 45 lat. Dopiero w 1883
roku spotkała się z ostrą i nieuzasadnioną ([Puu02] s. 4) krytyką Josepha Bertranda. Bertrand
krytykował przede wszystkim założenie, że zmiennymi decyzyjnymi producentów są ich wiel-
kości produkcji, sam natomiast proponował, by agenci decydowali o cenach wyrobów które
21
sprzedają. Podejście to rozwinął Edgeworth w 1897 r. . Następnym ważnym krokiem w roz-
woju teorii było wprowadzenie elementów strategii i formowania się oczekiwań. Powtarzanie
procesu wybierania wielkości produkcji powinno zmusić producentów do obserwacji poczynań
konkurenta i uczynić to częścią swojego procesu decyzyjnego. Tym zagadnieniem zajmowało
się po raz pierwszy dwóch ekonomistów: Heinrich von Stackelberg (publikacje w 1934, 1938)
i Ragnar Frisch (1933). Zajmowali się oni zagadnieniem podobnym do tego przedstawionego
w podrozdziale 2.5.
Następnym ważnym wydarzeniem w interesującej nas historii było zaproponowanie ukła-
du w którym istniała więcej niż jedna lub żadna równowaga. Te rozważania przypadły na lata
trzydzieste XX wieku (T.Palander, J. Robinson, A. Wald). Obserwując układy zawierające
więcej niż jedną równowagą lub układy bez równowagi zaczęto się zastanawiać nad tym jak
kształt funkcji zysku i funkcji reakcji determinują kształt trajektorii. Zaznaczmy, że do tego
czasu wszystkie rozpatrywane modele miały stabilne punkty równowagi.
W 1944 ukazało się słynna książka Johna von Neumanna i Oskara Morgensterna Theory
of games and economic behaviour początkując rozwój teorii gier. Wówczas zaczęto patrzeć
na problem duopolu w terminach gry.
Pierwszym modelem, który wprowadził do analizy pojęcie chaosu jest model zapropono-
Rysunek 2.1: Funkcje reakcji dla chaotycznego modelu Cournota-Randa [Rand78]
wany przez D. Rand a w [Rand78] Dwóch agentów ustala wielkości produkcji na poziomach
odpowiednio x " [0, 1] y " [0, 1]. Wielkości te maksymalizują ich użyteczności uA(x, y) i
uB(x, y). Mając punkt startowy (x0, y0), producent A zmienia wielkość produkcji x0 na ar-
gument x1 lokalnego maksimum uA(x1, y0), zakładając, że y0 jest stałe. Agent B postępuje
analogicznie. W taki sposób powstają funkcje reakcji (MA, MB), definiujące układ dynamicz-
ny. Na rysunku 2.1 widzimy funkcje reakcji dla jednego z przykładów prezentowanych przez
Randa. w którym wszystkie punkty stałe są niestabilne. Rezultaty pracy Randa stały się
inspiracją dla wielu autorów i w ostatnich latach obserwuje się znaczny wzrost publikacji
dotyczących dynamiki duopolu. Duża część z nich dzięki stosowaniu matematycznych me-
tod analizy układów nieliniowych prezentuje ciekawe rezultaty. Kolejną próbą wyjaśnienia
mechanizmów funkcjonujących w sytuacji duopolu jest model zaprezentowany w rozdziale 3.
2.2. Ogólny model duopolu
W tym podrozdziale zajmiemy się sformalizowaniem teorii duopolu. Będziemy zakładali, że
na rynku są dwie firmy - firma X i firma Y, produkujące dobra, które są doskonałymi substy-
22
tutami, a wielkości ich produkcji wynoszą odpowiednio x,y. Zakładamy ponadto że całkowity
popyt Q jest równy całkowitej podaży (Q = x + y). Cena p jest natomiast pewną funkcją G
popytu:
p = G(Q) (2.1)
Koszty krańcowe obu firm są stałe i wynoszą odpowiedni c1 i c2. Przy takich założeniach
funkcje zysku PX, PY odpowiednio firmy X i firmy Y mają postać:
PX = G(x + y)x - c1x (2.2)
PY = G(x + y)y - c2y.
Zauważmy, że zysk firmy nie zależy tylko od wielkości, która jest zmienną decyzyjną da-
nej firmy, ale również od wielkości,o której decyduje konkurent. Zatem obaj producenci aby
maksymalizować swój zysk muszą brać pod uwagę decyzje konkurenta. Ten fakt ma funda-
mentalne znaczenie dla problemu duopolu.
2.3. Problem równowagi
Zajmiemy się teraz zagadnieniem racjonalnego określenia wielkości produkcji przez produ-
centów zakładając, że produkcja ustalana jest jednorazowo i producent nie zna wielkości
produkcji konkurenta. Posłużymy się przy tym pojęciem zaczerpniętym z teorii gier, jakim
jest równowaga Nasha.
Rozważmy pewną skończoną liczbę, graczy z których każdy ma do dyspozycji pewien
zbiór strategii.
Definicja 2.3.1 Rówowaga Nasha (RN)
Jeśli każdy z graczy dokona wyboru swojej strategii, to powiemy, że gracze są w równowadze
Nasha, jeśli każdy z graczy nie może zwiększyć swojej wypłaty mając dane strategie wybrane
przez innych uczestników gry.
W przypadku duopolu mamy dwóch graczy, a strategią jest wybór konkretnej wielkości
produkcji. Punkt (x, ł) będzie zatem równowagą Nasha jeśli PX(x, ł) = maxxPX(x, ł) i
 
PY (x, ł) = maxyPY (x, y). Aby dla przykłady wyznaczyć równowagę Nasha przyjmijmy, że:
 
1
G(Q) = . (2.3)
Q
Znajdziemy RN sprawdzając kiedy spełnione są warunki:
"PX
= 0
"x
"PY
= 0. (2.4)
"y
Różniczkując 2.2 i korzystając z powyższych warunków otrzymujemy że:
c2
x =

(c1 + c2)2
c1
ł = (2.5)
(c1 + c2)2
Ponieważ Cournot jako pierwszy przedstawił całościową analizę duopolu, w której wyznaczył
równowagę taką jak my powyżej, a pojęcie równowagi Nasha jeszcze w 1838 nie istniało więc
23
równowagę 2.5 nazywa się często równowagą Nasha-Cournota (RNC).
Wspomnimy jeszcze o tym, że równowaga Nasha nie musi być rozwiązaniem Pareto opty-
malnym. Nie rozwijamy jednak tego zagadnienia, gdyż leży ono poza głównym nurtem zain-
teresowań tej pracy. Więcej na ten temat można znalezć w [Straff01].
Pojęcie równowagi Nasha ma służyć  porządnemu zdefiniowaniu racjonalności. Istnieje
klasa przypadków, która wykazuje słabość tego pojęcia. Jednak dla naszego zadania, rzeczy-
wiście określa ono racjonalne postępowanie graczy. Bo przypuśćmy dla przykładu, że wybiorą
oni wielkości produkcji inne niż te w RNC, to wówczas któryś z producentów, będzie mógł
zwiększyć swój zysk, a ponieważ żaden z producentów chciałby mieć od razu zysk maksymal-
ny, czyli taki, którego nie można już zwiększyć więc postępując w sposób racjonalny wybiorą
od razu wielkości produkcji takie jak w RNC. Rodzi się tu jednak pytanie, co będzie się dzia-
ło jeśli producenci znajdą się w punkcie nie będącym punktem równowagi. Tym pytaniem
przyjdziemy do następnego podrozdziału, w którym będziemy już rozważali sytuację bardziej
realistyczną, tzn. zastanowimy się nad ewolucja czasową naszego układu. Załóżmy zatem, że
producenci nie byli w pełni racjonalni lub nie mieli pełnej informacji by podjąć racjonalna
decyzję i wybrali wybrali produkcję na poziomach x0, y0, takich, że (x0, y0) nie jest RNC.
Od tego momentu istnieją różne podejścia do określenia postępowania producentów, z których
każde ma swoje wady i zalety. My przedstawimy tu dwa z wielu możliwych podejść. Pierwsze
postuluje dostosowania oparte na zysku zysku krańcowym, drugie zaś zakłada pełną wiedzą
o funkcjach zysku.
2.4. Model oparty na zysku krańcowym
Zaczniemy od podejścia zakładającego dostosowania oparte na wiedzy o zysku krańcowy .
Niech xt,yt oznaczają wielkość produkcji odpowiednio firmy X i firmy Y w okresie t (t=0,1,2...).
Zakłada się, że firmy bazują jedynie na wiedzy o swoim zysku krańcowym i małymi kroka-
mi zmieniają swoją produkcję w kierunku, wskazanym przez znaku zysku krańcowego z siłą
zależną od aktualnej wielkości produkcji. Formalnie mamy, że:
"PX
xt+1 = xt + v1xt
"x
"PX
yt+1 = yt + v2yt , (2.6)
"y
gdzie parametry v1, v2 są dodatnimi stałymi określającymi szybkość dostosowań. Teraz bę-
dziemy chcieli zbadać istnienie i stabilność punktów stałych zdefiniowanego powyżej układu
dynamicznego. Ponieważ jest to w pewnych przypadkach dość skomplikowane obliczeniowo,
warto więc przyjąć prostą postać funkcji G. Niech więc G będzie zdefiniowane wzorem:
G(Q) = a - bQ = a - b(x + y). (2.7)
a koszty krańcowe wynoszą odpowiedni c1, c2. Wówczas:
PX(x, y) = (a - b(x + y))x - c1x
PY (x, y) = (a - b(x + y))y - c2y (2.8)
Licząc pochodne cząstkowe dostajemy:
"PX
(x, y) = a - 2bx + y - c1
"x
"PX
(x, y) = a - 2by + x - c2 (2.9)
"x
24
Wstawiając powyższe do 2.6 dostajemy:
xt+1 = xt + v1xt(a - 2bxt + yt - c1)
yt+1 = yt + v2yt(a - 2byt + xt - c2) (2.10)
Otrzymane równanie będą teraz przedmiotem naszej analizy. Wydawać by się mogło, że z
ich prostoty będzie wynikała prostota analizy. Tak jednak nie jest i będziemy musieli w kilku
przypadkach przytoczyć wyniki z [Bischi99], gdzie przedstawia się baseny atrakcji atraktorów
układu 2.10 (patrz definicje w dodatku B). Zacznijmy jednak od rzeczy prostej, mianowicie
od wyznaczenia punktów stałych tej dynamiki. Rozwiązując układ:
v1xt(a - 2bxt + yt - c1) = 0
v2yt(a - 2byt + xt - c2) = 0 (2.11)
Mamy zatem co najwyżej cztery punkt stałe, które będziemy oznaczać Ei (i = 0, 1, 2, N).
Pierwszy to E0=(0,0), a dalej E1 = (a1-c1 , 0) jeśli tylko a1 - c1 > 0, E2 = (a2-c2 , 0) jeśli
2b 2b
tylko a2 - c2 > 0, które to będziemy nazywać równowagami brzegowymi. Istnieje jeszcze
jedna równowaga:
a + c2 - 2c1 a + c1 - 2c2
EN = (xN , yN ) = ( , ) (2.12)
3b 3b
przy założeniu, że:
a + c2 - 2c1 > 0
a + c1 - 2c2 > 0 (2.13)
Od teraz będziemy zakładać, że warunki 2.13 są spełnione.
Mając na uwadze wielomianową postać 2.8 i spełnienie warunków 2.9 łatwo stwierdzamy, że
EN jest równowagą Nasha. Nim będziemy chcieli dowiedzieć się czegoś więcej o wyznaczonych
równowagach musi jeszcze wspomnieć o pewnej ważnej własności otrzymanej dynamiki. Otóż
niestety może ona generować, nieograniczone i jednocześnie ujemne trajektorie, nie mające
ekonomicznej interpretacji. Zauważmy, że warunkiem dostatecznym na to, aby dla danych
warunków początkowych (x0, y0), odpowiadająca im trajektoria była nieskończona jest by :
1 + a - c1
x0 > (2.14)
bv1
1 + a - c2
y0 > .
bv2
Wówczas już x1, y1 < 0 i kolejne iteracje dają wobec założenia 2.13 coraz szybciej male-
jące wartości xt, yt (t=1,2...). Z tego mamy wniosek, że basen atrakcji EN zawarty jest w
1+a-c1 1+a-c2
prostokącie postaci [0, ] [0, ]. Aby móc więcej powiedzieć o problemie base-
bv1 bv2
nów atrakcji zbadamy teraz stabilność punktów stałych naszej dynamiki. Oznaczmy literą
T przekształcenie zadane równaniami 2.10. Stabilność zbadamy obliczając macierz różnicz-
ki przekształcenia T (oznaczmy ją DT ) i skorzystamy z twierdzenia Grobmana-Hartmana i
wynikających z niego warunków stabilności (patrz dodatek B).

1 + v1(a - c1 - 4bx - by) -v1bx
DT (x, y) = (2.15)
-v2by 1 + v2(a - c2 - 4by - bx)
Stabilność E0, E1, E2 dostajemy bardzo łatwo, gdyż wówczas macierz różniczki przybiera
postać diagonalną, bądz trójkątną. Nietrudno sprawdzić, że gdy spełnione jest założenie 2.13,
25
warunkujące istnienie równowagi Nasha to punkty E0, E1, E2 są niestabilne (odpychające).
Sprawdzimy stabilność EN . Wstawiając 2.12 do 2.15 mamy:

1 - 2v1bxN ) -v1bxN
DT (xN , yN ) = (2.16)
-v2by 1 - 2v2byN )
Chcemy pokazać, że wartości własne DT (xN , yN ) 1, 2 są co do modułu mniejsze od 1.
Wielomian charakterystyczny ma postać:
()2 - tr(DT (xN , yN )) + det(DT (xN , yN )) (2.17)
Dalej mamy, że
2 2
(tr(DT (xN , yN )))2 - 4det(DT (xN , yN )) = 4b2(v12xN + v22yN - v1v2xN yN ) > 0 (2.18)
oraz

i = 1 - b(v1xN + v2yN ) ą b v12xN 2 + v22yN 2 - v1v2xN yN , (2.19)
gdzie i=1,2.
Po krótkich obliczeniach okazuje się, że |i| < 1 dla parametrów spełniający warunek:
3b2v1v2xN yN - 4b(v1xN + v2yN ) + 4 > 0 (2.20)
Rysunek 2.2: Obszar stabilności N ([Bischi99]).
Zatem EN jest stabilne dla parametrów spełniających 2.20. Dla tych parametrów trajektorie
startujące z pewnego otoczenia EN zbiegają do EN .
Rysunek 2.2 przedstawia zależność między stabilnością EN a wartością parametrów v1, v2,
dla pozostałych parametrów ustalonych. Widoczna na rysunku hiperbola jest zatem, krzy-
wą bifurkacyjną na której EN traci stabilność. Można teraz dokonać interpretacji zależności
między zachowaniem układu a wartością parametrów v1, v2 (więcej w [Bischi99]). Wyniki
są dość zgodne z intuicją, gdyż ostrożne zachowanie (małe v1, v2) implikuje zbieżność, czyli
małą zmienność zachowań. Natomiast bardziej zdecydowane zachowania prowadzą do desta-
bilizacji, czyli dużej zmienności. Podobnych interpretacji można dokonywać ustalają v1, v2 a
zmieniając wybrane z pozostałych (a, b, c1, c2) parametrów.
26
Otwartym pozostaje jednak dalej pytanie dla jakich warunków początkowych trajektorie
uciekają do nieskończoności a dla jakich pozostają w pewnym ograniczonym zbiorze. Jest to
zadanie dość skomplikowane. O tym problemie właśnie traktuje praca [Bischi99] i zawiera
numerycznie wyznaczone baseny atrakcji. Aby omówić częściowo wyniki tej pracy wprowa-
dzimy kilka oznaczeń. Przez A będziemy oznaczać zbiór wszystkich atraktorów1. D(A) będzie
basenem atrakcji A, a F = bd(D(A)) (bd oznacza brzeg zbioru). Niech ponadto D(I) będzie
zbiorem punktów generujących nieskończone trajektorie. Na rysunku 3.4a D(A) jest oznaczo-
ne kolorem białym a D(I) szarym. Pokazane są również dwie typowe trajektorie, jedna zbieżna
do EN , druga zaś rozbieżna. Warto również zauważyć, że trajektoria rozbieżna startuje bliżej
EN niż trajektoria zbieżna, co jest dość nie intuicyjne i może świadczyć o skomplikowanej
geometrii obszarów atrakcji. Dodatkowo okazuje się, że F na 2.3a ma strukturę fraktalną
(więcej w [Mira94],[Mira96]). Oznacza to, że bardzo mała zmiana warunków początkowych
może powodować, że dany punkt będzie należał do innego obszaru atrakcji. Na rysunku 2.3b
mamy sytuacją analogiczna do tej na rysunku 2.3a ale dla innego zestawu parametrów. Czar-
ne kropki reprezentują pewną trajektorię uzyskaną dla zestawu parametrów, dla którego EN
jest niestabilna.
Rysunek 2.3: Baseny atrakcji układu opisanego równaniami 2.10 ([Bischi99]).
2.5. Dostosowania zakładające pełną wiedzę o funkcjach zysku
Teraz zaprezentujemy podejście zaproponowane w [Puu91]. Będziemy zakładać, że producen-
ci dysponują pełną wiedzą o funkcji zysków swojej i przeciwnika . Taka wiedza daje możliwość
głębszej analizy sytuacji i wymaga od każdego z producentów sprecyzowania pewnych oczeki-
wań odnośnie poczynań konkurenta. Do przedstawienia tego podejścia przyjmujemy wszystkie
założenia z podrozdziału 2.2. Dodatkowo przyjmujemy postać funkcji G z równania 2.3. Przez
ye oznaczamy przewidywaną przez firmę X wielkość produkcji firmy Y, a przez xe analogicz-
ną wielkość dla producenta Y. Zatem przy zadanych oczekiwaniach, aby zmaksymalizować
1
W myśl przyjętej definicji atraktora w dodatku B, nieskończoność nie jest atraktorem
27
własny zysk firmy muszą przyjąć w okresie t+1 następujące wielkości produkcji:
xt+1 = maxxP (x, ye)
yt+1 = maxyP (xe, y) (2.21)
Przy naszych założeniach powyższe równania przybierają postać:

ye
xt+1 = - ye =: f(ye) (2.22)
a

xe
yt+1 = - xe =: g(xe). (2.23)
b
Funkcje f,g będziemy ze zrozumiałych względów nazywać funkcjami reakcji. Problemem po-
zostaje nadal jak zdefiniować oczekiwania producentów odnośnie produkcji konkurenta w
okresie następnym. Przyjmiemy tutaj najprostszy wariant, czyli tzw. naiwne oczekiwania.
Agenci zakładają, że w okresie następnym w stosunku do okresu obecnego konkurent nie
zmieni swojej produkcji tzn. ye = yt, xe = xt. Możliwe jest również przyjęcie innych wa-
riantów odnośnie metod ustalania produkcji przez graczy (np. [Agiza99]). Teraz możemy już
zapisać równania opisujące zachowanie naszego układu w czasie :
ńł
yt
ł
xt+1 = f(yt) = - yt
a

(2.24)
xt
ół
yt+1 = g(xt) = - xt
b
Chcemy aby nasz układ opisywał proces ekonomiczny i dawał się logicznie interpretować
Rysunek 2.4: Funkcje reakcji ([Muts04]).
więc możemy jedynie akceptować dodatnie wielkości produkcji. Aby to zagwarantować musi
1 1
ograniczyć dziedzinę funkcji f do przedziału [0, ], a funkcji g do [0, ]. Aby dla dowolnych
c1 c2
1 1
warunków początkowych (x0, y0) " [0, ] [0, ] układ nigdy nie ustalił ujemnych wartości
c1 c2
1 1 1
produkcji, musimy zażądać aby dla każdego x " [0, ] g(x) < i dla każdego y " [0, ]
c1 c2 c2
1 1 1
f(y) < . Jak widać na rysunku 2.4 f przyjmuje maksimum równe dla x = a g
c1 4c1 4c1
1 1 1 1 1 1
maksimum równe dla y = . Ostatecznie musi być, że < i < , czyli musi
4c2 4c2 4c2 c1 4c1 c2
być spełniony warunek:
1 c1
< < 4 (2.25)
4 c2
Na rysunku 2.4 widać również, że nasz układ ma jeden punkt stały (xN , yN ). Leży on na
przecięciu wykresów funkcji f i g. Można go łatwo otrzymać rozwiązując rozwiązując układ
28
równań:

xN = f(yN )
(2.26)
yN = g(xN )
c2 c1
Otrzymujemy: (xN , yN ) = ((c1+c2)2 , ) Jak czytelnik z pewnością zauważył jest to rów-
(c1+c2)2
nowaga Nasha wyznaczona w podrozdziale 2.3. Subskrypt N oznacza, że jest to równowaga
Nasha (Nasha-Cournota). W tej równowadze producenci osiągają następujące zyski:
c2 c1
(PX N , PY N ) = (( )2, ( )2) (2.27)
(c1 + c2) (c1 + c2)
Chaos Nasha-Cournota
Zajmiemy się teraz problemem stabilności (xN , yN ). W tym celu znowu skorzystamy z twier-
1 1
dzenia Grobmana-Hartmana. Równania 2.24 zadają pewne przekształcenie T : [0, ][0, ]
a b
1 1
[0, ] [0, ] Obliczając różniczkę T w punkcie (xN , yN ) będziemy mogli skorzystać ze wspo-
a b
mnianego twierdzenia.

c2-c2
0
2c1
DT (xN , yN ) = (2.28)
c1-c2
0
2c2
Obliczając wielomian charakterystyczny DT (xN , yN ) otrzymujemy,że |i| < 1 i = 1, 2
wtw. gdy (c2 - c1)2 < 4c1c2. Stąd punkt równowagi jest stabilny jeśli:
" "
c1
(3 - 2 2) < < (3 + 2 2) (2.29)
c2
i niestabilny jeśli zachodzą nierówności przeciwne. Okazuje się jednak, że spełnienie warunków
2.25 implikuje spełnienie warunków 2.29. Więc dla współczynników a,b gwarantujących do-
datnią produkcję (xN , yN ) jest punktem stabilnym. Jednak jeśli zechcemy, aby tylko dla pew-
nych warunków początkowych nasz układ generował dodatnią produkcję to można rozszerzyć
1 1 1 1 1
zakres możliwych c1, c2. Gdy założymy, że f(4c2 ) < i g(4c1 ) < to dla x0 " g-1([0, ]) i
c2 c1 c1
1
y0 " f-1([0, ]) to nasz układ będzie generował nieujemną produkcję. Rozwiązując powyższe
c2
otrzymujemy warunki na c1 i c2:
4 c2 25
< < (2.30)
25 c1 4
Bez zawężania ogólności rozważań można założyć, że c2 > c1. Zatem ostatecznie punkt
(xN , yN ) jest punktem niestabilnym i układ generuje dające się interpretować dane dla :
"
c2 25
" (3 + 2 2, ) (2.31)
c1 4
Za [Muts04] przedstawiamy widoczny na rysunku 2.5 diagram bifurkacyjny dla tego układu.
c2
Widać, że dla małych wartości współczynnika punkt krytyczny jest stabilny, następnie
c1
"
c2 c2 25
dla = 3 + 2 2 następuje bifurkacja w cykl długości dwa, a gdy zbliża się do , dwa
c1 c1 4
chaotyczne atraktory łączą się w jeden chaotyczny atraktor.
Na rysunku 2.6 widzimy trajektorię cykliczną. Po kilku początkowych iteracjach trajektoria
stabilizuje się wokół dwóch punktów, które tworzą atraktor. Na rysunku 2.6 widzimy trajek-
torię chaotyczną. Nie jest ona zbieżna do żadnego cyklu nie ucieka też do nieskończoności.
Pozostaje na ograniczonym obszarze tworząc chaotyczny atraktor.
Jak wiadomo, chaos ma pewne cechy, które czynią go szczególnie interesującym i zagadko-
wym. Szcególnie ważnymi właściwościami są wykładnicza wrażliwość na warunki początkowe
i niestabilność zachowań okresowych (więcej w [Deva89] s. 50). Ma to zasadnicze znaczenie
29
Rysunek 2.5: Diagram bifurkacyjny ([Muts04])
c1=1, c2=6
c1=1, c2=6
0.00 0.05 0.10 0.15
0 20 40 60 80 100
x
t
(a)
(b)
Rysunek 2.6: Trajektoria cykliczna
jeśli chodzi o metody analizy układu. W przypadku układu chaotycznego analiza pojedynczej
trajektorii daje nam bowiem bardzo niewiele informacji o układzie jako całości. Należy zatem
badać długoterminowe średnie wartości interesujących nas cech, względem różnych trajekto-
rii. Takiego podejścia użyto w [Muts04].
W pracy tej obliczano średni zysk obu firm wzdłuż trajektorii, który jest zbieżny do praw-
dziwego zysku danej firmy, który nie zależy od warunków początkowych. Średni zysk firmy
Ż
X PX dla okresu czasu o długości T definiujemy następująco:
T

1
Ż
PX = PX(xt, yt). (2.32)
T
t=0
Średni zysk dla firmy y definiujemy analogicznie. Rysunek 2.8 przedstawia obliczony nume-
c2
rycznie średni zysk w zależności od wartości współczynnika . Lewy rysunek odnosi się do
c1
firmy X, prawy do firmy Y. Dla porównania czarną linia oznaczony jest zysk w RN. Widać, że
dla małego współczynnika kosztów krańcowych, średni zysk jest równy zyskowi w RN, gdyż
30
y
x
0.00
0.01
0.02
0.03
0.04
0.00
0.05
0.10
0.15
c1=1, c2=6.25
c1=1, c2=6
0.00 0.05 0.10 0.15
0 20 40 60 80 100
x
t
(a)
(b)
Rysunek 2.7: Trajektoria chaotyczna
c2
Rysunek 2.8: Średni zysk w zależności od wartości współczynnika [Muts04]
c1
trajektorie są do niej zbieżne. Dalej widać,że zysk firmy X spada poniżej zysku w RN, a zysk
firmy Y rośnie powyżej zysku w RN. Zatem otrzymujemy ciekawy wniosek, że jeśli RN jest
niestabilna to efektywna firma na tym traci, a nieefektywna relatywnie zyskuje.
Okazuje się zatem, że stosunkowo proste równania, opisujące dynamikę duopolu mogą
generować bardzo skomplikowane trajektorie. Zapoznanie się z klasycznymi modelami du-
opolu i z podstawowymi mechanizmami działania sztucznych sieci neuronowych pozwoli nam
zaprezentować model duopolu oparty o jednokierunkowe sieci neuronowe, który będzie do-
datkowo uwzględniał zdolności uczenia się producentów.
31
y
x
0.00
0.01
0.02
0.03
0.04
0.00
0.05
0.10
0.15
Rozdział 3
Model duopolu oparty o
jednokierunkowe sieci neuronowe
Rozdział ten jest poświęcony możliwości zastosowania sieci neuronowych do analizy proble-
mu duopolu. Zawiera on główne wyniki tej pracy. Podstawowe możliwości sieci neuronowych,
takie jak zdolność aproksymacji funkcji ciągłych znajdują tutaj, jak się wydaje bardzo poży-
teczne zastosowanie. Stwarzają nowe możliwości pozwalające ominąć ograniczenia, na które
napotyka klasyczne podejście, zaprezentowane w poprzednim rozdziale. Pojawiają się jedno-
cześnie pewne nowe trudności. Dzięki sieciom neuronowym, możemy uniknąć założeń, które
muszą przyjąć poprzednie modele. Usunięcie tych założeń i dalsze rozwijanie zaprezentowa-
nego tutaj podejścia może prowadzić do uzyskania rezultatów, które w znacznie lepszym
stopniu będą wyjaśniać mechanizmy funkcjonujące w rzeczywistej gospodarce. Zmodyfikuje-
my tutaj przedstawiony w rozdziale 2 model oparty na zysku krańcowym, w celu pokazania
pewnych faktów przyczyniających się do istnienia znacznych różnic między opisem dostar-
czanym przez klasyczne modele a rzeczywistymi zjawiskami gospodarczymi. Zaproponowany
model wydaje się być dużo bliższy rzeczywistości. Ceną jaką należy zapłacić za rezygnację z
niepotrzebnych założeń jest brak możliwości prostej i dogłębnej analizy samego modelu,takiej
na jaką pozwalały modele klasyczne. Na końcu tego rozdziału podejmujemy próbe rozwiąza-
nie tego problemu przez zaproponowanie układu równań różniczkowych zwyczajnych, który
jest w pewnym sensie odpowiednikiem modelu opartego na sieciach neuronowych i wydaje
się zachowywać wszystkie jego zalety stwarzając jednocześnie szanse analitycznego zbadania
opisywanej przez siebie dynamiki.
3.1. Sformułowanie modelu
Założenia
W tym podrozdziale przedstawimy koncepcję modelu, który będziemy nazywać uczącym się
układem dynamicznym (UUD).Modele takie jak zaprezentowane w rozdziale 2, w szczególno-
ści model oparty na zysku krańcowym, będziemy nazywać klasycznymi układami dynamicz-
nymi (KUD). Przyjmujemy tu założenia analogiczne do tych z podrozdziału 2.4. Zakładamy
mianowicie, że funkcje zysków są dane wzorami 2.8. Dla każdego producenta istnieje jego
funkcja zysków, nie zakładamy natomiast, że producenci ją znają. Unikamy zatem funda-
mentalnego dla KUD założenia, które przecież było niezgodne z rzeczywistością. Uwidacznia
się tu zasadnicza różnica prezentowanego podejścia w stosunku do poprzedniego rozdziału.
Takie założenie jest bliższe rzeczywistości. Wydaje się, że w prawdziwej gospodarce każdym
33
momencie czasu takie funkcje rzeczywiście istnieją, choć być może nie są stałe w czasie. My
na obecnym poziomie rozwoju modelu zakładamy, że funkcje zysku są stałe w czasie.
Rodzi się zatem pytanie, jak producenci mają postępować skoro nie znają swojej funkcji
zysku. Muszą podejmować decyzję w oparciu o pewne intuicje, wyobrażenia lub częściowe
informacje o swojej funkcji zysku. Problem w tym, że trudno jest reprezentować w sposób
ścisły te bliżej nie określone wyobrażenia, a co jeszcze trudniejsze reprezentować ewolucje tych
wyobrażeń. W przedstawionym modelu wykorzystujemy sieci neuronowe, aby przezwyciężyć
tę trudność. Pokażemy jak reprezentować wyobrażenia o funkcji zysku w danym momencie
czasu i ewolucję tych wyobrażeń. Mając taki model będziemy starali się przedstawić skutki,
jakie powoduje fakt, że producenci nie znają dokładnej postaci swoich funkcji zysków oraz
sposób kształtowania się tych wyobrażeń w czasie.
Matematyczna reprezentacja modelu
Spróbujmy zatem zapisać bardziej formalnie to, co już napisaliśmy. Przez (x0, y0) oznaczamy
0 0
jak poprzednio warunki początkowe, natomiast przez SX, SY wyobrażenia (będziemy zamien-
t t
nie używać też słowa informacje) początkowe. Dalej (xt, yt) i SX, SX oznaczają odpowiednio
wielkość produkcji i wyobrażenia w chwili t.
Oczywiście wyobrażenia muszą być pewną funkcją reprezentującą przekonania producen-
t t
ta odnośnie rzeczywistej funkcji zysków. Załóżmy zatem, że SX, SX będą reprezentowane
przez sieci o rozmiarach 2 - nX - 1, 2 - nY - 1, gdzie nX, nY oznaczają rozmiar warstwy
ukrytej sieci producenta odpowiednio X i Y (nX, nY - są stałe w czasie). W odróżnieniu
od KUD w UUD w kolejnych momentach czasu (t=0,1...) będziemy mieli doczynienia nie
t t
tylko z ewolucją (xt, yt) ale również z ewolucją funkcji SX, SX. Zauważmy, że dzięki użyciu
t s
sieci neuronowych w dwóch dowolnych dwóch momentach czasu t,s Si , Si (i = X, Y ) różnią
się od siebie siebie nie jedynie wagami. Mamy wzajemną odpowiedniość między przestrzenią
dopuszczalnych wyobrażeń a przestrzenią wag. Wagi określają w pełni funkcję, którą repre-
zentuje dana sieć neuronowa. Oznacza to, że do opisu ewolucji funkcji wystarcza znajomość
ewolucji wag sieci. Naturalną koleją rozumowania jest postawić sobie pytanie, czy można zna-
lezć równania opisujące ewolucję wag. Na to pytanie próbujemy odpowiedzieć na końcu tego
rozdziału. Teraz natomiast zauważmy,że ewolucja wag zależy od algorytmu uczącego. Jeśli
algorytm jest deterministyczny to ewolucja wag jest również deterministyczna. Otrzymujemy
zatem trzy czynniki, które całkowicie określają przyszłość układu:
1. warunki początkowe (x0, y0),
0 0
2. wyobrażenia (funkcje) początkowe SX, SY ,
3. algorytm uczący.
Przyszłość KUD zależała jedynie od warunków początkowych w UUD mamy zatem dwa nowe
czynniki.
Aby nasz układ mógł się uczyć, musi istnieć przedmiot tego uczenia. Do tego jest nam
potrzebne założenie, że funkcje zysku istnieją i są niezmienne w czasie. Przypomnijmy, że są
one dane wzorami 2.8. Ponadto, dla ustalonych parametrów ich wykresy są one przedstawione
na rysunku 3.1.
Tworzenie wyobrażeń początkowych
Zauważmy, że nawet w rzeczywistości wyobrażenia producentów nie są zupełnie nieokreślone,
34
Funkcja zysku P_Y
Funkcja zysku P_X
1.0
1.0
0.5
0.5
6
0.0 6
0.0
-0.5
4
0
4
0
1
1
2
2
2
2
3
3
4
4
0
0
5
5
a=1, b=0.05, c2=0.3
a=1, b=0.05, c1=0.5
Rysunek 3.1: Funkcje zysku.
lub zupełnie niezgodne z rzeczywistością. Aby nasz model odpowiadał temu spostrzeżeniu
chcielibyśmy tworzyć wyobrażenia początkowe w pewien określony sposób. Przedstawimy
0 0
teraz, jak konstruowaliśmy SX, SX w dalszych eksperymentach. Jest zupełne naturalne za-
kładać by producenci najlepiej znali swoje funkcje zysków w otoczeniu punktu, w którym
aktualnie się znajdują, w szczególności wokół punktu startowego (x0, y0). Zatem jeśli zakła-
damy, że producenci rozpoczynają dopiero swoją działalność, to w celu uzyskania wyobrażeń
początkowych podamy im do nauczenia n0 punktów w otoczeniu (0, 0) (losując z rozkładu
jednostajnego na [0, ] [0, ],dla pewnego  > 0) oraz punkt (0, 0) dla którego wartość zysku
jest znana i wynosi 0. Przykładowe funkcje uzyskane tą metodą widać na rysunku 3.2.
SY SY
0 0
2.0 1.5
1.5
1.0
1.0
6 6
0.5
0.5
4 4
0 0
1 1
2 2
2 2
3 3
4 4
0 0
5 5
a=1, b=0.05, c2=0.3, n_0=3, epsilon=3 a=1, b=0.05, c2=0.3, n_0=10, epsilon=5
Rysunek 3.2: Przykładowe wyobrażenia początkowe.
35
P_Y
P_X
Y
Y
X
X
S
S
Y
Y
X
X
Ewolucja układu
Jeżeli zatem producenci znają jedynie swoje wyobrażenia o swojej prawdziwej funkcji zysku
i ponadto chcemy aby dostosowania odbywały się w oparciu o przekonania o zysku krańco-
wy to ewolucja naszego układu będzie określona przez równania analogiczne do równań 2.6
mające postać:
t
"SX
xt+1 = xt + v1xt
"x
t
"SY
yt+1 = yt + v2yt (3.1)
"y
Przypominamy, że v1, v2 są dodatnimi stałymi określające siłę dostosowań. Jeszcze nie spre-
cyzowaliśmy jednak w jaki sposób następuje ewolucja wyobrażeń o funkcjach zysku tzn. jak
t t 0 0
uzyskujemy kolejne funkcje SX, SX. Mając dane SX, SX, (x0, y0) możemy policzyć (x1, y1) ko-
rzystają z 3.1. Jeśli producenci ustalili swoją produkcję to znają już wartość zysku w punkcie
(x1, y1) oraz wartość odchylenia swoich przekonań od właściwej wartości zysku Pi(x1, y1) +
0
-Si (x1, y1) (i = X, Y ) w punkcie. Zakładamy, że producent zna post factum wielkość pro-
dukcji swojego konkurenta. Producenci mogą zatem zweryfikować swoje przekonania. Zmiany
dokonujemy podając sieci do nauczenia nowy powiększony o jeden punkt zbiór uczący (dla
t=1 składa się z punktów : (x0, y0), (x1, y1) i odpowiadających im wartości funkcji zysku).
Taką ewolucje określa poniższy schemat:
0 0
1 Pobierz dane wejściowe: SX, SX, (x0, y0)
2 Stwórz zbiory uczące:
A0 := {((x0, y0), PX(x0, y0)); ((0, 0), 0)}, A0 := {((x0, y0), PY (x0, y0)); ((0, 0), 0)}
X Y
3 Podaj sieci producenta X i producenta Y odpowiednio zbiory uczące A0 , A0
X Y
4 for(t in 1:T) do
4.1 Oblicz (xt, yt)
4.2 At := At-1 *" {((xt, yt), PX(xt, yt))}, At := At-1 {((xt, yt), PY (xt, yt))}
X X Y Y
4.3 Podaj sieci producenta X i producenta Y odpowiednio zbiory uczące At , At
X Y
5 Zakończ symulację.
Odpowiadający temu schematowi formalny kod w języku R znajduje się w dodatku A.
0 0
Zatem przy ustalonym algorytmie uczącym, (x0, y0) i SX, SY całkowicie determinują przy-
szłość układu. W naszym wypadku sieć uczona była algorytmem BFGS, zaimplementowanym
w bibliotece nnet pakietu R. Jako parametry algorytmu uczącego bierzemy pod uwagę: nX,
nY - wielkości sieci oraz MAX.it - liczba podań sieci zbioru uczącego o ustalonej długości.
Podsumowując parametrami, które determinują stan układu, przy zadanych równaniach 3.1
0 0
są: (x0, y0), SX, SY , nX, nY , MAX.it.
Ponieważ brak jest metod analitycznych, które pozwoliłyby w sposób stosunkowo ogólny ba-
dać model, zatem jesteśmy na razie ograniczeni do przeprowadzania symulacji numerycznych
i badania pewnych własności trajektorii przy zmianach wyżej wymienionych parametrów. Nie
jest to zadanie proste.
36
3.2. Wyniki symulacji
W tej części przedstawimy wyniki doświadczeń numerycznych dla przedstawionego wyżej
modelu. Podstawowym celem na obecnym etapie prac nad modelem, jest przede wszystkim
pokazanie pewnych zjawisk, które powodują, że klasyczne narzędzia analizy zjawisk ekono-
micznych jak np. teoria układów dynamicznych, są często dalekie od praktyki gospodarczej.
Nie sądzimy, że ten model jest w jakiś sposób bardziej zgodny z tą praktyka, a jedynie,
że lepiej ilustruje aspekt braku informacji, powodujący nieskuteczność klasycznych mode-
li. Wskazuje on jednocześnie na dodatkową trudność. Otóż klasyczne modele sugerowały, że
ogromna złożoność zjawisk ekonomicznych tkwi w fakcie, że mogą być one chaotycznymi ukła-
dami deterministycznymi. Przedstawiony tu model pokazuje, że złożoność może mieć również
inne przyczyny. Ukazuje głębiej strukturę problemu. Poza chaotyczność układu, mamy do
czynienia z niemożnością zdobycia pełnej informacji i umiejętnością uczenia się agentów eko-
nomicznych. Brak informacji prowadzi do dodatkowej, złożoności, która nie była opisywana
przez klasyczne modele. Dla precyzji dodajmy, że brak informacji, który stanowi tu główny
przedmiot analizy nie dotyczy tak jak w teorii gier nieznajomości przyszłego postępowania
przeciwnika, a jedynie nieznajomości funkcji zysków. Racjonalne postępowanie wobec nie-
znajomość postępowania przeciwnika jest przedmiotem teorii gier, tutaj tego aspektu nie
rozpatrujemy, zakładając jednak implicite istnienie tzw. naiwnych oczekiwań.
Tego typu brak informacji jest wszechobecny w rzeczywistości i zmusza człowieka, do po-
dejmowania decyzji w oparciu o własną niedoskonałą wiedzę, przypuszczenia i intuicje. Nasz
model ilustruje wpływ powyższego faktu na złożoność zjawisk ekonomicznych. Dzięki sieciom
neuronowym możemy w ścisły sposób reprezentować heurystyczne czynniki. Dodatkowym
atutem modelu jest możliwość analizy ewolucji posiadanych przez producentów wyobrażeń i
określenia konsekwencji ich niezgodności z rzeczywistością dla własności trajektorii.
Przykładowa trajektoria
Na rysunku 3.3 widzimy początkowy fragment przykładowej trajektorii układu 3.1 (UUD).
Dla porównania czarnymi pustymi kropkami zaznaczona jest trajektoria układu 2.6 (KUD).
Widzimy, że różnice są znaczące choć obie trajektorie startują z tego samego punktu i  zbie-
gają do RN. Trajektoria klasycznego układu zbiega do RN w matematycznym sensie tego
słowa, co udowodniliśmy w poprzednim rozdziale. Natomiast trajektoria układu uczącego się
zbliża się do RN  utykając (być może tylko chwilowo) w jej pobliżu. Oczywiście nie mamy
żadnej gwarancji, że w kolejnych iteracjach trajektoria ucieknie od lub zbliży się do RN.
Na razie musimy polegać na symulacjach numerycznych, nie dysponujemy bowiem żadnymi
analitycznymi wynikami na temat tego modelu. Trajektoria różni się ale jednak  zbiega do
RN. Różnice w przebiegu obu trajektorii biorą się właśnie z nieznajomości funkcji zysku. Co
jednak ciekawe i zgodne z intuicją trajektoria potrafi odnalezć drogę do punktu równowagi.
Wprawdzie przechodzi dwukrotnie zupełnie blisko i omija go. Powrócić po raz trzeci i tam
zostaje na dłużej. Można dodać, że świadczy to korzystnie o KUD, gdyż potwierdza możli-
wość, że w rzeczywistości producenci nie znający funkcji zysków są w stanie znalezć się w
pobliżu RN.
Można sprawdzić, że dla parametrów użytych do jej wygenerowania, widocznych na ry-
sunku 3.3 RN jest stabilna. Warto jednak mieć na uwadze fakt, że może się zdarzyć, jak
wynika z rozważań w podrozdziale 2.4, że widoczna trajektoria przechodzi przez punkty nie
leżące w basenie atrakcji RN dla układu 2.6. Sprawdzenie tego na razie nie leży w obszarze
zainteresowania tej pracy. Można jednak przypuszczać, że nawet jeśli taka okoliczność zajdzie
to nie musi być ona warunkiem implikującym brak zbieżności do RN. Z przeprowadzonych
37
(x_t,y_t)
RN
(x_0,y_0)
(x_T,y_T)
(xw_t,yw_t)
1.0 1.5 2.0 2.5 3.0 3.5
x
a=1, b=0.05, v1=v2=0.25, c1=0.5, c2=0.3, n_x=n_y=8, T=500, x_0=1, y_0=1.4, MAX.it=5
Rysunek 3.3: Przykład trajektorii  zbieżnej do równowagi Nasha
symulacji wynika, że  stosunkowo często trajektoria UUD zbliża się do RN po wykonaniu od
300 do 1000 iteracji. Zbieżność do RN potwierdza intuicyjne choć nie oczywiste rozumowanie,
że wraz z upływem czasu układ będzie znał coraz dokładniej prawdziwe funkcje zysku, co
powinno implikować podobny punkt równowagi.
Prześledzmy również, co dzieje się z zyskiem obu producentów w czasie dochodzenia do
UUD
KUD
UUD
KUD
0 100 200 300 400 500 0 100 200 300 400 500
t t
Rysunek 3.4: Zysk producentów X,Y na trajektorii KUD (tr2),i na trajektorii UUD (tr1)
38
8
6
y
4
2
Zysk producenta Y
Zysk producenta X
0
200
400
600
800
0
20
40
60
80
100
równowagi. Na rysunku 3.4 widzimy porównanie osiąganych przez obu producentów zysków
na trajektoriach KUD i UUD widocznych na rysunku 3.3. Okazuje się, że zysk producenta X
jest dla tej konkretnej trajektorii UUD niższy niż w przypadku trajektorii KUD. W przypad-
ku producenta Y po około 250 iteracjach mamy sytuacje odwrotna. Oznacza to, że osiągnięty
punktu blisko RN jest dla niego korzystniejszy niż sama RN.
Ewolucja wyobrażeń
t
Teraz przedstawimy jak zmieniała się funkcja SY podczas generowania trajektorii z rysunku
3.3. Na rysunku 3.5 widzimy wykresy tej funkcji dla t = 0, t = 100, t = 300, t = 500.
S0 S100
Y Y
2.0
2.0
1.5
1.5
1.0
1.0
6 6
0.5 0.5
4 4
0 0
1 1
2 2
2 2
3 3
4 4
0 0
5 5
t=0 t=100
S300 S500
Y Y
2.0
2.0
1.5
1.5
1.0
1.0
6 6
0.5
0.5
4 4
0 0
1 1
2 2
2 2
3 3
4 4
0 0
5 5
t=300 t=500
t
Rysunek 3.5: Ewolucja SY
39
S
S
Y
Y
X
X
S
S
Y
Y
X
X
Nasuwają się następujące wnioski:
t
1. Dla każdego przedstawionego t SY różnie się od PY , której wykres widzimy na rysunku
3.4.
t
2. SY  przypomina kształtem PY
3. Różnice nie przeszkodziły w zbliżeniu się do RN.
4. Zauważamy, że wyobrażenia początkowe każą producentowi Y zwiększać produkcję i
jak widzimy na rysunku 3.3 tak właśnie się dzieje. Następnie producent Y przekonuje
0
się, że duże wielkości produkcji nie są dla niego korzystne, jak to wynikałoby z SY i
100
zmienia swoje wyobrażenia o PY , widzimy to patrząc na wykres SY .w odróżnieniu od
0 100
SY funkcja SY karze już producentowi Y zmniejszać produkcję w przypadku gdyby
przekroczyła ona powstały  grzbiet .
5. Warto również zauważyć, że w pewnym aspekcie, nawet przekonania końcowe (t = 500),
a szczególnie te w momencie t = 300 są zupełnie pozbawione sensu, gdyż wynikało by
z nich, że jeśli producent Y nie produkowałby nic to jego zysk byłby dodatni. Wiemy
jednak, że postępowanie producentów opiera się na wiedzy lokalnej (tzn, na pochodnej
kierunkowej). Ponadto, gdyby producent Y zdecydował się na postępowanie wynikające
z przedstawionego tu spostrzeżenia, to przekonałby się, że jego wyobrażenia są niepraw-
dziwe, musiałby je skorygować i prawdopodobnie powróciłby do poprzedniej wartości
produkcji.
t
Dostosowań SX nie przedstawiamy, gdyż są podobne do powyższych i nie wnosiły by niczego
nowego.
Zmiana wyobrażeń początkowych
W tej części będziemy argumentować, że  złe wyobrażenia początkowe nie są przeszkodą
w dojściu do RN. Zgodnie z intuicją jeśli przedsiębiorca wchodzi na rynek ze złym poję-
ciem o jego mechanizmach, ale szybko się uczy i weryfikuje swoje poglądy, to szybko zaczyna
postępować racjonalnie i przezwycięża początkowe trudności. Przedstawimy też rolę jakości
wstępnych wyobrażeń na osiągane zyski.
Aby zilustrować ten przykład na naszym modelu podamy sieci producenta X i sieci produ-
centa Y, których wagi były zainicjalizowane losowo, do nauczenia zbiór A postaci: ((0, 0), 0).
Zatem na początku producenci wiedzą tyle, że jeśli nikt nic nie produkuje to każdy z produ-
centów dostaje wypłatę wysokości 0. Wszystko inne, w szczególności (x0, y0) pozostaje nie
zmienione w stosunku do parametrów, dla jakich uzyskaliśmy trajektorię widoczną na ry-
sunku 3.3. Z przeprowadzonych symulacji wynika, że zdecydowana większość w ten sposób
uzyskanych trajektorii zbliża się do RN. Trudno tu przedstawić, konkretny procent trajektorii,
 zbieżnych do RN ze względu na czas trwania symulacji, oraz różną liczbę iteracji potrzeb-
nych do osiągnięcia ewentualnej zbieżności. Jeśli rozpatrywać tę ostatnią wielkość to wydaje
się być ona zdecydowanie większa niż w przypadku wyobrażeń początkowych uzyskiwanych
przez podawanie sieciom do nauczenia większej liczby punktów. Przykładową trajektorię dla
wyobrażeń początkowych tego typu widzimy na rysunku 3.6.
Brak dobrej jakości informacji informacji tuż po uruchomieniu produkcji uwidacznia się
przede wszystkim dużą liczbą iteracji, przez którą obaj producenci pozostawali wokół punktu
startowego (x0, y0) (duże zagęszczenie czerwonych punktów). Skutkiem złych informacji, jest
również fakt, że producent Y na początku wcale nie zwiększa swojej produkcji i trajektoria
40
(x_t,y_t)
RN
(x_0,y_0)
(x_T,y_T)
(xw_t,yw_t)
1 2 3 4
x
a=1, b=0.05, v1=v2=0.25, c1=0.5, c2=0.3, n_x=n_y=8, T=2000, x_0=1, y_0=1.4, MAX.it=5
Rysunek 3.6: Trajektoria uzyskana przy wyobrażeniach początkowych  złej jakości
(xt, yt) (uzyskana przy pomocy UUD) znacznie oddala się w prawo w stosunku do trajektorii
(xwt, ywt) (uzyskanej przy pomocy KUD). Ponadto potrzeba dużo większego czasu, aby tra-
jektoria znalazła się blisko RN. Widzimy bowiem znaczne zagęszczenie czerwonych punktów
również w końcowej części trajektorii.
Na rysunku 3.7 przedstawiamy wpływ zamiany informacji początkowych na kształtowanie się
zysku obu producentów dla okresu [0, T ](T = 500) w stosunku do poprzedniej symulacji.
Widzimy, że wynik wcale nie jest intuicyjny. Okazało się, że jeden z producentów (X)
zyskał na pogorszeniu się informacji początkowych, natomiast drugi (Y) stracił. Wydawać
by się mogło, że oboje powinni stracić na posiadaniu nieprawdziwych informacji. Można to
interpretować, patrząc jednocześnie na rysunek 3.6, w sposób następujący: producentowi X
udało się wykorzystać niewiedzę konkurenta, którego wyobrażenia o własnej funkcji zysku
były zbyt  płaskie i nie dawały mu motywacji do zwiększenia produkcji, co było w rzeczy-
wistości właściwym krokiem. Producent X miał natomiast przekonanie,że jego funkcja zysku
jest  stroma i szybko zwiększył produkcje, co ustawiło go w lepszej sytuacji niż konkurenta,
który wówczas produkował jeszcze bardzo mało. Można zatem powiedzieć, że producent X
miał po prostu szczęście i jego niewiedza dostarczyła mu strategii pozwalającej na wygranie
z przeciwnikiem.
Z przeprowadzonych przeze mnie symulacji wynika ponadto, że wzrost jakości informacji
nie wpływa istotnie na zmiany osiąganych zysków. Na razie trudno jest jednak przedstawić
konkretne dowody. Intuicyjne wytłumaczenie tego faktu jest takie. że korzyść z niewiedzy
konkurenta może być większa niż strata wywołana własna niewiedzą. Ma tu również znacze-
nie fakt, że trajektoria uzyskana przy pełnej informacji nie jest trajektoria maksymalizującą
41
y
2
3
4
5
6
7
UUD1
UUD1
UUD2
UUD2
0 100 200 300 400 500 0 100 200 300 400 500
t t
Rysunek 3.7: Zysk producentów X,Y uzyskany w symulacjach dla różnych wyobrażeń po-
czątkowych - UUD1,UUD2 odnoszą się odpowiednio do poprzedniej i obecnie omawianej
symulacji
łączny zysk w procesie dojścia do RN. Ponadto RN nie musi być punktem optymalnym w
sensie Pareto. Zatem nawet  błądząca trajektoria może być bardziej opłacalna niż trajek-
toria uzyskana przy pełnej informacji.
Korekta wyobrażeń
Patrząc na rysunek 3.6 widzimy charakterystyczny ostry zwrot w części wykresu dla x > 4
i y > 7. Postaramy się wyjaśnić mechanizm , który go wywołał. Zwrot ten nastąpił oko-
ło 96 iteracji. Na lewej części rysunku 3.8 widzimy informacje o swojej funkcji zysku jaką
dysponuje producent Y na małym fragmencie dziedziny [3.8, 4.2] [6.72, 7.7] w chwili t=84
jego przekonania każą mu zwiększać produkcją (zwiększając y jest wyżej na widocznej po-
wierzchni). Jednak dalsze zwiększanie produkcji spowodowało, że dowiedział się prawdziwej
wartości funkcji PY na rozważanym obszarze i zweryfikował swoje poglądy. Zmienione poglą-
dy (dla t=108) widzimy na prawym rysunku, gdzie powierzchnia ma zupełnie inne nachylenie.
Według nowych przekonań producent Y powinien zmniejszać produkcje, i jak widzimy na ry-
sunku 3.6 to właśnie czyni.
Dodatkowe uwagi
Celem prezentacji powyższego modelu w tej pracy jest wskazanie na mechanizmy, które w
praktyce gospodarczej powodują, że klasyczne modele nie opisują ich w sposób zadowalający.
Podejście to jest próbą pokazania, czym mogą być przekonania zarządzających firmami, jak
są nabywane i kształtowane. W modelu myśl agenta ekonomicznego jest pewną funkcją, a
ewolucja tych myśli algorytmem uczącym. Model jest wprawdzie deterministyczny, jednak
jego ewolucje możemy niestety tylko badać w sposób obliczeniowy, co znacznie utrudnia jego
głębszą analizę. Dużo więcej informacji możnaby z pewnością uzyskać analizując klasyczne
42
Zysk Producenta Y
Zysk Producenta X
0
20
40
60
80
100
0
100
200
300
S84 S108
Y Y
1.17
1.02
1.16 1.00
0.98
1.15
0.96
7.6 7.6
1.14
0.94
1.13 7.4 7.4
0.92
3.8 3.8
7.2 7.2
3.9 3.9
7.0 7.0
4.0 4.0
4.1 4.1
6.8 6.8
4.2 4.2
t=84 t=108
Rysunek 3.8: Nagła zmiana wyobrażeń
t t
równania opisujące ewolucję SX, SY . Pozwoliło by to na dokładne badanie wpływu ilości i
jakości dostępnych informacji na sposób zachowania agentów ekonomicznych. Model w obec-
nym kształcie ustępuje w kilku względach klasycznym modelom deterministycznym, właśnie
dlatego, że trudno jest badać własności trajektorii w zależności od danych wejściowych i
parametrów modelu. Poniżej zamieszczamy równania, które stanowią analogię do powyższe-
go modelu opartego o sieci neuronowe i teoretycznie stwarzają szansę na analityczny opis
rozwiązań.
3.3. Uczący się model opisany przez równania różniczkowe zwy-
czajne (RRZ)
Okazuje się, że gdy przeformułujmy powyższy model na model z czasem ciągłym i przyjmie-
my pewne uproszczenia odnośnie algorytmu uczącego to stosunkowo łatwo możemy dostać
t t
równania różniczkowe zwyczajne w pełni opisujące model (w tym również SX, SY ). Zacznij-
my od sformułowania analogicznego modelu duopolu zamieniając czas na ciągły. Zakładamy,
że funkcje zysku PX, PY są funkcjami klasy C1. Wówczas trajektoria (x(t), y(t)) może być
opisana dwoma RRZ postaci:
"PX
 = v1x ,
"x
"PY
Ź = v2y , (3.2)
"y
gdzie v1, v2 są pewnymi dodatnimi parametrami. Teraz zakładamy ponownie, że producenci
t
nie znają swoich funkcji zysku, dysponują jedynie w chwili t pewnymi wyobrażeniami SX,
t
SY . Z tego wynika, że równania 3.2 przybierają postać:
t
"SX
 = v1x
"x
43
S
S
Y
Y
X
X
t
"SY
Ź = v2y , (3.3)
"y
t t
Pozostaje zatem opisać ewolucję SX, SY . Zdefiniujmy najpierw funkcjonały błędu EX, EY
następująco:

1
t

EX = (PX(x, y) - SX(x, y))2d,
(W(0, t))
W(0,t)

1
t

EY = (PY (x, y) - SY (x, y))2d, (3.4)
(W(0, t))
W(0,t)
gdzie oznacza miarę Lebesgue a, natomiast W(0, t) jest trajektorią dla czasu (0,t). Formal-
nie:
W(0, t) = { (x, y) : "t " [0, t] (x, y) = (x(t), y(t)) } (3.5)
Zauważmy, że łatwo można powyższe funkcjonały określić również dla t=0 biorąc odpowied-
nie granice, które istnieją przy przyjętych założeniach. Celowo na razie nie piszemy, jakie
są argumenty tego funkcjonału. Korzystając teraz z wiadomości z rozdziału 1, zapiszemy
t t
explicite postać SX, SY .

nx


t
SX(x, y) = g w(t)(1)g w(t)(0) + w(t)(0)x + w(t)(0)y + w(t)(1)
Ż Ż
i i 1i 2i
i=1

ny


t
SY (x, y) = g u(t)(1)g k(t)(0) + u(t)(0)x + u(t)(0)y + k(t)(1) , (3.6)
i i 1i 2i
i=1
gdzie g jest funkcją aktywacji sieci. Teraz widzimy, że wagi sieci są argumentami funkcjonałów
3.4 zatem ma sens liczenie pochodnych tych funkcjonałów względem wag. Ostatecznie możemy
zapisać równania opisujące nasz układ:
t
"SX
 = v1x
"x
t
"SY
Ź = v2y
"y
"EX
(1)
i = -m , i = 1, 2...nx
(1)
"wi
"EX
(0)
ji = -m , i = 1, 2...nx j = 1, 2
(0)
"wji
"EX
(0) = -m , i = 1, 2...nx
Ż
i
"wi
Ż(0)
"EX
(1) = -m , i = 1, 2...nx
Ż
"w(1)
Ż
"EY
u(1) = -m , i = 1, 2...ny
Ł
i
"u(1)
i
"EY
u(0) = -m i = 1, 2...ny j = 1, 2
Ł
ji
"u(0)
ji
"EY
Ł
k(0) = -m i = 1, 2...ny
i
"k(0)
i
44
"EY
Ł
k(1) = -m i = 1, 2...ny
"k(1)
(3.7)
Otrzymaliśmy zatem układ 2 + 5(nx + ny) równań różniczkowych zwyczajnych, które można
zapisać używając częściowo zapisu wektorowego następująco:
t
"SX
 = v1x
"x
t
"SY
Ź = v2y
"y
 = -m"EX
Ł
u = -m"EY
(3.8)
Danymi początkowymi są zatem : (x0, y0), wektory wag początkowych: w0, u0. Równania
opisujące zmiany wag są analogią do algorytmu wstecznej propagacji błędu. Zmiany wag
następują w kierunku największego spadku wartości funkcjonału błędu, wyznaczonego przez
gradient.Natomiest v1, v2, m są parametrami określającymi szybkość dostosowań.
W obecnej postaci przyjmując nawet, że nx = ny = 2 otrzymujemy 22 równania. Można
dodatkowo zmniejszyć liczbę równań zmniejszając liczbę wag, które mogą się zmieniać. W
ten sposób ograniczymy  zdolności percepcyjne producentów. W celu uproszczenia równań
można też dobierać wygodna postać funkcji aktywacji. Mniej skomplikowany funkcjonał błędu
również może pomóc w badaniu rozwiązań tego układu.
45
Rozdział 4
Uwagi końcowe
Zgodnie z tym, co napisaliśmy celem modelu zaprezentowanego w rozdziale 3 i stworzonego
przez autora pracy jest na obecnym etapie pokazanie mechanizmów, które istnieją w rzeczy-
wistym świecie gospodarczym, a nie są modelowane, przez klasyczne modele. Istnienie wśród
rzeczywistych agentów ekonomicznych zdolności uczenia wymusza również na modelach by
tę zdolność uwzględniały. Tym bardziej, że wydaje się ona być fundamentalnym czynnikiem,
kształtującym procesy gospodarcze. Aby sobie to uświadomić wystarczy wyobrazić sobie go-
spodarkę, w której agenci są pozbawieni tej zdolności. Z tych właśnie powodów zdolność
adaptacji do zmieniających się warunków środowiskowych i do napływu nowych informacji
stanowią czynnik, którego modele matematyczne nie mogą ignorować. Zaprezentowany w
pracy model jest próbą uwzględnienia tych czynników. Oczywiście na obecnym etapie trudno
jest podać ścisłe granice, w których model spełnia stawiane przed nim oczekiwania. Dzieje
się tak dlatego, że jest bardzo dużo czynników, determinujących kształt trajektorii - znacznie
więcej niż w klasycznych modelach. Musimy brać bowiem pod uwagę wszystkie parametry
algorytmu uczącego, a także kształt wyobrażeń początkowych. Czynniki te sprawiają, że aby
można było stwierdzić, czy model może służyć do wyjaśniania pewnych zjawisk gospodar-
czych jak np. relacji między dostępnością informacji a osiąganym zyskiem lub zmiennością
produkcji a zdolnościami percepcyjnymi agentów, potrzeba jeszcze dużo pracy. Możliwe są
dwa kierunki rozwoju. Pierwszy może zakładać systematyczne badanie modelu w obecnym
jego kształcie. Chodziło by przede wszystkim o to, aby wyznaczyć zbiory parametrów, dla
których model daje rozsądne wyniki, a następnie w obrębie wyznaczonych zbiorów starać się
wyznaczyć pewne interesujące nas prawa opisujące jego zachowanie. Ze szczególny naciskiem
na wyjaśnienie tych mechanizmów rzeczywistej gospodarki, w których procesy uczenia i prze-
twarzania informacji odgrywają istotną rolę.
Druga droga to próba przeformułowania zagadnienia w terminach równań różniczkowych.
Taką próbę podjęliśmy na końcu rozdziału 3, zapisując układ RRZ. W obecnej postaci układ
ten jest mimo wszystko dość skomplikowany i badanie jego rozwiązań może okazać się nie-
zmiernie trudne. Nie jest jednak wykluczone, że uda się w jakiś sposób znacznie go uprościć,
próbując np. zastąpić sieć klasyczną siecią z wyjściem liniowym i upraszczając funkcjonały
błędu. Zastosowanie wygodnej postaci funkcji aktywacji również nie jest bezzasadne.
Można również próbować zapisać ewolucję wyobrażeń (algorytm uczący) przy pomocy
równań cząstkowych.
Gdyby okazało się, że przy pomocy tego modelu można wyjaśnić pewne prawa charaktery-
styczne dla zachowania producentów w duopolu to wówczas warto by rozwijać zaprezentowane
tutaj podejście w innych obszarach ekonomii, w których mamy doczynienia z sytuacją mak-
symalizacji wielkości takich jak zysk czy użyteczność. Mogło by się to przyczynić do lepszego
47
zrozumienia roli informacji i procesów uczenia w rzeczywistych zjawiskach gospodarczych.
48
Dodatek A
Generowanie trajektorii
#załadowanie biblioteki obsługującej sieci neuronowe
library(nnet)
#nadanie wartości stałym
c1=0.5
c2=0.3
a=1
b=0.05
st1=(a-c1)/4
st2=(a-c2)/4
v1=0.25
v2=0.25
RN=c((a+c2-2*c1)/(3*(a-c1)), (a+c1-2*c2)/(3*(a-c2)))
s2=(a-c1)/(a-c2)
s1=(a-c2)/(a-c1)
WielkoscSieci=8
x1.0=0.1
x2.0=0.1
MAX.it=5
skal.x=(a-c1)/b
skal.y=(a-c2)/b
skal.P.x=(a-c1)^2/(4*b)
skal.P.y=(a-c2)^2/(4*b)
T=500
#definiowanie potrzebnych funkcji
#funkcje zysku
P1<-function(p1,p2){4*p1-4*p1*p1-4*s1*p1*p2 }
P2<-function(p1,p2){ 4*p2-4*p2*p2-4*s2*p1*p2 }
#obliczanie pochodnych sieci
d1<-function(siec,p){
dp=p
dpp=p
dp[1]=dp[1]+0.000000001
49
dpp[1]=dpp[1]-0.000000001
(predict(siec,dp])-predict(siec,dpp))/0.000000002 }
d2<-function(siec,p){
dp=p
dpp=p
dp[2]=dp[2]+0.000000001
dpp[2]=dpp[2]-0.000000001
(predict(siec,dp)-predict(siec,dpp))/0.000000002 }
#wczytanie wag (funkcji, wyobrażeń) początkowych
WagiPocz.1=read.table("W1.txt")
WagiPocz.2=read.table("W2.txt")
pom=c(0,0) trajektoria=data.frame(pom)
Z1=0
Z2=0
pom=c(x1.0,x2.0)
Z1[2]=P1(pom[1],pom[2])
Z2[2]=P2(pom[1],pom[2])
tr.x=pom[1]
tr.y=pom[2]
trajektoria[2]=data.frame(pom)
ZWD.1=nnet(t(trajektoria),Z1,Wts=WagiPocz.1$x,size=WielkoscSieci,maxit=0)
ZWD.2=nnet(t(trajektoria),Z2,Wts=WagiPocz.2$x,size=WielkoscSieci,maxit=0)
for(i in 1:T)
{
x1=d1(ZWD.1,pom)
x2=d2(ZWD.2,pom)
pom[1]=pom[1]+v1*x1*st1*pom[1]
pom[2]=pom[2]+v2*x2*st2*pom[2]
tr.x[i+1]=pom[1]
tr.y[i+1]=pom[2]
trajektoria[i+2]=pom
Z1[i+2]=P1(pom[1],pom[2])
Z2[i+2]=P2(pom[1],pom[2])
ZWD.1=nnet(t(trajektoria),Z1,size=WielkoscSieci,Wts=ZWD.1$wts,
ZWD.2=nnet(t(trajektoria),Z2,size=WielkoscSieci,Wts=ZWD.2$wts,
maxit=MAX.it,abstol=0)
}
tx=read.table("tx.txt")
50
ty=read.table("ty.txt")
tr.x=tr.x*skal.x tr.y=tr.y*skal.y
plot(tr.x,tr.y,type="l",xlab="x",ylab="y")
points(tx$x,ty$x,pch=1,col="black") points(tr.x,tr.y,pch=20,col=2)
points(x1.0*skal.x,x2.0*skal.y,pch=19,col="black")
points(pom[1]*skal.x,pom[2]*skal.y,pch=23,col="black")
wr=expression(tilde(x[t]),tilde(y[t]))
points(RN[1]*skal.x,RN[2]*skal.y,pch=3,col="yellow")
title(sub="a=1, b=0.05, v1=v2=0.25, c1=0.5, c2=0.3, n_x=n_y=8,
T=500, x_0=1, y_0=1.4, MAX.it=5 ")
legend(3,4,c("(x_t,y_t)","RN","(x_0,y_0)","(x_T,y_T)","(xw_t,yw_t)",""),
col=c(2,"yellow","black","black","black",0),lty=c(-1,-1,-1,-1,-1,1),
pch=c(20,3,19,23,1,0),merge=TRUE)
51
Dodatek B
Ważne definicje i twierdzenia
Definicja B.0.1 Atraktor
Rozważmy odwzorowanie T : S S, S " Rn. Zbiór A jest atraktorem dla odwzorowania T
jeśli jest on:
1 domknięty,
2 niezmienniczy tzn. T (A) = A,
3 asymptotycznie stabilny tzn. istnieje otoczenie U zbioru A takie, że T (U) " U, i dla
t
każdego punktu x " U T (x) A dla t " (t = 0, 1, 2, ...).
Definicja B.0.2 Basen atrakcji
Niech zbiór A będzie atraktorem dla odwzorowania T takiego jak w definicji powyżej. Wówczas
basenem atrakcji atraktora A nazywamy zbiór B(A) złożony ze wszystkich punktów generują-
cych trajektorie zbiegające do A tzn.:
t
B(A) = {x " S : T (x) A dla t "}
.
Twierdzenie B.0.1 Twierdzenie Grobmana-Hartmana
Niech M będzie daną rozmaitością , niech Ć : M M będzie dyfeomorfizmem, niech x0 " M
będzie punktem stałym (tzn. Ć(x0) = x0) hiperbolicznym. Wówczas istnieje takie otoczenie
U punktu x0 w M i takie otoczenie V punktu 0 w Tx0(M), że układ dynamiczny (U, Ć) jest
topologicznie sprzężony z układem (V, dĆ(x0))1.
Dowód tego twierdzenia jest dość trudny. Można go znależć w[Szlen82].
Wniosek B.0.1 Rozważmy sytuację jak wyżej. W celu zbadania stabilności punktu x0 wy-
starczy zbadać wartości własne przekształcenia liniowego dĆ(x0). Jeśli istnieje choć jedna
wartość własna  taka, że |  |> 1 to x0 jest punktem niestabilnym. W przeciwnym razie
punkt x0 jest stabilny.2
1
dĆ(x0) oznacza różniczkę przekształcenia Ć w punkcie x0
2
nie dopuszczamy możliwości, że istnieje , taka,że |  |= 1 gdyż x0 jest punktem hiperbolicznym.
53
Dowód
Jest to bezpośrednia konsekwencja tw. GH. Niech bowiem A będzie przekształceniem linio-
wym, zadanym macierzą diagonalną mającą na przekątnej wartości własne dĆ(x0). To wów-
czas A jest topologicznie sprzężone z dĆ(x0). A ponieważ relacja topologicznej sprzężoności
jest przechodnia więc A jest sprzężone z Ć na odpowiednich otoczeniach U,V. Biorąc pod
uwagę fakt, że stabilność zachowuje się przy sprzężeniu topologicznym otrzymujemy tezę.
Wniosek B.0.2 Niech G : R2 R2 będzie dyfeomorfizmem mającym hiperboliczny punkt
stały x0. Wówczas x0 jest punktem stabilnym jeśli | 1 |< 1 i | 2 |< 1 oraz punktem
niestabilnym jeśli | 1 |> 1 lub | 2 |> 1 gdzie 1, 2 są miejscami zerowymi wielomianu:
2 - tr(dG(x0)) + det(dG(x0)) (B.1)
Twierdzenie B.0.2 Hahna- Banacha
Niech M będzie podprzestrzenią unormowanej przestrzeni liniowej X, a  ograniczonym funk-
cjonałem liniowym na M. Wówczas istnieje ograniczony funkcjonał liniowy  na X taki, że
dla każdego x " M (x) = (x) i  M =  X.
Wniosek B.0.3 Niech M będzie podprzestrzenią unormowanej przestrzeni liniowej X, niech
x0 " X. Jeśli dla każdego ograniczonego funkcjonału liniowego  takiego, że dla każdego
x " M (x) = 0 również (x0) = 0 to wówczas x0 " cl(M).
Dowód
Załóżmy na odwrót. Niech x0 " cl(M). Rozważmy przestrzeń M generowaną przez M *"{x0}
/
i zdefiniujmy funkcjonał  na M taki, że (x + tx0) = t (dla x " M, t " R). Zauważmy, że
jeśli x0 " cl(M) to istnieje taka , że dla każdego x " M x-x0 > . Zatem x0 +t-1x > 
/
i mamy szacowanie:
|(x + tx0)| = |t| |t| x0 + t-1x = tx0 + x .
Oznacza to, że  jest funkcjonałem liniowym ograniczonym na M . Mamy również, że (x)
dla x " M i (x0) = 1. Z twierdzenia Hahna-Banacha można rozszerzyć  na X co kończy
dowód.
Twierdzenie B.0.3 Riesza o reprezentacji
Niech K będzie zwartym podzbiorem Rn, (C(K))" oznacza przestrzeń funkcjonałów liniowych
ciągłych, M(K) zbiór borelowskich miar regularnych na K. Wówczas (C(K))" jest liniowo
izometryczne z M(K). To znaczy dla każdego x" " (C(K))" istnieje dokładnie jedna miara
" M(K) taka, że:

1 x"(f) = fd dla f " C(K),
K
2 x" (C(K))" = M(K).
Ponadto dla każdej miary " M(K) wzór 1 określa funkcjonał liniowy ciągły na C(K) taki,
że zachodzi wzór 2.
Dowód tego twierdzenia można znalezć w [Rudin86].
54
Bibliografia
[Agiza99] H. N. Agiza and A. A. Elsadany, Nonlinear dynamics in the Cournot duopoly game
with heterogeneous players, 2002.
[Bischi99] G.I. Bischi and A. Naimzada,Global analysis of a dynamic duopoly game with
bounded rationality, In Advances in Dynamic Games and Applications, Vol. 5., Birkhaur,
Boston, 1999.
[Blum92] A. Blum,Neural Networks in C++, John Wiley & Sons, Inc., New York, 1992.
[Cyben89] G. Cybenko,Approximation by Superposition of Sigmoidal Function, Mathematics
of Control Signals an Systems 2:303-314, 1989.
[Deva89] R. Devaney, An introduction to chaotic dynamical systems, Addison-Wesley, Re-
dwood City, 1989.
[Hutch90] E. Hutchins, B. Hazelehurst, Learning in the Cultural Process, w Artificial Life
II (C.G Langton,C. Taylor, J.D. Farmer, i S. Rasmussen) s. 689-705, Addison-Wesley,
Redwood City, California, 1999.
[Horn89] K. Hornik, M. Stinchcombe, H. White, Multilayer feedforward neural networks are
universal approximators, Neural Networks 2:359-366, 1989.
[Horn91] K. Hornik, Approximation Capabilities of Mulilayer Perceptrons, Neural Networks
4:251-257, 1991.
[Horn93] K. Hornik, Some new results on Neural Networks Approximation, Neural Networks
6:1069-1072, 1993.
[Ito91] Y. Ito, Approximaton of Function on a Compact Set by Finite Sums of a Sigmoid
Function Without Scaling,Neural Networks 4,817-825, 1991.
[Ito92] Y. Ito, Approximaton of Continous Function on Rd by Linear Combinations of Shifted
Rotations of a Sigmoid Function With and Without Scaling,Neural Networks 5,105-115,
1992.
[Kosin02] R.A. Kosiński, Sztuczne sieci neuronowe, dynamika nieliniowa i chaos,WNT, War-
szawa, 2002.
[Kurk92] V. Kurkowa, Kolmogorov s Theorem and Multilayer Neural Networks, Neural Ne-
tworks 5: 501-506, 1992.
[Mast96] T. Masters, Sieci neuronowe w praktyce, WNT, Warszawa, 1996.
55
[Mira94] C. Mira, D. Fournier-Prunaret, L. Gardini, H. Kawakami and J.C. Cathala, Basin
bifurcations of two-dimensional noninvertible maps: fractalization of basins, International
Journal of Bifurcations and Chaos, 4, (1994) 343-381.
[Mira96] C. Mira, L. Gardini, A. Barugola and J.C. Cathala, Chaotic Dynamics in Two-
Dimensional Noninvertible Maps, World Scientific, 1996.
[Muts04] A. Matsumoto, Controlling Cournot-Nash Chaos, 2004.
[Osow96] S. Osowski, Sieci Neuronowe w Ujęciu Algorytmicznym, WNT, Warszawa, 1996.
[Neum44] J. von Neumann, O. Morgenstern, Theory of games and economic behaviour, John
Wiley & Sons, Inc., New York, 1964.
[Tai99] M. Taiji, T. Ikegami, Dynamics of internal models in game players, Physica D 134:
253-266, 1999.
[Puu91] T. Puu, Chaos in Duopoly Pricing, Chaos, Solitons & Fractals 1: 573-581,1991.
[Puu95] T. Puu, The Chaotic Monopolist, Chaos, Solitons & Fractals 5: 35-44, 1995.
[Puu00] T. Puu, Attractors, Bifurcations & Chaos: Nonlinear Phenomena in Economics,
Springer-Verlag, Berlin, 2000.
[Puu02] T. Puu and I. Sushko, Oligopoly Dynamics: Models and Tools, Springer, 2002.
[Rand78] D. Rand, Exotic Phenomena in Games and Duopoly Models, Journal of Mathema-
tical Economics 5: 173-184, 1978.
[Rudin01] W. Rudin, Analiza funkcjonalna, PWN, Warszawa, 2001.
[Rudin86] W. Rudin, Analiza rzeczywista i zespolona, PWN, Warszawa, 1986.
[Rutko97] D. Rutkowska, M. Piliński, L. Rutkowski Sieci neuronowe, algorytmy genetyczne
i systemy rozmyte,Warszawa, PWN, 1997.
[Ross03] Ross, Don,  Game Theory , The Stanford Encyclopedia of Phi-
losophy (Summer 2003 Edition), Edward N. Zalta (ed.), URL =
.
[Sgroi03] D. Sgroi, Using Neural Networks to Model Bounded Rationality in Interactive
Decision-Making, 2003.
[Straff01] P. D. Straffin, Teoria Gier, Scholar, Warszawa, 2001.
[Stro00] Steven H. Strogatz, Nonlinear Dynamics and Chaos, Perseus Publishers, Cambridge,
Massachusets, 2000.
[Szlen82] Wiesław Szlenk, Wstęp do teorii gładkich układów dynamicznych, PWN, Warszawa,
1982.
56


Wyszukiwarka

Podobne podstrony:
StatSoft Wprowadzenie do sieci neuronowych
Nieeuklidesowe sieci neuronowe
SIECI NEURONOWE
Zastosowanie sieci neuronowych w ekonomi
Przyklad symulacji dynamicznej
Sieci neuronowe Skrypt rozdzial 10
lab5 Sieci neuronowe
sieci neuronowe pytania
sieci neuronowe i uczenie maszynowe próba integracji readme
sieci neuronowe i uczenie maszynowe próba integracji readme
zadanie sieci neuronowe
Analiza skurczu betonu za pomocą sieci neuronowej RBF
Sieci neuronowe w grach
Sieci neuronowe w modelowaniu zabużeń neuropsychologicznych readme
SZTUCZNE SIECI NEURONOWE

więcej podobnych podstron