Mira a este chico. Es una pequeña red neuronal, apenas capaz de aprender a realizar una operación XOR. A diferencia de sus primos más grandes, no puede conducirse ni ganar campeonatos mundiales de Go. Pero sus “genes” son los mismos que los de sus parientes más reconocidos: se dedica a las matemáticas.
Las redes neuronales se han convertido en la “próxima gran cosa” en informática, integral para el desarrollo de automóviles autónomos, visión por computadora y traducción automática. Como ingeniero de software, es probable que tenga que trabajar con estas tecnologías emergentes a medida que se vuelven convencionales.
- ¿Cuáles son los principales idiomas que un ingeniero de software necesita saber?
- Sé algo de codificación, pero no matemática, física, ¿puedo hacerlo a través de la ingeniería?
- ¿A quién irías para un puesto de ingeniería de software, alguien de Accenture o Google?
- Como ingeniero de software que ya trabaja, ¿cuánto tiempo tomaría ser contratado por Google y luego trabajar en el equipo de Angular?
- ¿Cuál es la diferencia en el trabajo que hace un ingeniero de software que obtiene 3LPA y 6LPA?
Una gran pregunta es “¿por qué ahora?” Hace décadas que conocemos las redes neuronales artificiales, pero solo ahora podemos aprovechar todo su potencial. Una razón es que la potencia informática ha avanzado muchos órdenes de magnitud desde su inicio, pero un desarrollo clave fue la invención de un algoritmo eficiente de retropropagación para calcular el gradiente de la función de costo de una red neuronal.
Este algoritmo de retropropagación se deriva de la regla de la cadena para funciones multivariables, que solo se cubre en el cálculo del tercer semestre. Los diversos algoritmos de optimización convexa desarrollados por investigadores informáticos y matemáticos requieren cálculo para su comprensión.
El aprendizaje automático también requiere un amplio álgebra lineal para comprender la teoría detrás de la implementación eficiente de varios algoritmos en clústeres de computación en paralelo. Sin paralelización con las GPU, nuestra otra tecnología informática sería completamente ineficaz en el aprendizaje profundo; software como AlphaGo llevaría décadas entrenarse de manera efectiva en procesadores convencionales.
Este es solo un ejemplo del nivel en que las matemáticas penetran la informática. Como ingeniero, se espera que conozca las compensaciones entre diferentes algoritmos, incluso si no tiene que implementarlos. Y una buena comprensión del cálculo ayudará mucho en esa comprensión.