{"id":947,"date":"2016-07-08T11:50:59","date_gmt":"2016-07-08T16:50:59","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/taws\/?p=947"},"modified":"2016-07-09T14:25:39","modified_gmt":"2016-07-09T19:25:39","slug":"que-son-las-redes-neuronales-artificiales-rna-y-su-funcionamiento-basico","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/taws\/2016\/07\/08\/que-son-las-redes-neuronales-artificiales-rna-y-su-funcionamiento-basico\/","title":{"rendered":"Qu\u00e9 son las Redes Neuronales Artificiales (RNA) y su funcionamiento b\u00e1sico"},"content":{"rendered":"<p>En posts pasados ya hemos hablado sobre la inteligencia artificial y sus beneficios. Ahora vamos a hablar sobre\u00a0una de las t\u00e9cnicas que se utilizan actualmente para simular este tipo de inteligencia, las redes neuronales artificiales (RNA o ANN en ingl\u00e9s) o simplemente llamadas redes neuronales.<\/p>\n<p>Primero vamos a intentar explicar su funcionamiento para luego poder entender con mucha mas claridad para qu\u00e9 nos pueden servir<\/p>\n<p><strong>Bases de las RNAs<\/strong><\/p>\n<p>Ciertamente el nombre nos da un indicio de cuales son las bases de esta t\u00e9cnica: las redes neuronales biol\u00f3gicas. Estas redes biol\u00f3gicas est\u00e1n conformadas por un conjunto de neuronas conectadas entre si mediante el ax\u00f3n y las dendritas.<a href=\"http:\/\/blog.espol.edu.ec\/taws\/files\/2016\/07\/image056.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-951 alignright\" src=\"http:\/\/blog.espol.edu.ec\/taws\/files\/2016\/07\/image056-300x196.jpg\" alt=\"Conexi\u00f3n entre neuronas\" width=\"300\" height=\"196\" srcset=\"https:\/\/blog.espol.edu.ec\/taws\/files\/2016\/07\/image056-300x196.jpg 300w, https:\/\/blog.espol.edu.ec\/taws\/files\/2016\/07\/image056.jpg 539w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p><a href=\"http:\/\/blog.espol.edu.ec\/taws\/files\/2016\/07\/red_neural.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-950 alignnone\" src=\"http:\/\/blog.espol.edu.ec\/taws\/files\/2016\/07\/red_neural-300x169.jpg\" alt=\"Red Neuronal\" width=\"300\" height=\"169\" srcset=\"https:\/\/blog.espol.edu.ec\/taws\/files\/2016\/07\/red_neural-300x169.jpg 300w, https:\/\/blog.espol.edu.ec\/taws\/files\/2016\/07\/red_neural.jpg 320w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>gracias a esta conexi\u00f3n se produce la sinapsis que es la encargada de transferir los impulsos nerviosos de neurona a neurona.<\/p>\n<p>Ahora bien, el aprendizaje del cerebro depende de la reorganizaci\u00f3n de estas conexiones sin\u00e1pticas; es decir, que en unas dendritas habr\u00e1 una mayor diferencia de potencial y por ende tendr\u00e1 una mayor preferencia entre las otras conexiones para la trasmisi\u00f3n de datos.<\/p>\n<p>Basados en este principio surgen las tan llamadas RNAs, mas bien \u00fanicamente por este principio y su estructura, debido a que su nivel de complejidad es mucho m\u00e1s baja que una red biol\u00f3gica. En las RNAs, se tienen diferentes \"canales\"(dendritas) estandarizadas, tras un \"entrenamiento\" autom\u00e1tico algunos de estos canales van a ir cambiando su importancia (peso) provocando de esta forma que la red haya priorizado sus datos y sepa cu\u00e1l es el mejor camino a tomar incluso frente a nuevas circunstancias, en otras palabras est\u00e1 aprendiendo.<\/p>\n<p><strong>La neurona\u00a0<\/strong><span style=\"color: #000000\"><b>artificial<\/b><\/span><\/p>\n<p>Seg\u00fan\u00a0la teor\u00eda de\u00a0Rosenblatt decimos que la unidad fundamental del las RNAs es el perc\u00e9ptron (creado por el mismo Rosenblatt), el cual imita bastante a la estructura de la neurona (ver imagen)<\/p>\n<p><a href=\"http:\/\/blog.espol.edu.ec\/taws\/files\/2016\/07\/perceptron.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-954 alignright\" src=\"http:\/\/blog.espol.edu.ec\/taws\/files\/2016\/07\/perceptron-300x210.png\" alt=\"perceptron\" width=\"300\" height=\"210\" srcset=\"https:\/\/blog.espol.edu.ec\/taws\/files\/2016\/07\/perceptron-300x210.png 300w, https:\/\/blog.espol.edu.ec\/taws\/files\/2016\/07\/perceptron-768x537.png 768w, https:\/\/blog.espol.edu.ec\/taws\/files\/2016\/07\/perceptron-400x280.png 400w, https:\/\/blog.espol.edu.ec\/taws\/files\/2016\/07\/perceptron.png 780w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>Esta neurona artificial esta compuesta por:<\/p>\n<ul>\n<li>Las se\u00f1ales de entrada<\/li>\n<li>Pesos sin\u00e1pticos<\/li>\n<li>Funci\u00f3n de propagaci\u00f3n o uni\u00f3n de sumadora<\/li>\n<li>Funci\u00f3n de activaci\u00f3n<\/li>\n<li>Se\u00f1al de salida o simplemente salida<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p>Para entender mejor el funcionamiento de cada componente de la neurona artificial y a la neurona en si, vamos a usar un ejemplo sencillo usado en <a href=\"http:\/\/www.xataka.com\/robotica-e-ia\/las-redes-neuronales-que-son-y-por-que-estan-volviendo\">Xataca<\/a>:<\/p>\n<p>Imaginemos que dos estudiante tienen la nota de sus dos ex\u00e1menes y la nota final de grado; el estudiante 1 tiene mejor nota en el primer examen que en el segundo, mientras que el estudiante 2 tiene mejor nota en el segundo que en el primero. Sin embargo el estudiante 1 aprob\u00f3 el curso, mientras que el estudiante 2 no lo hizo, esto nos hace inferir que el primer examen tiene mas peso (importancia) que en el segundo. Con esto podemos darnos cuenta c\u00f3mo en base de datos iniciales y su salida podemos saber c\u00f3mo funciona el proceso y las importancia de cada dato.<\/p>\n<p>Es as\u00ed c\u00f3mo funciona b\u00e1sicamente las redes neuronales. Analizando individualmente a un estudiante, los dos ex\u00e1menes son las se\u00f1ales de entrada(X1 y X2) ,cada una de estas se\u00f1ales de entrada son multiplicadas por su peso correspondiente (X1 con W1 y X2 con W2) llegando a la funci\u00f3n de propagaci\u00f3n que suma cada una de esta multiplicaci\u00f3n. En caso de existir una funci\u00f3n de activaci\u00f3n, el valor de la funci\u00f3n de propagaci\u00f3n es comparado a uno previamente ya escogido (por ejemplo si nos da una suma &gt;=5) y nos arroja un resultado de acuerdo a la desviaci\u00f3n de este resultado, com\u00fanmente son utilizadas la funci\u00f3n \u00a0tangente hiperb\u00f3lica (para tener valores entre 1 y -1) y la funci\u00f3n\u00a0sigmoidea (para tener valores entre 1 y 0) en nuestro caso digamos que usamos la funci\u00f3n sigmoidea y si la salida es 1, el estudiante esta aprobado y si es cero el estudiante no lo esta. En caso de existir esta funci\u00f3n de activaci\u00f3n, la se\u00f1al de salida es la de la funci\u00f3n de propagaci\u00f3n<\/p>\n<p><a href=\"http:\/\/blog.espol.edu.ec\/taws\/files\/2016\/07\/perceptron2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-955 aligncenter\" src=\"http:\/\/blog.espol.edu.ec\/taws\/files\/2016\/07\/perceptron2-300x196.png\" alt=\"perceptron2\" width=\"300\" height=\"196\" srcset=\"https:\/\/blog.espol.edu.ec\/taws\/files\/2016\/07\/perceptron2-300x196.png 300w, https:\/\/blog.espol.edu.ec\/taws\/files\/2016\/07\/perceptron2-768x503.png 768w, https:\/\/blog.espol.edu.ec\/taws\/files\/2016\/07\/perceptron2.png 975w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>Para encontrar una relaci\u00f3n de pesos que se ajuste a las se\u00f1ales de entrada y de salida, lo que hacemos es \"entrenar\" a nuestra neurona (o red neuronal en caso de ser mas complejo) de tal forma que encuentre el mejor ajuste, este proceso consiste en un prueba y error computarizado. Por ejemplo puede comenzar que cada examen tenga el mismo peso, W1=W2=0,5, despu\u00e9s comienza a variar cada uno de estos pesos hasta alcanzar la combinaci\u00f3n que cumpla con las condiciones conocidas.<\/p>\n<p>Ejemplo:<\/p>\n<p><a href=\"http:\/\/blog.espol.edu.ec\/taws\/files\/2016\/07\/neurona-1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-961 aligncenter\" src=\"http:\/\/blog.espol.edu.ec\/taws\/files\/2016\/07\/neurona-1-300x78.png\" alt=\"neurona\" width=\"554\" height=\"144\" srcset=\"https:\/\/blog.espol.edu.ec\/taws\/files\/2016\/07\/neurona-1-300x78.png 300w, https:\/\/blog.espol.edu.ec\/taws\/files\/2016\/07\/neurona-1-768x200.png 768w, https:\/\/blog.espol.edu.ec\/taws\/files\/2016\/07\/neurona-1-1024x267.png 1024w, https:\/\/blog.espol.edu.ec\/taws\/files\/2016\/07\/neurona-1.png 1170w\" sizes=\"auto, (max-width: 554px) 100vw, 554px\" \/><\/a><\/p>\n<p><strong>Capas<\/strong><\/p>\n<p>Lo que hemos explicado anterior mente es c\u00f3mo funciona una\u00a0neurona con datos exactos, ahora imaginemos que un datos extra es a\u00f1adido al perceptr\u00f3n, sin embargo este necesita ser procesado con anterioridad, para este fin usamos una capa m\u00e1s y a\u00f1adimos el concepto de una red de multicapas.<\/p>\n<p>Para tener una idea b\u00e1sica, cada \u00a0perceptr\u00f3n en una capa (en donde como han podido notar existe un procesamiento de las se\u00f1ales de entrada) Al momento de considerarlo como una se\u00f1al de entrada mas dentro de otro perceptr\u00f3n, la red se convierte en una red de multicapas<\/p>\n<p>Nuevamente recurro al ejemplo planteado de\u00a0<a href=\"http:\/\/www.xataka.com\/robotica-e-ia\/las-redes-neuronales-que-son-y-por-que-estan-volviendo\">Xataca<\/a>:<\/p>\n<p>Imaginemos que ahora el profesor ha a\u00f1adido un trabajo extra, dos estudiantes tienen tienen ambos buenas calificaciones en el primer\u00a0examen pero el estudiante 2 tiene mejor nota en el segundo examen que el primer estudiante, pero el primer estudiante tiene una calificaci\u00f3n de 5.0 en el trabajo extra mientras que el segundo tiene una calificaci\u00f3n de 4.8. Sin embargo el primer estudiante aprueba el curso mientras que el segundo lo reprueba. Esto nos hace suponer\u00a0que el peso del trabajo extra es muy grande, pero al momento de entrenar la red, no podr\u00e1 encontrar una relaci\u00f3n de apropiada entre los pesos de las tres calificaciones, lo que nuevamente nos hace inferir que se necesita un procesamiento previo de la se\u00f1al de entrada del trabajo, se necesita una capa extra. Quedando por ejemplo as\u00ed:<\/p>\n<p><a href=\"http:\/\/blog.espol.edu.ec\/taws\/files\/2016\/07\/neurona-artificail.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-963\" src=\"http:\/\/blog.espol.edu.ec\/taws\/files\/2016\/07\/neurona-artificail-300x136.png\" alt=\"neurona artificail\" width=\"362\" height=\"164\" srcset=\"https:\/\/blog.espol.edu.ec\/taws\/files\/2016\/07\/neurona-artificail-300x136.png 300w, https:\/\/blog.espol.edu.ec\/taws\/files\/2016\/07\/neurona-artificail.png 650w\" sizes=\"auto, (max-width: 362px) 100vw, 362px\" \/><\/a><\/p>\n<p>Donde vemos que el dato del trabajo extra es multiplicada por un peso de -1 y si esta nota es mayor que -5 el resultado es comparado con una funci\u00f3n, por ejemplo la sigmoidea, que nos arroja una se\u00f1al de salida de cero, caso contrario de 1. Esta se\u00f1al de salida es considerada una se\u00f1al de entrada para la red principal y tiene un peso de -10, de tal forma que si el trabajo tiene una nota menor o igual a 5, el estudiante reprobar\u00eda directamente. En este caso particular esta capa se conoce como un filtro.<\/p>\n<p>Aunque lo mostrado hasta ahora parece no tener nada en especial por su sencillez, no hay por que pensarlo que lo es. \u00a0La verdadera magia es cuando se tiene una gran red con muchas capas en ella, al momento de entrenarla, cada uno de estas capas comienzan a realizar el ensayo de prueba y error, y cada una comienza a ajustarse considerando a las dem\u00e1s de tal manera que nos arroje la se\u00f1al de salida deseada. Es verdad que este proceso requiere muchos recursos de un ordenador haciendo que este entrenamiento dure tiempos muy elevados y por esa raz\u00f3n hab\u00edan perdido popularidad despu\u00e9s de los a\u00f1os 60, sin embargo la evoluci\u00f3n constante de los ordenares han hecho reducir este tiempo considerablemente.<\/p>\n<p><strong>Usos de las RNAs<\/strong><\/p>\n<p>Ahora si, ya que entendemos el principio b\u00e1sico del funcionamiento de las redes neuronales artificiales, podemos decir que son tambi\u00e9n un paradigma de programaci\u00f3n. Si antes un programador formulaba una base matem\u00e1tica para resolver un problema y posteriormente creaba un algoritmo\u00a0con los par\u00e1metros necesarios con el mismo fin. Con ayuda de las redes neuronales el programador se concentra en el modelo de red a utilizar, las variables a incorporar y el pre procesamiento de los datos y ya no en el flujo de ellos y la detenci\u00f3n de condiciones.<\/p>\n<p><strong>Modelos\u00a0de RNAs\u00a0<\/strong><\/p>\n<p>Tal como ya estas sospechando, existen muchas maneras de combinar las neuronas artificiales, y no necesariamente linealmente como hemos estado trabajando.\u00a0Una forma de clasificar los modelos es mediante su topologia:<\/p>\n<p>A c\u00edclicas:<\/p>\n<p>Son lineales y no tienen nodos cerrados<\/p>\n<ul>\n<li>Mono capa:\u00a0perceptr\u00f3n, adaline.<\/li>\n<li>Multi capa:\u00a0perceptr\u00f3n multicapa<\/li>\n<\/ul>\n<p>Recurrentes:<\/p>\n<p>Son ciclistas y tienen nodos cerrados :\u00a0Elman, Hopfield, m\u00e1quina de Boltzmann<\/p>\n<p>Tambi\u00e9n excit\u00e9 otro tipo de clasificaci\u00f3n pero es este post no las vamos a mencionar (para mayor informaci\u00f3n ver este <a href=\"https:\/\/es.wikipedia.org\/wiki\/Red_neuronal_artificial#Topolog.C3.ADa\">enlace<\/a>)<\/p>\n<p><strong>Ventajas<\/strong><\/p>\n<ul>\n<li><em><strong>Aprendizaje<\/strong><\/em>: Mediante unos datos de entrada y salida esperada, las RNAs tienen la capacidad de aprender mediante el proceso llamada \"entrenamiento\"<\/li>\n<li><strong>Auto Organizaci\u00f3n<\/strong>: Las RNAs se encargan del flujo de datos ellas mismas<\/li>\n<li><strong>Flexibilidad<\/strong>: tras peque\u00f1os, las RNAs se adaptan r\u00e1pidamente<\/li>\n<li><strong>Tiempo Real<\/strong>: gracias a las propiedades anteriores, las RNAs pueden trabajar en paralelo en tiempo real, ya que est\u00e1n en constante aprendizaje y una buena flexibilidad<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p>Bibliorafia:<\/p>\n<p>https:\/\/es.wikipedia.org\/wiki\/Red_neuronal_artificial<\/p>\n<p>http:\/\/www.xataka.com\/robotica-e-ia\/las-redes-neuronales-que-son-y-por-que-estan-volviendo<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>En posts pasados ya hemos hablado sobre la inteligencia artificial y sus beneficios. Ahora vamos a hablar sobre\u00a0una de las t\u00e9cnicas que se utilizan actualmente para simular este tipo de inteligencia, las redes neuronales artificiales (RNA o ANN en ingl\u00e9s) o simplemente llamadas redes neuronales. Primero vamos a intentar explicar su funcionamiento para luego poder [&hellip;]<\/p>\n","protected":false},"author":10248,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[25534,60919,15],"tags":[],"class_list":["post-947","post","type-post","status-publish","format-standard","hentry","category-bots","category-machine-learning","category-web"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/blog.espol.edu.ec\/taws\/wp-json\/wp\/v2\/posts\/947","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.espol.edu.ec\/taws\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.espol.edu.ec\/taws\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/taws\/wp-json\/wp\/v2\/users\/10248"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/taws\/wp-json\/wp\/v2\/comments?post=947"}],"version-history":[{"count":13,"href":"https:\/\/blog.espol.edu.ec\/taws\/wp-json\/wp\/v2\/posts\/947\/revisions"}],"predecessor-version":[{"id":978,"href":"https:\/\/blog.espol.edu.ec\/taws\/wp-json\/wp\/v2\/posts\/947\/revisions\/978"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/taws\/wp-json\/wp\/v2\/media?parent=947"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/taws\/wp-json\/wp\/v2\/categories?post=947"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/taws\/wp-json\/wp\/v2\/tags?post=947"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}