Hola amigos, como mi salud y dolores de los dientes con inflamación del lado derecho de mi mandíbula me impiden avanzar mas rápido con mis trabajos aquí presentados, uso el tiempo tratando de avanzar en áreas que me van a ser de valor en mis experimentos y en las funcionalidades que pienso realizar. Uno de los temas, que además por el interés que despiertan en mi me ayuda sobreponerme y estudiar. Hablo aquí por ejemplo del realizar GUIs, interfaces gráficas para controlar mis experimentos. Debido a que mis investigaciones parecen indicarlo, me he decidido por usar Qt en su versión 5, breve Qt5. Como sistema para mis trabajos estoy utilizando mi PC con Ubuntu 16.04 TLS, que es la versión mas actual estable y que persistirá mínimo 2 años mas. No fue nada fácil lograr la instalación en Ubuntu, entender el resultado de la instalación y crear el símbolo para abrir el programa en el listón de aplicaciones en Ubuntu que aparece en el costado izquierdo de mi pantalla principal. Una vez logrado me acabo sorprendiendo que tan simple es lograr esto, lo que dice mucho sobre mi limitada experiencia can Linux.
En Ubuntu tengo varias formas de instalar un programa:
1. Usando el programa que se activa pinchando el símbolo "Ubuntu Software" en el listón en la pantalla- Esta función muestra todos los programas que Ubuntu conoce y ofrece botones junto al símbolo de cada programa para "Instalar" o "Quitar" el programa. Además ofrece como "filtro" el mostar todos los programas que conoce, o solo aquellos instalados. Cuando lo que buscamos aparece, entonces esto es un buen camino. Si usando la funcionalidad para buscar un cierto programa resulta de no conocerlo, entonces otros caminos se ofrecen.
2. Para ver si "por accidente" ya hemos instalado el programa se puede abrir una ventana de "Terminal", donde se tiene acceso a Ubuntu a nivel sin gráficos, sin GUI, escribir el nombre del programa y ver si se abre! Resulta que Linux hace una diferencia entre letras en mayúscula y minúscula y por que no se sabe exactamente como el programa buscado es conocido por Ubuntu, vale experimentar un poco. El programa "Mathematica" de Wolfram por ejemplo es arrancado escribiendo el nombre solo en minúsculas!
3. Usar la función de Linux "apt-get" y tratar de iniciar la instalación del programa deseado. Esto se beneficia de la forma, muy diferente a "Windows" de Linux para acceder programas. Programas son agregados por el proveedor en una base de datos de "paquetes"! En ella no solo se archivan los programas para instalar un programa, sino también las dependencias que ese programa tiene de otros programas o funciones para ser ejecutado. Usando el renglón de comamdo de Linux:
sudo apt-get Install "nombre del programa"
Esto hace que se busca si el programa deseado existe en esta base de "paquetes" y se empieza con el proceso de instalación del programa.
4. Si el proveedor no ha puesto su programa en esa base de "paquetes" entonces usando el Browser, yo por ejemplo uso "Chrome", se baja el programa desde el sitio del proveedor, tal cual ocurre usando Windows. El resultado es un archivo empaquetando la software y depositándolo en "Downloads".
Así hay que tener instalado un programa para sacar el contenido de ese archivo empaquetado resultando en tener una carpeta en la carpeta "Downloads". Ahora resulta que no siempre está claro a cual carpeta hay que mover la carpeta descargada para corresponder con los requerimientos del programa. Por lo general "/usr" es el lugar. entonces se ejecuta el programa de instalación, que en muchos casos es un "escript" de "bash" por ejemplo. Entonces se usa "sh" "nombre de instalador".sh. Pero como escribo, no siempre es así!
El resultado de estas diferentes formas de instalar un programa en Ubuntu no siempre resulta en obtener un símbolo del programa en el listón de programas, donde uno graba el símbolo, obteniendo así una forma de arrancar el programa. A veces es necesario "masajear" un poco el programa para poder ponerlo en el listón. Pero también ocurre, como es el caso en mi PC con Mathematica, que el símbolo vuelve a desaparecer del listón en la pantalla. Entonces abriendo una ventana "Terminal" escribo "mathematica" y el programa arranca. Otros programas o utilidades de programas hay que ir a la carpeta donde se encuentra y arrancarla allí. Para evitarse eso hay que sumar el "enlace" a esa carpeta específica en la lista. Conocemos todos esto de Windows con las "PATH"!
Hola amigos, como mi salud y dolores de los dientes con inflamación del lado derecho de mi mandíbula me impiden avanzar mas rápido con mis trabajos aquí presentados, uso el tiempo tratando de avanzar en áreas que me van a ser de valor en mis experimentos y en las funcionalidades que pienso realizar. Uno de los temas, que además por el interés que despiertan en mi me ayuda sobreponerme y estudiar. Hablo aquí por ejemplo del realizar GUIs, interfaces gráficas para controlar mis experimentos. Debido a que mis investigaciones parecen indicarlo, me he decidido por usar Qt en su versión 5, breve Qt5. Como sistema para mis trabajos estoy utilizando mi PC con Ubuntu 16.04 TLS, que es la versión mas actual estable y que persistirá mínimo 2 años mas. No fue nada fácil lograr la instalación en Ubuntu, entender el resultado de la instalación y crear el símbolo para abrir el programa en el listón de aplicaciones en Ubuntu que aparece en el costado izquierdo de mi pantalla principal. Una vez logrado me acabo sorprendiendo que tan simple es lograr esto, lo que dice mucho sobre mi limitada experiencia can Linux.
En Ubuntu tengo varias formas de instalar un programa:
1. Usando el programa que se activa pinchando el símbolo "Ubuntu Software" en el listón en la pantalla- Esta función muestra todos los programas que Ubuntu conoce y ofrece botones junto al símbolo de cada programa para "Instalar" o "Quitar" el programa. Además ofrece como "filtro" el mostar todos los programas que conoce, o solo aquellos instalados. Cuando lo que buscamos aparece, entonces esto es un buen camino. Si usando la funcionalidad para buscar un cierto programa resulta de no conocerlo, entonces otros caminos se ofrecen.
2. Para ver si "por accidente" ya hemos instalado el programa se puede abrir una ventana de "Terminal", donde se tiene acceso a Ubuntu a nivel sin gráficos, sin GUI, escribir el nombre del programa y ver si se abre! Resulta que Linux hace una diferencia entre letras en mayúscula y minúscula y por que no se sabe exactamente como el programa buscado es conocido por Ubuntu, vale experimentar un poco. El programa "Mathematica" de Wolfram por ejemplo es arrancado escribiendo el nombre solo en minúsculas!
3. Usar la función de Linux "apt-get" y tratar de iniciar la instalación del programa deseado. Esto se beneficia de la forma, muy diferente a "Windows" de Linux para acceder programas. Programas son agregados por el proveedor en una base de datos de "paquetes"! En ella no solo se archivan los programas para instalar un programa, sino también las dependencias que ese programa tiene de otros programas o funciones para ser ejecutado. Usando el renglón de comamdo de Linux:
sudo apt-get Install "nombre del programa"
Esto hace que se busca si el programa deseado existe en esta base de "paquetes" y se empieza con el proceso de instalación del programa.
4. Si el proveedor no ha puesto su programa en esa base de "paquetes" entonces usando el Browser, yo por ejemplo uso "Chrome", se baja el programa desde el sitio del proveedor, tal cual ocurre usando Windows. El resultado es un archivo empaquetando la software y depositándolo en "Downloads".
Así hay que tener instalado un programa para sacar el contenido de ese archivo empaquetado resultando en tener una carpeta en la carpeta "Downloads". Ahora resulta que no siempre está claro a cual carpeta hay que mover la carpeta descargada para corresponder con los requerimientos del programa. Por lo general "/usr" es el lugar. entonces se ejecuta el programa de instalación, que en muchos casos es un "escript" de "bash" por ejemplo. Entonces se usa "sh" "nombre de instalador".sh. Pero como escribo, no siempre es así!
El resultado de estas diferentes formas de instalar un programa en Ubuntu no siempre resulta en obtener un símbolo del programa en el listón de programas, donde uno graba el símbolo, obteniendo así una forma de arrancar el programa. A veces es necesario "masajear" un poco el programa para poder ponerlo en el listón. Pero también ocurre, como es el caso en mi PC con Mathematica, que el símbolo vuelve a desaparecer del listón en la pantalla. Entonces abriendo una ventana "Terminal" escribo "mathematica" y el programa arranca. Otros programas o utilidades de programas hay que ir a la carpeta donde se encuentra y arrancarla allí. Para evitarse eso hay que sumar el "enlace" a esa carpeta específica en la lista. Conocemos todos esto de Windows con las "PATH"!
Hola amigos, como mi salud y dolores de los dientes con inflamación del lado derecho de mi mandíbula me impiden avanzar mas rápido con mis trabajos aquí presentados, uso el tiempo tratando de avanzar en áreas que me van a ser de valor en mis experimentos y en las funcionalidades que pienso realizar. Uno de los temas, que además por el interés que despiertan en mi me ayuda sobreponerme y estudiar. Hablo aquí por ejemplo del realizar GUIs, interfaces gráficas para controlar mis experimentos. Debido a que mis investigaciones parecen indicarlo, me he decidido por usar Qt en su versión 5, breve Qt5. Como sistema para mis trabajos estoy utilizando mi PC con Ubuntu 16.04 TLS, que es la versión mas actual estable y que persistirá mínimo 2 años mas. No fue nada fácil lograr la instalación en Ubuntu, entender el resultado de la instalación y crear el símbolo para abrir el programa en el listón de aplicaciones en Ubuntu que aparece en el costado izquierdo de mi pantalla principal. Una vez logrado me acabo sorprendiendo que tan simple es lograr esto, lo que dice mucho sobre mi limitada experiencia can Linux.
En Ubuntu tengo varias formas de instalar un programa:
1. Usando el programa que se activa pinchando el símbolo "Ubuntu Software" en el listón en la pantalla- Esta función muestra todos los programas que Ubuntu conoce y ofrece botones junto al símbolo de cada programa para "Instalar" o "Quitar" el programa. Además ofrece como "filtro" el mostar todos los programas que conoce, o solo aquellos instalados. Cuando lo que buscamos aparece, entonces esto es un buen camino. Si usando la funcionalidad para buscar un cierto programa resulta de no conocerlo, entonces otros caminos se ofrecen.
2. Para ver si "por accidente" ya hemos instalado el programa se puede abrir una ventana de "Terminal", donde se tiene acceso a Ubuntu a nivel sin gráficos, sin GUI, escribir el nombre del programa y ver si se abre! Resulta que Linux hace una diferencia entre letras en mayúscula y minúscula y por que no se sabe exactamente como el programa buscado es conocido por Ubuntu, vale experimentar un poco. El programa "Mathematica" de Wolfram por ejemplo es arrancado escribiendo el nombre solo en minúsculas!
3. Usar la función de Linux "apt-get" y tratar de iniciar la instalación del programa deseado. Esto se beneficia de la forma, muy diferente a "Windows" de Linux para acceder programas. Programas son agregados por el proveedor en una base de datos de "paquetes"! En ella no solo se archivan los programas para instalar un programa, sino también las dependencias que ese programa tiene de otros programas o funciones para ser ejecutado. Usando el renglón de comamdo de Linux:
sudo apt-get Install "nombre del programa"
Esto hace que se busca si el programa deseado existe en esta base de "paquetes" y se empieza con el proceso de instalación del programa.
4. Si el proveedor no ha puesto su programa en esa base de "paquetes" entonces usando el Browser, yo por ejemplo uso "Chrome", se baja el programa desde el sitio del proveedor, tal cual ocurre usando Windows. El resultado es un archivo empaquetando la software y depositándolo en "Downloads".
Así hay que tener instalado un programa para sacar el contenido de ese archivo empaquetado resultando en tener una carpeta en la carpeta "Downloads". Ahora resulta que no siempre está claro a cual carpeta hay que mover la carpeta descargada para corresponder con los requerimientos del programa. Por lo general "/usr" es el lugar. entonces se ejecuta el programa de instalación, que en muchos casos es un "escript" de "bash" por ejemplo. Entonces se usa "sh" "nombre de instalador".sh. Pero como escribo, no siempre es así!
El resultado de estas diferentes formas de instalar un programa en Ubuntu no siempre resulta en obtener un símbolo del programa en el listón de programas, donde uno graba el símbolo, obteniendo así una forma de arrancar el programa. A veces es necesario "masajear" un poco el programa para poder ponerlo en el listón. Pero también ocurre, como es el caso en mi PC con Mathematica, que el símbolo vuelve a desaparecer del listón en la pantalla. Entonces abriendo una ventana "Terminal" escribo "mathematica" y el programa arranca. Otros programas o utilidades de programas hay que ir a la carpeta donde se encuentra y arrancarla allí. Para evitarse eso hay que sumar el "enlace" a esa carpeta específica en la lista. Conocemos todos esto de Windows con las "PATH"!
Hola amigos, como mi salud y dolores de los dientes con inflamación del lado derecho de mi mandíbula me impiden avanzar mas rápido con mis trabajos aquí presentados, uso el tiempo tratando de avanzar en áreas que me van a ser de valor en mis experimentos y en las funcionalidades que pienso realizar. Uno de los temas, que además por el interés que despiertan en mi me ayuda sobreponerme y estudiar. Hablo aquí por ejemplo del realizar GUIs, interfaces gráficas para controlar mis experimentos. Debido a que mis investigaciones parecen indicarlo, me he decidido por usar Qt en su versión 5, breve Qt5. Como sistema para mis trabajos estoy utilizando mi PC con Ubuntu 16.04 TLS, que es la versión mas actual estable y que persistirá mínimo 2 años mas. No fue nada fácil lograr la instalación en Ubuntu, entender el resultado de la instalación y crear el símbolo para abrir el programa en el listón de aplicaciones en Ubuntu que aparece en el costado izquierdo de mi pantalla principal. Una vez logrado me acabo sorprendiendo que tan simple es lograr esto, lo que dice mucho sobre mi limitada experiencia can Linux.
En Ubuntu tengo varias formas de instalar un programa:
1. Usando el programa que se activa pinchando el símbolo "Ubuntu Software" en el listón en la pantalla- Esta función muestra todos los programas que Ubuntu conoce y ofrece botones junto al símbolo de cada programa para "Instalar" o "Quitar" el programa. Además ofrece como "filtro" el mostar todos los programas que conoce, o solo aquellos instalados. Cuando lo que buscamos aparece, entonces esto es un buen camino. Si usando la funcionalidad para buscar un cierto programa resulta de no conocerlo, entonces otros caminos se ofrecen.
2. Para ver si "por accidente" ya hemos instalado el programa se puede abrir una ventana de "Terminal", donde se tiene acceso a Ubuntu a nivel sin gráficos, sin GUI, escribir el nombre del programa y ver si se abre! Resulta que Linux hace una diferencia entre letras en mayúscula y minúscula y por que no se sabe exactamente como el programa buscado es conocido por Ubuntu, vale experimentar un poco. El programa "Mathematica" de Wolfram por ejemplo es arrancado escribiendo el nombre solo en minúsculas!
3. Usar la función de Linux "apt-get" y tratar de iniciar la instalación del programa deseado. Esto se beneficia de la forma, muy diferente a "Windows" de Linux para acceder programas. Programas son agregados por el proveedor en una base de datos de "paquetes"! En ella no solo se archivan los programas para instalar un programa, sino también las dependencias que ese programa tiene de otros programas o funciones para ser ejecutado. Usando el renglón de comamdo de Linux:
sudo apt-get Install "nombre del programa"
Esto hace que se busca si el programa deseado existe en esta base de "paquetes" y se empieza con el proceso de instalación del programa.
4. Si el proveedor no ha puesto su programa en esa base de "paquetes" entonces usando el Browser, yo por ejemplo uso "Chrome", se baja el programa desde el sitio del proveedor, tal cual ocurre usando Windows. El resultado es un archivo empaquetando la software y depositándolo en "Downloads".
Así hay que tener instalado un programa para sacar el contenido de ese archivo empaquetado resultando en tener una carpeta en la carpeta "Downloads". Ahora resulta que no siempre está claro a cual carpeta hay que mover la carpeta descargada para corresponder con los requerimientos del programa. Por lo general "/usr" es el lugar. entonces se ejecuta el programa de instalación, que en muchos casos es un "escript" de "bash" por ejemplo. Entonces se usa "sh" "nombre de instalador".sh. Pero como escribo, no siempre es así!
El resultado de estas diferentes formas de instalar un programa en Ubuntu no siempre resulta en obtener un símbolo del programa en el listón de programas, donde uno graba el símbolo, obteniendo así una forma de arrancar el programa. A veces es necesario "masajear" un poco el programa para poder ponerlo en el listón. Pero también ocurre, como es el caso en mi PC con Mathematica, que el símbolo vuelve a desaparecer del listón en la pantalla. Entonces abriendo una ventana "Terminal" escribo "mathematica" y el programa arranca. Otros programas o utilidades de programas hay que ir a la carpeta donde se encuentra y arrancarla allí. Para evitarse eso hay que sumar el "enlace" a esa carpeta específica en la lista. Conocemos todos esto de Windows con las "PATH"!
Como escribí en mi contribución anterior me he metido en eso de crear los GUI para programas y experimentos que hago, o para controlar y monitorear mi panel de alimentación eléctrica. Allí la placa Raspi ZERO me va poner la versión de Linux "Raspian Jessi" y en este entorno programas escritos en el el lenguaje Python son ejecutados tal cual ocurre en mi PC con Ubuntu por ejemplo.
La imagen muestra el GUI de la IDE Qt5 Creator, que permite escribir los programas y usando PyQt puedo permanecer en el entorno de "Python3".
Pero la herramienta Qt5 Designer permite crear GUIs de forma gráfica:
Con el programa Qt5 Designer puedo crear la ventana del GUI con todos sus contenidos. En el listón a la derecha del Designer pueden ver un gran número de objetos ya presentes y armar el contenido de la pantalla. A la derecha se pueden mirar, definir y cambiar las propiedades de cada objeto que hemos puesto en la pantalla y asignarle un nombre y definir para cada estado de tal objeto que función, un programa que escribimos nosotros mismos, debe ser ejecutado cuando en el ejemplo de botón pinchamos este con el ratón. Prácticamente lo que hacemos es amarrar, asociar un código, programa que deba ser ejecutado cuando el objeto cambia su estado, por ejemplo de "botón no pinchado" a "botón pinchado"!
Lo que representaría el escribir muchas lineas de código en C++ o Python para implementar un GUI, ahora es accesible simplemente usando el entorno creado por Qt y su Creator.
Podemos ver que lo que hace el Qt5 Designer es crear el código, tal cual lo tendríamos que escribir nosotros mismos usando el Qt5 Creator.
Lo poderosa y sencillo del entorno puesto a nuestra disposición por el Qt5 Creator y Qt5 Designer ahora lo tenemos que integrar. esto, al menos para mí, requiere de un gran esfuerzo para visualizar para mi el resultado del Qt5 Designer, integrar esto en código del Qt5 Creator y el resultado final combinarlo para tener un solo programa ejecutable, en mi caso usando la herramienta PyQt5 integrarlo a un código escrito en Python 3. Soy un poco inflexible y bastante lento por requerir de mi mismo el captar el total como concepto.
En cierto sentido, y para eso será el estudio de los ejemplo puestos a disposición, el partir de un "Hola Mundo!"
El otro paso será el confirmar y realizar ese mismo "Hola Mundo!" y que sea ejecutado en una de mis placas Raspi.
La otra cosa con la cual me he encontrado en estas actividades es el mundo del "Machine Learning". Las actividades promocionales de la editorial Packt,
www.packtpub.com, me despertaron mi curiosidad debido a mi curiosidad de ver que posibilidades estas tecnologías tienen para mi afición! También me he inscrito a cursos sobre "Machine Learning" en Coursera en paralelo investigado sobre el tema en YouTube.
Para mi es de gran valor obtener una visión de los conceptos y de así abrir un cierto entendimiento de la materia. Como hago la diferencia entre "entender" y "aplicar" conocimientos, puedo recorrer gran trecho en estos recursos de aprendizaje siendo muy consciente del gran trecho que hay en aplicar tales conocimientos a "problemas" adecuados. Recalco esto para resaltar que no me considero capaz de absorber los temas con los que me voy confrontando a tal grado de poder aplicarlos, pero si en entender los conceptos y aplicarlos a mis reflexiones durante los paseos con mi perro!
Siempre me ha molestado el realmente no saber lo suficiente sobre estos temas para poder reflexionar sobre ellos. Que es inteligencia artificial en el sentido de como funciona el aplicar inteligencia artificial en la computación. Hago muy claro que sigo sin tener noción. Como aquel sabio griego un día dijo: "Se que no se nada, por lo que se mas que cualquiera"! Se que no se nada de inteligencia artificial, en breve AI, pero se que "Machine Learning" no es AI, pero que su desarrollo se benefición inicialmente por los esfuerzos investigativos sobre AI.
Aquí encuentran un curso gratuito sobre "Machine Learning" que en el contenido del curso de la primera semana da de forma muy sencilla de entender que es "Machine Learning" y que da indicaciones como ciertas formas son aplicadas.
"Supervised Learning" y "Unsupervised Learning", conceptos presentados en este curso gratuito permiten de forma rápida ver y entender a que tipo de problemas cada una de estas 2 formas de "Machine Learning" es aplicable.
A mi me concierne mucho al aprender como la tecnología del "Machine Learning" permite a empresas como Google y FaceBook, por ejemplo, o organizaciones estatales como la NSA pueden extraer informaciones de valor financiero de los datos de aquellos usuarios de Google o FaceBook o la NSA y similares analizando los datos de las emails y telefoneadas de millares de personas. El saber cuanto valor económica hay en el resultado de tales análisis no mas viendo el valor de tales empresas y sabiendo que esto significa recursos económicos prácticamente ilimitados para avanzar los conocimientos de tales tecnologías.
Otro tema muy relacionado al anterior es el de las redes neuronales. En un tutorial en YouTube se puede empezar a meterse uno en ese tema:
Este gráfico de forma muy sencilla muestra de que consiste una neurona informática. La neurona recibe por sus dendritas tuplas de datos que consisten de 2 parámetros:
1 Xi
2 Wj
Para aquellos no familiares con el término tuple una corta explicación. Un tuple es una estructura de datos que contiene un cierto número de parámetros. Aquí un valor "X" digamos por ejemplo que contiene 1 bit que puede tener el valor "0" o "1" y un segundo parámetro "W" que por ejemplo podría tener un valor entre "0" y "1", osea cualquier valor entre "0" y "1". Pero tuplas pueden tener cualquier número de parámetros.
Sigamos. Nuestra neurona podría por ejemplo tener 8 dendritas correspondiendo a los 8 Bits de un Byte. Cada uno de los tuplas por lo tanto contiene un bit de dato y un valor de "w" que podría ser medida de la relevancia, del peso del dato "x". El cajón que sigue suma los resultados de la multiplicación de "x" y de su "peso" "w", por ejemplo "0.5" de las 8 dendritas.
Este resultado es pasado al siguiente bloque llamado "Activation". El caso mas sencillo de un tal bloque "Activation puede ser, dependiendo del resultado de la suma de los valores resultantes de las 8 dendritas es que el valor a su salida es de "0" o "1". Por decirlo de otra forma, un "1" sería que la neurona dispara, pasa su resultado a la salida y "0" que no lo haga.
Esta imagen muestra una "red neuronal". Verdad que ya la cosa se vuelve mas fácil de entender? Los círculos representan las neuronas individuales como el de la imagen anterior. Vemos como "Input", "Entrada" a la red tenemos lo que en la imagen anterior aprendimos, aquí tuplas de 2 valores, x y w. Cada entrada "Xi" tiene una dendrita de cada neurona. Así tenemos lineas de cada Xi a cada neurona j. Aquí denominado como "hidden Layer 1" tenemos una red de 4 neuronas que reciben cada una los mismos valores Xi, aquí 3. Ignoremos por ahora el "hidden Layer 2" y vemos las salidas conectadas a "Output", "Salida".
Si la red tiene mas de un "Layer", entonces hablamos de "Deep Neuronal Network". Aquí el presentador del curso de
"Machine Learning Intro" del cual forma parte de sus 47 vídeos la parte sobre "Deep Learning" del cual provienen los gráficos.
Lo interesante para mi fue que para una red neuronal funcionar requiere de una cantidad inmensa de datos. Por eso, aunque las redes neuronales como concepto ya viene de los años 40 del siglo pasado, tan reciente como los años 2012/2013 han visto un auge tremendo a razón de ser posible tener los recursos de computación, la inmensa capacidad de computación por ejemplo de las unidades de computación de tarjetas gráficas de PC y por la disponibilidad de la gran cantidad de datos existentes y accesibles. El tutor menciona que hablamos de millones de unidades de datos que requiere una red neuronal y que recientes estudios muestran que alrededor de los 500 millones de datos se consigue un máximo de calidad del resultado! También menciona que realmente aún no se sabe como redes neuronales realmente logran sus resultados. Si expresamos la calidad de los resultados en porcentajes, dice el tutor, diferentes métodos logran una calidad de quizá 95%. redes neuronales unos 97/98%
Armando sistemas con múltiples unidades de procesamiento gráfico altísimas capacidades de computación resultan posibles. También podemos ver que el tipo de computaciones que ocurren en una neurona son sencillos y por eso muy bien reflejable sobre una architectura usando múltiples procesadores gráficos, GPU. es una computación entre elementos de tuplas y variables "w". Lo que representa un reto es el "alimentar" estas "neuronas con la base de datos que puede consistir de peta tuplas, tupla siendo 1000 giga! Piensen no mas en la capacidad de memoria externa requerida para almacenar esos petabytes de datos.
Existe otro aspecto que se denomina como "costo". El tiempo que requiere un elemento de computación dentro de una unidad GPU es ínfimo, por ejemplo 1 GHz, el tiempo de tomar tuples del disco duro a la unidad de procesamiento en la GPU en comparación es eterno. Por lo tanto las investigaciones buscan lograr un "costo" menor, no solo acelerando al máximo posible el flujo de datos físico. Es también el como distribuir esta inmensa cantidad de datos y de repartir las computaciones a las diferentes unidades GPU de un sistema aprovechándose de las particularidades de los datos y de desarrollar métodos matemáticos que ayuden a reducir el "costo", volumen de procesamiento.
Como escribí mas arriba, el resultado de estos análisis de base de datos gigantesca, hasta 500 millones de tuples representando petabytes de datos es lucrativo en extremo como demuestra el valor de las empresas como Google en las bolsas de valores. Así los recursos financieros son prácticamente infinitos, ya que mejor es la calidad de los resultados, mayor es su valor financiero!
De allí resulta que el recurso que no es posible aumentar de forma infinita es aquel de personas capaces de trabajar en estos temas. Google por eso por ejemplo recientemente hizo su herramienta "TensorFlow" accesible y libre, para así lograr que la comunidad de especialistas avance la tecnología, las matemáticas, los diseños de sistemas y la misma herramienta TensorFlow"! Así Google estará tratando de "usar" la comunidad de personas adecuadamente capacitadas para avanzar las tecnologías. Tratar de competir con Google es casi imposible por faltar el acceso al las bases de datos que corresponden a lo que se llama "BigData". Por otro lado existen y aumentara la disponibilidad de tales bases de datos por el Internet.
Estoy curioso de ver como, usando en un segundo paso placas Raspi 3B por ejemplo empezar a "jugar" con este tema! Como todos ustedes bien saben, nosotros aficionados por ejemplo a la electrónica no tenemos la posibilidad de tener propios recursos para almacenar petabytes de información. Por eso Google por ejemplo ofrece la posibilidad de ejecutor tales "programas" TensorFlow en la nube dando acceso hasta a 100 unidades de procesamiento y así tiene que ser también posible suministrar bases de datos disponibles a tales unidades de procesamiento.
Allí resulta lo que hace posible el dedicarse a este tema con los escasos recursos que en comparación a esas grandes empresas tienen, usando tanto nuestras tarjetas gráficas del PC con su GPU y en el caso del Raspi el uso distribuido de múltiples placas Raspi cada una teniendo su respectiva GPU!
Perdonen que presente tema algo alejados y exóticos en este hilo. El origen son mis limitaciones de salud y mi curiosidad, siempre teniendo en mente el aplicar esto en mis proyectos en general y a las placas Raspi en especial!