Una red neuronal puede aproximarse a cualquier función, incluida la derivada de una función de pérdida y sí, puede calcularse en tiempo lineal (aunque la constante depende del tamaño de la red). Sin embargo, para entrenar esa red, es posible que deba calcular tantas o más derivadas que para entrenar la red original en la que necesita la función de pérdida. Usar un NN para aproximar la derivada al entrenar otro NN es peligroso porque tendrá un error y eso significa que su NN principal está aprendiendo a aproximar una función ligeramente diferente de la que desea. Normalmente, en condiciones ideales, un NN puede aproximar una función de manera arbitrariamente cercana. El tuyo no puede. Una vez entrenado, no debería tener problemas para calcular la derivada aproximada en el tiempo [matemático] O (n) [/ matemático].
En la mayoría de las aplicaciones, calcular la derivada de una función de pérdida no será el cuello de botella computacional, pero tal vez lo sea en el suyo. De hecho, actualmente estoy trabajando en un problema en el que la función de pérdida es increíblemente costosa de calcular. Es por eso que elegí una función de pérdida diferente. Mi función de pérdida ni siquiera es equivalente a la original, pero es cercana y fácil de calcular la derivada de. Mi NN también convergerá a una función ligeramente diferente. Si puede encontrar una función de pérdida similar con una derivada fácil de calcular, definitivamente será más rápida que usar un segundo NN, pero no sé si los resultados serán mejores o peores.
- ¿Cuál de estos maestros ofrece más oportunidades laborales en Europa, ciencia de datos, inteligencia artificial o informática en general?
- ¿Puede la inteligencia artificial hacerse consciente de sí misma?
- ¿Qué es el aprendizaje automático y cómo lo implemento en robots?
- ¿Cuál es el significado de Machine Learning en el espacio emergente de ChatBot?
- ¿Qué es el lenguaje de programación robótico?