Está en la página 1de 2

Module Module1 'Visual basic crea automatico el modulo 1 'Declaracion de variables globales Dim matriz(4, 7) 'declaracion de la matriz tamao

4*7 Dim w As Double() 'se declara w que seran los pesos Dim dw(3) As Double 'se declara dw que seran los nuevos pesos Const Raprendizaje As Double = 0.3 'constante de aprendizaje con valor de 0.3 Dim salidaD As Integer 'el valor de salidaD se pide Sub Main() 'metodo principal 'se declaran variables locales Dim cont As Integer = 1 'contador Dim err As Double 'variable de marjen de error Dim salida As Double 'variable de salida Dim delta As Double 'variable delta(diferencia entre el valor real, producido en la capa de salida,para un patron de entrada y su salida esperada) Dim ent1, ent2, ent3 As Double 'variables de entrada Dim parar As Boolean = False ' variable booleana que dice cuando parar w = {0.84, 0.394, 0.783} 'declarar pesos iniciales 'parte del codigo donde el usuario inserta los datos a travs de consola Console.Write("Ingrese salida deseada:") salidaD = Integer.Parse(Console.ReadLine()) Console.Write("Ingrese la entrada 1:") ent1 = Integer.Parse(Console.ReadLine()) Console.Write("Ingrese la entrada 2:") ent2 = Integer.Parse(Console.ReadLine()) Console.Write("Ingrese la entrada 3:") ent3 = Integer.Parse(Console.ReadLine()) 'declarar metodo while con for anidado While cont > err 'si el contador es mayor al margen de error proseguir con el metodo for For i As Integer = 0 To salidaD Step 1 'funcion de activacion de la celula salida = ent1 * w(0) + ent2 * w(1) + ent3 * w(2) '0 1 2 son valores de la matriz delta = salidaD - salida 'delta salida esperada err = 0.5 * delta * delta 'se declara el valor del error .5 por dos veces delta 'Aqui se notifica si la neurona cumple las condiciones con los pesos especificados por el usuario dw(0) = Raprendizaje * delta * ent1 dw(1) = Raprendizaje * delta * ent2 dw(2) = Raprendizaje * delta * ent3 'se continua con el ciclo for con i Next i 'se mostraran en consola los valores actuales de la neurona Console.WriteLine("Salida:" & salida) Console.WriteLine("Salida Deseada:" & salidaD) Console.WriteLine("Pesos Actuales: W1={0},W2{1},W3={2}", w(0), w(1), w(2)) 'En esta parte si la neurona se activa los valores se recalibran asignando nuevos pesos w(0) += dw(0) w(1) += dw(1) w(2) += dw(2)

Console.WriteLine("Pesos Nuevos: W1={0},W2{1},W3={2}", w(0), w(1), w(2)) Console.ReadLine() 'si esto es cierto se acaba el ciclo while End While 'nos marca como resultado Console.WriteLine("La Neurona Ha aprendido") Console.ReadLine() 'se cierra el modulo End Sub End Module

También podría gustarte