Qual é a diferença fundamental entre um modelo de ML e uma função?

Dec 30 2020

Um modelo pode ser definido aproximadamente como qualquer projeto capaz de resolver uma tarefa de ML. Exemplos de modelos são a rede neural, árvore de decisão, rede de Markov, etc.

Uma função pode ser definida como um conjunto de pares ordenados com propriedades um-para-muitos de domínio para co-domínio / intervalo.

Qual é a diferença fundamental entre eles em termos formais?

Respostas

5 nbro Dec 30 2020 at 17:29

Embora isso possa não ser aplicável a todos os casos, gosto de pensar em um modelo como um conjunto de funções, então aqui está a diferença.

Por que essa definição é útil? Se você pensar em uma rede neural com um vetor de parâmetros$\theta \in \mathbb{R}^m$como modelo, uma combinação específica desses parâmetros representa uma função específica. Por exemplo, suponha que temos uma rede neural com 2 entradas, 1 neurônio escondido (com uma função de ativação ReLU, denotada como$\phi$, que segue uma combinação linear das entradas) e 1 neurônio de saída (com uma função de ativação sigmóide, $\sigma$) As entradas são conectadas à única unidade oculta e essas conexões têm um peso real. Se ignorarmos vieses, então existem 3 parâmetros, que podem ser agrupados no vetor de parâmetros$\theta = [\theta_1, \theta_2, \theta_3] \in \mathbb{R}^3 $. A função arbitrária que esta rede neural representa pode ser definida como segue

$$ f(x_1, x_2) = \sigma (\theta_3 \phi(x_1 \theta_1 + x_2 \theta_2)) \tag{1}\label{1}, $$

Neste caso, a equação \ ref {1} representa o modelo, dado o espaço de parâmetros $\Theta = \mathbb{R}^3$. Para quaisquer valores específicos que$\theta_1, \theta_2,$ e $\theta_3$ pode assumir, temos uma função específica (determinística) $f: \mathbb{R} \rightarrow [0, 1]$.

Por exemplo, $\theta = [0.2, 10, 0.4]$ representa alguma função específica, a saber

$$ f(x_1, x_2) = \sigma (0.4 \phi(x_1 0.2 + x_2 10.0)) $$Você pode representar graficamente esta função (com Matplotlib) para alguns valores das entradas para ver como fica. Observe que$x_1$ e $x_2$ pode ser arbitrário (porque essas são apenas as entradas, que assumi serem números reais).

Esta interpretação de um modelo é consistente com a definição de uma classe de hipóteses (ou espaço) na teoria da aprendizagem computacional, que é essencialmente um conjunto de funções . Essa interpretação também é consistente com os teoremas de aproximação universal para redes neurais , que afirmam que você pode encontrar um conjunto específico de parâmetros de modo que possa calcular aproximadamente uma determinada função arbitrariamente bem, desde que algumas condições sejam atendidas. Essa interpretação também pode ser aplicada a árvores de decisão, HMM, RNNs e todos esses modelos de ML.

O termo modelo também é algumas vezes usado para se referir a uma distribuição de probabilidade, por exemplo, no contexto de aprendizagem por reforço, onde $p(s', r \mid s, a)$ é uma distribuição de probabilidade sobre o próximo estado $s'$ e recompensa $r$ dado o estado atual $s$ e ação $a$ tirado naquele estado $s$. Verifique esta questão para mais detalhes. Uma distribuição de probabilidade também pode ser pensada como um conjunto de funções (possivelmente infinitamente grande), mas não é apenas um conjunto de funções, porque você também pode amostrar de uma distribuição de probabilidade (ou seja, há alguma estocasticidade associada a uma distribuição de probabilidade). Portanto, uma distribuição de probabilidade pode ser considerada um modelo estatístico ou pode ser usada para representá-la. Verifique esta resposta .

1 Acccumulation Dec 31 2020 at 06:56

Qualquer modelo pode ser considerado uma função. O termo "modelo" simplesmente denota uma função sendo usada de uma maneira particular, ou seja, para aproximar alguma outra função de interesse.

anurag Dec 31 2020 at 03:31

Em termos simples, um modelo de rede neural é um aproximador de função que tenta ajustar a curva da função de hipótese. A própria função tem uma equação que irá gerar uma curva fixa:

Se tivermos a equação (ou seja, a função), não precisaremos da rede neural para seus dados de entrada. No entanto, quando temos apenas alguma noção de sua curva (ou dos dados de entrada e saída), buscamos um aproximador de função, de forma que, para novos dados de entrada invisíveis, possamos gerar a saída.

Treinar essa rede neural é chegar o mais próximo possível do original (função desconhecida).

AdamAcosta Jan 01 2021 at 02:05

Todo modelo é uma função. Nem toda função é um modelo.

Uma função mapeia exclusivamente elementos de algum conjunto para elementos de outro conjunto, possivelmente o mesmo conjunto.

Cada modelo de IA é uma função porque eles são implementados como programas de computador e cada programa de computador é uma função que mapeia exclusivamente a combinação da sequência de bits na memória e armazenamento na inicialização do programa, mais entradas, para a sequência de bits na memória e armazenamento , mais a saída, no encerramento do programa.

No entanto, um 'modelo' é muito especificamente uma representação de algo. Pegue a curva logística:

$$ f(x) = \frac{L}{1 + e^{k(x-x_{0})} } $$

Dados valores reais arbitrários para $L$, $k$, e $x_{0}$, isso é uma função. No entanto, dados valores muito mais específicos aprendidos com os dados, pode ser um modelo de crescimento populacional.

Da mesma forma, uma rede neural com pesos inicializados com todos os zeros é uma função, mas uma função muito desinteressante com o codomínio bastante limitado $\{0\}$. No entanto, se você treinar a rede alimentando-a com um monte de dados até que os pesos convirjam para fornecer previsões ou ações que correspondem aproximadamente a algum processo de geração do mundo real, agora você tem um modelo desse processo de geração.