Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 10

UNIVERSIDAD PRIVADA SAN JUAN BAUTISTA

FACULTAD DE INGENIERÍAS

PROGRAMA ACADÉMICO DE INGENIERÍA DE COMPUTACIÓN Y

SISTEMAS

EXAMEN:

Analizar y describir el Algoritmo Perceptrón.

Desarrollar una aplicación que incorpore dicho algoritmo, sugerido

lenguaje Java o Python

CURSO

INTELIGENCIA ARTIFICIAL

ICA - PERÚ

2023
DOCENTE: CARLOS FERNANDO OLIVA RAMOS
Analizar y describir el Algoritmo Perceptrón:

El algoritmo del perceptrón es un algoritmo de aprendizaje supervisado utilizado para la

clasificación binaria de datos. Fue desarrollado por Frank Rosenblatt en 1958 y es uno de los

algoritmos de aprendizaje más simples y efectivos.

El algoritmo del perceptrón se basa en un modelo de neurona artificial que recibe múltiples

entradas, las suma ponderadamente y aplica una función de activación para producir una

salida binaria. Las entradas son multiplicadas por un peso asociado a cada entrada, y la suma

de estas ponderaciones se compara con un umbral (threshold) para determinar la salida.

Matemáticamente, la salida de la neurona se calcula como:

y = f(w1x1 + w2x2 + ... + wnxn)

Donde `x1, x2, ..., xn` son las entradas, `w1, w2, ..., wn` son los pesos asociados a cada

entrada, `f` es la función de activación y `y` es la salida de la neurona. La función de

activación más comúnmente utilizada en el perceptrón es la función escalón unitario, que

produce una salida de 1 si la suma ponderada es mayor o igual que el umbral, y una salida de

0 en caso contrario.

El proceso de entrenamiento del perceptrón implica ajustar los pesos de las entradas de la

neurona hasta que se obtiene una salida deseada para un conjunto de datos de entrenamiento.

Esto se hace mediante la actualización de los pesos de acuerdo a la regla delta, que consiste

en comparar la salida obtenida por la neurona con la salida deseada para cada entrada y

ajustar los pesos en consecuencia. Matemáticamente, la actualización de los pesos se realiza

de la siguiente manera:
wi = wi + α(yd - y)x1i

Donde `wi` es el peso asociado a la entrada `xi`, `α` es la tasa de aprendizaje, `yd` es la salida

deseada y `y` es la salida obtenida por la neurona. La tasa de aprendizaje es un parámetro que

controla la velocidad a la que se ajustan los pesos durante el entrenamiento.

El algoritmo del perceptrón puede utilizarse para clasificar datos linealmente separables, es

decir, datos que pueden ser separados en dos categorías por una línea recta en un espacio de

características. Si los datos no son linealmente separables, el perceptrón no convergerá a una

solución óptima. En ese caso, se pueden utilizar variantes del perceptrón, como el perceptrón

multicapa o las redes neuronales convolucionales, que son capaces de clasificar datos no

linealmente separables.

En resumen, el algoritmo del perceptrón es un modelo simple pero poderoso utilizado para la

clasificación de datos en dos categorías diferentes y se basa en una neurona artificial que

recibe múltiples entradas, las suma ponderadamente y aplica una función de activación para

producir una salida binaria.

Codigo en netbeans desarrollo propio

/*

* To change this license header, choose License Headers in Project Properties.

* To change this template file, choose Tools | Templates

* and open the template in the editor.


*/

package perceptron;

/**

* @author Devyi Marcos

*/

public class Perceptron {

public static void main(String[] args) {

//declaramos las variables de la entrada de la red

double x1 ; double x2;

//variable de salidad de la red

double y1 ; double y2; double y3;

//pesos

double w11 = -1.95; //pesos neurona 1

double w12 = -2.41;

double Θ1 = -2.27;//Umbral 1
double w21 = 1.48;//pesos neuronas 2

double w22 = 1.53;

double Θ2 = -1.27;//Umbral 2

double w31 = -2.79;//Pesos neurona 3

double w32 = -2.83;

double Θ3 = -2.53;//Umbral 3

//Desarrollos de las operaciones para las salidad t deseadas

//entrada 1 en x1 y x2

x1 = -1;

x2 = -1;

//formula

y1 = Math.tanh( (x1 * w11)+ (x2 * w12)+(1 * Θ1) );

y2 = Math.tanh( (x1 * w21)+ (x2 * w22)+(1 * Θ2) );

y3 = Math.tanh( (y1 * w31)+ (y2 * w32)+(1 * Θ3) );//salida final

System.out.println(" salida 1 ; "+ y3);

//--------------------------------------------------------------------------------
x1 = -1;

x2 = 1;

//formula

y1 = Math.tanh( (x1 * w11)+ (x2 * w12)+(1 * Θ1) );

y2 = Math.tanh( (x1 * w21)+ (x2 * w22)+(1 * Θ2) );

y3 = Math.tanh( (y1 * w31)+ (y2 * w32)+(1 * Θ3) );//salida final

System.out.println(" salida 1 ; "+ y3);

//----------------------------------------------------

x1 = 1;

x2 = -1;

//formula

y1 = Math.tanh( (x1 * w11)+ (x2 * w12)+(1 * Θ1) );

y2 = Math.tanh( (x1 * w21)+ (x2 * w22)+(1 * Θ2) );

y3 = Math.tanh( (y1 * w31)+ (y2 * w32)+(1 * Θ3) );//salida final

System.out.println(" salida 1 ; "+ y3);

//----------------------------------------------------

x1 = 1;

x2 = 1;
//formula

y1 = Math.tanh( (x1 * w11)+ (x2 * w12)+(1 * Θ1) );

y2 = Math.tanh( (x1 * w21)+ (x2 * w22)+(1 * Θ2) );

y3 = Math.tanh( (y1 * w31)+ (y2 * w32)+(1 * Θ3) );//salida final

System.out.println(" salida 1 ; "+ y3)

También podría gustarte