¿Cuál es la diferencia fundamental entre un modelo ML y una función?
Un modelo puede definirse aproximadamente como cualquier diseño que pueda resolver una tarea de AA. Ejemplos de modelos son la red neuronal, el árbol de decisiones, la red de Markov, etc.
Una función se puede definir como un conjunto de pares ordenados con propiedad de uno a muchos desde el dominio hasta el co-dominio / rango.
¿Cuál es la diferencia fundamental entre ellos en términos formales?
Respuestas
Aunque esto puede no ser aplicable a todos los casos, me gusta pensar en un modelo como un conjunto de funciones, así que aquí está la diferencia.
¿Por qué es útil esta definición? Si piensa en una red neuronal con un vector de parámetros$\theta \in \mathbb{R}^m$como modelo, una combinación específica de estos parámetros representa una función específica. Por ejemplo, supongamos que tenemos una red neuronal con 2 entradas, 1 neurona oculta (con una función de activación ReLU, denotada como$\phi$, que sigue una combinación lineal de las entradas) y 1 neurona de salida (con una función de activación sigmoidea, $\sigma$). Las entradas están conectadas a la única unidad oculta y estas conexiones tienen un peso real. Si ignoramos los sesgos, entonces hay 3 parámetros, que se pueden agrupar en el vector de parámetros$\theta = [\theta_1, \theta_2, \theta_3] \in \mathbb{R}^3 $. La función arbitraria que representa esta red neuronal se puede definir de la siguiente manera
$$ f(x_1, x_2) = \sigma (\theta_3 \phi(x_1 \theta_1 + x_2 \theta_2)) \tag{1}\label{1}, $$
En este caso, la ecuación \ ref {1} representa el modelo, dado el espacio de parámetros $\Theta = \mathbb{R}^3$. Para cualquier valor específico que$\theta_1, \theta_2,$ y $\theta_3$ puede tomar, tenemos una función específica (determinista) $f: \mathbb{R} \rightarrow [0, 1]$.
Por ejemplo, $\theta = [0.2, 10, 0.4]$ representa alguna función específica, a saber
$$ f(x_1, x_2) = \sigma (0.4 \phi(x_1 0.2 + x_2 10.0)) $$Puede trazar esta función (con Matplotlib) para algunos valores de las entradas para ver cómo se ve. Tenga en cuenta que$x_1$ y $x_2$ puede ser arbitrario (porque esas son solo las entradas, que asumí que eran números reales).
Esta interpretación de un modelo es consistente con la definición de una clase de hipótesis (o espacio) en la teoría del aprendizaje computacional, que es esencialmente un conjunto de funciones . Esta interpretación también es coherente con los teoremas de aproximación universal para redes neuronales , que establecen que puede encontrar un conjunto específico de parámetros de modo que pueda calcular aproximadamente una función dada de forma arbitraria, dado que se cumplen algunas condiciones. Esta interpretación también se puede aplicar a árboles de decisión, HMM, RNN y todos estos modelos ML.
El término modelo también se usa a veces para referirse a una distribución de probabilidad, por ejemplo, en el contexto del aprendizaje por refuerzo, donde $p(s', r \mid s, a)$ es una distribución de probabilidad sobre el siguiente estado $s'$ y recompensa $r$ dado el estado actual $s$ y acción $a$ tomado en ese estado $s$. Consulte esta pregunta para obtener más detalles. Una distribución de probabilidad también podría considerarse como un conjunto de funciones (posiblemente infinitamente grande), pero no es solo un conjunto de funciones, porque también puede tomar muestras de una distribución de probabilidad (es decir, hay algo de estocasticidad asociada con una distribución de probabilidad). Entonces, una distribución de probabilidad puede considerarse un modelo estadístico o puede usarse para representarlo. Comprueba esta respuesta .
Cualquier modelo puede considerarse una función. El término "modelo" simplemente denota una función que se usa de una manera particular, es decir, para aproximar alguna otra función de interés.
En términos simples, un modelo de red neuronal es un aproximador de función que intenta ajustar la curva de la función de hipótesis. Una función en sí tiene una ecuación que generará una curva fija:
Si tenemos la ecuación (es decir, la función), no necesitamos una red neuronal para sus datos de entrada. Sin embargo, cuando solo tenemos alguna noción de su curva (o los datos de entrada y salida) buscamos un aproximador de función, de modo que para los datos de entrada nuevos y no vistos, podamos generar la salida.
Entrenar esta red neuronal consiste en acercarse lo más posible al original (función desconocida).
Cada modelo es una función. No todas las funciones son un modelo.
Una función mapea de forma única elementos de un conjunto a elementos de otro conjunto, posiblemente el mismo conjunto.
Cada modelo de IA es una función porque se implementan como programas de computadora y cada programa de computadora es una función que asigna de manera única la combinación de la secuencia de bits en la memoria y el almacenamiento al inicio del programa, más las entradas, a la secuencia de bits en la memoria y el almacenamiento. , más salida, al finalizar el programa.
Sin embargo, un 'modelo' es muy específicamente una representación de algo. Tome la curva logística:
$$ f(x) = \frac{L}{1 + e^{k(x-x_{0})} } $$
Dados valores reales arbitrarios para $L$, $k$y $x_{0}$, esa es una función. Sin embargo, dados valores mucho más específicos extraídos de los datos, puede ser un modelo de crecimiento de la población.
Del mismo modo, una red neuronal con pesos inicializados a todos los ceros es una función, pero una función muy poco interesante con el codominio bastante limitado $\{0\}$. Sin embargo, si luego entrena la red alimentándola con un montón de datos hasta que los pesos convergen para dar predicciones o acciones que corresponden aproximadamente a algún proceso de generación del mundo real, ahora tiene un modelo de ese proceso de generación.