Bardzo dobre pytanie, ponieważ nie ma jeszcze dokładnej odpowiedzi na to pytanie. To aktywna dziedzina badań.
Ostatecznie architektura sieci jest związana z wymiarami danych. Ponieważ sieci neuronowe są uniwersalnymi aproksymatorami, o ile twoja sieć jest wystarczająco duża, ma ona możliwość dopasowania twoich danych.
Jedynym sposobem, aby naprawdę wiedzieć, która architektura działa najlepiej, jest wypróbowanie wszystkich, a następnie wybranie najlepszej. Ale oczywiście w sieciach neuronowych jest to dość trudne, ponieważ każdy model zajmuje sporo czasu na szkolenie. To, co robią niektórzy ludzie, to najpierw wytrenowanie modelu, który celowo jest „zbyt duży”, a następnie przycinanie go poprzez usunięcie obciążników, które nie mają większego wpływu na sieć.
Co jeśli moja sieć jest „za duża”
Jeśli twoja sieć jest zbyt duża, może się przepełnić lub z trudem zbiegać. Intuicyjnie dzieje się tak, że twoja sieć próbuje wyjaśnić twoje dane w bardziej skomplikowany sposób niż powinna. To jak próba odpowiedzi na pytanie, na które można odpowiedzieć jednym zdaniem za pomocą 10-stronicowego eseju. Tak długa odpowiedź może być trudna do ustrukturyzowania, a może pojawić się wiele niepotrzebnych faktów. ( Zobacz to pytanie )
Co jeśli moja sieć jest „za mała”
Z drugiej strony, jeśli twoja sieć jest zbyt mała, to nie spełni twoich danych i dlatego. To tak, jakbyś odpowiedział jednym zdaniem, kiedy powinieneś napisać 10-stronicowy esej. Niezależnie od tego, jak dobra jest twoja odpowiedź, brakuje niektórych istotnych faktów.
Szacowanie wielkości sieci
Jeśli znasz wymiarowość swoich danych, możesz stwierdzić, czy Twoja sieć jest wystarczająco duża. Aby oszacować wymiarowość danych, możesz spróbować obliczyć ich rangę. Jest to podstawowa idea tego, jak ludzie próbują oszacować rozmiar sieci.
Nie jest to jednak takie proste. Rzeczywiście, jeśli twoja sieć musi być 64-wymiarowa, czy budujesz pojedynczą ukrytą warstwę o rozmiarze 64 lub dwie warstwy o rozmiarze 8? Tutaj dam wam intuicję, co by się stało w obu przypadkach.
Schodzę głębiej
Głębsze wchodzenie oznacza dodawanie kolejnych ukrytych warstw. Umożliwia sieci obliczanie bardziej złożonych funkcji. Na przykład w konwergentnych sieciach neuronowych często pokazywano, że pierwsze kilka warstw reprezentuje cechy „niskiego poziomu”, takie jak krawędzie, a ostatnie warstwy reprezentują cechy „niskiego poziomu”, takie jak ściany, części ciała itp.
Zazwyczaj musisz zagłębić się, jeśli Twoje dane są bardzo nieuporządkowane (jak obraz) i muszą zostać przetworzone dość długo, zanim można z nich wyciągnąć przydatne informacje.
Coraz szerszy
Pogłębianie oznacza tworzenie bardziej złożonych funkcji, a „szersze” oznacza po prostu tworzenie większej liczby tych funkcji. Być może Twój problem można wyjaśnić za pomocą bardzo prostych funkcji, ale musi być ich wiele. Zwykle warstwy stają się węższe pod koniec sieci z tego prostego powodu, że złożone funkcje niosą więcej informacji niż proste, a zatem nie potrzebujesz ich tak wiele.