Cybernetyka

Norbert Wiener
Norbert Wiener

Nauka zajmująca się sterowaniem, przesyłaniem i przetwarzaniem informacji w systemach technologicznych, biologicznych oraz społecznych.

Tak w 1948 r. cybernetykę zdefiniował Norbert Wiener w książce Cybernetyka, czyli sterowanie i komunikowanie w zwierzęciu i maszynie. Wiener był amerykańskim matematykiem badającym zagadnienia rachunku prawdopodobieństwa oraz analizy funkcjonalnej. Jest uznawany za twórcę cybernetyki.

Nauka ta zajmuje się odkrywaniem ogólnych praw, które są wspólne dla różnych dziedzin; umożliwia ich przenoszenie z jednej dziedziny do drugiej, a zatem znajduje wiele praktycznych zastosowań. W badaniach i analizie wykorzystuje matematykę, logikę formalną, a także nauki techniczne i społeczne. W miarę rozwoju komputerów pewne kierunki badań cybernetycznych zaczęto uważać za część informatyki. Dotyczy to między innymi symulacji komputerowych i sieci neuronowychsieć neuronowasieci neuronowych.

Teoria sterowania

Jednym z najważniejszych elementów cybernetyki jest teoria sterowania. Zajmuje się ona wywieraniem wpływu na określone zjawiska i procesy, tak aby osiągnąć pożądany rezultat.

Dobrym przykładem teorii sterowania może być jazda na deskorolce w sytuacji, gdy chcemy utrzymać stałą prędkość jazdy. Rozpatrywanym układem jest tu deskorolka, a wielkością wyjściową układu – osiągana prędkość. Możemy na nią wpływać, kontrolując siłę oraz częstotliwość odepchnięć od podłoża – jest to wielkość wejściowa układu. Dobierając odpowiednie parametry wejścia, wpływamy na wyjście układu, tak aby osiągnąć pożądany wynik, czyli stałą prędkość.

R1Q39o91eWJ2t
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.

Rozpatrywane układy mogą być mniej lub bardziej skomplikowane oraz rozbudowane. Jednym z bardziej zaawansowanych jest ekonomia. Układ tego typu opiera się na wielu wewnętrznych i zewnętrznych procesach oraz zmiennych, które na siebie stale oddziałują. Na stan tego układu może wpływać choćby rząd przez kontrolę zarobków i cen czy zastosowanie odpowiedniej polityki podatkowej.

Istnieje mnóstwo różnych sytuacji, w których można wykorzystać teorię sterowania, ponieważ jest ona bardzo uniwersalna. Kolejnym takim przykładem jest jej zastosowanie w biologii i medycynie, gdzie na przestrzeni ostatnich lat pojawia się wiele problemów optymalizacyjnych związanych z budową urządzeń wspomagających pracę układu krwionośnego czy nerwowego.

Maszyny inteligentne

Inspiracje dla różnego rodzaju rozwiązań stosowanych podczas projektowania maszyn inteligentnych są często  czerpane z otaczającego nas świata. Na przykład sposoby przystosowywania się organizmów żywych do warunków otoczenia oparte na mechanizmach ewolucji wykorzystuje się w algorytmach genetycznych, którym poświęcimy kilka następnych lekcji. Z kolei koncepcja sieci neuronowych wykorzystuje wiedzę o tym, w jaki sposób ludzki mózg przetwarza informacje. Natomiast analogii do procesu uczenia maszyn możemy szukać w metodzie stosowanej podczas szkolenia zwierząt – nagradza się je za zachowania pożądane.

Lingwistyka i jej osiągnięcia

Wiele wspólnego z cybernetyką ma także lingwistyka. Jest to nauka o uniwersalnych regułach budowy i struktury języków, badająca także ich konkretne funkcje. Podobnie jak cybernetyka, dyscyplina ta zajmuje się wyszukiwaniem analogii, schematów i zasad wspólnych dla różnych języków. Pozwala to na lepsze poznanie ich struktury, co ma duże znaczenie podczas tłumaczenia tekstów.

RG1YrzsJjsy7v
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.

Automatyczne tłumaczenie tekstów

Jednym z osiągnięć lingwistyki jest automatyczne tłumaczenie tekstów. To właśnie dzięki badaniom dotyczącym zasad, struktur i relacji funkcjonujących w językach mogły powstać programy, które tłumaczą tekst automatycznie.

Pierwsze próby automatycznego tłumaczenia podejmowano już w latach 30. ubiegłego stulecia. Rozwój technologiczny komputerów przyniósł większą wydajność obliczeniową, co pozwoliło na uruchomienie pierwszych tłumaczy maszynowych. Były one rozwijane oraz wykorzystywane głównie przez sektor zbrojeniowy.

Istnieje wiele mechanizmów automatycznego tłumaczenia tekstów. Każdy z nich ma wady i zalety, które wynikają zarówno z zasad działania, jak i ze szczegółów implementacji.

Tłumaczenie bezpośrednie

Tłumaczenie bezpośrednie jest najbardziej podstawową metodą tłumaczenia tekstów. Każde słowo jest tłumaczone wprost na odpowiednik w innym języku, dlatego jakość takiego przekładu jest mierna. Mechanizm ten warto stosować jedynie w przypadku języków blisko spokrewnionych.

Metoda ta jest najszybsza i najtańsza, ale niesie za sobą konkretne ryzyko. Jak wiadomo, każde słowo może mieć więcej niż jedno znaczenie w języku obcym. Program dokonuje wyboru tego, a nie innego wariantu na podstawie konkretnego kryterium, które wcale nie musi być poprawne w każdym wypadku.

Załóżmy, że chcemy przetłumaczyć na język polski następującą frazę z języka angielskiego: I love travelling”. Po bezpośrednim przetłumaczeniu każdego wyrazu z osobna program może zwrócić: „Ja miłość podróżowanie”, przy czym poprawne tłumaczenie brzmi: „Uwielbiam podróżować”.

Tłumaczenie składniowe

Tłumaczenie składniowe opiera się na analizie składniowej tekstu - dzięki temu zostają w przybliżeniu zachowane relacje między poszczególnymi wyrazami. Metoda ta daje lepsze wyniki niż tłumaczenie bezpośrednie.

Stosując ten typ tłumaczenia do przytoczonego wcześniej przykładu „I love travelling”, program najpierw powinien przeanalizować składnię – w tym wypadku podmiotem zdania jest zaimek osobowy „Ja”, natomiast orzeczeniem – czasownik „kochać”. Po zastosowaniu odpowiedniego zestawu reguł składniowych program mógłby zwrócić następujący wynik: „Ja kocham podróżowanie”.

Tłumaczenie semantyczne

Tłumaczenie semantyczne wykorzystuje analizę składniową tekstu, uwzględniając przy tym dodatkowo atrybuty znaczeniowe wyrazów. Mechanizm ten daje lepsze wyniki niż tłumaczenie składniowe, ale jest o wiele bardziej skomplikowany.

Dla zdania „I love travelling” proces tłumaczenia semantycznego na samym początku wykonuje analizę składniową zdania – tak samo jak w wypadku tłumaczenia składniowego. Następnie może zastosować odpowiednie reguły językowe biorące pod uwagę konstrukcję zdań z czasownikiem „kochać” i wówczas zwróci jako wynik: „Kocham podróżować”.

Tłumaczenie statystyczne

Tłumaczenie statystyczne wykorzystuje duże bazy tekstów przetłumaczonych przez człowieka, a więc jakość takiego przekładu jest zależna od zasobów tejże bazy. Wyszukiwane są tu najbardziej prawdopodobne tłumaczenia na podstawie współwystępowania wyrazów w zbiorach. Zaletą tego mechanizmu jest znacznie bardziej naturalne brzmienie przełożonego tekstu oraz prostsza implementacja programu w porównaniu z tłumaczeniami opartymi na regułach językowych.

Tłumaczenie oparte na przykładach

W przypadku tłumaczenia opartego na przykładach również korzysta się ze zbiorów tekstów przełożonych przez człowieka. Wyszukuje się w nich najbardziej podobne  zdanie i na jego podstawie wnioskuje, jak powinno wyglądać tłumaczenie.

Załóżmy, że w naszej bazie występują takie dwa zdania: „Uwielbiam podróżować” oraz „Nie potrafię gotować”. Wtedy opierając się na tych dwóch przykładach, nasz program byłby w stanie przetłumaczyć zdanie „Uwielbiam gotować” przez zamianę odpowiednich składowych obu zdań znajdujących się w bazie.

Słownik

sieć neuronowa
sieć neuronowa

ogólna nazwa struktury matematycznej i programowej, wykorzystująca do obliczeń rzędy elementów zwanych neuronami, które przekształcają dane wejściowe, wykonując podstawowe operacje matematyczne