Title: Soft Computing Author: Eva Volná, University of Ostrava, Czech Republic Název: Soft Computing Autor: Eva Volná, University of Ostrava, Czech Republic Soft computing se stal oficiální oblastí studia informatiky na počátku 90. let. Prof. Lotfi Aliasker Zadeh definoval soft computing jako řadu technik a metod, které řeší reálné situace stejným způsobem, jakým by je řešili lidé. V informatice je soft computing (někdy nazývaný výpočetní inteligence - Computational Intelligence CI) používán pro nepřesná řešení výpočetně náročných úkolů, jako je řešení NP-úplných problémů, pro které neexistuje žádný známý algoritmus, který by dokázal vypočítat přesná řešení v polynomiálním čase. Soft computing se liší od konvenčních výpočtů tím, že na rozdíl od nich je tolerantní k nepřesnosti, nejistotě, částečné pravdě a přiblížení. Modelem pro soft computing je ve skutečnosti lidská mysl. Soft computing tvoří základ značného množství metod strojového učení. Hlavní komponenty soft computingu jsou fuzzy logika, evoluční výpočty a neuronové sítě. Obecně řečeno, techniky soft computingu se podobají biologickým procesům více než tradičním technikám, které jsou zejména založeny na formálních logických systémech. Techniky soft computingu se vzájemně doplňují. Obliczenia miękkie (z ang. Soft Computing) stały się oficjalnym polem informatyki na początku lat 90-tych. Prof. Lotf Aliasker Zadeh zdefiniował soft computing jako serię technik i metod, które odnoszą się do rzeczywistych sytuacji w taki sam sposób jak ludzie. W informatyce miękkie obliczenia (zwane czasem CI inteligencją obliczeniową) są używane do nieprecyzyjnych rozwiązań wymagających zadań obliczeniowych, takich jak rozwiązywanie problemów NP-zupełnych, dla których nie ma znanego algorytmu, który mógłby obliczyć dokładne rozwiązania w czasie wielomianowym. Przetwarzanie miękkie różni się od konwencjonalnych obliczeń tym, że w przeciwieństwie do nich jest tolerancyjne w zakresie niedokładności, niepewności, częściowej prawdy i przybliżenia. Model miękkich obliczeń jest w rzeczywistości ludzkim umysłem. Miękkie przetwarzanie danych stanowi podstawę dużej liczby metod uczenia maszynowego. Głównymi komponentami soft computing są logika rozmyta, obliczenia ewolucyjne i sieci neuronowe. Ogólnie rzecz biorąc, miękkie techniki obliczeniowe są podobne bardziej do procesów biologicznych niż do tradycyjnych technik, zwłaszcza opartych na systemach logiki formalnej. Miękkie techniki komputerowe wzajemnie się uzupełniają. Fuzzy logika. Fuzzy logika je založena na teorii fuzzy množin, což je zobecnění klasické teorie množin. Klasická logika povoluje pouze závěry, které jsou buď pravdivé, nebo nepravdivé. Ve fuzzy logice mohou být pravdivostní hodnoty proměnných libovolná reálná čísla mezi 0 a 1 včetně. Proto je funkce příslušnosti prvku k fuzzy množině definována jako křivka, která určuje, jak je každý bod ve vstupním prostoru mapován na hodnotu mezi 0 a 1. Vstupní prostor je označován jako univerzum diskurzu. Univerzum diskurzu proměnné X je spojitý prostor a obvykle jej rozdělujeme do několika fuzzy množin. Tyto fuzzy množiny se nazývají jazykové proměnné, protože mají přiřazeny názvy, které odpovídají přídavným jménům objevujícím se v našem přirozeném jazyce, např. "velké", "střední" nebo "malé". Logika rozmyta. Logika rozmyta opiera się na teorii zbiorów rozmytych, która jest uogólnieniem klasycznej teorii zbiorów. Logika klasyczna dopuszcza jedynie wnioski prawdziwe lub fałszywe. W logice rozmytej wartościami logicznymi zmiennych mogą być dowolne liczby rzeczywiste od 0 do 1 włącznie. Dlatego funkcja rozmyta elementu jest definiowana jako krzywa określająca, w jaki sposób każdy punkt w przestrzeni wejściowej jest mapowany na wartość między 0 a 1. Przestrzeń wejściowa jest określana jako wszechświat dyskursu. Wszechświat dyskursu X jest przestrzenią ciągłą i zazwyczaj dzieli się na kilka zbiorów rozmytych. Te zbiory rozmyte nazywane są zmiennymi językowymi, ponieważ mają nazwy pasujące do przymiotników występujących w naszym języku naturalnym, takich jak „duży”, „środkowy” lub „mały”. Tvorba systému s fuzzy logikou probíhá ve čtyřech krocích: 1. Báze pravidel: Obsahuje množinu IF-THEN pravidel, které zahrnují jazykové proměnné. Tuto bázi navrhli experti v dané oblasti. 2. Fuzzifikace: Používá se k převodu vstupů, tj. přesných čísel, na fuzzy množiny. 3. Interference: Určuje odpovídající stupeň příslušnosti aktuálního vstupu k fuzzy množině s ohledem na každé pravidlo v bázi pravidel a rozhoduje o tom, která pravidla mají být dále použita. 4. Defuzzifikace: Používá se k převedení výsledné fuzzy množiny na reálnou hodnotu. Tworzenie systemu z logiką rozmytą odbywa się w czterech krokach: 1. Baza reguł: Zawiera zestaw reguł IF-THEN, które zawierają zmienne językowe. Ta baza została zaprojektowana przez ekspertów z dziedziny dla jakiej tworzony jest system. 2. Fuzzification: Służy do konwersji danych wejściowych, tj. Dokładnych liczb, na zbiory rozmyte. 3. Interferencja: Określa odpowiedni stopień przynależności bieżącego wejścia do zbioru rozmytego w odniesieniu do każdej reguły w bazie reguł i decyduje, które reguły należy zastosować. 4. Defuzyfikacja: Służy do konwersji wynikowego zbioru rozmytego na wartość rzeczywistą. Evoluční výpočty. Evoluční techniky patří do rodiny algoritmů pro globální optimalizaci inspirovaných biologickou evolucí. Z technického hlediska se jedná o stochastické optimalizační algoritmy založené na populacích. V evolučním výpočtu je počáteční populace kandidátských řešení náhodně generována a iterativně aktualizována. Každá nová generace se vytváří stochasticky odstraňováním méně žádaných řešení a přijímáním malých náhodných změn. V biologické terminologii populace podléhá přirozenému výběru (nebo umělé selekci) a mutaci. V důsledku toho se populace postupně vyvíjí, aby se zvýšila vhodnost (fitness) svých řešení. Evoluční výpočetní techniky mohou nalézt optimální řešení pro široké spektrum problémů, což je v informatice činí oblíbeným nástrojem. Obliczenia ewolucyjne. Techniki ewolucyjne należą do rodziny globalnych algorytmów optymalizacji inspirowanych ewolucją biologiczną. Z technicznego punktu widzenia są to stochastyczne algorytmy optymalizacji oparte na populacji. W obliczeniach ewolucyjnych początkowa populacja rozwiązań kandydujących jest generowana losowo i aktualizowana iteracyjnie. Każda nowa generacja jest tworzona stochastycznie przez usuwanie mniej pożądanych rozwiązań i akceptowanie małych losowych zmian. W terminologii biologicznej populacja podlega selekcji naturalnej (lub sztucznej selekcji) i mutacji. W rezultacie populacja stopniowo ewoluuje, aby zwiększyć przydatność swoich rozwiązań. Obliczenia ewolucyjne mogą znaleźć optymalne rozwiązanie dla szerokiego zakresu problemów, co czyni je popularnym narzędziem w informatyce. Evoluční výpočet pracuje v následujících krocích: 1. Otestujte každý chromozom v populaci, abyste zjistili, jak je při řešení problému dobrý a podle toho mu přiřaďte fitness hodnotu. 2. Vyberte dva jedince z aktuální populace. Možnost výběru je úměrná hodnotě fitness každého chromozómů. 3. Aplikujte operátor křížení v závislosti na pravděpodobnosti operace křížení. 4. Aplikujte operátor mutace v závislosti na pravděpodobnosti operace mutace Opakujte kroky 2, 3, 4, dokud nebude vytvořena nová populace. Obliczenia ewolucyjne działają w następujących krokach: 1. Przetestuj każdy chromosom w populacji, aby zobaczyć, jak dobrze radzi sobie z problemem i odpowiednio przypisz mu wartość sprawności. 2. Wybierz dwa osobniki z bieżącej populacji. Wybór powinien być proporcjonalny do wartości sprawności każdego chromosomu. 3. Zastosuj operator przecięcia w zależności od prawdopodobieństwa operacji przecięcia. 4. Zastosuj operator mutacji w zależności od prawdopodobieństwa operacji mutacji Powtarzaj kroki 2, 3, 4 aż do utworzenia nowej populacji. Umělé neuronové sítě. Umělé neuronové sítě jsou výpočetní systémy inspirované biologickými neuronovými sítěmi. Neuronová síť sama o sobě není algoritmem, nýbrž rámcem pro mnoho různých algoritmů z oblasti strojové učení, které společně pracují a zpracovávají složité datové vstupy. Tyto systémy se "učí" vykonávat úkoly na základě předkládaných příkladů, aniž by byly naprogramovány podle specifických pravidel. Umělá neuronová síť obsahuje uzly nazývané umělé neurony, které volně modelují neurony v biologickém mozku. Každé spojení mezi neurony, stejně jako synapse v biologickém mozku, může přenášet signál z jednoho neuronu do druhého. Neuron, který přijímá signál, jej dokáže zpracovat a poté poslat dalším neuronům, s nímž jsou spojeny. Sztuczne sieci neuronowe. Sztuczne sieci neuronowe są systemami obliczeniowymi inspirowanymi biologicznymi sieciami neuronowymi. Sama sieć neuronowa nie jest algorytmem, ale ramą dla wielu różnych algorytmów uczenia maszynowego, które współpracują ze sobą i przetwarzają złożone dane wejściowe. Systemy te „uczą się” wykonywać zadania w oparciu o niniejsze przykłady bez programowania zgodnie z określonymi zasadami. Sztuczna sieć neuronowa zawiera węzły zwane sztucznymi neuronami, które swobodnie modelują neurony w mózgu biologicznym. Każde połączenie między neuronami, jak również synapsami w mózgu biologicznym, może przesyłać sygnał z jednego neuronu do drugiego. Neuron odbierający sygnał może go przetworzyć, a następnie wysłać do innych neuronów, z którymi jest połączony. V běžných implementacích je signál na spojeních mezi neurony reálné číslo a výstup z každého umělého neuronu je vypočítán podle některé nelineární funkce ze součtu jeho vážených vstupů. Spojení mezi neurony mají přiřazenou váhovou hodnotu, která se přizpůsobuje učením. Neurony jsou typicky uspořádány do vrstev. Signály se pohybují od první vrstvy (vstupní vrstvy) až po poslední vrstvu (výstupní vrstva). Původním cílem umělých neuronových sítí bylo řešit problémy stejným způsobem, jakým by je řešil lidský mozek. V průběhu času se však pozornost přesunula na řešení specifických úkolů, což vedlo k odklonu od biologie. Umělé neuronové sítě byly použity na řešení úloh z oblasti počítačového vidění, rozpoznávání řeči, strojového překladu, extrakci šumu, hraní her a videoher a lékařské diagnostiky atd. W typowych implementacjach sygnał na połączeniach między neuronami jest liczbą rzeczywistą, a wyjście z każdego sztucznego neuronu jest obliczane przez pewną funkcję nieliniową z sumy jego ważonych wejść. Połączenia neuronowe mają przypisaną wartość wagi, która dostosowuje się do uczenia się. Neurony są zazwyczaj ułożone w warstwy. Sygnały przesuwają się z pierwszej warstwy (warstwy wejściowej) do ostatniej warstwy (warstwy wyjściowej). Pierwotnym celem sztucznych sieci neuronowych było rozwiązywanie problemów w taki sam sposób, w jaki byłyby rozwiązywane przez ludzki mózg. Jednak z czasem uwaga przesunęła się na rozwiązywanie konkretnych problemów, prowadząc do odejścia od biologii. Sztuczne sieci neuronowe zostały wykorzystane do rozwiązania wizualizacji komputerowej, rozpoznawania mowy, tłumaczenia maszynowego, ekstrakcji szumu , gier i gier wideo oraz diagnostyki medycznej itp. Title: Soft Computing Author: Eva Volná, University of Ostrava, Czech Republic Soft computing became a formal area of study in computer science in the early 1990s. Prof. Lotfi Aliasker Zadeh has defined soft computing as a number of techniques and methods that deal with real-world situations in the same way that people deal with them. In computer science, soft computing (sometimes referred to as Computational Intelligence - CI) is the use of inexact solutions to computationally hard tasks such as the solution of NP-complete problems, for which there is no known algorithm that can compute an exact solution in polynomial time. Soft computing differs from conventional computing in that, unlike hard computing, it is tolerant of imprecision, uncertainty, partial truth, and approximation. In effect the role model for soft computing is the human mind. Soft computing forms the basis of a considerable amount of machine learning techniques. The principal constituents of soft computing are fuzzy logic, evolutionary computation, and neural networks. Generally speaking, soft computing techniques resemble biological processes more closely than traditional techniques, which are largely based on formal logical systems. Soft computing techniques are intended to complement each other. Fuzzy logic. Fuzzy logic is based on the theory of fuzzy sets, which is a generalization of the classical set theory. Classical logic only permits conclusions which are either true or false. In fuzzy logic the truth values of variables may be any real number between 0 and 1 inclusive. Therefore, the membership function is a curve that defines how each point in the input space is mapped to a membership value between 0 and 1. The input space is referred to as the universe of discourse. The universe of discourse X is a continuous space, we usually partition X into several fuzzy sets. These fuzzy sets, which usually carry names that conform to adjectives appearing in our daily linguistic usage, such as "large", "medium" or "small" are called linguistic variables. Creating a system with fuzzy logic contains four steps: 1. Rule base: It contains the set of IF-THEN rules provided by the experts to govern the decision making system, on the basis of linguistic information. 2. Fuzzification: It is used to convert inputs i.e. crisp numbers into fuzzy sets. 3. Inference engine: It determines the matching degree of the current fuzzy input with respect to each rule and decides which rules from the rule base are to be fired according to the input field. 4. Defuzzification: It is used to convert the fuzzy sets obtained by inference engine into a crisp value. Evolutionary computation. In computer science, evolutionary computation is a family of algorithms for global optimization inspired by biological evolution. In technical terms, they are a family of population-based trial and error problem solvers with a metaheuristic or stochastic optimization character. In evolutionary computation, an initial set of candidate solutions is generated and iteratively updated. Each new generation is produced by stochastically removing less desired solutions, and introducing small random changes. In biological terminology, a population of solutions is subjected to natural selection (or artificial selection) and mutation. As a result, the population will gradually evolve to increase in fitness, in this case the chosen fitness function of the algorithm. Evolutionary computation techniques can produce highly optimized solutions in a wide range of problem settings, making them popular in computer science. Evolutionary computation proceeds in the following steps: 1. Test each chromosome to see how good it is at solving the problem at hand and assign a fitness score accordingly. The fitness score is a measure of how good that chromosome is at solving the problem to hand. 2. Select two members from the current population. The chance of being selected is proportional to the chromosomes fitness. Roulette wheel selection is a commonly used method. 3. Dependent on the crossover rate crossover the bits from each chosen chromosome at a randomly chosen point. 4. Step through the chosen chromosomes bits and flip dependent on the mutation rate. Repeat step 2, 3, 4 until a new population has been created. Artificial neural networks. Artificial neural networks are computing systems inspired by the biological neural networks. The neural network itself is not an algorithm, but rather a framework for many different machine learning algorithms to work together and process complex data inputs. Such systems "learn" to perform tasks by considering examples, generally without being programmed with any task-specific rules. An artificial neural network is based on a collection of connected units or nodes called artificial neurons, which loosely model the neurons in a biological brain. Each connection, like the synapses in a biological brain, can transmit a signal from one artificial neuron to another. An artificial neuron that receives a signal can process it and then signal additional artificial neurons connected to it. In common implementations, the signal at a connection between artificial neurons are a real number, and the output of each artificial neuron is computed by some non-linear function of the sum of its inputs. Artificial neurons and edges typically have a weight that adjusts as learning proceeds. Typically, artificial neurons are aggregated into layers. Signals travel from the first layer (the input layer), to the last layer (the output layer). The original goal of the ANN approach was to solve problems in the same way that a human brain would. However, over time, attention moved to performing specific tasks, leading to deviations from biology. Artificial neural networks have been used on a variety of tasks, including computer vision, speech recognition, machine translation, noise filtering, playing board and video games and medical diagnosis etc.