\chapter{Problem klasyfikacji oraz indukcji wiedzy} \label{chap:RBS}
%==================================================Klasyfkacja oraz metody jej oceny =====================
\section{Problem klasyfikacji oraz metody jej oceny}
Zagadnienie klasyfikacji danych lub rozpoznawanie wzorców (ang. pattern recognition) są elementami szerokiej grupy problemów CI. Problemy te należą do zagadnień uczenia z nauczycielem i możemy w nich wyróżnić:
 \begin{itemize}
  \item {\bf przestrzeń danych wejściowych} - reprezentowaną jako $n$ wymiarowy wektor $\Bx=[x_1 ,x_2 ,...,x_n]^T$, którego poszczególne składowe $x_i$ nazywane są alternatywnie cechami lub atrybutami \footnote{Niektórzy autorzy rozróżniają pojęcie cechy oraz atrybutu, jednakże w niniejszej pracy obydwa sformułowania stosowane są alternatywnie} i mogą być one typu liczbowego (np. liczb rzeczywistych - wówczas mówimy o cechach ciągłych), mogą przyjmować wartości dyskretne porządkowe - wówczas mowa jest o atrybutach dyskretnych lub też mogą przyjmować wartości nieuporządkowane, jakościowe (np. typu $pogoda=\{\hbox{słoneczna, pochmurna, deszczowa, śnieżna}\}$) zwane atrybutami symbolicznymi oraz binarne.
  \item {\bf przestrzeń wyjściową } - zwykle jednowymiarową, nazywaną klasą, rozumianą jako pojedynczy atrybut symboliczny $C$, określający zbiór etykiet klas przypisanych do pojedynczego wektora tworzących obiekt $\Bo=[\Bx,c]$
  \item {\bf model lub klasyfikator} - funkcję $\mathcal{M}(\cdot)$ realizującą odwzorowanie $\mathcal{M}(\Bx ;\alpha) \Rightarrow C$, gdzie $\alpha$ to zbiór parametrów modelu
 \end{itemize}
Proces uczenia klasyfikatora $\mathcal{M}(\cdot)$ polega na adaptacji jego parametrów $\alpha$ w celu minimalizacji określonej funkcji błędu. Proces ten realizowany jest na podstawie zbioru treningowego $\BT=[\Bo_1, \Bo_2, \ldots ,\Bo_m]$, składającego się z $m$ wektorów zwanych również obiektami lub instancjami. Podstawą procesu uczenia modelu jest założenie, że wszystkie wektory wejściowe prezentowane klasyfikatorowi pochodzą ze zbiorów o tych samych rozkładach prawdopodobieństwa $p(\Bx|C)$, przy czym poszczególne wektory zbioru treningowego losowane są w sposób niezależny.\\
 Do oceny jakości modelu służy zwykle zbiór testowy, a proces ten nazywany jest testowaniem klasyfikatora. W procesie testowania modelowi prezentowany jest zbiór testowy, a jego zadaniem jest wyznaczenie wartości wyjściowych, czyli etykiet klas dla wszystkich elementów tego zbioru. Czasem w procesie uczenia używa się pojęcia zbioru walidacyjnego, będącego podzbiorem zbioru treningowego jednakże nie używanym w procesie uczenia. Służy on jedynie ocenie jakości klasyfikacji.\\
Zagadnienie oceny jakości działania klasyfikatora zwykle sprowadza się do wyznaczenia współczynników określających dokładność lub błąd klasyfikacji. W zależności od wymagań konstruktora wyróżnia się różne definicje dokładności i błędu klasyfikacji. Najpowszechniej używanym współczynnikiem oceny jest błąd $\err$ lub dokładność $\acc$ \reff{eq:ACC}.
\beq \label{eq:ACC}
\err=\frac{m^{err}}{m} \\
\acc=1-\err 
\eeq
gdzie $m^{err}$ to liczba błędnie sklasyfikowanych wektorów zbioru testowego lub walidacyjnego, a $m$ to  całkowita liczba wektorów tego zbioru. Tak zdefiniowany błąd ma jednak pewną wadę, a mianowicie zafałszowuje zdolność klasyfikacji w przypadku zbiorów niezbalansowanych, czyli o różnej liczbie wektorów przypadających na poszczególne klasy. Przykładem tego może być sytuacja, w której mając zbiór treningowy o $m=1000$ wektorach, z których $m_1=980$ pochodzi z klasy $C_1$, a $m_2=20$ z klasy $C_1$, klasyfikator większościowy klasyfikujący wszystkie wektory do klasy $C_1$ będzie charakteryzował się dokładnością rzędu 98\%. Dlatego też coraz bardziej powszechnie używanym współczynnikiem oceny jest błąd zbalansowany ($\ber$) lub dokładność zbalansowana ($\bacc$) liczona jako średni błąd lub dokładność klasyfikacji poszczególnych klas \reff{eq:BACC}
\beq \label{eq:BACC}
\ber=\frac{1}{c}\sum\limits_{i=1}^{c}\left({\frac{m_i^{err}}{m_i}}\right)\\
\bacc=1-\ber 
\eeq 
Współczynnik ten znacznie wierniej oddaje realną dokładność klasyfikacji, traktując wszystkie klasy równomiernie, niezależnie od wewnętrznego rozkładu liczby wektorów w poszczególnych klasach.\\
Dwa przedstawione dotychczas parametry oceny klasyfikatora cieszą się dużą popularnością, jednak również współczynnik $\bacc$ nie jest pozbawiony wad. Niestety nie uwzględnia on wariancji jakości klasyfikacji poszczególnych klas, dlatego też jakość modelu $\mathcal{M}_1$ o dokładności klasyfikacji klas odpowiednio $C_1=90\%$ i $C_2=60\%$ oraz modelu  $\mathcal{M}_2$ o dokładnościach $C_1=77\%$ i $C_2=73\%$ będzie miała taki sam ostateczny wynik $\bacc=75\%$, co może być bardzo niepożądane. Dlatego też często używa się rożnych innych metod oceny, między innymi wyniki klasyfikacji często prezentowane są w postaci macierzy konfuzji \reff{tab:conf}.\\
\begin{table}[tb]
	\begin{center}
		\begin{tabular}{cc|c|c}
		& & \multicolumn{2}{c}{Rzeczywiste}\\
		& & \parbox{2cm}{Prawda}&\parbox{2cm}{Fałsz}\\ \hline
		Oszacowane & \bSubTable{c}
			\parbox{2cm}{ \centering Pozytywne} \\ \hline
			\parbox{2cm}{\centering Negatywne} \\ 
		\eSubTable & \bSubTable{c}
			\parbox{2cm}{ \centering $TP$} \\ \hline
			\parbox{2cm}{ \centering $FN$} \\ 
		\eSubTable & \bSubTable{c}
			\parbox{2cm}{ \centering $FP$} \\ \hline
			\parbox{2cm}{ \centering $TN$} \\ 
		 \eSubTable \\
		\end{tabular}
	\caption{Macierz konfuzji} \label{tab:ConfMx}
	\end{center}
	\label{tab:conf}
\end{table}
Dla macierzy konfuzji pożądanym jest by elementy znajdujące się poza główną przekątną dążyły do zera. Definiuje się w niej parametry:
%Na podstawie macierzy konfuzji wyznacza się różne inne miary jakości klasyfikacji, do typowych należą:
\begin{itemize}
\item parametr (ang. true positive) $TP$
\item parametr (ang. false positive) $FP$
\item parametr (ang. true negative) $TN$
\item parametr (ang. false negative) $FN$
\item parametr (ang. positive) $Pos=TP+FP$
\item parametr (ang. negative) $Neg=TN+FN$
\item parametr (ang. true) $True=TP+TN$
\item parametr (ang. false) $False=FP+FN$
\end{itemize}
które pozwalają na wyznaczenie większości powszechnie używanych wskaźników, takich jak:
\begin{itemize}
\item Czułość lub wrażliwość (ang. sensitivity, recall) $Se=\frac{TP}{TP+FN}$
\item Znamienność (ang. specificity) $Sp=\frac{TN}{TN+FP}$
\item Precyzja (ang. precision) $P=\frac{TP}{TP+FP}$
\item Miara $F_{\beta}$ (ang. $F_{\beta}$ measure) $F_{\beta}=\frac{(\beta^2+1)TP}{(\beta^2+1)TP+FP+\beta^2FN}$, która dla $\beta=1$ przyjmuje postać $F_{1.0}=\frac{2TP}{2TP+FP+FN}=\frac{2SeP}{Se+P}$
\item Dokładność $\acc=\frac{TP+TN}{Pos+Neg}$
\item Dokładność zbalansowana $\bacc=\frac{1}{c}\left({\frac{TP}{Pos}+\frac{TN}{Neg}}\right)$
\end{itemize}
Każda z przedstawionych tutaj miar znalazła specyficzną dla siebie grupę zastosowań. W zagadnieniach medycznych szczególnym powodzeniem cieszą się miary czułości oraz znamienności wskazując jakość klasyfikacji poszczególnych klas, gdzie koszt popełnienia błędu może być różny dla różnych klas. Przykładem tego może być analiza sytuacji sklasyfikowania osoby chorej jako zdrowej oraz zdrowej jako chorej, gdzie koszt pierwszej pomyłki jest dużo większy niż drugiej. W zagadnieniach {\it odnajdywania informacji} (ang.  information retrieval, IR) bardzo dużą popularność zyskały miara $F_{\beta}$ oraz precyzja i wrażliwość czego dowodzą prace \cite{IR-Lewis-RCV,IR-Rijsbergen-FundEvol}. \\
W większości wypadków, gdy niezbędne jest określenie dopuszczalnego błędu klasyfikacji poszczególnych klas korzysta się z charakterystyki ROC (ang. receiver operating characteristic) \cite{Q-Provost-ROC}.
%. w celu wyznaczenia optymalnego do danego zagadnienia progu klasyfikacji. 
Krzywą ROC wykreśla się jako zależność wrażliwości (Se) w funkcji dopełnienia znamienności (1-Sp) dzięki czemu możliwe jest wyznaczenie optymalnego progu klasyfikacji poszczególnych klas. Przedstawia to rys.\reff{fi:ROC}. 
\bfig \label{fi:ROC}
	\epsfig{figure=pic/ROC_Ex.eps,width=14.0cm}
	\caption{Przykładowa charakterystyka ROC}
\efig
%Charakterystyka ROC pozwala również na oceny jakości klasyfikatora lub bardziej dokładnie rodziny klasyfikatorów poprzez obliczenie pola pod wyznaczoną krzywą. 
%Celem pożądanym jest osiągnięcie wartości (0,1), która określa bezbłędną klasyfikację. 
%Krzywą tą wyznacza się zwykle dla różnych wartości parametrów modelu, tworząc rodzinę modeli w celu wyznaczenia wartości optymalnych nastaw. 
Na podstawie krzywej ROC wyznacza się również miarę jaką jest pole pod krzywą, zwaną współczynnikiem AUC (ang. area under curve). AUC informuje, który z klasyfikatorów lub rodzina klasyfikatorów jest najdokładniejsza spośród wszystkich zbadanych. Im większe pole pod krzywą, tym mamy do czynienia z lepszymi klasyfikatorami. W literaturze znane są również inne metody oceny dokładności klasyfikacji (jak np. opisane w pracy \cite{Q-Holte-bed-ROC}). Różnorodność podejść wynika z faktu, iż nie można wskazać jednego uniwersalnego wskaźnika jakości klasyfikatora. Rozpoczęcie procesu uczenia modelu powinna więc poprzedzić analiza problemu oraz określenie zadań, jakie powinien on spełnić. W rozprawie do oceny jakości modeli posłużono się miarą $\acc$ ze względu na powszechność metody oraz dostępność wyników porównawczych. Należy jednak zwrócić uwagę na fakt, iż coraz częściej używanym wskaźnikiem jakości klasyfikacji staje się dokładność zbalansowana, czego dowodem może być sposób oceniania wyników w różnych konkursach analizy danych \cite{Ch-Guyon-IJCNN07,Ch-Guyon-NIPS03,Ch-Guyon-WCCI06}. \\
Przedstawione dotychczas współczynniki służą ocenie dokładności klasyfikacji, jednak równie ważnym parametrem klasyfikatora jest jego zdolność generalizacji \cite{B-Webb-Book}. Generalizacja rozumiana jest jako umiejętność uogólnienia zdobytej wiedzy, czyli miara informująca o możliwościach klasyfikacji danych do tej pory nie prezentowanych budowanemu modelowi. W literaturze znanych jest wiele metod pozwalających ocenić możliwości generalizacji modelu, tym samym wybrać model który najlepiej opisuje dane zagadnienie \cite{B-Duda-Hart}.
 Jednym z typowych rozwiązań analizy generalizacji modelu jest zasada {\it minimalizacji długości opisu} (ang. minimum description length, MDL), która bazuje na analizie rozmiaru zbioru oraz stopnia złożoności modelu $h$ wyrażonego w bitach \reff{eq:MDL}.
\be
	h_{MDL}=\mathop{\arg\min}\limits_{h\in H}(L_{C}(h)+L_{C}(\BX|h))
	\label{eq:MDL}
\ee
gdzie $L_C(h)$ jest długością opisu modelu $h$ pod warunkiem kodowania $C$, natomiast $L_{C}(\BX|h)$ jest długością opisu zbioru $\BX$ pod warunkiem modelu $h$ oraz kodowania $C$. Metoda MDL znalazła bardzo szerokie zastosowanie w algorytmach ekstrakcji reguł, gdzie między innymi jest stosowana do określenia rozmiaru drzew decyzji. Innym przykładem miary generalizacji jest miara Vapnika-Chervonenkisa zwany również wskaźnikiem VC  oraz zasada minimalizacji ryzyka strukturalnego (ang. structural risk minimization, SRM) \cite{Vapnik-Nautre-Learning} zaproponowana przez Vapnika. Idea współczynnika SRM polega na uwzględnieniu obok dokładności modelu $h$ drugiego czynnika opisującego złożoność, tym samym wariancję  modelu \reff{eq:SRM}. 
\be
	R(h) \le R_{emp}(h)+\sqrt{\left({\frac{VC(h)(log(2m/VC(h))+1)-log(\eta/4)}{h}}\right)}
\label{eq:SRM}
\ee
Gdzie $R(h)$ to rzeczywisty koszt popełnienia błędu, $R_{emp}(h)$ to empiryczna wartość tego kosztu - błąd klasyfikacji,  VC(h) - to wartość współczynnika Vapnika-Czervonenkisa, natomiast $\eta$ to pewna stała.
Inną bardzo powszechną metodą oceny jest algorytm walidacji krzyżowej oraz test pozostaw jeden (ang. leave one out). Dokładniejszy opis można znaleźć w rozdziale \ref{sec:MetaLearning}. 
%
%
%Często do oceny zdolności generalizacji posługiwano się współczynnikiem minimalnej długości kodu, określającym złożoność modelu. Innym przykładem takiego wskaźnika jest wymiar VC oraz zasada minimalizacji ryzyka strukturalnego (SRM) \cite{Vapnik-Nautre-Learning}. 

%====================================================================================================
\section{Formy reprezentacji wiedzy w problemach klasyfikacji danych}
Proces uczenia modelu sprowadza się do pozyskiwania przez niego wiedzy na temat zagadnienia, które zostaje mu przedstawione. Cała idea uczenia polega zatem na dostrojeniu parametrów modelu $\alpha$ w taki sposób, aby jak najdokładniej odzwierciedlić charakterystykę zjawisk zachodzących w źródle jakim jest zbiór treningowy. \\
W zależności od budowy modelu mówi się o systemach, w których zgromadzona wiedza wyrażana jest {\it explicite} oraz {\it implicite}. 
Modele explicite przedstawiają wiedzę w postaci bezpośrednio zrozumiałej dla człowieka. Do tych grup metod można zaliczyć systemy klasycznych reguł dwuwartościowych, metody probabilistyczne, systemy bazujące na regułach rozmytych oraz systemy wnioskowania w oparciu o przypadki (ang.~case based reasoning, CBR). Natomiast druga grupa klasyfikatorów ze względu na swoją budowę nie pozwala na interpretację zgromadzonej wiedzy przez człowieka, mówi się wówczas o tak zwanych czarnych skrzynkach (ang. black box), które potrafią przeprowadzić procedurę wnioskowania jednakże człowiek pozbawiony jest możliwości jej weryfikacji. Do tego typu modeli należą między innymi perceptron wielowarstwowy (MLP) czy klasyfikatory typu SVM. Próba wydobycia wiedzy z tego typu modeli sprowadza się do dopasowania modelu typu explicite do istniejącej czarnej skrzynki \cite{R-Nunez-RulSVM}.\\
Każdy z klasyfikatorów explicite ma pewne charakterystyczne właściwości, które mają szczególne uzasadnienie dla różnych problemów. Jedną z częstych form reprezentacji wiedzy jest jej przedstawienie w postaci rozkładów prawdopodobieństw poszczególnych klas. Uczenie systemu sprowadza się do estymacji rozkładów prawdopodobieństwa a posteriori $p(C_i|\Bx)$ oraz reguły wnioskowania {\it maksymalnej wartości a posteriori} (ang. maksimum a posteriori, MAP). Zaletą zapisu wiedzy w postaci rozkładów prawdopodobieństwa estymowanych z danych jest możliwość generacji nowych przypadków na podstawie tych rozkładów  \cite{Prob-Bishop-GenerativVsDiscr}. Słabością metod probabilistycznych jest ograniczona możliwość zrozumienia kształtu funkcji rozkładu prawdopodobieństwa w szczególności, gdy jest on skomplikowany i poszczególne cechy są wzajemnie skorelowane. Właściwości generacyjnej niestety pozbawione są systemy regułowe, które wydobytą wiedzą przedstawiają w postaci struktury typu: {\it jeżeli~\ldots~to~\ldots} \cite{R-Duch-CIRules}. Cechą charakterystyczną takich systemów jest duża łatwość interpretacji wyników, gdyż w naturalny sposób jesteśmy przyzwyczajeni do analizy tego typu systemów, w szczególności bazujących na logice dwuwartościowej. Niestety rozwiązanie to posiada również wady. Przykładem tego jest problem klasyfikacji dwóch rozkładów gaussowskich w $\Re^2$ co przedstawia rys.\reff{fi:CrispRulesProb} 
 \bfig
    \subfigure[Rozwiązanie z wykorzystaniem reguł klasycznych ]{\epsfig{figure=pic/Crules.eps,width=6.0cm}}
    \subfigure[Rozwiązanie z wykorzystaniem reguł rozmytych oraz prototypowych]{\epsfig{figure=pic/Frules.eps,width=6.0cm}}
%
  \caption{Przykładowy dwuklasowy problem klasyfikacji}
%
  \label{fi:CrispRulesProb}
\efig 
Optymalną granicą decyzyjną, gwarantującą maksymalną  generalizację takiego systemu jest liniowa funkcja decyzyjna $\mathcal{M}(\Bx)=a x_1 + b x_2 + c$. Uzyskanie takiego rozwiązania przez systemy reguł twardych jest okupione dużą liczbą reguł, co ogranicza zdolność interpretacji takiego systemy, zaś zmniejszenie liczby reguł zmniejsza generalizację modelu. Tak zdefiniowany problem daje się jednak zapisać w prosty sposób jako dwie reguły typu rozmytego (refuły-F) lub prototypowego (reguły-P). \\
Reguły rozmyte stanowią swego rodzaju uogólnienie reguł twardych, wprowadzając logikę rozmytą, czyli logikę wielowartościową opisującą stopień przynależności obiektu do danego zbioru. Jednym z pierwszych zastosowań systemów rozmytych był problem uczenia modelu na zasadzie analizy wiedzy eksperta i jej wykorzystanie do klasyfikacji przypadków \cite{B-Duda-Hart}. Późniejszy rozwój metod sztucznych sieci neuronowych doprowadził do integracji sieci neuronowych z systemami rozmytymi, co pozwoliło na automatyczne dostrajanie modelu wstępnie nauczonego przez eksperta. Również metody zbiorów rozmytych posiadają szereg wad. Między innymi narzucają one założenie niezależności atrybutów tak, iż funkcje przynależności definiowane są niezależnie dla każdej z cech i łączone rozmytymi operatorami przecięcia zbiorów. Jak pokazano w rozdziale \ref{chap:P2F-rules} jedną z możliwych form interpretacji przesłanek reguł rozmytych jest podobieństwo do wzorców. Jednak zachodząca tutaj relacja nie jest symetryczna, gdyż duża grupa powszechnie stosowanych radialnych funkcji bazowych (sieci RBF) nie posiada właściwości separowalności. Przy czym separowalność definiowana jest jako możliwość dekompozycji funkcji bazowej na składowe dla poszczególnych atrybutów (jedyną separowalną radialną funkcją bazową jest funkcja Gaussowska).\\ 
Innym przykładem klasy problemów, który nie daje się rozwiązać za pomocą omówionych powyżej form reprezentacji wiedzy są zagadnienia klasyfikacji typu większościowe głosowanie (większość jest za). Problem ten rozwiązują reguły typu {\it M-z-N} (ang. M-of-N) \cite{R-Baffes-Rev-MofN}, które działają na zasadzie analizy liczebności przypadków. Jeżeli co najmniej M pewnych cech ze zbioru N możliwych jest pozytywna wówczas reguła jest spełniona. Przykładem takiej reguły jest pojedynczy perceptron realizujący sumę poszczególnych składowych. Problem głosowania rozwiązują również omawiane w rozprawie reguły prototypowe progowe, określając odpowiedni próg aktywacji $D(0,\sigma({\bf w}\Bx))>\Theta$.\\
Każda z wymienionych grup metod ma wielu przedstawicieli, a jednocześnie są one ciągle rozwijane, pozwalając na polepszenie jakości uzyskiwanych wyników, maksymalizację generalizacji oraz zwiększenie prostoty opisu zgromadzonej wiedzy. Poniżej przedstawione zostaną jedynie krótkie opisy wybranych najpopularniejszych spośród powszechnie stosowanych metod.
%\section{Indukcja wiedzy}
%W literaturze dotyczącej metod inteligencji obliczeniowej możliwe jest znalezienie
%różnych algorytmów lub ich grup służących do wydobywania wiedzy z danych. Istnieje też
%wiele taksonomii pozwalających na różnoraki podział takich metod. Jedną z
%podstawowych form podziału metod wydobywania reguł jest podział na:
%\begin{itemize}
%    \item metody bezpośredniej indukcji reguł
%    \item metody indukcji reguł z nauczonych systemów.
%\end{itemize}
%Pierwsza z grup metod bezpośrednio na podstawie zbioru danych próbuje dokonać indukcji reguł
%(drzewa decyzji, sekwencyjne pokrywanie), podczas gdy druga grupa metod próbuje
%odwzorować granicę decyzyjną nauczonych modeli traktowanych jako czarne skrzynki  jak np. indukcja
%reguł z wielowarstwowych sieci neuronowych, czy maszyny wektorów wspierających (ang. support
%vectors machine - SVM), w których zgromadzona wiedza nie jest dostępna explicite.\\
%Inną możliwą taksonomią metod indukcji reguł jest ich podział ze względu na sposób reprezentacji wiedzy. Wyróżnia się wówczas reprezentację w postaci:
%\begin{itemize}
%\item reguł klasycznych - ostrych (ang. crisp rules)
%\item reguł rozmytych (ang. fuzzy rules)
%\item metody zbiorów przybliżonych (ang. rough sets)
%\item metody wektorów rozróżniających (ang. emerging patterns)
%\end{itemize}
%Każda z wymienionych grup metod ma wielu przedstawicieli, a jednocześnie są one ciągle
%rozwijane, pozwalając na polepszenie jakości uzyskiwanych wyników, maksymalizację generalizacji oraz zwiększenie prostoty opisu zgromadzonej wiedzy. Poniżej przedstawione zostaną jedynie krótkie opisy wybranych najpopularniejszych spośród powszechnie stosowanych metod.
\subsection{Metody bezpośredniej indukcji klasycznych reguł ostrych}
Ta grupa metod charakteryzuje się wydobywaniem reguł ostrych bezpośrednio z danych. Typowym
mechanizmem używanym do wydobywania reguł w tej grupie są metody przeszukiwania połączone
z sekwencyjnym pokrywaniem przestrzeni wejściowej. Proces tworzenia reguł rozpoczyna się
zwykle od najbardziej ogólnych - pokrywających maksymalną liczbę przypadków, a kończy na
najbardziej szczegółowych - pokrywających małą liczbę wektorów.
\subsubsection{Algorytm AQ}
AQ \cite{B-Cichosz-SysUcz} jest w rzeczywistości rodziną różnych metod bazujących na tym samym algorytmie
podstawowym, modyfikując go poprzez dodanie różnych rozszerzeń lub funkcjonalności. Wersja
podstawowa algorytmu AQ bazuje na wykorzystaniu metod przeszukiwania w sekwencyjnym
pokrywaniu przestrzeni wejściowej regułami. Do definicji działania algorytmu Michalski
zaproponował specjalne słownictwo używane powszechnie również w innych metodach sekwencyjnego
pokrywania. Wprowadzonymi koncepcjami są: selektor - definiujący część warunkową reguły
dla pojedynczego atrybutu, kompleks będący zbiorem selektorów dla różnych atrybutów oraz
gwiazda stanowiąca zbiór selektorów, spośród których wybierany jest poprzednik reguły.
Podstawową heurystyką używaną w algorytmie AQ przy generacji kompleksów jest
,,maksymalizacja liczby pozytywnych przypadków pokrywanych przez regułę przy wyłączeniu
przypadków negatywnych''. Przypadki pozytywne to zbiór wektorów należących do klasy
$C^+$ dla których reguła jest tworzona, zaś przypadki negatywne $C^-$ to zbiór wektorów
nie należących do klasy $C^+$, $C^-=C - C^+$. Podstawowa wersja algorytmu była
zdefiniowana dla atrybutów dyskretnych przy założeniu separacji klas. Te dwa założenia
spowodowały duże ograniczenia stosowania algorytmu AQ, w szczególności wpłynęło to na niską generalizację
uzyskanych reguł. Dlatego też późniejsze modyfikacje uwzględniały
różne metody oczyszczania poprzez wstępne lub końcowe przetwarzanie danych jak w AQ11
\cite{R-Michalski-AQ11} i AQ15 \cite{R-Michalski-AQ15}.
\subsubsection{Algorytm CN2}
Algorytm CN2 stanowi rozszerzenie algorytmu AQ, gdzie Clark i Niblett \cite{R-Clark-CN2}
analizowali sytuację ekstrakcji reguł z danych przy założeniu istnienia szumu. Główną
różnicą jest tutaj rezygnacja z dotychczasowego kryterium indukcji reguł na rzecz miary
entropii \reff{eq:Entropy}
%
\be \label{eq:Entropy}%
%Q_E(q)=-\sum_i(p_{C_i} log_2(p_{C_i})) %
Q_E(q)=-\sum_{i=1}^c p(C_i | q)\log_2 p(C_i | q)
\ee
%
gdzie $p(C_i|q)$ jest względną liczbą wektorów z klasy $C_i$ pokrytych przez dany
kompleks $q$. Dzięki takiej modyfikacji możliwe staje się pokrywanie poprzez regułę
niewielkiej ilości przypadków negatywnych, co znacznie wpływa na zdolności
generalizacyjne algorytmu.\\
Kolejną modyfikacją w stosunku do algorytmu bazowego jest wbudowany algorytm oczyszczania
reguł, podobny do stosowanego w systemach drzew decyzji. Pozwala on na usunięcie
nieużytecznych reguł, które są efektem przetrenowania systemu. Ponieważ uzyskane w wyniku
działania algorytmu reguły mogą się nakładać, rezultatem jest lista reguł czytana od
najbardziej szczegółowej do najogólniejszej. Cecha ta wraz z algorytmem oczyszczania
wymusiła również wprowadzenie do reguł dodatkowego warunku {\it jeśli nie} (ang. else), stosowanego w
przypadku nie spełnienia żadnej z reguł. \\
Algorytm CN2 również doczekał się wielu usprawnień podnoszących jego możliwości, czego
przykładem może być praca \cite{R-Clark-CN2-improve}
\subsubsection{Tabela decyzji}
Tabela decyzji (ang. decision table) jest algorytmem ekstrakcji reguł zaproponowanym przez
Kohaviego w \cite{R-Kohavi-DecisionTable}. W zaproponowanej metodzie autor posłużył się
regułą {\it najistotniejszy z tabeli decyzji} (ang. decision table majority) do podejmowania arbitrażu. Bazuje ona na podjęciu decyzji w oparciu o największą częstotliwość występowania danej wartości w zbiorze
zapamiętanych wzorców, która jest zgodna z danym wektorem testowym.\\
W zaproponowanym podejściu autor określa dwa elementy składowe
\begin{itemize}
\item {\bf schemat} (ang. schema), który stanowi zbiór cech
\item {\bf ciało} (ang. body), które stanowi zbiór etykietowanych wektorów mających
określoną wartość dla każdej z cech zawartych w {\bf schemacie}
\end{itemize}
W wersji bazowej algorytmu, jedynie podzbiór cech jest optymalizowany stosując metodę
opakowywania (ang. wrappers approach) w selekcji cech.

\subsection{Drzewa decyzji}

Drzewa decyzji to bogata grupa metod, która w odróżnieniu od algorytmów bezpośredniej
indukcji reguł, stosuje strukturę drzewa, pokrywającą przypadki z przestrzeni wejściowej
stosując różne kryteria statystyczne. Najczęstszym efektem działania drzew decyzji jest
drzewiasta struktura {\it klasycznych reguł}. Znane są jednak implementacje stosowane do
budowy alternatywnych typów reguł, jak zaproponowany w pracy Ichihashi i inni
\cite{Fu-Ichihashi-FuzzyTree} algorytm rozmytych drzew. \\
Wynik działania drzew decyzji daje się zwykle przedstawić w postaci klasycznych
liniowych zbiorów reguł. Często bywa to jednak okupione zmianą kształtu granicy decyzyjnej, co
powoduje, że obydwa zbiory reguł o strukturze liniowej oraz drzewiastej nie są sobie równoważne. Przykładem tego jest algorytm C4.5-Rules.
\subsubsection{Algorytm CART}
Metoda CART (ang. classification and regression trees) \cite{B-Breiman-DT} jest jednym z
najpopularniejszych i najdokładniejszych algorytmów drzew decyzji. W
drzewie tym zastosowano binarny podział węzłów, tak że z każdego węzła wychodzą dwie
gałęzie zakończone kolejnymi podwęzłami. Dla każdego węzła wyznaczana jest etykieta klasy
jako najbardziej liczna reprezentacja wektorów z danej klasy. W CART zastosowano różne
kryteria statystyczne określające czystość węzłów. W większości bazują one na różnego rodzaju entropiach. Autorzy sugerują używanie indeksu Gini \reff{eq:Gini}, który jest szczególnym przypadkiem entropii Renyiego \reff{eq:Renyi} ze współczynnikiem $w=2$ (przy czym operator {\it log} może tutaj zostać pominięty ze względu na właściwość porównywania wartości indeksu). %
\be \label{eq:Gini} %
Q_G(q)=1-\sum_{i=1}^c p(C_i |q)^2%
 \ee
\be \label{eq:Renyi}
Q_R(q)=\frac{1}{1-w} \ln\left({\sum_{i=1}^c p(C_i|q)^w}\right)
\ee
gdzie $q$ oznacza węzeł, dla którego liczone jest kryterium.\\
Innym często spotykanym kryterium jest miara entropii Shannona opisana zależnością \reff{eq:Entropy}. %
%\be \label{eq:Entropy} %
%Q_E(q)=-\sum_{i=1}^c p(C_i | q)\log_2 p(C_i | q)%
% \ee
Autorzy zaproponowali również metodę pozwalającą na przetwarzanie danych niekompletnych,
poprzez wyznaczenie dla każdego węzła alternatywnych atrybutów, analizowanych gdy aktualna
wartość najlepszego atrybutu użytego w węźle jest niedostępna.

\subsubsection{Algorytm ID3}
ID3 \cite{B-Quinlan-C45} jest drzewem decyzji bazującym na indeksie wywodzącym się z
teorii informacji zwanym {\it współczynnikiem przyrostu informacji} (ang. information gain) \reff{eq:InfoGain}%
\be \label{eq:InfoGain}%
Q_{IG}(q,f)=E(q)-\sum_{v\in U(f)} \frac{|q_v|}{|q|}E(q_v)%
\ee %
gdzie $U(f)$ - jest zbiorem wszystkich możliwych unikatowych wartości atrybutu $f$, $q_v$ jest
podzbiorem $q$ dla którego cecha $f$ przyjmuje wartości $v$, zaś $|q|$, $|q_v|$ to
odpowiednio liczebność $q$ i $q_v$. W odróżnieniu od CART, algorytm ID3 nie jest drzewem
binarnym, lecz liczba podwęzłów jest równa liczbie unikalnych wartości cechy $U(f)$.
Wadą algorytmu ID3 jest praca jedynie na atrybutach dyskretnych lub symbolicznych, co znacznie ograniczyło
praktyczne możliwości wykorzystania tej metody.

\subsubsection{Algorytm C4.5}
C4.5 \cite{B-Quinlan-C45} jest modyfikacją algorytmu bazowego, którym był algorytm ID3. W
omawianej metodzie Quinlan przede wszystkim dodał nowe funkcjonalności usuwające słabości
algorytmu bazowego:
\begin{itemize}
\item zmodyfikował funkcję kryterium, zwaną stosunkiem zysku informacyjnego (ang. information gain
ratio) \reff{eq:InfoGainRatio}
\item zaproponował wsparcie dla cech ciągłych
\item umożliwił pracę z brakującymi wartościami
\item zmodyfikował metodę oczyszczania, by zwiększyć zdolność generalizacji algorytmu
\end{itemize}%
\be \label{eq:InfoGainRatio}%
Q_{IGR}(q,f)=\frac{Q_{IG}(q,f)}{E(q)}
\ee%
W C4.5 atrybuty ciągłe w odróżnieniu od dyskretnych dzielone są na dwa podwęzły (jak w
drzewach binarnych), gdzie pomiędzy wartościami cechy minimalizowane jest kryterium
\reff{eq:InfoGainRatio} podziału na dwie części. Jako kryterium oczyszczania drzewa
została użyta metoda statystyczna mierząca istotność różnicy pomiędzy danym węzłem a jego
podwęzłami.\\
 Praktyka pokazała że obok CART algorytm C4.5 jest jedną z
najdokładniejszych i najczęściej stosowanych implementacji drzew decyzji.

\subsubsection{Algorytm SSV}
SSV (ang. separability split value) \cite{R-Grabcz-SSV} jest bardzo podobną metodą konstrukcji
drzewa do algorytmu CART (jest również drzewem binarnym). Główne różnice dotyczą funkcji
kryterium zwanej SSV \reff{eq:SSV} oraz metody oczyszczania.
%
\beq \label{eq:SSV}%
    SSV(s,q,f)=2\sum_{i=1}^c|LS(s,f,q_{C_i})||RS(s,f,q_{C\ne C_i})| -  \\
    \min\left(|LS(s,f,q_{C_i})|,|RS(s,f,q_{C_i})\right)
\eeq
%
gdzie
\be
\begin{array}{l}
	LS(s,f,q)=\left\{{
	\begin{array}{ll}
	x\in q, f(x)<s & \mbox{ jeśli q jest ciągłe}\\
	x\in q, f(x)\in s & \mbox{ w przeciwnym wypadku}
	\end{array}}\right.\\
	 \\
	RS(s,f,q)=f\setminus LS(s,q,f)
\end{array}
\ee
Gdzie $f$ to cecha dla której wartość kryterium jest wyznaczana, $s$ - to wartość podziału, natomiast $q$ to zbiór wartości dla których indeks jest liczony.\\ 
Użyta w SSV metoda oczyszczania wykorzystuje algorytm walidacji krzyżowej (ang. cross validation) do
wyznaczenia optymalnego progu przycięcia. W procesie uczenia budowane jest kompletne
drzewo, a następnie poprzez statystykę wyznaczoną w walidacji krzyżowej określany jest
optymalny rozmiar drzewa gwarantujący maksymalną zdolność generalizacji. Dzięki tym
zabiegom doświadczenia na realnych zbiorach danych pokazały dużą skuteczność opisywanego algorytmu.

\subsection{Sieci neuronowe a systemy regułowe}
Sieci neuronowe to grupa metod uczenia, której inspiracją było odwzorowanie budowy neuronów znajdujących się w ludzkich mózgach. Dlatego też przy ich konstrukcji nie uwzględniano możliwości interpretacji uzyskanych wyników uczenia przez ludzi, a w szczególności ich zapisu jako zbioru reguł. Spowodowało to, że duża grupa metod regułowych wywodzących się z sieci neuronowych bazuje na próbie odtworzenia wiedzy zgromadzonej w sieciach, czyli należy do grupy metod indukujących reguły z nauczonych modeli. Istnieją jednak sieci dedykowane indukcji reguł, których konstrukcja pozwala na bezpośrednią interpretację regułową. Tego typu sieci bazują często na strukturze perceptronu wielowarstwowego (MLP), których neurony mają schodkową funkcję aktywacji dzięki czemu pojedynczy neuron może być interpretowany jako koniunkcja przesłanek stanowiących wejście neuronu. Przykładem takiego algorytmu jest Search-MLP \cite{Fu-Adamczak-PhD,Fu-Duch-OptimFuzzyR,R-Kordos-SMPL-Rules}. W literaturze można jednak spotkać również inne podejścia do zagadnienia wydobywania reguł z sieci neuronowych, czego przykładem są opisane poniżej metody.    

\subsubsection{Algorytm TREPAN}
Trepan stanowi połączenie sieci neuronowych z algorytmami drzew decyzji. W metodzie ekstrakcji reguł zaproponowanej przez Craven i Shavlik \cite{R-Shavlik-Trepan} sieć neuronowa traktowana jest jako wyrocznia, pozwalająca na etykietowanie nowo generowanych wektorów treningowych. Proces ekstrakcji reguł polega na nauczeniu drzewa decyzji w oparciu o wyniki uzyskane zarówno ze zbioru treningowego, jak i poprzez jego rozszerzenie uzyskane w wyniku losowania nowych wektorów treningowych, dla których sieć neuronowa przypisuje odpowiednie etykiety klas. Podczas konstrukcji drzewa zakłada się, że podział węzła następuje dopiero po przeanalizowaniu dużej liczby przypadków (ok. $10^3$). Dzięki takiemu zabiegowi algorytm ten staje się dużo bardziej stabilny i dokładny niż klasyczne drzewa decyzji, w których problemem jest mała liczba wektorów przypadająca na węzeł w dolnej części drzewa. \\
 Dużym atutem algorytmu TREPAN jest możliwość wykorzystania go do ekstrakcji reguł z niemal każdej metody pozbawionej naturalnej interpretacji regułowej.
 
\subsubsection{Algorytm NeuroRule oraz M-of-N3}
Algorytmy NeuroRule \cite{R-Setiono-NeuroRule} oraz M-of-N3 \cite{R-Setiono-MofN} są metodami, które odtwarzają wiedzę zapisaną w sieci neuronowej przy czym M-of-N3 dokonuje ekstrakcji reguł typu M-z-N. Warunki budowy sieci określają, binarną postać atrybutów wejściowych, oraz konstrukcję sieci składającą się z trzech warstw: wejściowej, ukrytej oraz wyjściowej, przy czym neurony warstwy ukrytej mają funkcję aktywacji typu $\tanh(K_1,w)$ oraz dla algorytu M-of-N3 spełniają warunek \reff{eq:MofN}
\be
\left|{\tanh(K_1,w)}\right| \approx 1
\label{eq:MofN}
\ee
Jeżeli warunek ten nie jest spełniony uzyskiwany jest algorytm NeuroRule.\\
W sieci neuronowej zaimplementowano również algorytm oczyszczania usuwający połączenia o małej wartości wag. Proces oczyszczania sieci realizowany jest iteracyjnie, gdzie po każdorazowym usunięciu mało istotnych połączeń sieć jest douczana i proces oczyszczania ponownie uruchamiany, aż do momentu, w którym żadne z połączeń nie jest usuwane. \\
Proces pozyskiwania reguł można opisać jako:
\begin{enumerate}
\item Naucz i oczyść sieć neuronową
\item Grupuj wartości aktywacji każdego z neuronów warstwy ukrytej 
\item Stwórz reguły klasyfikacji na podstawie zgrupowanych wartości aktywacji 
\item Zamień warunki reguł stworzonych w kroku 3 przez warunki typu M-z-N
\end{enumerate}
gdzie w kroku drugim proces klasteryzacji realizowany jest w oparciu o algorytm dyskretyzacji Chi2 lub ChiMarge \cite{Di-Liu-Discrt}. Natomiast w trzecim kroku posłużono się algorytmem X2R w celu wydobycia klasycznych rozłącznych reguł binarnych, które w ostatnim kroku w przypadku algorytmu M-of-N3 zamieniane są reguły typu M-z-N.
 
\subsubsection{Algorytm VIA}
Algorytm VIA (ang. validity interval analysis) zaproponowany przez Thurana \cite{R-Thrun-VIA} służy do ekstrakcji reguł z sieci neuronowych uczonych na zasadzie wstecznej propagacji błędu. Bazuje on na zasadzie analizy wzbudzeń poszczególnych neuronów względem przypisanych interwałów, zwanych interwałami walidacyjnymi (ang. validity interval). Jeżeli aktywacja danych neuronów odpowiada interwałom, wówczas uznawane są one za spójne i zapisywane w bazie wiedzy. Do weryfikacji interwałów używany jest algorytm wstecznej propagacji błędu, dzięki czemu interwał z wyjścia jest mapowany na wejście danego neuronu. Algorytm ten jest realizowany iteracyjnie, adaptując każdorazowo interwały walidacyjne oraz wyłączając interwały dotychczas niespójne.  
\subsubsection{Algorytm MLP2LN}
Algorytm MLP2LN \cite{R-Duch-MLP2LN} jest dedykowanym algorytmem poszukiwania reguł bazującym na sieciach MLP. Autorzy - Duch, Adamczak, założyli specjalną strukturę sieci, w której na wejścia warstwy ukrytej podawane są odpowiednie interwały sygnałów wejściowych sieci, wstępnie przetworzone jako różnica dwóch funkcji sigmoidalnych. W procesie uczenia wykorzystali również fakt możliwości zmiany nachylenia skosu funkcji sigmoidalnej, co pozwala zarówno na wykorzystanie algorytmów gradientowych oraz propagacji wstecznej do optymalizacji wag sieci przy małym skosie funkcji sigmoidalnej oraz interpretację binarną przy skosie dążącym do $\inf$. Dlatego też wraz z kolejnymi epokami uczenia sieci zmianie ulega również współczynnik skosu $s$. W celu poprawienia jakości uczenia modyfikacji poddana została również funkcja kosztu \reff{eq:MLP2LN}
\beq
E({\bf w})=\frac{1}{2}\sum\limits_p\sum\limits_i \left({ y(\Bx_i,{\bf W})-d_i^p}\right)^2 + 
	\frac{\lambda_1}{2} \sum \limits_{i>j}w_{ij}^2+\\
	\frac{\lambda_2}{2} \sum \limits_{i>j}w_{ij}^2(w_{ij}+1)^2(w_{ij}-1)^2
\label{eq:MLP2LN}
\eeq
gdzie $y(\Bx_i,{\bf w})$ jest wyjściem sieci wyznaczonym dla wektora $\Bx_i$ oraz wag ${\bf w}$, $d_i$ jest etykietą wektora $\Bx_i$, $w_{ij}$ to $i,j$-ty element macierz wag, natomiast $\lambda_1$ oraz $\lambda_2$ to współczynniki definiowane przez użytkownika, rozszerzone o dwa dodatkowe czynniki.
 Odpowiednio drugi czynnik wpływa na stopień skomplikowania modelu - wymuszający małe wartości wag ${\bf w}$ (selekcję cech na wejściach neuronów) oraz trzeci wymusza duże wartości wag [-1,0,1]. Wagi poszczególnych czynników funkcji kosztu są zmieniane w procesie uczenia, tak by w końcowym etapie dominującą wartość miał ostatni czynnik odpowiedzialny za binaryzację wyjścia sieci. 

\subsection{Systemy neuronowo-rozmyte}
Zbiory rozmyte oraz logika rozmyta stanowią podstawę reguł rozmytych oraz różnych innych metod zwanych ogólnie rozmytym obliczaniem (ang. soft computting) \cite{B-Piegat-Book}. Reguły rozmyte można scharakteryzować jako uogólnienie tradycyjnych reguł logiki klasycznej, w których spełnienie poszczególnych przesłanek oraz konkluzji jest określane jako wartość w przedziale $[0,1]$. \\
Tradycyjne podejście do budowy reguł rozmytych bazowało na wykorzystaniu wiedzy eksperta oraz naturalnej interpretacji lingwistycznej opisu zagadnienia \cite{B-Duda-Hart}. Jednakże sukces sztucznych sieci neuronowych doprowadził do połączenia i zbudowania uniwersalnego narzędzia, pozwalającego na zautomatyzowanie procesu wydobywania wiedzy z danych w postaci reguł rozmytych oraz inicjalizacji procesu uczenia poprzez wbudowanie w system wiedzy eksperta. Zagadnienie to analizowane było między innymi w pracach Rutkowskiej i Rutkowskiego \cite{Rutkowska2-SysRoz}, oraz Czogały i Łęskiego \cite{B-Czogala-Book}. Budowa sieci neuronowo-rozmytych pozwala na wyrażenie struktury modelu jako sieci neuronowej, która jednocześnie posiada interpretację jako zbiór reguł rozmytych. Praktyka pokazała, że to podejście stało się bardzo popularne czego wynikiem były różne metody budowy modeli typu neuronowo-rozmytych. Poniżej opisano kilka najbardziej znanych.

\subsubsection{System ANFIS}
ANFIS \cite{Fu-Jang-ANFIS,B-Jang-NFSF} jest jednym z pierwszych modeli neuronowo-rozmytym. Podstawą jego konstrukcji było założenie, że jest to sieć jednokierunkowa o warstwach różniczkowalnych, co pozwoliło na wykorzystanie algorytmu propagacji wstecznej w procesie uczenia model. Założona przez Janga postać sieci składała się z pięciu warstw, którymi kolejno były: warstwa pierwsza - wyznaczająca wartości funkcji przynależności dla danego wejścia sieci, co odpowiada określeniu aktywacji poszczególnych przesłanek; warstwa druga realizowała koniunkcję  przesłanek dla każdej z reguł; warstwa trzecia wyznaczała znormalizowaną wartość aktywacji przesłanki reguły względem pozostałych reguł; warstwa czwarta odpowiedzialna była za konkluzję reguły, wyznaczając poziom jej aktywacji; ostatnia piąta warstwa sumowała odpowiedzi różnych reguł wyznaczając ostateczną odpowiedź systemu. Konstrukcja sieci była równoważna modelom rozmytym Sugeno i Tsukamoto. \\
W modelu ANFIS inicjalizacja sieci była realizowana najczęściej bądź poprzez klasteryzację, bądź poprzez równomierny podział wartości atrybutów.

\subsubsection{System NefClass}
NefClass to algorytm ekstrakcji reguł rozmytych  w procesie klasyfikacji wzorców zaproponowany przez Nauck i Kruse \cite{Fu-Nauck-NefClass} i rozwijany również przez Rutkowską \cite{Rutkowska-NefClass}. Proces uczenia systemu rozpoczyna się od inicjalizacji poprzez równomierny podział atrybutów na odpowiednie wartości lingwistyczne. Ze względu na łatwość interpretacji uzyskanych reguł autorzy posłużyli się operatorem agregacji maximum, co wpłynęło na sposób optymalizacji systemu. Ze względu na jego nieliniowość autorzy posłużyli się algorytmem pseudo-gradientowym. Cechą charakterystyczną modelu było dodanie procesu oczyszczania reguł poprzez 4 różne metody: korelację, częstość klasyfikacji, nadmiarowość i rozmycie \cite{Nauck-Hab}. Uzyskany w ten sposób rezultat zawierał mały zbiór reguł i przesłanek w poszczególnych regułach.

\subsubsection{System FuNN}
FuNN (ang. fuzzy neural network) \cite{B-Kasabov-FNN} jest w rzeczywistości ogólną ideą budowy systemów neuronowo-rozmytych, której wynikiem jest zbiorem różnych metod pozwalających na uczenie sieci neuronowej, przedstawiającej swoją strukturą zbiór reguł rozmytych. Interpretacja poszczególnych warstw sieci jest zbliżona do modelu ANFIS i odpowiadają one odpowiednio: warstwa pierwsza to warstwa wejściowa, druga odpowiada przesłankom reguł, trzecia tworzy reguły, czwarta nazywana jest warstwą akcji, a piąta to warstwa wyjściowa zwracająca wynik działania sieci. FuNN zakłada różne metody uczenia sieci, w tym poprzez  wsteczną propagację, algorytmy genetyczne oraz ewolucyjne. Część metod wchodzących w FuNN została opracowana do automatycznego procesu adaptacji zarówno parametrów, jak i typu użytych zbiorów rozmytych czy odpowiednich operatorów rozmytych \cite{Fu-Kasabov-MFselect}. Kolejnym etapem rozwoju sieci FuNN była idea Evolving FuNN, pozwalające m.in. na automatyczny dobór liczby reguł oraz uczenie inkrementacyjne (ang. on-line learning) bazujące na ogólnym procesie ramowym nazwanym ECOS (ang. evolving connectionist systemsn), dzięki czemu możliwe jest ciągłe douczanie modelu \cite{Fu-Kasabov-EFuNN}. 

\subsubsection{System FSM}
FSM (ang. feature space mapping) \cite{Fu-Duch-FSM1,Fu-Duch-FSM,Fu-Adamczak-PhD} jest algorytmem neuronowo-rozmytym opracowanym przez zespół R. Adamczak, W. Duch oraz G. Diercksen. Architektura sieci FSM jest zbliżona zarówno do sieci radialnych (RBF), jak i konstruktywistycznej sieć RAN (ang. resource allocating network) oraz sieci do wydobywania reguł o nazwie RecBFN (ang. rectangular basis functions network). Funkcja decyzyjna sieci FSM jest typu \reff{eq:FSM1}. 
\be
	FSM(\Bx)=C\left({\max\limits_j\left({G_j(\Bx;\Bp,\sigma)}\right)}\right)
	\label{eq:FSM1}
\ee
gdzie $\Bx$ jest wektorem wejściowym, $\Bp$ jest centrum funkcji radialnej, natomiast $\sigma$ to parametr określający jej szerokość, a $C(\cdot)$ jest funkcją zwracającą etykietę klasy. Bazuje ona jednak na separowalnych funkcjach bazowych \reff{eq:FSM2}. 
\be
G(\Bx;\Bp,\sigma)=\prod\limits_i G(x_i;p_i,\sigma_i)
\label{eq:FSM2}
\ee
Poprzez takie podejście uzyskano interpretację systemu jako zbioru reguł rozmytych, co powoduje, że algorytm ten można analizować jako sieć neuronowo-rozmytą.\\
 Algorytm FSM należy do grupy metod konstruktywistycznych, dzięki czemu liczba funkcji podobieństwa uzyskiwana jest w sposób automatyczny. Główną różnicą sieci FSM w stosunku do metod z rodziny RBF jest szeroka gama różnych funkcji podobieństwa, w tym trójkątnej, trapezoidalnej, Gaussowskiej, bicentralnej, itp. Model FSM uczony jest w oparciu o algorytm zbliżony do sieci RAN, jednak autorzy dokonali w nim modyfikacji mających na celu usprawnienie działania systemu. 

