¿Cómo construiría un sitio web que utiliza el aprendizaje automático (qué marcos para frontend y backend, Python o R)?

Acabo de completar mi tercer proyecto de aprendizaje automático y creo que puedo darle algunos buenos consejos para comenzar rápidamente. Por supuesto, hay muchas tecnologías para elegir, pero las siguientes son algunas opciones excelentes:

  • Desarrollo: Python + Keras con backend Tensorflow
  • Implementación: back-end: uso ampliamente Docker para simplificar la implementación del servidor. Para manejar la parte ML, uso Tensorflow Serving and Flask para API. Si se requiere autenticación y almacenamiento de usuario, uso Firebase, que es un backend como servicio. Para la interfaz utilizo Jquery.

Más detalles:

Uso Anaconda (Descargas) como mi paquete de Python y uso Keras (Documentación de Keras) para desarrollar / probar modelos rápidamente. Una vez que los modelos están finalizados, es fácil exportarlos a un formato nativo de Tensorflow (ver export_model.py en amiyapatanaik / tensorflow-serving-docker-image). El modelo exportado se puede usar en un tensorflow que sirve al servidor gRPC (https://hub.docker.com/r/amiyapa…). La imagen de Docker hace que sea muy fácil de hacer.

Una vez que el servidor gRPC se está ejecutando, uso Flask para crear una API a su alrededor. En producción, puede ejecutar la API Flask detrás de uWSGI, que está detrás de un servidor Nginx. Esta combinación puede manejar el tráfico del mundo real y funciona a la perfección. Una vez más, puede encontrar una imagen de Docker para facilitar su implementación aquí: https://hub.docker.com/r/amiyapa…

Si tiene alguna experiencia con Docker, puede escribir un archivo docker-compose.yml con todos los servicios en uno. Estos son los archivos de configuración reales utilizados en Klick Amazing Portraits

  # klickme.co componer - Amiya Patanaik
 versión: '3'
 servicios:

     tfserver:
         imagen: "amiyapatanaik / tfserve: optimizado"
         puertos:
            - "9000: 9000"
         volúmenes:
            - ./modelos:/modelos

     restapi:
         construir: .
         puertos:
             - "80:80"
             - "443: 443"
         depende de:
         - tfserver

Dockerfile para el restapi:

  #descargar el amiyapatanaik / tfrestapi básico: https
 DE amiyapatanaik / tfrestapi: https

 # copia el código de la carpeta de la aplicación
 COPY ./app / app

 # configuración de certificados SSL para https
 COPY ./ssl-keys/entrypoint.sh /
 EJECUTAR chmod + x /entrypoint.sh
 COPY ./ssl-keys/server.crt / etc / ssl /
 COPY ./ssl-keys/server.key / etc / ssl /
 COPY ./ssl-keys/uwsgi.ini / etc / uwsgi /

 #instalar paquetes necesarios si es necesario
 EJECUTAR pip install -r /app/requirements.txt
 EJECUTAR python /app/setup.py build_ext --inplace

 #set entornos
 ENV STATIC_PATH = / app / static
 ENV NGINX_MAX_UPLOAD = 10m

Después de esto, todo lo que tengo que hacer para que la aplicación se ejecute es cargar todos los archivos en el servidor y escribir: docker-compose up -d y funciona como magia.

Por cierto: siempre puedes usar créditos gratuitos de Amazon o Google para ejecutar tus aplicaciones. Solo tienes que comprar el nombre de dominio. De hecho, Klick Amazing Portraits se ejecuta en servidores de Google gratuitos.

Bueno, el lenguaje front-end no es importante en su pregunta, ya que no tiene algo que ver con el ” sitio web que utiliza el aprendizaje automático”.

Sin embargo, las mejores opciones para AI (aprendizaje automático) es Python. Porque

  • Si tiene alguna experiencia en programación antes de aprender ciencia de datos, mi recomendación sería que aprenda Python. Su sintaxis clara sería fácil de asimilar; y al ser un lenguaje de propósito general, tendría la flexibilidad adicional para construir cosas nuevas. Incluso se aconseja a un novato completo que aprenda Python, ya que es uno de los idiomas más amigables para principiantes en informática, siendo el lenguaje de enseñanza introductorio más popular en las principales universidades de los EE. UU. (Comunicaciones del artículo de ACM, 2014). El código R llega al punto más rápido y también es menos detallado, pero tiene una sintaxis peculiar que sería difícil de aprender tanto para programadores hardcore como para principiantes.
  • Tener experiencia en estadística o matemáticas hace que R sea una mejor opción para usted. Esto se debe a que R es un lenguaje específico de dominio creado específicamente para estadísticas, lo que hace que su uso sea intuitivo para personas con un título en estadística. R fue creado por estadísticos y hecho con otros estadísticos en mente, por lo que tener un conocimiento del análisis estadístico hace que la transición a este lenguaje sea aún más fácil.
  • Como analista de datos / analista de negocios / analista financiero, su enfoque sería extraer la mayor parte de la información de sus datos, sin necesidad de crear un producto a partir de su contenido. Por esta razón, aprender R y un lenguaje de base de datos como SQL le serviría mejor, ya que R es excelente para trabajar con datos tabulares en un solo sistema / servidor y tiene excelentes bibliotecas como ggplot2 para visualizaciones fáciles. Pero un científico de datos tiene diferentes requisitos, ya que se espera que realicen análisis y creen productos como motores de aprendizaje automático que funcionan en la base de datos de un sitio web o un software. Esto requeriría tanto el desarrollo de software como el trabajo de modelado predictivo que se puede lograr mejor con un lenguaje de propósito general como Python. Estos principios se aplicarían en todas las industrias.
  • El aprendizaje profundo es el tema de tendencia del día y cualquier persona interesada en contribuir al crecimiento de la tecnología de inteligencia artificial debería aprender Python. Su abrumadora popularidad tanto para el aprendizaje automático como para el aprendizaje profundo proviene del hecho de que Python actúa como una interfaz entre el programador y los lenguajes de nivel inferior como C / C ++, lo que hace que sea muy fácil experimentar, crear modelos y depurar sin comprometer en velocidad computacional (ya que la máquina usa tecnología C / C ++ y CUDA para construir los modelos). Esto hace que Python sea un lenguaje muy accesible para matemáticos y estadísticos que buscan crear modelos de redes neuronales sin tener que comenzar a crearlos desde cero debido a los marcos preexistentes proporcionados por Python.

Notas finales

Como puede ver, cuanto más profundo desee ingresar en la ciencia de datos y el aprendizaje automático, más tiene sentido que opte por Python, aunque R también tiene sus propias ventajas. En última instancia, tener un conocimiento profundo de ambos, las limitaciones y fortalezas de cada idioma es el mejor enfoque para aprender estos dos idiomas únicos. Dicho esto, sugiero que los entusiastas de la ciencia de datos hagan una elección adecuada para sus necesidades y aspiraciones.

Si eres un novato completo, te recomendaría Python ya que los recursos para aprender están disponibles con bastante facilidad. Mientras construía mi aplicación web que usa aprendizaje automático, había usado Python Flask (jinja) para el front-end y Python para el back-end .

More Interesting

¿Cómo puede una red neuronal ser capaz de razonamiento simbólico? ¿Cómo puede unir variables?

¿Qué tipos de trabajos están disponibles en la industria financiera para un máster en ML / AI graduado?

¿El curso de aprendizaje automático que el profesor Andrew Ng ofrece en Coursera me será útil como desarrollador de software profesional para resolver problemas de aprendizaje automático del mundo real?

¿Cuál es la diferencia entre 'Inferencia' y 'Estimación del modelo' en los documentos de LA?

¿Cómo pudo la policía de Arizona llegar a una conclusión tan rápida que el auto Uber que se volcó no fue el culpable?

¿Qué tan importante es Octave como primer paso en Machine Learning? ¿Se utiliza en la industria?

¿Cómo la IA puede ser útil en Big Data?

¿A qué tipo de personalización en Machine Learning se refería Andrew Ng en su artículo de Harvard Business Review sobre las capacidades de IA?

Estoy tratando de construir un proyecto de aprendizaje automático para predecir el precio del automóvil usado. ¿Dónde puedo obtener una base de datos para la reventa de los autos usados?

¿Es posible detectar una estructura de acordes en una canción usando el aprendizaje profundo? Si es así, ¿cómo?

¿Qué nivel de experiencia en aprendizaje automático se espera de un científico de datos?

¿Cuáles son algunos casos de uso para el anonimato de datos?

¿Cuál es la mejor manera de crear un conjunto de redes neuronales?

¿Qué significa cuando obtengo buenos resultados de la medida F con un CV de 10 veces pero resultados pobres en los datos de la prueba, resultados similares si participo el conjunto de datos original en el conjunto de entrenamiento / validación? Obtengo buenos resultados en la validación pero malos resultados en el conjunto de pruebas.

¿Cuál sería la mejor manera de encontrar estudiantes universitarios interesados ​​en un proyecto de investigación sobre la interfaz entre bioinformática y aprendizaje automático, en Johns Hopkins?