Wydobywanie Inteligencji: Dogłębna analiza logiki stojącej za AI
Rozplątywanie podstaw sztucznej inteligencji
Część 1: Logiczna debata na temat inteligencji: Perspektywy filozoficzne i historyczne
"Logika stojąca za" Sztuczną Inteligencją (AI) nie jest pojedynczą, niezmienną koncepcją. To raczej wynik trwającej od dziesięcioleci intelektualnej debaty o tym, jak stworzyć inteligencję. Aby zrozumieć AI, należy najpierw zagłębić się w jej intelektualne korzenie - konflikt i połączenie dwóch głównych szkół filozoficznych: Symbolizmu i Koneksjonizmu. Szkoły te reprezentują wyraźnie przeciwstawne poglądy na inteligencję, a ich zmienne powodzenie ukształtowało historyczną trajektorię i przyszły kierunek całej dziedziny AI.
1.1 Dwie szkoły myślenia
Konstrukcja logiki sztucznej inteligencji przebiega dwiema głównymi ścieżkami: odgórną manipulacją symboliczną i oddolnym uczeniem się inspirowanym biologią.
Symbolizm (Logika "Odgórna")
Symbolizm, znany również jako logicyzm lub szkoła komputerowa, opiera się na podstawowym przekonaniu, że istota inteligencji polega na manipulowaniu symbolami zgodnie z zestawem jasnych, sformalizowanych reguł. Jest to podejście "odgórne", zakładające, że poznanie człowieka i procesy myślowe można sprowadzić do operacji symbolicznych. W tym ujęciu inteligencja jest postrzegana jako proces logicznego rozumowania, a umysł można porównać do programu komputerowego działającego na ustrukturyzowanych danych.
Najbardziej typowym przejawem tej szkoły są Systemy Eksperckie. Systemy te przeżywały swój złoty wiek w latach 70. i 80., oznaczając pierwszy komercyjny sukces AI na dużą skalę. Miały one na celu symulację procesów decyzyjnych ludzkich ekspertów w określonych, wąskich dziedzinach (takich jak diagnoza medyczna lub analiza chemiczna) poprzez bazę wiedzy zawierającą dużą liczbę reguł "jeśli-to". Sukces systemów eksperckich wyniósł symbolizm na szczyt, czyniąc go niemal synonimem AI w tamtym czasie.
Koneksjonizm (Logika "Oddolna")
W przeciwieństwie do symbolizmu, koneksjonizm, znany również jako szkoła bioniki, argumentuje, że inteligencja jest zjawiskiem emergentnym. Nie jest zdominowana przez centralny kontroler ani ustalone reguły, ale raczej wynika ze złożonych interakcji między dużą liczbą prostych, połączonych jednostek przetwarzających (tj. sztucznych neuronów). Ta logika "oddolna" jest inspirowana strukturą ludzkiego mózgu, wierząc, że inteligencja nie jest programowana, ale raczej uzyskiwana poprzez uczenie się wzorców z danych.
Podstawowym przekonaniem koneksjonizmu jest to, że złożone zachowania mogą wynikać z prostych interakcji lokalnych,bez potrzeby stosowania globalnych, wyraźnych reguł. Jego podstawowym ucieleśnieniem technologicznym są Sztuczne Sieci Neuronowe (ANN). Modele te uczą się złożonych relacji między wejściami i wyjściami poprzez trenowanie na dużych ilościach danych próbek i ciągłe dostosowywanie "wag" (tj. siły połączeń) między neuronami.
1.2 Wahadło Historii: Wzrost, Zima i Odrodzenie
Historia rozwoju AI nie jest historią liniowego postępu, ale raczej przypomina wahadło kołyszące się tam i z powrotem między symbolizmem i koneksjonizmem. Proces ten głęboko ujawnia, że sukces lub porażka paradygmatu teoretycznego zależy nie tylko od głębi jego idei, ale także od ograniczeń technologii i warunków ekonomicznych tamtych czasów. Logika stojąca za AI nie ewoluuje w próżni, a jej trajektoria rozwoju jest bezpośrednim wynikiem złożonej interakcji między (1) głównym nurtem myśli filozoficznej, (2) dostępną mocą obliczeniową i (3) wykonalnością ekonomiczną.
Wczesne Zalety i Pierwsza Zima AI
We wczesnych dniach AI, koneksjonizm wykazywał duży potencjał. Jednak w 1969 roku Marvin Minsky, czołowa postać symbolizmu, opublikował książkę Perceptrony, która stała się kluczowym punktem zwrotnym w historii. Minsky rygorystycznie udowodnił matematycznie, że proste jednowarstwowe sieci neuronowe tamtych czasów (tj. perceptrony) nie mogą rozwiązać niektórych z najbardziej podstawowych problemów, takich jak logiczny problem "exclusive or" (XOR). Ta precyzyjna krytyka akademicka, w połączeniu z ogólnym niedoborem mocy obliczeniowej komputera w tamtym czasie, zadała druzgocący cios badaniom koneksjonistycznym. Finansowanie badań zostało drastycznie ograniczone, a badania nad sieciami neuronowymi weszły w okres stagnacji trwający ponad dekadę, znany jako pierwsza "Zima AI". W tym okresie logika symbolizmu zajmowała absolutną dominującą pozycję.
Złoty Wiek Symbolizmu i Druga Zima AI
Systemy eksperckie kwitły w latach 80., wynosząc symbolizm na szczyt zastosowań komercyjnych. Jednak ich ograniczenia były stopniowo ujawniane: systemy eksperckie były drogie w budowie, bazy wiedzy były trudne w utrzymaniu, nie mogły obsługiwać niejednoznacznych informacji i nie miały zdolności do automatycznego uczenia się nowej wiedzy. Ostatecznie komercyjna porażka "maszyn Lisp", specjalnie używanych do uruchamiania symbolicznych programów AI (takich jak język Lisp), oznaczała koniec tej ery. Powstanie komputerów ogólnego przeznaczenia (takich jak IBM PC) o większej wydajności i niższych cenach sprawiło, że te dedykowane urządzenia sprzętowe stały się niekonkurencyjne, a dziedzina AI następnie weszła w drugą zimę. To po raz kolejny dowodzi, że jeśli logika teoretyczna ma się rozwijać, musi mieć silną i ekonomiczną podstawę sprzętową jako wsparcie.
Odrodzenie Koneksjonizmu
Odrodzenie koneksjonizmu nie było przypadkowe, ale było napędzane trzema kluczowymi czynnikami:
Przełomy Algorytmiczne: Podczas "zimy" wprowadzenie algorytmów propagacji wstecznej i wynalezienie bardziej złożonych struktur sieciowych, takich jak sieci długiej pamięci krótkotrwałej (LSTM), położyło algorytmiczne podstawy skutecznego trenowania sieci neuronowych.
Powódź Danych: Popularność Internetu przyniosła bezprecedensową ilość danych. Dane te zapewniły wystarczające "odżywianie" dla sieci neuronowych, które wymagają dużej liczby próbek do trenowania.
Rewolucja Mocy Obliczeniowej: Procesory graficzne (GPU), początkowo zaprojektowane dla gier wideo, mają architekturę obliczeniową o masowej równoległości, która okazała się doskonale dopasowana do podstawowych operacji macierzowych w sieciach neuronowych. Pojawienie się GPU przełamało wąskie gardło mocy obliczeniowej, które nękało koneksjonizm przez dziesięciolecia, pozwalając na prawdziwe uwolnienie jego teoretycznego potencjału.
Wreszcie, połączenie algorytmów, danych i mocy obliczeniowej rozpaliło rewolucję głębokiego uczenia się, czyniąc logikę koneksjonizmu niekwestionowanym głównym nurtem w dziedzinie AI dzisiaj.
1.3 Filozoficzny Impas: Zrozumienie kontra Symulacja
Historyczny spór między dwiema głównymi szkołami ostatecznie prowadzi do głębokiego pytania filozoficznego, które pozostaje nierozwiązane do dziś: Czy maszyna zdolna do doskonałej symulacji inteligentnego zachowania naprawdę posiada zdolność rozumienia?
Test Turinga
"Test Turinga" Alana Turinga zapewnia operacyjną, behawiorystyczną definicję inteligencji. Test polega na tym, czy maszyna może prowadzić rozmowę z człowiekiem, a człowiek nie może stwierdzić, czy jest to maszyna, czy osoba; wtedy maszynę można uznać za inteligentną. Test Turinga omija zasadnicze pytanie "czym jest inteligencja" i przechodzi do "jakie zachowanie powinna wykazywać inteligencja".
Eksperyment Myślowy "Chiński Pokój"
Filozof John Searle zaproponował słynny eksperyment myślowy "Chiński Pokój" w 1980 roku, rozpoczynając zaciekły atak na symbolizm i test Turinga. Eksperyment jest pomyślany w następujący sposób: Osoba, która nie rozumie chińskiego, jest zamknięta w pokoju, a pokój zawiera szczegółową instrukcję zasad przetwarzania chińskiego (równoważną programowi). Otrzymuje ona notatki z chińskimi znakami napisanymi na nich (wejście) przez okno, a następnie ściśle przestrzega instrukcji w instrukcji zasad, aby znaleźć i połączyć odpowiadające im znaki, a następnie przekazuje wyniki przez okno (wyjście). Dla osób poza pokojem reakcja pokoju nie różni się od reakcji rodzimego użytkownika języka chińskiego, więc przechodzi test Turinga.
Jednak Searle zwrócił uwagę, że osoba w pokoju nigdy nie zrozumiała znaczenia (semantyki) żadnych chińskich znaków od początku do końca, a wszystko, co robiła, to czysta manipulacja symboliczna (składnia). Searle doszedł do wniosku, że po prostu manipulowanie symbolami, bez względu na to, jak złożone, nigdy nie może wyprodukować prawdziwego "zrozumienia". Argument ten potężnie podważa pogląd "silnej AI" (tj. przekonanie, że poprawnie zaprogramowany komputer może posiadać umysł).
Dziś nowoczesną AI reprezentowaną przez duże modele językowe (LLM) można postrzegać jako super ulepszoną wersję "Chińskiego Pokoju" w pewnym sensie. Generują pozorujące inteligencję odpowiedzi poprzez statystyczne dopasowywanie wzorców w ogromnych ilościach danych tekstowych. Debata nad tym, czy naprawdę "rozumieją" język, czy są po prostu złożonymi "papugami stochastycznymi", jest kontynuacją debaty Turinga kontra Searle w czasach współczesnych.
Przez długi czas symbolizm i koneksjonizm były uważane za dwa wzajemnie wykluczające się paradygmaty. Jednak "wojna" historii dobiega końca w formie syntezy. Logika stojąca za przyszłością nie jest wyborem albo-albo, ale połączeniem obu. Trend ten znajduje odzwierciedlenie we wzroście Neuro-Symbolicznej AI. Ta dziedzina ma na celu połączenie potężnych możliwości rozpoznawania wzorców sieci neuronowych z rygorystycznymi zdolnościami logicznego wnioskowania systemów symbolicznych, z celem budowania bardziej potężnych systemów, które mogą zarówno uczyć się, jak i rozumować. Na przykład, nowoczesne agenty AI mogą wywoływać zewnętrzne narzędzia symboliczne (takie jak kalkulatory, zapytania do baz danych), aby wzmocnić swoje własne możliwości, co jest praktycznym połączeniem modeli neuronowych i narzędzi symbolicznych.
Ponadto architektura "Mieszanka Ekspertów (MoE)" w nowoczesnych dużych modelach językowych również odzwierciedla systemy eksperckie symbolizmu w koncepcji. Model MoE składa się z wielu wyspecjalizowanych "eksperckich" podsieci i sieci "bramkującej", która jest odpowiedzialna za wybór najbardziej odpowiedniego eksperta do obsługi każdego wejścia. Funkcjonalnie jest to podobne do systemu symbolicznego wywołującego określone moduły funkcjonalne zgodnie z regułami, ale jego implementacja jest całkowicie koneksjonistyczna - poprzez uczenie się od końca do końca i optymalizację różnicową. Pokazuje to, że logika stojąca za AI przechodzi od opozycji do komplementarności, tworząc bezprecedensowe potężne możliwości poprzez fuzję.
Tabela 1: Porównanie Podstawowych Paradygmatów AI: Symbolizm vs. Koneksjonizm
Cechy | Symbolizm (Odgórny) | Koneksjonizm (Oddolny) |
---|---|---|
Podstawowa Zasada | Inteligencja jest osiągana poprzez manipulowanie symbolami i przestrzeganie formalnych reguł. | Inteligencja wyłania się z interakcji dużej liczby prostych, połączonych jednostek. |
Reprezentacja Wiedzy | Jawna, ustrukturyzowana baza wiedzy (np. reguły "jeśli-to"). | Ukryta, rozproszona, wiedza zakodowana w wagach połączeń sieci. |
Metoda Rozumowania | Rozumowanie oparte na logicznej dedukcji, wyszukiwaniu i regułach heurystycznych. | Rozumowanie oparte na rozpoznawaniu wzorców opartych na danych i wnioskowaniu statystycznym. |
Kluczowe Technologie | Systemy eksperckie, programowanie logiczne, grafy wiedzy. | Sztuczne sieci neuronowe, głębokie uczenie się, duże modele językowe. |
Zalety | Silna interpretowalność, logicznie rygorystyczny, celuje w dobrze zdefiniowanych obszarach. | Silna zdolność uczenia się, może obsługiwać niejednoznaczne i niestrukturyzowane dane, dobra zdolność generalizacji. |
Wady | Wąskie gardło pozyskiwania wiedzy, słaba zdolność radzenia sobie z niepewnością, kruchy system. | Problem "czarnej skrzynki" (słaba interpretowalność), wymaga dużej ilości danych i mocy obliczeniowej, podatny na ataki adversarialne. |
Szczyt Historyczny | Era systemów eksperckich w latach 70. i 80. | Era głębokiego uczenia się od 2010 roku do dziś. |
Reprezentatywne Postacie | Marvin Minsky, Herbert A. Simon, Allen Newell. | Geoffrey Hinton, Yann LeCun, John Hopfield, Fei-Fei Li. |
Część 2: Uniwersalny Język Nowoczesnej AI: Podstawowe Zasady Matematyczne
Odkrycie tajemnicy nowoczesnej AI wymaga uświadomienia sobie, że jej "logika stojąca za" nie jest ludzkim zdrowym rozsądkiem ani rozumowaniem, ale precyzyjnym i uniwersalnym językiem matematycznym. W szczególności, AI zdominowana przez koneksjonizm jest zasadniczo matematyką stosowaną napędzaną przez "dane, algorytmy i moc obliczeniową". Procesy generowania inteligencji, uczenia się i optymalizacji można rozbić na synergię trzech filarów matematycznych: statystyki prawdopodobieństwa, algebry liniowej i rachunku różniczkowego i całkowego.
2.1 Matematyczna Natura AI
Podstawowe zadanie obecnej sztucznej inteligencji można zazwyczaj opisać jako: znalezienie w przybliżeniu optymalnego rozwiązania w złożonej przestrzeni problemowej o wysokiej wymiarowości. Zamiast rozwiązywać problemy poprzez wyczerpujące próbowanie wszystkich możliwości, stosuje metody matematyczne, aby znaleźć wystarczająco dobre rozwiązanie. Matematyka zapewnia AI formalne narzędzia modelowania i języki opisu naukowego i jest kamieniem węgielnym budynku, zrozumienia i ulepszania systemów AI.
2.2 Filar 1: Prawdopodobieństwo i Statystyka - Logika Niepewności
Teoria prawdopodobieństwa i statystyka zapewniają AI teoretyczne ramy rozumowania w niepewnym otoczeniu i wyprowadzania wzorców z danych. Modele AI są zasadniczo systemami probabilistycznymi, które uczą się podstawowego rozkładu danych, aby dokonywać prognoz i podejmować decyzje.
Jednak pojawienie się big data stanowipoważne wyzwanie dla podstaw tradycyjnej statystyki. Tradycyjne teorie statystyczne, takie jak prawo wielkich liczb i centralne twierdzenie graniczne, oparte są głównie na założeniach, że próbki są "niezależne i identycznie rozłożone" (i.i.d.) i że wielkość próby n jest znacznie większa niż liczba cech p (tj. p ≪ n). Ale w erze big data założenia te są często łamane. Na przykład, w zadaniach rozpoznawania obrazów, obraz w wysokiej rozdzielczości może zawierać miliony pikseli (cechy p), podczas gdy zbiór danych treningowych może mieć tylko dziesiątki tysięcy obrazów (próbek n), co prowadzi do problemu "klątwy wymiarowości", gdzie p ≫ n. W tym przypadku łatwo jest generować "pseudo-korelacje", które unieważniają tradycyjne metody statystyczne.
Wzrost głębokiego uczenia się jest w pewnym stopniu odpowiedzią na to wyzwanie. Zapewnia metodę automatycznego uczenia się skutecznych reprezentacji cech z danych o dużej wymiarowości, bez polegania na tradycyjnych założeniach statystycznych. Niemniej jednak, ustanowienie solidnej podstawy statystycznej dla tego nowego paradygmatu danych jest nadal głównym problemem matematycznym, który pilnie należy rozwiązać w obecnych badaniach nad AI.
2.3 Filar 2: Algebra Liniowa - Logika Reprezentacji
Algebra liniowa jest "uniwersalnym językiem" świata AI, zapewniającym podstawowe narzędzia do reprezentowania danych i modeli. W sieciach neuronowych, czy to wejście (takie jak piksele obrazu, wektory słów tekstu), parametry modelu (wagi), czy ostateczne wyjście, wszystkie są wyrażane jako struktura numeryczna: wektory, macierze lub tensory o wyższej wymiarowości.
Podstawowa operacja w sieciach neuronowych, taka jak ważenie neuronu i sumowanie wszystkich jego wejść, jest zasadniczo mnożeniem macierzy i wektorów. Powód, dla którego GPU mogą znacznie przyspieszyć trenowanie AI, jest dokładnie taki, że ich architektura sprzętowa jest wysoce zoptymalizowana do wydajnego wykonywania tych operacji algebry liniowej na dużą skalę.
2.4 Filar 3: Rachunek Różniczkowy i Całkowy i Optymalizacja - Logika Uczenia się
Proces uczenia się AI jest zasadniczo matematycznym problemem optymalizacji. Celem jest znalezienie zestawu parametrów modelu (np. wag i odchyleń w sieci neuronowej), które minimalizują różnicę między prognozami modelu a prawdziwymi odpowiedziami. Różnica ta jest kwantyfikowana przez Funkcję Straty.
Gradient Descent: Silnik Uczenia się
Gradient Descent jest podstawowym algorytmem do osiągnięcia tego celu i jest silnikiem, który napędza uczenie się prawie wszystkich nowoczesnych modeli AI.
Podstawowa Idea: Gradient descent jest iteracyjnym algorytmem optymalizacji, który dąży do znalezienia minimalnego punktu funkcji straty. Proces ten można obrazowo porównać do osoby schodzącej z góry we mgle. Nie widzi, gdzie jest najniższy punkt doliny, ale może wyczuć nachylenie gruntu pod stopami. Najbardziej racjonalną strategią jest zrobienie małego kroku wzdłuż najbardziej stromego kierunku zjazdu w bieżącej pozycji, a następnie powtórzenie tego procesu.
Konkretny Proces:
Inicjalizacja: Najpierw losowo ustawiany jest początkowy zestaw parametrów modelu (wag i odchyleń).
Oblicz Stratę: Użyj bieżących parametrów, aby model dokonał prognoz na danych treningowych i oblicz całkowity błąd (stratę) między prognozami a prawdziwymi etykietami.
Oblicz Gradient: Użyj Pochodnych Cząstkowych w rachunku różniczkowym i całkowym, aby obliczyć Gradient funkcji straty względem każdego parametru. Gradient jest wektorem, który wskazuje kierunek najszybszego wzrostu wartości funkcji straty.
Zaktualizuj Parametry: Przesuń każdy parametr o mały krok w przeciwnym kierunku do jego gradientu. Wielkość tego kroku jest kontrolowana przez hiperparametr zwany Wskaźnikiem Uczenia się (zwykle oznaczany jako η). Formuła aktualizacji to: parametrnew = parametrold − η × gradient.
Powtórz: Ciągle powtarzaj kroki 2 do 4 tysiące razy. Każda iteracja precyzyjnie dostraja parametry modelu, powodując stopniowe zmniejszanie się wartości straty. Gdy wartość straty nie zmniejsza się już znacząco, algorytm "zbiega się" do lokalnego lub globalnego punktu minimum, a proces uczenia się kończy się.
Warianty Algorytmu: W zależności od ilości danych używanych w każdej iteracji, istnieje wiele wariantów zejścia gradientowego, takich jak Batch GD, Stochastic GD (SGD) i Mini-batch GD, które zapewniają różne kompromisy między wydajnością obliczeniową a stabilnością zbieżności.
Matematyka jest językiem jednoczącym, który łączy wszystkie nowoczesne paradygmaty AI. Niezależnie od tego, czy jest to prosta regresja liniowa, złożone maszyny wektorów nośnych, czy ogromne głębokie sieci neuronowe, logika stojąca za ich uczeniem się jest wspólna: zdefiniuj model, zdefiniuj funkcję straty, a następnie użyj algorytmu optymalizacji (takiego jak zejście gradientowe), aby znaleźć parametry, które minimalizują funkcję straty. Te ramy matematyczne oparte na "minimalizacji straty" to prawdziwa podstawowa logika tego, jak maszyny uczą się z danych.
Logika matematyczna AI oznacza również fundamentalne przesunięcie w stosunku do tradycyjnej logiki programowania. Tradycyjne programowanie jest deterministyczne i precyzyjne. Z drugiej strony, AI jest probabilistyczne i przybliżone. Jak pokazują badania, celem AI zazwyczaj nie jest znalezienie udowodnialnie doskonałego rozwiązania (co często jest niemożliwe dla złożonych problemów w świecie rzeczywistym), ale znalezienie przybliżonego rozwiązania, które jest "wystarczająco dobre". Charakterystyka "czarnej skrzynki" AI jest bezpośrednią konsekwencją tego przesunięcia. Możemy zmierzyć, czy jest skuteczne, oceniając jego stratę lub dokładność, ale trudno jest wyjaśnić, jak to działa krok po kroku jasną logiką, tak jak możemy to zrobić z tradycyjnymi algorytmami. Dzieje się tak, ponieważ "rozwiązanie" AI nie jest zestawem czytelnych dla człowieka reguł, ale złożoną funkcją wysokowymiarową zakodowaną przez miliony zoptymalizowanych parametrów numerycznych. Jego nieodłączna "logika" jest ucieleśniona w geometrycznej morfologii przestrzeni wielowymiarowej utworzonej przez funkcję straty, a nie same reguły semantyczne.
Część 3: Metody Uczenia się - Jak AI Zdobywa Wiedzę
Opierając się na podstawowych zasadach matematycznych, AI opracowała trzy podstawowe strategie uczenia się lub "paradygmaty uczenia się". Paradygmaty te są klasyfikowane na podstawie typów danych i sygnałów zwrotnych dostępnych dla systemu AI podczas treningu, a mianowicie: uczenie się nadzorowane, uczenie się bez nadzoru i uczenie się wzmacniające.
3.1 Uczenie się Nadzorowane: Uczenie się z Mentorem
Uczenie się Nadzorowane jest najszerzej stosowanym paradygmatem uczenia maszynowego.
Podstawowa Logika: Model uczy się ze oznakowanego zbioru danych. W tym zbiorze danych każda próbka wejściowa jest jawnie połączona z poprawną odpowiedzią wyjściową. Proces ten przypomina studentowi przygotowującemu się do egzaminu z zestawem ćwiczeń ze standardowymi odpowiedziami.
Proces Uczenia się: Model dokonuje prognozy dla próbki wejściowej, a następnie porównuje prognozę z prawdziwą etykietą, obliczając błąd (stratę). Następnie algorytmy optymalizacji, takie jak zejście gradientowe, są używane do dostosowania wewnętrznych parametrów modelu w celu zmniejszenia tego błędu.
Główne Zadania i Algorytmy:
Klasyfikacja: Przewidywanie dyskretnej etykiety kategorii. Na przykład, ocenianie, czy e-mail to "spam", czy "nie spam", lub identyfikowanie, czy zwierzę na zdjęciu to "kot", czy "pies". Popularne algorytmy to Regresja Logistyczna, Drzewa Decyzyjne i Maszyny Wektorów Nośnych (SVM).
Regresja: Przewidywanie ciągłej wartości numerycznej. Na przykład, przewidywanie ceny domu lub temperatury jutro. Popularne algorytmy to Regresja Liniowa i Lasy Losowe.
Wymagania Dotyczące Danych: Sukces uczenia się nadzorowanego silnie opiera się na dużej ilości wysokiej jakości, ręcznie oznaczonych danych. Uzyskanie tych oznaczonych danych jest zwykle kosztowne i czasochłonne, co jest głównym wąskim