Sztuczna inteligencja a klasyczne programowanie algorytmiczne

W stronę Sztucznej Inteligencji od klasycznego programowania algorytmicznego

Anthony Quattrone, PhD 30 kwietnia 2022

Postępy w sztucznej inteligencji pozwoliły na wydajne rozwiązywanie złożonych problemów obliczeniowych, które wcześniej były trudne, nieprzewidywalne lub mocno kombinatoryczne. Problemy te obejmują rozpoznawanie twarzy, wykrywanie obiektów, planowanie tras i wysoce spersonalizowane systemy rekomendacji online.

Wyzwaniem dla organizacji w perspektywie przyszłości jest to, aby decydenci strategiczni dokonali wyboru między tradycyjnymi podejściami klasycznymi a podejściami opartymi na sztucznej inteligencji w rozwiązywaniu złożonych problemów obliczeniowych. Każda z metod ma unikalne wyzwania w dostarczaniu solidnego systemu w wymiarach dokładności, kosztów, trudności wdrożenia i łatwości utrzymania.

Klasyczne algorytmiczne podejście programistyczne do rozwiązywania problemów

Klasyczny paradygmat programowania polega na rozwiązywaniu problemów za pomocą algorytmów preskryptywnych i wykorzystaniu dobrze zdefiniowanej sekwencji instrukcji. Dane wejściowe są definiowane i ograniczane, a algorytmy przetwarzające dane wejściowe poprzez zdefiniowane paradygmaty programowania (proceduralne, obiektowe, funkcyjne i logiczne) w celu uzyskania wyników są opracowywane.

Odkrywanie algorytmów rozwiązywania problemów wydajnych czasowo i przestrzennie jest notorycznie trudne. W teorii złożoności obliczeniowej problemy to albo P (wielomianowe), NP (niedeterministyczne wielomianowe), NP-zupełne albo NP-trudne. Problemy wielomianowe można szybko rozwiązać i zweryfikować, podczas gdy problemów niewielomianowych nie można. Problemy NP są trudne do rozwiązania za pomocą klasycznych podejść algorytmicznych.

Przykładem problemu P jest znalezienie najkrótszej ścieżki między dwoma punktami, podczas gdy przykładem problemu NP jest problem komiwojażera, w którym, mając serię lokalizacji, należy ustalić optymalną ścieżkę odwiedzenia wszystkich miejsc, pokonując najkrótszy możliwy dystans. Zdarza się, że wiele problemów, które obecnie wymagają rozwiązania obliczeniowego, należy do kategorii NP. W większości przypadków, do celów praktycznych, rozwiązanie przybliżone jest często wystarczające. W codziennym życiu ludzie zawsze wymyślają rozwiązania przybliżone, np. w nawigacji.

Istnieją wyzwania wdrożeniowe w rozwiązywaniu problemów w klasycznym paradygmacie algorytmicznym w wydajny sposób. Złożoność algorytmiczna to gałąź informatyki, która zajmuje się tym, jak wydajnie działają algorytmy w dziedzinach czasowych (złożoność czasowa) i przestrzennych (złożoność przestrzenna).

Chociaż istnieje wiele różnych sposobów implementacji algorytmów, oczywisty, ale potencjalnie nieefektywny sposób implementacji algorytmu jest często określany jako algorytm „naiwny”. Większość wydajnych algorytmów nie jest łatwa do odkrycia, a informatycy pracują od wielu lat, aby znaleźć najlepsze algorytmy do rozwiązywania klas problemów. Algorytmy w systemach produkcyjnych są wdrażane w sposób efektywny czasowo i przestrzennie. Największe firmy programistyczne zapewniają najwyższe standardy algorytmiczne poprzez programowanie w parach, podobne do recenzji naukowej. Wdrożenie algorytmów w sposób efektywny wymaga wielu lat szkoleń i wysokiego stopnia umiejętności.

W sensie praktycznym, choć techniki programowania ewoluowały, a popularność języków programowania (np. C, C++, Java, JavaScript, PHP, Python) ulegała zmianom, podstawy pozostały te same od czasu, gdy w laboratoriach Bell Labs w latach 70. XX wieku napisano pierwsze moduły w języku C. Istnieją praktyczne sposoby, aby teoretycznie trudne problemy działały w produkcji, takie jak korzystanie z systemów rozproszonych. Zaawansowane podejścia wiążą się z wyższymi kosztami i wykraczają poza możliwości wszystkich poza najbardziej zaawansowanymi technologicznie organizacjami.

Biorąc pod uwagę złożoność klasycznych algorytmicznych podejść programistycznych, organizacje od dawna mają trudności z budowaniem skutecznych zespołów do tworzenia takich systemów wewnętrznie. Ponadto wiele z nich miało również problem ze znalezieniem zewnętrznych dostawców do rozwiązywania niszowych wyzwań, które teoretycznie można wdrożyć. Projektowanie konkretnego algorytmu staje się znacznie bardziej złożone wraz ze wzrostem złożoności problemu. Dotyczy to w szczególności problemów wielowymiarowych. Najlepiej stosować klasyczne podejścia algorytmiczne w sytuacjach, w których algorytm może szybko rozwiązać problem i działa w większości przypadków.

Podejście AI do rozwiązywania problemów

Paradygmat sztucznej inteligencji próbował rozwiązywać problemy ogólnie, wprowadzając do systemu dane wejściowe i pożądane wyniki, pozwalając systemowi nauczyć się, jak rozwiązywać problemy. Obecne podejścia AI działają na komputerach klasycznych za pomocą klasycznych technik programowania. Najbardziej ekscytujące metody AI to sieci neuronowe i uczenie ze wzmocnieniem.

Sztuczne sieci neuronowe wykorzystują ludzkie rozumienie tego, jak ludzki umysł uczy się i uogólnia problemy. Uczenie ze wzmocnieniem wykorzystuje agentów, do których wprowadza się stan docelowy i serię scenariuszy. Algorytm uczenia się zachowuje preferowane wyniki i odrzuca niekorzystne wyniki po wielu iteracjach. Uczenie ze wzmocnieniem jest analogiczne do warunkowania sprawczego. Agent uczy się, jak osiągnąć cel po wielu iteracjach treningowych.

Wymogiem dla trenowania rozwiązań sztucznej inteligencji jest albo dobrze zdefiniowany, rozległy zbiór danych, zwykle kompilowany przy użyciu kombinacji różnych magazynów danych lub crowdsourcingu, albo system może uczyć się osiągać stan celu poprzez serię iteracji. Przykładem tego jest system grający w grę sam ze sobą, np. w szachy lub Go, aby dalej uczyć się, jak rozwijać strategie w celu poprawy wyników. Sztuczne sieci i uczenie ze wzmocnieniem są uruchamiane na scenariuszach, dla których nie są trenowane, i oceniane podobnie jak inne podejścia do uczenia maszynowego. Podejścia te dobrze uogólniają i zapewniają wydajne rozwiązania dla danej klasy problemów. Rozwiązania oparte na sztucznej inteligencji nadają się do problemów, których nie można łatwo zdefiniować za pomocą sekwencji instrukcji; zamiast tego wymagają więcej „intuicji” i ocen wartościujących.

Zazwyczaj systemy Sztucznej Inteligencji są trenowane przy użyciu zestawów danych, a następnie oceniane na zestawie ewaluacyjnym. Im więcej wysokiej jakości danych treningowych wprowadzonych do systemu AI, tym większe prawdopodobieństwo, że system będzie działał na wysokim poziomie. Korzyścią z podejść AI jest to, że mogą one stale się poprawiać w miarę upływu czasu, gdy system uczy się więcej. W ten sposób złożone problemy mogą być uogólnione i rozwiązane przez systemy komputerowe. Obejmują one problemy tradycyjnie rozwiązywane przez człowieka, choć wąska AI może być postrzegana jako uzupełnienie istniejących nakładów ludzkich w celu zapewnienia lepszych rezultatów.

Sztuczna inteligencja i uczenie maszynowe były od dawna ostrożnie postrzegane przez organizacje ze względu na brak w takich systemach możliwości śledzenia i determinacji sposobu ich reagowania na przypadki użycia. Zatem AI może działać w rzadkich okolicznościach i reagować nieprzewidywalnie, gdy się tego najmniej spodziewamy. Dlatego ważne jest, aby mieć jasno zdefiniowane przypadki użycia, kiedy AI ma być stosowana, jakie poziomy błędów są akceptowane i jak wyniki generowane przez systemy AI będą weryfikowane przez człowieka w celu zapewnienia dokładności.

Ogólnie rzecz biorąc, przewidujemy, że lepsza dokładność, jaką przyniosą systemy AI, w połączeniu z wydajnością uzyskaną dzięki wspomaganiu ludzkich działań, będzie stanowić zbyt duży bodziec finansowy, aby wiele organizacji mogło go zignorować w nadchodzących latach; systemy AI staną się wszechobecne.

Kiedy wybrać sztuczną inteligencję, a kiedy klasyczne podejście programowania algorytmicznego do rozwiązywania problemów

Chociaż nie ma sztywnych i szybkich zasad, kiedy używać którego podejścia, jako ogólną regułę można przyjąć, że problemy wymagające przybliżonych rozwiązań i obejmujące zorientowane na cel długoterminowe planowanie, złożone rozpoznawanie wzorców i przetwarzanie wielu zmiennych są bardziej odpowiednie dla AI. Klasyczne podejścia algorytmiczne lepiej nadają się do rozwiązań dokładnych lub bliskich optymalnym, które obejmują złożoną logikę i obliczenia.

Wybór właściwego podejścia może przynieść Twojej organizacji znaczne korzyści, podczas gdy wybór mniej optymalnej metody może prowadzić do poważnych strat kapitałowych, ponieważ projekty technologiczne są kosztowne. Często wybór sprawdzonych i wykonalnych systemów, takich jak Telemus AI™, może pomóc organizacjom w zapewnieniu sukcesu w ich cyfrowej transformacji opartej na Sztucznej Inteligencji.

Skontaktuj się z nami już dziś, aby uzyskać bezpłatną konsultację na temat tego, jak Telemus AI™ może zostać zintegrowane z Twoją organizacją.