La in­te­li­ge­n­cia ar­ti­fi­cial desempeña un papel fu­n­da­me­n­tal en el mundo digital actual, tanto en el de­sa­rro­llo y el uso de vi­deo­jue­gos (u otros programas de apli­ca­ción) como en los servicios web, los di­s­po­si­ti­vos o las máquinas. En este sentido, uno de los campos de in­ve­s­ti­ga­ción más im­po­r­ta­n­tes es el de las llamadas redes neu­ro­na­les (en inglés, neural networks), que estudia en pro­fu­n­di­dad los conceptos básicos del “pe­n­sa­mie­n­to virtual”. La im­ple­me­n­ta­ción de estas redes se si­m­pli­fi­ca co­n­si­de­ra­ble­me­n­te con Keras. Descubre qué esconde esta bi­blio­te­ca de código abierto y cómo facilita la creación de redes neu­ro­na­les.

¿Qué es Keras?

Keras es una bi­blio­te­ca de código abierto (con licencia MIT) escrita en Python, que se basa pri­n­ci­pa­l­me­n­te en el trabajo de François Chollet, un de­sa­rro­lla­dor de Google, en el marco del proyecto ONEIROS (Open-ended Neuro-Ele­c­tro­nic In­te­lli­ge­nt Robot Operating System). La primera versión de este software mu­l­ti­pla­ta­fo­r­ma se lanzó el 28 de marzo de 2015. El objetivo de la bi­blio­te­ca es acelerar la creación de redes neu­ro­na­les: para ello, Keras no funciona como un framework in­de­pe­n­die­n­te, sino como una interfaz de uso intuitivo (API) que permite acceder a varios fra­me­wo­r­ks de apre­n­di­za­je au­to­má­ti­co y de­sa­rro­llar­los. Entre los fra­me­wo­r­ks co­m­pa­ti­bles con Keras, se incluyen Theano, Microsoft Cognitive Toolkit (an­te­rio­r­me­n­te CNTK) y Te­n­so­r­Flow.

Nota

Keras ha sido una parte integral de la API principal de Te­n­so­r­Flow desde que se lanzó Te­n­so­r­Flow 1.4. Sin embargo, esta bi­blio­te­ca continúa de­sa­rro­llá­n­do­se como software in­de­pe­n­die­n­te, ya que se diseñó como una interfaz para diversos fra­me­wo­r­ks desde el principio, un enfoque que se sigue aplicando.

La versión actual de Keras es co­m­pa­ti­ble con Python desde la versión 2.7: puedes acceder al proyecto completo a través del di­re­c­to­rio oficial de GitHub de Keras.

¿Cómo funciona Keras?

Keras es una bi­blio­te­ca que funciona a nivel de modelo: pro­po­r­cio­na bloques modulares sobre los que se pueden de­sa­rro­llar modelos complejos de apre­n­di­za­je profundo. A di­fe­re­n­cia de los fra­me­wo­r­ks, este software de código abierto no se utiliza para ope­ra­cio­nes sencillas de bajo nivel, sino que utiliza las bi­blio­te­cas de los fra­me­wo­r­ks de apre­n­di­za­je au­to­má­ti­co vi­n­cu­la­das, que en cierto modo actúan como un motor de backend para Keras. Las capas de la red neuronal que se quieren co­n­fi­gu­rar se re­la­cio­nan entre sí de acuerdo con el principio modular, sin que el usuario de Keras tenga que co­m­pre­n­der o controlar di­re­c­ta­me­n­te el propio backend del framework elegido.

Como hemos me­n­cio­na­do, Keras se basa es­pe­cia­l­me­n­te en las he­rra­mie­n­tas Te­n­so­r­Flow, Theano y Microsoft Cognitive Toolkit, para las cuales existen in­te­r­fa­ces listas para usar que permiten un acceso rápido e intuitivo al backend co­rre­s­po­n­die­n­te. Así, no es necesario que te decidas por un framework concreto, porque es posible cambiar de backend fá­ci­l­me­n­te. Si lo prefieres, también puedes elegir un backend al­te­r­na­ti­vo, aparte de estas tres so­lu­cio­nes. Para ello, solo debes es­pe­ci­fi­car­lo en el archivo de co­n­fi­gu­ra­ción (keras.json) y aplicarlo mediante las funciones “pla­ceho­l­der”, “variable” y “function”.

Consejo

Puedes obtener in­fo­r­ma­ción más detallada sobre la ad­mi­ni­s­tra­ción de los backend y el uso general del software en nuestro completo tutorial de Keras.

¿Qué ventajas ofrece Keras?

La bi­blio­te­ca de código abierto Keras supone una excelente apo­r­ta­ción a las he­rra­mie­n­tas que sirven para crear redes neu­ro­na­les, ya que si­m­pli­fi­ca muchísimo este proceso. En este caso, la atención se centra sobre todo en mejorar la usa­bi­li­dad: Keras funciona como una interfaz diseñada ex­pre­sa­me­n­te para personas y solo se­cu­n­da­ria­me­n­te para máquinas. Las acciones del usuario ne­ce­sa­rias para los casos de uso más im­po­r­ta­n­tes se reducen al mínimo y, si aun así se producen errores, se pro­po­r­cio­na un feedback que ayuda a re­so­l­ve­r­los. Por lo tanto, aprender a utilizar Keras es re­la­ti­va­me­n­te fácil, lo que mejora la pro­du­c­ti­vi­dad. Además, gracias a la conexión con los fra­me­wo­r­ks de apre­n­di­za­je profundo, esta si­m­pli­ci­dad no conlleva li­mi­ta­cio­nes fu­n­cio­na­les: puedes in­co­r­po­rar todas las ca­ra­c­te­rí­s­ti­cas que quieras a través de in­te­r­fa­ces que se adaptan a la pe­r­fe­c­ción (o volverlas a des­ha­bi­li­tar si es necesario).

Keras también presenta las si­guie­n­tes ventajas:

  • Amplia co­m­pa­ti­bi­li­dad entre pla­ta­fo­r­mas para los modelos de­sa­rro­lla­dos: los modelos de­sa­rro­lla­dos con Keras son es­pe­cia­l­me­n­te fáciles de utilizar en di­fe­re­n­tes pla­ta­fo­r­mas. Por ejemplo, son co­m­pa­ti­bles con iOS (Apple CoreML), Android (Keras Te­n­so­r­Flow Android Runtime), Google Cloud y Raspberry Pi por defecto.
  • Co­m­pa­ti­bi­li­dad con múltiples motores de backend: Keras no solo te da mucha libertad a la hora de elegir el backend, sino que también te permite combinar varios motores. Además, es posible tra­n­s­fe­rir los modelos de­sa­rro­lla­dos a otro backend en cualquier momento.
  • Excelente soporte para múltiples GPU: con Keras, los recursos ne­ce­sa­rios para de­sa­rro­llar los procesos de apre­n­di­za­je profundo se pueden di­s­tri­buir fá­ci­l­me­n­te en varios chips o tarjetas gráficas.
  • De­sa­rro­llo por parte de grandes empresas: el ma­n­te­ni­mie­n­to y el de­sa­rro­llo de Keras cuentan con el apoyo de las empresas más im­po­r­ta­n­tes del sector. Google, Amazon AWS, Microsoft, Apple y Nvidia, entre otras, están im­pli­ca­das en el proyecto.

¿Para qué proyectos es adecuado Keras?

Como interfaz universal para gran variedad de pla­ta­fo­r­mas de apre­n­di­za­je au­to­má­ti­co, Keras se utiliza ac­tua­l­me­n­te en muchos proyectos del sector de la IA. Si la bi­blio­te­ca ya re­gi­s­tra­ba más de 250 000 usuarios in­di­vi­dua­les a mediados de 2018, esta cantidad ha aumentado si­g­ni­fi­ca­ti­va­me­n­te, al menos desde la in­co­r­po­ra­ción al software Te­n­so­r­Flow de Keras. La libre elección del framework su­b­ya­ce­n­te, la licencia gratuita y el concepto mu­l­ti­pla­ta­fo­r­ma hacen de Keras la solución perfecta para las apli­ca­cio­nes de redes neu­ro­na­les pro­fe­sio­na­les, tanto en la industria como en la in­ve­s­ti­ga­ción. Por ejemplo, empresas famosas como Netflix, Uber y Yelp, así como grandes or­ga­ni­za­cio­nes como la NASA o la CERN, confían en Keras o en el paquete Te­n­so­r­Flow-Keras para llevar a cabo sus proyectos.

Ir al menú principal