RNA
Hola,
Quiero programar una red neuronal que abra una persiana en tres niveles segun el nivel de luz,
mi salida desea es 0 para cerrada, 1 para entreabierta, 2 para abierto total.
Este el c贸digo:
#include <cstdlib>
#include <iostream>
#include <math.h>
using namespace std;
int main(int argc, char *argv[])
{
cout << system("cls") << "\n";
double Xi, u, e, Wij, vWij, r, Yr, P;
float Euler = 2.7182;
int k = 0, Yd;
cout << "Ingrese el nivel de luz: ";
cin >> Xi;
if (Xi >= 0){ // Salida deseada Esta funci贸n DEBE ser l贸gica m谩s all谩 de evaluaar una variable y asignarlo UN valor
if (Xi <= 2){
Yd = 0;
}
else{
if (Xi >= 3){
if (Xi <= 5){
Yd = 1;
}
else{
if (Xi >= 6){
Yd = 2;
}
}
}
}
}
cout << "Su salida deseada es: " << Yd << "\n";
cout << "Ingrese un peso sinaptico: ";
cin >> Wij;
cout << "Ingrese una tasa de aprendizaje: ";
cin >> r;
while (e != 0){
k = k + 1;
u = Xi * Wij;
Yr = cos(u); // Funci贸n de activaci贸n
e = Yd - Yr;
vWij = r * e * Xi;
Wij = Wij + vWij;
cout << "Iteracion " << k << "(" << Yr << ")\n";
}
cout << "Su salida real es " << Yr << " obtenida en " << k << " iteraciones.\n\n";
cout << system("pause");
}
No se porque no funciona, puedo cambiar funci贸n de activaci贸n, los pesos sinapticos, tasa de aprendizaje y todo el dis帽o a gusto me podr铆an ayudar porque con el c贸digo anterior no aprende para todos los casos
Quiero programar una red neuronal que abra una persiana en tres niveles segun el nivel de luz,
mi salida desea es 0 para cerrada, 1 para entreabierta, 2 para abierto total.
Este el c贸digo:
#include <cstdlib>
#include <iostream>
#include <math.h>
using namespace std;
int main(int argc, char *argv[])
{
cout << system("cls") << "\n";
double Xi, u, e, Wij, vWij, r, Yr, P;
float Euler = 2.7182;
int k = 0, Yd;
cout << "Ingrese el nivel de luz: ";
cin >> Xi;
if (Xi >= 0){ // Salida deseada Esta funci贸n DEBE ser l贸gica m谩s all谩 de evaluaar una variable y asignarlo UN valor
if (Xi <= 2){
Yd = 0;
}
else{
if (Xi >= 3){
if (Xi <= 5){
Yd = 1;
}
else{
if (Xi >= 6){
Yd = 2;
}
}
}
}
}
cout << "Su salida deseada es: " << Yd << "\n";
cout << "Ingrese un peso sinaptico: ";
cin >> Wij;
cout << "Ingrese una tasa de aprendizaje: ";
cin >> r;
while (e != 0){
k = k + 1;
u = Xi * Wij;
Yr = cos(u); // Funci贸n de activaci贸n
e = Yd - Yr;
vWij = r * e * Xi;
Wij = Wij + vWij;
cout << "Iteracion " << k << "(" << Yr << ")\n";
}
cout << "Su salida real es " << Yr << " obtenida en " << k << " iteraciones.\n\n";
cout << system("pause");
}
No se porque no funciona, puedo cambiar funci贸n de activaci贸n, los pesos sinapticos, tasa de aprendizaje y todo el dis帽o a gusto me podr铆an ayudar porque con el c贸digo anterior no aprende para todos los casos
