¿Los algoritmos subyacentes permiten a Shazam identificar una canción y Amazon Flow para identificar una imagen básicamente igual?

De hecho, lo son, pero también son bastante diferentes. Lo más probable es que solo sean redes neuronales artificiales, que es una forma de permitir que una computadora intente encontrar un estimador para alguna función desconocida, incluso si es una función de una matriz de valores de brillo de píxeles para el conjunto {gato, perro, elefante} , o desde muestras de sonido codificadas hasta el nombre de una canción. Esto es realmente bastante simple y bien entendido.

La razón por la que son bastante diferentes es todo lo demás: la mejor representación de los datos de entrada a menudo no es una matriz de valores de brillo de píxeles de una foto aleatoria; es mejor si puede corregir la perspectiva (sesgar y rotar para que el objeto de interés esté de frente), cortar detalles innecesarios y tal vez incluso usar OCR para reconocer el texto en la imagen y aplicar correcciones generales al brillo, el contraste y el ruido. Para el procesamiento de sonido, es posible que desee ejecutar algunos filtros primero, eliminar el ruido, tratar de extraer partes de la letra con reconocimiento de voz e intentar encontrar el tempo y la estructura del ritmo. También puede superponer ANNs uno encima del otro, con una red trabajando para encontrar alguna característica, que luego se extrae y se pasa a la siguiente.

El resultado dependerá en gran medida de lo fácil que pueda llegar a las redes neuronales para separar sus entradas en clases, y cada aplicación funcionará mejor si se ajusta con precisión a la tarea en cuestión.

Aparte de lo anterior, las redes neuronales artificiales no están realmente preprogramadas o incluso programadas. Ellos estan entrenados. Entiendes lo que está haciendo una red neuronal tanto como entiendes lo que hace un cerebro humano al observar los patrones de electricidad, lo que significa que son bastante difíciles de depurar. Hubo un caso en el que supuestamente el ejército de algún país había gastado millones para desarrollar software que pueda reconocer los tanques enemigos en imágenes de una cámara, y estaba funcionando bastante bien en los datos de entrenamiento, pero cuando lo probaron en el campo los resultados fueron aleatorios. Resultó que todas las fotos con tanques en ellas habían sido tomadas durante un día nublado, y todas las fotos sin tanques fueron tomadas en un día soleado. El ANN había aprendido a reconocer el color del cielo.

El audio debería ser más simple. Básicamente, convierte la música al plano de frecuencia utilizando la transformación de Fourier a lo largo del tiempo, y probablemente también filtra los tonos más altos, ya que contienen ruido y pueden confundir la coincidencia de patrones. Luego se trata de comparar con la información de referencia previamente almacenada, también en el plano de frecuencia y compactada de alguna manera para minimizar el espacio y maximizar el rendimiento, y evaluar cuál podría ser el golpe más cercano, si lo hay.

No, ellos usan el aprendizaje profundo. Por lo que recuerdo, usan convoluciones dilatadas temporales en el dominio del tiempo (sin transformada de Fourier).