Ir al contenido principal

RNA

Transparencias de la clase

Ejercicio de entrenamiento de perceptron:
Pedro Ponce Cruz. Inteligencia Artificial con aplicaciones a la Ingeniería

Comandos Básicos para RNA en Matlab


PERCEPTRÓN
%perceptrón para compuerta or

entrada = [0 0 1 1; 0 1 0 1];
objetivo = [0 1 1 1];
net= perceptron;
net = train(net,entrada,objetivo);
view(net)
salida = net(entrada)

pesos=net.IW{1,1}
bias=net.b{1,1}
salida =

     0     1     1     1


pesos =

     1     1


bias =

    -1


%perceptrón para compuerta and

entrada = [0 0 1 1; 0 1 0 1];
objetivo = [0 0 0 1];
net= perceptron;
net = train(net,entrada,objetivo);
view(net)
salida = net(entrada)

pesos=net.IW{1,1}
bias=net.b{1,1}
salida =

     0     0     0     1


pesos =

     2     1


bias =

    -3


A continuación se presenta el código en Matlab para entrenamiento de RNA para identificación de las vocales:


clc; clear all
format long
%cada letra ha sido formada de 5x5


p1=[1;1;1;1;1;
        1;0;0;0;1;
        1;1;1;1;1;
        1;0;0;0;1;
        1;0;0;0;1];%A
p2=[1;1;1;1;1;
       1;0;0;0;0;
       1;1;1;1;1;
       1;0;0;0;0;
       1;1;1;1;1];%E
p3=[1;1;1;1;1;
        0;0;1;0;0;
        0;0;1;0;0;
        0;0;1;0;0;
        1;1;1;1;1];%I
p4=[1;1;1;1;1;
        1;0;0;0;1;
        1;0;0;0;1;
        1;0;0;0;1;
        1;1;1;1;1];%O
p5=[1;0;0;0;1;
        1;0;0;0;1;
        1;0;0;0;1;
        1;0;0;0;1;
        1;1;1;1;1];%U


p=[p1 p2 p3 p4 p5];

t=[1 2 3 4 5];

net=newff(minmax(p),[5,1],{'logsig','purelin'},'trainlm');

net.trainparam.show=50;
net.trainparam.lr=0.05;
net.trainparam.max_fail=5;
net.trainparam.mem_reduc=1;
net.trainparam.min_grad=1e-10;
net.trainparam.mu=0.001;
net.trainparam.mu_inc=10;
net.trainparam.time=inf;
net.trainparam.epochs=300;
net.trainparam.goal=1e-5;

[net,tr]=train(net,p,t);

salida=sim(net,p)

error=t-salida

% w1=net.IW{1,1}
% b1=net.b{1}
% w2=net.LW{2,1}
% b2=net.b{2}
salida =

  Columns 1 through 3

   1.000085467909067   1.999946818882386   3.000529880564610

  Columns 4 through 5

   3.999966692564740   4.999945294745124


error =

   1.0e-03 *

  Columns 1 through 3

  -0.085467909067383   0.053181117613876  -0.529880564609453

  Columns 4 through 5

   0.033307435260532   0.054705254876275

EJEMPLO DE RED NEURONAL EN PYTHON 
COMPUERTA XOR


Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# COMPUERTA XOR EN PYTHON USANDO KERAS
import numpy as np
from keras.models import Sequential
from keras.layers.core import Dense
 
# ENTRADA las 4 combinaciones de las compuertas XOR
training_data = np.array([[0,0],[0,1],[1,0],[1,1]], "float32")
 
# OBJETIVO en el mismo orden
target_data = np.array([[0],[1],[1],[0]], "float32")
 
model = Sequential()
model.add(Dense(16, input_dim=2, activation='relu'))
model.add(Dense(1, activation='sigmoid'))
 
model.compile(loss='mean_squared_error',
              optimizer='adam',
              metrics=['binary_accuracy'])
 
model.fit(training_data, target_data, epochs=1000)
 
# evaluamos el modelo
scores = model.evaluate(training_data, target_data)
 
print("\n%s: %.2f%%" % (model.metrics_names[1], scores[1]*100))
print (model.predict(training_data).round())
Resultado

Epoch 1/1000 1/1 [==============================] - 14s 14s/step - loss: 0.2343 - binary_accuracy: 0.7500 Epoch 2/1000 1/1 [==============================] - 0s 6ms/step - loss: 0.2341 - binary_accuracy: 0.5000
.
.
.
.
Epoch 999/1000 1/1 [==============================] - 0s 4ms/step - loss: 0.0207 - binary_accuracy: 1.0000 Epoch 1000/1000 1/1 [==============================] - 0s 4ms/step - loss: 0.0206 - binary_accuracy: 1.0000 1/1 [==============================] - 1s 849ms/step - loss: 0.0206 - binary_accuracy: 1.0000 binary_accuracy: 100.00% [[0.] [1.] [1.] [0.]]




Entradas populares de este blog

INICIOS DE LA INGENIERÍA MECATRÓNICA - HISTORIA

MECATRÓNICA Mecatrónica es la integración sinérgica de la mecánica, la electrónica, el control y los sistemas computacionales, gracias a lo cual es posible la solución de problemas de la industria y la sociedad. ANTECEDENTES HISTÓRICOS El término Mecatrónica , fue introducido por primera vez en 1969 por el ingeniero TETSURO MORI, trabajador de la empresa japonesa Yaskawa. En un principio se definió como la integración de la mecánica y la electrónica en una máquina o producto , pero luego se consolidó como una especialidad de la ingeniería e incorporó otros elementos como los sistemas de computación , los desarrollos de la microelectrónica , la inteligencia artificial, la teoría de control y otros relacionados con la informática , estabilidad y alcanzabilidad . Teniendo como objetivo la optimización de los elementos industriales a través de la optimización de cada uno de sus subprocesos con nuevas herramientas sinérgicas . En los a...

CAMPOS DE APLICACIÓN DE LA MECATRÓNICA Y SU IMPACTO EN LA SOCIEDAD

El mundo globalizado y dinámico que se vive en la actualidad obliga al mecatrónico a enfrentarse a una competencia fuerte, a fin de acoplarse a los cambios que el mundo plantea.  La mecatrónica esta presente en muchas áreas, entre las que se pueden mencionar: Industria Maquiladora Industria Manufacturera Empresas Constructoras Empresas de consultoría en diagnósticos mecatrónicos Prestación de servicios profesionales independientes Asesoría y evaluación de procesos y calidad. Gerente Técnico Jefe de Proyecto Mecatrónico Consultor Técnico Jefe de Planta/Mantenimiento Docente técnico Emprendedor en proyectos mecatrónicos A continuación se presentan las competencias específicas de un Ingeniero en Mecatrónica de la ESPE Ecuador COMPETENCIAS ESPECÍFICAS: Aplica las ciencias básicas en la resolución de problemas de ingeniería Mecatrónica, utilizando principios científicos y tecnológicos. Diseña equipos y sistemas Mecatrónicos utilizando herramientas computacionales y satisfaciendo requisi...

Clasificación Plantas industriales

Una Planta Industrial es una combinación de recursos materiales y humanos que actúan ordenadamente siguiendo un Proceso de Fabricación, previamente elegido como el más idóneo para actuar en el entorno de la Planta. CLASIFICACIÓN DE LAS PLANTAS INDUSTRIALES Según la naturaleza del proceso que se lleva a cabo   Proceso continuo: se caracterizan por trabajar las 24 horas del día. Son procesos cuyo tiempo es reativamente largo, ejemplo: petroquímica, cemento, acería, papel, etc Proceso repetitivo o discontinuo: la modalidad del tratamiento que se realiza sobre los productos es por lotes. Proceso intermitente: estas plantas organizan su trabajo para satisfacer las demandas específicas de sus clientes de uno u otro producto o servicio. Es decir bajo pedido, por lo que la producción puede ser de bajo volumen   Según el tipo de proceso que predomina            Químico: en las plantas industriales químicas existe un cambio en la naturalez...