Jaka jest podstawowa różnica między modelem ML a funkcją?
Modelu można z grubsza definiuje się jako projekt, który jest w stanie rozwiązać zadania ML. Przykładami modeli są sieć neuronowa, drzewo decyzyjne, sieć Markowa itp.
Funkcja może być określony jako zbiór uporządkowanych par z jednego do wielu właściwości z domeny do domeny CO / zakresu.
Jaka jest zasadnicza różnica między nimi pod względem formalnym?
Odpowiedzi
Chociaż może to nie mieć zastosowania we wszystkich przypadkach, lubię myśleć o modelu jako o zestawie funkcji, więc oto różnica.
Dlaczego ta definicja jest przydatna? Jeśli myślisz o sieci neuronowej z wektorem parametrów$\theta \in \mathbb{R}^m$jako model, wówczas określona kombinacja tych parametrów reprezentuje określoną funkcję. Na przykład załóżmy, że mamy sieć neuronową z 2 wejściami, 1 ukrytym neuronem (z funkcją aktywacji ReLU, oznaczoną jako$\phi$, która następuje po liniowej kombinacji wejść) i 1 neuron wyjściowy (z sigmoidalną funkcją aktywacji, $\sigma$). Wejścia są podłączone do jedynej ukrytej jednostki, a połączenia te mają rzeczywistą wagę. Jeśli zignorujemy odchylenia, to są 3 parametry, które można pogrupować w wektorze parametrów$\theta = [\theta_1, \theta_2, \theta_3] \in \mathbb{R}^3 $. Dowolna funkcja ta sieć neuronowa oznacza może być zdefiniowana w następujący
$$ f(x_1, x_2) = \sigma (\theta_3 \phi(x_1 \theta_1 + x_2 \theta_2)) \tag{1}\label{1}, $$
W tym przypadku równanie \ ref {1} reprezentuje model z uwzględnieniem przestrzeni parametrów $\Theta = \mathbb{R}^3$. Dla konkretnych wartości$\theta_1, \theta_2,$ i $\theta_3$ możemy przyjąć, mamy określoną (deterministyczną) funkcję $f: \mathbb{R} \rightarrow [0, 1]$.
Na przykład, $\theta = [0.2, 10, 0.4]$ reprezentuje określoną funkcję, a mianowicie
$$ f(x_1, x_2) = \sigma (0.4 \phi(x_1 0.2 + x_2 10.0)) $$Możesz wykreślić tę funkcję (za pomocą Matplotlib) dla niektórych wartości danych wejściowych, aby zobaczyć, jak wygląda. Zauważ, że$x_1$ i $x_2$ mogą być dowolne (ponieważ są to tylko dane wejściowe, które przyjąłem jako liczby rzeczywiste).
Taka interpretacja modelu jest zgodna z definicją klasy (lub przestrzeni) hipotez w teorii uczenia się obliczeniowego, która jest zasadniczo zbiorem funkcji . Ta interpretacja jest również zgodna z twierdzeniami o uniwersalnym aproksymacji dla sieci neuronowych , które stwierdzają, że można znaleźć określony zestaw parametrów, tak że można w przybliżeniu dowolnie obliczyć pewną funkcję, zakładając, że są spełnione pewne warunki. Ta interpretacja może być również zastosowana do drzew decyzyjnych, HMM, RNN i wszystkich tych modeli ML.
Termin model jest również czasami używany w odniesieniu do rozkładu prawdopodobieństwa, na przykład w kontekście uczenia się przez wzmacnianie, gdzie $p(s', r \mid s, a)$ jest rozkładem prawdopodobieństwa w następnym stanie $s'$ i nagrodę $r$ biorąc pod uwagę obecny stan $s$ i działania $a$ podjęte w tym stanie $s$. Sprawdź to pytanie, aby uzyskać więcej informacji. Rozkład prawdopodobieństwa można również traktować jako (być może nieskończenie duży) zbiór funkcji, ale nie jest to tylko zbiór funkcji, ponieważ można także próbkować z rozkładu prawdopodobieństwa (tj. Z rozkładem prawdopodobieństwa wiąże się pewna stochastyczność). Zatem rozkład prawdopodobieństwa można uznać za model statystyczny lub można go użyć do jego przedstawienia. Sprawdź tę odpowiedź .
Każdy model można uznać za funkcję. Termin „model” oznacza po prostu funkcję używaną w określony sposób, mianowicie w celu przybliżenia innej funkcji będącej przedmiotem zainteresowania.
Mówiąc najprościej, model sieci neuronowej jest aproksymatorem funkcji, który próbuje dopasować krzywą funkcji hipotezy. Sama funkcja ma równanie, które wygeneruje stałą krzywą:

Jeśli mamy równanie (tj. Funkcję), nie potrzebujemy sieci neuronowej do jej danych wejściowych. Jednak gdy mamy tylko pewne pojęcie o jej krzywej (lub danych wejściowych i wyjściowych), szukamy aproksymatora funkcji, aby dla nowych, niewidocznych danych wejściowych można było wygenerować wynik.
Trening tej sieci neuronowej polega na jak największym przybliżeniu do oryginału (nieznanej funkcji).
Każdy model jest funkcją. Nie każda funkcja jest wzorem.
Funkcja w unikalny sposób odwzorowuje elementy pewnego zbioru na elementy innego zbioru, prawdopodobnie tego samego zbioru.
Każdy model AI jest funkcją, ponieważ są implementowane jako programy komputerowe, a każdy program komputerowy jest funkcją w unikalny sposób odwzorowującą kombinację sekwencji bitów w pamięci i pamięci podczas uruchamiania programu, plus dane wejściowe, na sekwencję bitów w pamięci i pamięci. plus wyjście po zakończeniu programu.
Jednak „model” jest bardzo konkretną reprezentacją czegoś. Weź krzywą logistyczną:
$$ f(x) = \frac{L}{1 + e^{k(x-x_{0})} } $$
Biorąc pod uwagę arbitralne wartości rzeczywiste dla $L$, $k$, i $x_{0}$, to jest funkcja. Jednak biorąc pod uwagę znacznie bardziej szczegółowe wartości wyciągnięte z danych, może to być model wzrostu populacji.
Podobnie sieć neuronowa z wagami zainicjowanymi do wszystkich zer jest funkcją, ale bardzo nieciekawą funkcją z dość ograniczoną kodomeną $\{0\}$. Jeśli jednak następnie wytrenujesz sieć, wprowadzając do niej zbiór danych, aż wagi zbiegną się, aby dać prognozy lub działania z grubsza odpowiadające procesowi generowania w świecie rzeczywistym, masz teraz model tego procesu generowania.