Integracja systemów sztucznej inteligencji
Podstawową ideą integracji systemów sztucznej inteligencji jest zapewnienie interoperacyjności poszczególnych komponentów oprogramowania , takich jak syntezatory mowy , z innymi komponentami, takimi jak zdroworozsądkowe bazy wiedzy , w celu stworzenia większych, szerszych i wydajniejszych systemów AI. Główne metody, które zostały zaproponowane do integracji, to routing komunikatów lub protokoły komunikacyjne, za pomocą których komponenty oprogramowania komunikują się ze sobą, często za pośrednictwem pośredniczącego systemu tablicy .
Większość systemów sztucznej inteligencji obejmuje pewnego rodzaju zintegrowane technologie, na przykład integrację technologii syntezy mowy z technologią rozpoznawania mowy. Jednak w ostatnich latach nasila się dyskusja na temat znaczenia integracji systemów jako odrębnej dziedziny. Zwolennikami tego podejścia są badacze tacy jak Marvin Minsky , Aaron Sloman , Deb Roy , Kristinn R. Thórisson i Michael A. Arbib . Powodem, dla którego ostatnio zwraca się uwagę na integrację sztucznej inteligencji, jest to, że stworzono już wiele (stosunkowo) prostych systemów sztucznej inteligencji dla określonych dziedzin problemowych (takich jak widzenie komputerowe, synteza mowy itp.), a integracja tego , co już jest dostępne, jest bardziej logiczne podejście do szerszej sztucznej inteligencji niż budowanie monolitycznych systemów od podstaw.
Skupienie na integracji
Nacisk na integrację systemów, zwłaszcza w odniesieniu do podejść modułowych, wynika z faktu, że większość inteligencji o znacznej skali składa się z wielu procesów i/lub wykorzystuje multimodalne wejście i wyjście. Na przykład humanoidalny typ inteligencji powinien być w stanie mówić za pomocą syntezy mowy, słyszeć za pomocą rozpoznawania mowy, rozumieć za pomocą logicznego (lub innego niezdefiniowanego) mechanizmu i tak dalej. Aby stworzyć sztucznie inteligentne oprogramowanie o szerszej inteligencji, konieczna jest integracja tych modalności.
Wyzwania i rozwiązania
Współpraca jest integralną częścią rozwoju oprogramowania , o czym świadczy wielkość firm programistycznych i wielkość ich działów oprogramowania. Wśród narzędzi ułatwiających współpracę w zakresie oprogramowania znajdują się różne procedury i standardy, których programiści mogą przestrzegać, aby zapewnić jakość, niezawodność i kompatybilność ich oprogramowania z oprogramowaniem stworzonym przez innych (takich jak standardy W3C dotyczące tworzenia stron internetowych). Brakowało jednak współpracy w dziedzinie sztucznej inteligencji, w większości niewidocznej poza szanowanymi szkołami, wydziałami lub instytutami badawczymi (a czasem także poza nimi). Stawia to praktyków zajmujących się integracją systemów AI z poważnym problemem i często powoduje, że badacze AI muszą „ponownie wymyślać koło” za każdym razem, gdy chcą, aby określona funkcjonalność działała z ich oprogramowaniem. Jeszcze bardziej szkodliwy jest syndrom „nie wymyślono tutaj”, który przejawia się w silnej niechęci badaczy AI do bazowania na pracy innych.
Wynikiem tego w sztucznej inteligencji jest duży zestaw „wysp rozwiązań”: badania nad sztuczną inteligencją przyniosły wiele izolowanych komponentów oprogramowania i mechanizmów, które oddzielnie zajmują się różnymi częściami inteligencji. Aby wziąć kilka przykładów:
- Synteza mowy
- FreeTTS z CMU
- Rozpoznawanie mowy
- Sphinx z CMU
- Logiczne rozumowanie
- Otwórz Cyc z Cycorp
- Open Mind Common Sense Net z MIT
Wraz ze wzrostem popularności ruchu wolnego oprogramowania , wiele tworzonego oprogramowania, w tym systemy sztucznej inteligencji, jest dostępnych do użytku publicznego. Kolejnym naturalnym krokiem jest połączenie tych poszczególnych komponentów oprogramowania w spójne, inteligentne systemy o szerszym charakterze. Ponieważ społeczność stworzyła już wiele komponentów (które często służą temu samemu celowi), najbardziej dostępnym sposobem integracji jest zapewnienie każdemu z tych komponentów łatwego sposobu komunikowania się ze sobą. W ten sposób każdy komponent sam w sobie staje się modułem, który można następnie wypróbować w różnych ustawieniach i konfiguracjach większych architektur.
Istnieje wiele społeczności internetowych dla programistów sztucznej inteligencji, w których samouczki, przykłady i fora mają na celu pomóc zarówno początkującym, jak i ekspertom w budowaniu inteligentnych systemów. Jednak nielicznym społecznościom udało się spopularyzować pewien standard lub kodeks postępowania, aby umożliwić łatwą integrację dużego zbioru różnych systemów.
Metodologie
Konstrukcjonistyczna metodologia projektowania
Konstrukcjonistyczna metodologia projektowania (CDM lub „konstrukcjonistyczna sztuczna inteligencja”) to formalna metodologia zaproponowana w 2004 r. Do wykorzystania w rozwoju robotyki kognitywnej, komunikatywnych humanoidów i szerokich systemów sztucznej inteligencji. Tworzenie takich systemów wymaga integracji dużej liczby funkcjonalności, które muszą być starannie skoordynowane, aby osiągnąć spójne zachowanie systemu. CDM opiera się na iteracyjnych krokach projektowania, które prowadzą do stworzenia sieci nazwanych, oddziałujących na siebie modułów, komunikujących się za pośrednictwem jawnie wpisanych strumieni i dyskretnych komunikatów. Protokół komunikatów OpenAIR (patrz poniżej) został zainspirowany CDM i był często używany jako pomoc w rozwoju inteligentnych systemów wykorzystujących CDM.
Przykłady systemów zintegrowanych
- ASIMO , humanoidalny robot Hondy i QRIO , wersja humanoidalnego robota Sony.
- Cog , projekt humanoidalnego robota MIT pod kierownictwem Rodneya Brooksa .
- AIBO , pies-robot Sony, integruje wzrok, słuch i zdolności motoryczne.
- TOPIO , humanoidalny robot TOSY może grać w ping-ponga z człowiekiem
Zobacz też
- Inteligentny system hybrydowy , systemy łączące metody konwencjonalnej sztucznej inteligencji (lub GOFAI) i inteligencji obliczeniowej .
- Roboty humanoidalne intensywnie wykorzystują integrację systemów.
- Konstrukcjonistyczna metodologia projektowania
- Architektury kognitywne
Notatki
- Constructionist Design Methodology, opublikowane w czasopiśmie AI
- MissionEngine: Integracja wielu systemów przy użyciu Pythona w projekcie Tactical Language Project