Zanurz się w świecie sztucznej inteligencji
Cele edukacyjne
Po przyswojeniu tej treści z łatwością:
• Rozjaśnisz podstawowe idee stojące za sztuczną inteligencją.
• Wskazujesz problemy, które sprawiają, że trudno jednoznacznie określić sztuczną inteligencję.
• Przedstawisz różnorodne zadania, które sztuczna inteligencja może podjąć.
• Sformułujesz, czym jest sztuczna inteligencja.
Krok w stronę mistrzostwa w dziedzinie sztucznej inteligencji
Nie od dziś sztuczna inteligencja (AI) pobudza wyobraźnię opowiadaczy historii i miłośników futurystycznych wizji. Dla wielu pojęcie AI było odległą, abstrakcyjną koncepcją. Ale pasjonaci technologii nie stali bezczynnie. Ich wysiłki przekształciły marzenie w rzeczywistość. Teraz, dla wielu, żyjemy w czasach, gdy AI nie jest już tylko marzeniem.
Trudno przewidzieć, jak głęboki wpływ sztuczna inteligencja wywrze na naszą codzienność. Ale aby prowadzić wartościowe dyskusje na temat AI, potrzebujemy języka, który wszyscy zrozumieją i podstawowych idei, na których możemy się opierać. Gdybyś zapytał dziesięć osób, co to jest sztuczna inteligencja, prawdopodobnie dostaniesz dziesięć różnych odpowiedzi. W tej lekcji chcemy zbliżyć się do spójnego pojęcia AI, analizując jej obecne zastosowania i potencjał.
Zrozumienie i definicja AI
Pierwszym krokiem w zrozumieniu sztucznej inteligencji jest uwzględnienie, że nasze postrzeganie AI może być nieco zakrzywione. Literatura i kino pełne są wizji AI jako zagrożenia dla ludzkości. Ale problemem jest też to, jak my, ludzie, widzimy siebie w odniesieniu do AI. Istnieje wiele form inteligencji wśród zwierząt, od korzystania z narzędzi przez kruki po zdolności rozwiązywania problemów przez ośmiornice. Ludzka inteligencja także ma różne odcienie: od matematycznych geniuszy po ludzi o niesamowitej empatii. Musimy pamiętać, że AI również ma wiele form i specjalizacji. Główne obszary zastosowań sztucznej inteligencji Obecnie nie istnieje uniwersalna sztuczna inteligencja, która doskonale radzi sobie we wszystkim. Mamy różne systemy AI specjalizujące się w konkretnych dziedzinach. Możemy je podzielić na kilka głównych kategorii:
Przewidywania numeryczne:
Kiedy ostatnio sprawdzałeś prognozę pogody? AI potrafi przewidywać pogodę z niezwykłą precyzją, ale jej zdolności przewidywania nie kończą się na tym.
Klasyfikacje: Klasyfikacja danych to podstawowa zdolność, od identyfikacji potencjalnie szkodliwych wiadomości e-mail po diagnozowanie chorób.
Nawigacja zrobotyzowana: Autonomiczne pojazdy są tylko jednym z przykładów, jak AI może przewodzić w nawigacji w rzeczywistym świecie.
Przetwarzanie języka naturalnego (NLP): NLP pozwala AI na komunikację w sposób, który jest zrozumiały dla ludzi.
Sztuczna inteligencja to nic innego jak zdolność maszyn do naśladowania ludzkich zdolności myślowych. Obecnie te zdolności są wyspecjalizowane i różnorodne. Teraz, gdy masz pewne pojęcie o AI, jesteś gotowy, aby zgłębić tajniki jej tworzenia.
Ilustracje stworzone przez sztuczną inteligencję w DreamStudio w stability.ai Pierwszy obraz przedstawia "komiksowy rysunek osoby z maszyną do pisania".
Drugi obraz ukazuje salę wykładową z narysowanym diagramem sieci neuronowej i studentem przy komputerze.
Transformacja danych w innowacyjne modele:
Nowa era uczenia maszynowego
Cele edukacyjne
Gdy zakończysz lekturę tego rozdziału, osiągniesz:
Głębokie zrozumienie różnicy pomiędzy algorytmami tworzonymi ręcznie a modelami opartymi na uczeniu maszynowym.
Umiejętność definiowania (uczenie maszynowe) w kontekście bardziej wszechstronnej dziedziny, jaką jest sztuczna inteligencja.
Wiedzę na temat różnorodności danych i ich roli w kreowaniu efektywnych modeli uczenia maszynowego.
Często, myśląc o sztucznej inteligencji, wyobrażamy sobie futurystyczne scenariusze rodem z ekranów kinowych. Ale rzeczywistość jest bardziej fascynująca. Kluczem do mocy AI są dane, zaawansowane technologie obliczeniowe i innowacyjne algorytmy.
Tradycyjne metody programowania opierają się na ustalonych regułach i instrukcjach. Jednak w świecie pełnym skomplikowanych wzorców i zmieniających się zmiennych, takie podejście jest niewystarczające. Uczenie maszynowe przejmuje pałeczkę, ucząc się z dostępnych danych i adaptując się dynamicznie, podobnie jak ludzki mózg uczy się z doświadczeń.
Przejście od rzemiosła do treningu
Przez dziesięciolecia programiści pisali kod, który pobiera dane wejściowe, przetwarza je za pomocą zestawu reguł i zwraca dane wyjściowe. Oto przykład, jak znaleźć średnią z zestawu liczb:
Wejście: 5, 7, 2, 9
Proces: Dodaj wartości [5 + 7 + 2 + 9], a następnie podziel przez liczbę wejść [4]
Wyjście: 6
Ten prosty zestaw reguł przekształcania danych wejściowych w dane wyjściowe jest przykładem algorytmu. Algorytmy zostały napisane do wykonywania dość zaawansowanych zadań. Jednak niektóre zadania mają tak wiele reguł (i wyjątków), że niemożliwe jest uchwycenie ich wszystkich w ręcznie stworzonym algorytmie. Pływanie jest dobrym przykładem zadania, które trudno ująć w zestaw zasad. Możesz uzyskać poradę przed skokiem do basenu, ale tak naprawdę dowiesz się, co działa, tylko wtedy, gdy spróbujesz utrzymać głowę nad wodą. Niektórych rzeczy najlepiej nauczyć się z doświadczenia.
Co by było, gdybyśmy mogli wyszkolić komputer w ten sam sposób? Nie wrzucając go do basenu, ale pozwalając mu dowiedzieć się, co działa, aby odnieść sukces w zadaniu? Jednak tak jak nauka pływania bardzo różni się od nauki mówienia w języku obcym, rodzaj treningu zależy od zadania. Sprawdźmy kilka sposobów szkolenia sztucznej inteligencji.
Wymagane doświadczenie
Weźmy na przykład prognozowanie pogody. Początkowo opieraliśmy się na prostych obserwacjach, ale z biegiem czasu, korzystając z danych historycznych i nowoczesnych technologii, nasze prognozy stają się coraz bardziej dokładne.
Wyobraź sobie, że za każdym razem, gdy idziesz do sklepu po mleko, śledzisz szczegóły podróży w arkuszu kalkulacyjnym. To może wydawać się dziwne, ale załóżmy, że tak robisz. Skonfiguruj następujące kolumny:
Czy to weekend?
Pora dnia
Czy pada deszcz?
Odległość do sklepu
Całkowita liczba minut podróży
Znaczenie odpowiednich danych w uczeniu maszynowym
Dane to paliwo dla algorytmów uczenia maszynowego. W zależności od zadania możemy korzystać z danych ustrukturyzowanych, takich jak bazy danych, lub nieustrukturyzowanych, takich jak obrazy czy dźwięki. Kluczem jest dobranie odpowiednich danych do odpowiedniego problemu.
Podczas gdy dane ustrukturyzowane są łatwo dostępne i zorganizowane, dane nieustrukturyzowane oferują bogatszy wgląd w skomplikowane wzorce. Wykorzystując oba typy danych, możemy tworzyć modele o niezwykłej precyzji i głębokości.
Po kilku podróżach zaczynasz czuć, jak warunki wpływają na to, jak długo to potrwa. Deszcz wydłuża jazdę, ale oznacza również, że mniej osób robi zakupy. Twój mózg tworzy połączenia między wejściami (weekend [W], czas [T], deszcz [R], odległość [D]) i wyjście (minuty [M]).
Ale w jaki sposób możemy sprawić, by komputer zauważył trendy w danych, aby mógł również oszacować? Jednym ze sposobów jest metoda zgadywania i sprawdzania. Oto jak to zrobić.
Krok 1: Przypisz wszystkim swoim wejściom "wagę". Jest to liczba, która pokazuje, jak silnie dane wejściowe powinny wpływać na dane wyjściowe. Można zacząć od tej samej wagi dla wszystkiego.
Krok 2: Użyj wag z istniejącymi danymi (i sprytną matematyką, której nie będziemy tutaj omawiać), aby oszacować minuty na bieg mleczny. Możemy porównać szacunki z danymi historycznymi. To będzie daleko, ale to jest w porządku.
Krok 3: Niech komputer odgadnie nową wagę dla każdego wejścia, czyniąc niektóre nieco ważniejszymi od innych. Na przykład pora dnia może być ważniejsza niż to, czy pada deszcz, czy nie.
Krok 4: Uruchom ponownie obliczenia, aby sprawdzić, czy nowe wagi dają lepsze oszacowanie. Jeśli tak, oznacza to, że ciężarki są lepiej dopasowane i zmieniają się we właściwym kierunku.
Krok 5: Powtórz kroki 3 i 4, pozwalając komputerowi dostosowywać wagi, aż jego szacunki nie będą lepsze.
W tym momencie komputer ustalił wagi dla każdego wejścia. Jeśli waga jest traktowana jako to, jak silnie dane wejściowe są podłączone do wyjścia, można utworzyć diagram wykorzystujący grubość linii do przedstawienia grubości połączenia.
W tym przykładzie wygląda na to, że pora dnia ma najsilniejszy związek, ale najwyraźniej deszcz nie robi dużej różnicy.
Ten proces zgadywania i sprawdzania stworzył model naszych serii mleka. I jak model łodzi, możemy zabrać go do basenu, aby zobaczyć, czy pływa, że tak powiem. Oznacza to przetestowanie go w prawdziwym świecie. Tak więc w przypadku następnych kilku biegów mlecznych, zanim wyjdziesz, poproś model, aby oszacował, ile czasu to zajmie. Jeśli jest to wystarczająco dobre kilka razy z rzędu, możesz śmiało pozwolić mu oszacować każdą przyszłą podróż.
Używaj właściwych danych do właściwej pracy
Jest to bardzo prosty przykład wykorzystania szkolenia do stworzenia modelu AI, ale dotyka kilku ważnych pomysłów. Po pierwsze, jest to przykład uczenia maszynowego (ML), które jest procesem wykorzystywania dużych ilości danych do trenowania modelu do przewidywania, zamiast ręcznego tworzenia algorytmu.
Po drugie, nie wszystkie dane są takie same. W naszym przykładzie z mlekiem arkusz kalkulacyjny jest tym, co nazwalibyśmy danymi strukturalnymi. Jest dobrze zorganizowany, z etykietami na każdej kolumnie, dzięki czemu znasz znaczenie każdej komórki. Natomiast dane nieustrukturyzowane byłyby czymś w rodzaju artykułu z wiadomościami lub pliku obrazu bez etykiety. Rodzaj dostępnych danych wpłynie na rodzaj szkolenia, które możesz wykonać.
Po trzecie, ustrukturyzowane dane z naszego arkusza kalkulacyjnego umożliwiają komputerom nadzorowane uczenie się. Jest to uważane za nadzorowane, ponieważ możemy upewnić się, że każdy element danych wejściowych ma dopasowany, oczekiwany wynik, który możemy zweryfikować. I odwrotnie, dane nieustrukturyzowane są wykorzystywane do uczenia się bez nadzoru, czyli wtedy, gdy sztuczna inteligencja próbuje znaleźć połączenia w danych, nie wiedząc, czego szuka.
Pozwolenie komputerowi na ustalenie jednego ciężaru dla każdego wejścia to tylko jeden rodzaj pułku treningowego. Ale często połączone systemy są bardziej skomplikowane niż to, co może reprezentować ważenie 1 do 1. Na szczęście, jak dowiesz się w następnej jednostce, istnieją inne sposoby treningu!
Podsumowanie
Uczenie maszynowe oznacza przejście od statycznych, ręcznie kodowanych algorytmów do dynamicznych modeli, które uczą się i adaptują w czasie rzeczywistym. Współczesna sztuczna inteligencja, korzystając z różnorodnych źródeł danych, otwiera przed nami nowe możliwości w wielu dziedzinach – od medycyny po inżynierię.
Zrozum potrzebę sieci neuronowych
Cele nauczania
Po ukończeniu tej jednostki będziesz mógł:
Wyjaśnij ograniczenia modeli sztucznej inteligencji, które uwzględniają tylko dane wejściowe wagi.
Opisz rolę sieci neuronowych w uczeniu maszynowym.
Zdefiniuj główne składniki sieci neuronowych.
Opisz, w jaki sposób złożoność jest dodawana do sieci neuronowych i zdefiniuj głębokie uczenie się.
Wyjaśnij, w jaki sposób niemożliwe jest zinterpretowanie wag i uprzedzeń określonych podczas treningu.
Potrzeba sieci neuronowych
Żadna rozmowa o sztucznej inteligencji nie jest kompletna bez wspomnienia o sieciach neuronowych. Sieci neuronowe są ważnymi narzędziami do trenowania modeli sztucznej inteligencji, więc dobrze jest mieć pojęcie o tym, czym one są. Ale zanim przejdziemy do szczegółów, najpierw omówmy, dlaczego potrzebujemy sieci neuronowych.
W poprzedniej części dowiedziałeś się, że możemy wytrenować model AI, pozwalając mu odgadnąć i sprawdzić ważność-wagę każdego wejścia. Ale przykład biegu mlecznego był w rzeczywistości zbyt uproszczony. Nasz model dałby nam dość przybliżone szacunki. Aby zrozumieć dlaczego, rozważmy dwa scenariusze.
We wtorkowy wieczór pada deszcz. Wolisz nie zmoknąć, więc Ty (i wielu innych takich jak Ty) decydujesz, że zakupy mogą poczekać do jutra. W tym scenariuszu deszcz jest istotnym czynnikiem.
W sobotnie popołudnie pada deszcz. Dla wielu osób jest to jedyna pora tygodnia, kiedy mogą iść na zakupy. Więc sklep będzie zajęty, deszcz lub słońce. W tym scenariuszu deszcz nie robi dużej różnicy.
Problem polega na tym, że nasz oryginalny model może przypisać tylko jeden ciężar do deszczu, ale wiemy, że jest to bardziej skomplikowane. Istnieje jednak rozwiązanie i zaczyna się od przedstawienia dwóch scenariuszy na dwóch oddzielnych wykresach. Ponownie, grubość linii pokazuje znaczenie. W pierwszym "weekend" i "czas" są słabe, podczas gdy "deszcz" jest silny. Dla drugiego "weekend" jest silny, podczas gdy "czas" i "deszcz" są słabe.
Wiemy, że te dwa scenariusze są znaczące, ponieważ jesteśmy mądrzy i mamy doświadczenie w kupowaniu mleka. Ale komputer, który dopiero zaczyna uczyć się o mleku, jeszcze nic nie wie! Musi brać pod uwagę wiele scenariuszy: weekend-wieczór-deszcz, dzień powszedni-poranek-słońce i tak dalej. Zamiast dwóch wykresów, osiem może lepiej reprezentować rodzaje scenariuszy, które napotykasz.
To wiele bardzo podobnych wykresów. Ponieważ te trzy wejścia zawsze reprezentują "weekend", "czas" i "deszcz", można je nakładać. Jeśli przesuniesz scenariusze tak, aby się nie dotykały, otrzymasz połączony wykres, który wygląda tak.
Znaczenie każdego scenariusza zależy od konkretnych danych wejściowych. Ale znajomość znaczenia to tylko połowa sukcesu. Każdy scenariusz musi wpływać na ostateczne oszacowanie na swój własny sposób.
Na przykład weekendowo-popołudniowy bieg mleczny powinien trwać znacznie dłużej. Dajmy więc korektę +5. Kiedy wykonujemy matematykę, aby obliczyć oszacowanie, daje to większą liczbę. Skoro już przy tym jesteśmy, dodajmy korektę scenariusza dni powszednie-poranek-deszczu o -4, ponieważ wiemy, że biegi mleczne są najkrótsze w tym czasie.
Każdy scenariusz otrzymuje własną korektę, co nazywamy stronniczością. W tym przypadku stronniczość jest dobrą rzeczą, ponieważ pomaga nam uzyskać dokładniejsze oszacowanie. Przerysujmy nasz wykres, aby uwzględnić stronniczość każdego scenariusza.
Co więc zrobić z tymi ośmioma scenariuszami i ich uprzedzeniami? Korzystając z bardziej sprytnej matematyki, możemy połączyć je w ostateczne oszacowanie. Niektóre scenariusze powinny wnieść więcej niż inne, więc zgadłeś, potrzebujemy więcej ciężarów! Możemy zaktualizować nasz wykres, aby pokazać, w jaki sposób scenariusze łączą się z ostatecznym oszacowaniem o różnych mocnych stronach.
To nasz nowy model. Miejmy nadzieję, że więcej połączeń będzie oznaczać lepsze szacunki. Ta sieć połączeń, kierowana przez wagi i uprzedzenia, jest przykładem sieci neuronowej. Nazywamy to tak, ponieważ połączenia, wykute przez doświadczenie (dane), przypominają sposób, w jaki neurony w mózgu są połączone.
I chociaż scenariusz jest dobrym słowem dla początkujących do opisania unikalnej kombinacji czynników, powinniśmy naprawdę użyć słowa węzeł dla tej koncepcji. To jest to, czego używają eksperci AI, więc w przyszłości będziemy go również używać.
Zwiększanie złożoności sieci neuronowych
Nasz nowy model milk run jest dość podstawowym przykładem sieci neuronowej. W praktyce mogą być dość złożone. Przyjrzyjmy się niektórym sposobom, w jakie naukowcy konfigurują sieci neuronowe, aby uzyskać lepsze wyniki dla określonych zadań.
Po pierwsze, możesz się zastanawiać, dlaczego wybraliśmy osiem węzłów, aby stanąć między naszymi wejściami i wyjściami. W tej liczbie jest pewna elastyczność. Wiemy, że brak węzłów da nam przybliżone szacunki. W ten sam sposób posiadanie zbyt małej liczby może nie uchwycić wszystkich niuansów systemu, który próbujemy modelować. Ale posiadanie zbyt wielu węzłów jest również problemem. Nie chcemy, aby komputer wykonywał więcej obliczeń niż to konieczne. Jest więc złoty środek na liczbę węzłów, w których uzyskujemy dobre wyniki przy najmniejszym wysiłku. Wybór odpowiedniej liczby jest częścią projektowania dobrej sieci neuronowej.
Jest jeszcze coś, co możemy zrobić, aby sztuczne sieci neuronowe były bardziej podobne do naszych, organicznych. Ma to związek z tym, jak nasze umysły często przeskakują od pomysłu do pomysłu, aby znaleźć połączenia między dwiema rzeczami, które nie są oczywiście powiązane. Niektóre z najbardziej błyskotliwych spostrzeżeń są wynikiem kilku skoków. A co by było, gdybyśmy mogli stworzyć sieć neuronową, która mogłaby również wykonać więcej skoków? Możemy! Robimy to, dodając więcej węzłów jako warstw, łącząc każdy węzeł z sąsiadem.
Uczenie sztucznej inteligencji poprzez dodawanie dodatkowych warstw w celu znalezienia ukrytego znaczenia w danych nazywa się głębokim uczeniem. Dzięki dużej mocy obliczeniowej wiele sieci neuronowych jest zaprojektowanych tak, aby miały wiele warstw. Ponownie, najlepszą liczbą warstw jest równowaga między liczbą wymaganych obliczeń a jakością wyników, które generują.
Więcej niż matematyka mentalna, to matematyka sieci neuronowych
A więc o tych obliczeniach. Do tego momentu pomijaliśmy matematyczną część szkolenia sieci neuronowych. Dzieje się tak z kilku powodów. Po pierwsze, matematyka może stać się naprawdę skomplikowana, naprawdę szybka. Na przykład, oto fragment artykułu badawczego na temat sieci neuronowych.