Minha solução
import numpy as np
def layer_1_z(x, w1, b1):
return 1 / w1 * x + b1
def layer_2(x, w1, b1, w2, b2):
y1 = layer_1_z(x, w1, b1)
y2 = y1 - np.floor(y1)
return w2 * y2 + b2
def layer_2_activation(x, w1, b1, w2, b2):
y2 = layer_2(x, w1, b1, w2, b2)
# return 1 / (1 + np.exp(-y2))
return (y2 > 0) * 1
def loss(param):
w1, b1, w2, b2 = param
x = np.arange(0, 1000, 1)
y_hat = layer_2_activation(x, w1, b1, w2, b2)
y_true = (x % 2 > 0) * 1
return sum(np.square(y_hat - y_true))
# %%
from sko.GA import GA
ga = GA(func=loss, n_dim=4, size_pop=50, max_iter=100, lb=[1, 0, 1, 0], ub=[32, 1, 2, 1], precision=1)
best_x, best_y = ga.run()
print('best_x:', best_x, '\n', 'best_y:', best_y)
for x in range(1001, 1200):
y_hat = layer_2_activation(x, *best_x)
print('input:{},divide by 2:{}'.format(x, y_hat == 0))
entrada: 1001, divida por 2: entrada falsa: 1002, divida por 2: entrada verdadeira: 1003, divida por 2: entrada falsa: 1004, divida por 2: entrada verdadeira: 1005, divida por 2: entrada falsa: 1006, divida por 2: entrada verdadeira: 1007, divida por 2: entrada falsa: 1008, divida por 2: entrada verdadeira: 1009, divida por 2: entrada falsa: 1010, divida por 2: entrada verdadeira: 1011, divida por 2: entrada falsa : 1012, divida por 2: entrada verdadeira: 1013, divida por 2: entrada falsa: 1014, divida por 2: entrada verdadeira: 1015, divida por 2: entrada falsa: 1016, divida por 2: entrada verdadeira: 1017, divida por 2: Entrada falsa: 1018, divida por 2: Entrada verdadeira: 1019, divida por 2: Entrada falsa: 1020, divida por 2: Entrada verdadeira: 1021, divida por 2: Entrada falsa: 1022, divida por 2: Entrada verdadeira: 1023, divida por 2: entrada falsa: 1024, divida por 2: entrada verdadeira: 1025, divida por 2: entrada falsa: 1026, divida por 2: entrada verdadeira: 1027, divida por 2: entrada falsa: 1028, divida por 2 : Entrada verdadeira: 1029, divida por 2:Entrada falsa: 1030, divida por 2: entrada verdadeira: 1031, divida por 2: entrada falsa: 1032, divida por 2: entrada verdadeira: 1033, divida por 2: entrada falsa: 1034, divida por 2: entrada verdadeira: 1035, divida por 2: entrada falsa: 1036, divida por 2: entrada verdadeira: 1037, divida por 2: entrada falsa: 1038, divida por 2: entrada verdadeira: 1039, divida por 2: entrada falsa: 1040, divida por 2: verdadeira entrada: 1041, divida por 2: entrada falsa: 1042, divida por 2: entrada verdadeira: 1043, divida por 2: entrada falsa: 1044, divida por 2: entrada verdadeira: 1045, divida por 2: entrada falsa: 1046, divida por 2: entrada verdadeira: 1047, divida por 2: entrada falsa: 1048, divida por 2: entrada verdadeira: 1049, divida por 2: entrada falsa: 1050, divida por 2: entrada verdadeira: 1051, divida por 2: entrada falsa : 1052, divida por 2: entrada verdadeira: 1053, divida por 2: entrada falsa: 1054, divida por 2: entrada verdadeira: 1055, divida por 2: entrada falsa: 1056, divida por 2: entrada verdadeira: 1057, divida por 2: Entrada falsa: 1058, divida por 2:Entrada verdadeira: 1059, divida por 2: Entrada falsa: 1060, divida por 2: Entrada verdadeira: 1061, divida por 2: Entrada falsa: 1062, divida por 2: Entrada verdadeira: 1063, divida por 2: Entrada falsa: 1064, divida por 2: entrada verdadeira: 1065, divida por 2: entrada falsa: 1066, divida por 2: entrada verdadeira: 1067, divida por 2: entrada falsa: 1068, divida por 2: entrada verdadeira: 1069, divida por 2: falsa entrada: 1070, divida por 2: entrada verdadeira: 1071, divida por 2: entrada falsa: 1072, divida por 2: entrada verdadeira: 1073, divida por 2: entrada falsa: 1074, divida por 2: entrada verdadeira: 1075, divida por 2: entrada falsa: 1076, divida por 2: entrada verdadeira: 1077, divida por 2: entrada falsa: 1078, divida por 2: entrada verdadeira: 1079, divida por 2: entrada falsa: 1080, divida por 2: entrada verdadeira : 1081, divida por 2: entrada falsa: 1082, divida por 2: entrada verdadeira: 1083, divida por 2: entrada falsa: 1084, divida por 2: entrada verdadeira: 1085, divida por 2: entrada falsa: 1086, divida por 2: Entrada verdadeira: 1087, divida por 2:Entrada falsa: 1088, divida por 2: entrada verdadeira: 1089, divida por 2: entrada falsa: 1090, divida por 2: entrada verdadeira: 1091, divida por 2: entrada falsa: 1092, divida por 2: entrada verdadeira: 1093, divida por 2: entrada falsa: 1094, divida por 2: entrada verdadeira: 1095, divida por 2: entrada falsa: 1096, divida por 2: entrada verdadeira: 1097, divida por 2: entrada falsa: 1098, divida por 2: verdadeira entrada: 1099, divida por 2: entrada falsa: 1100, divida por 2: entrada verdadeira: 1101, divida por 2: entrada falsa: 1102, divida por 2: entrada verdadeira: 1103, divida por 2: entrada falsa: 1104, divida por 2: Entrada verdadeira: 1105, divida por 2: Entrada falsa: 1106, divida por 2: Entrada verdadeira: 1107, divida por 2: Entrada falsa: 1108, divida por 2: Entrada verdadeira: 1109, divida por 2: entrada falsa : 1110, divida por 2: entrada verdadeira: 1111, divida por 2: entrada falsa: 1112, divida por 2: entrada verdadeira: 1113, divida por 2: entrada falsa: 1114, divida por 2: entrada verdadeira: 1115, divida por 2: Entrada falsa: 1116, divida por 2:Entrada verdadeira: 1117, divida por 2: Entrada falsa: 1118, divida por 2: Entrada verdadeira: 1119, divida por 2: Entrada falsa: 1120, divida por 2: Entrada verdadeira: 1121, divida por 2: Entrada falsa: 1122, divida por 2: entrada verdadeira: 1123, divida por 2: entrada falsa: 1124, divida por 2: entrada verdadeira: 1125, divida por 2: entrada falsa: 1126, divida por 2: entrada verdadeira: 1127, divida por 2: falso entrada: 1128, divida por 2: entrada verdadeira: 1129, divida por 2: entrada falsa: 1130, divida por 2: entrada verdadeira: 1131, divida por 2: entrada falsa: 1132, divida por 2: entrada verdadeira: 1133, divida por 2: Entrada falsa: 1134, divida por 2: Entrada verdadeira: 1135, divida por 2: Entrada falsa: 1136, divida por 2: Entrada verdadeira: 1137, divida por 2: Entrada falsa: 1138, divida por 2: Entrada verdadeira : 1139, divida por 2: entrada falsa: 1140, divida por 2: entrada verdadeira: 1141, divida por 2: entrada falsa: 1142, divida por 2: entrada verdadeira: 1143, divida por 2: entrada falsa: 1144, divida por 2: Entrada verdadeira: 1145, divida por 2:Entrada falsa: 1146, divida por 2: Entrada verdadeira: 1147, divida por 2: Entrada falsa: 1148, divida por 2: Entrada verdadeira: 1149, divida por 2: Entrada falsa: 1150, divida por 2: Entrada verdadeira: 1151, divida por 2: entrada falsa: 1152, divida por 2: entrada verdadeira: 1153, divida por 2: entrada falsa: 1154, divida por 2: entrada verdadeira: 1155, divida por 2: entrada falsa: 1156, divida por 2: verdadeira entrada: 1157, divida por 2: entrada falsa: 1158, divida por 2: entrada verdadeira: 1159, divida por 2: entrada falsa: 1160, divida por 2: entrada verdadeira: 1161, divida por 2: entrada falsa: 1162, divida por 2: Entrada verdadeira: 1163, divida por 2: Entrada falsa: 1164, divida por 2: Entrada verdadeira: 1165, divida por 2: Entrada falsa: 1166, divida por 2: Entrada verdadeira: 1167, divida por 2: Entrada falsa : 1168, divida por 2: entrada verdadeira: 1169, divida por 2: entrada falsa: 1170, divida por 2: entrada verdadeira: 1171, divida por 2: entrada falsa: 1172, divida por 2: entrada verdadeira: 1173, divida por 2: Entrada falsa: 1174, divida por 2:Entrada verdadeira: 1175, divida por 2: Entrada falsa: 1176, divida por 2: Entrada verdadeira: 1177, divida por 2: Entrada falsa: 1178, divida por 2: Entrada verdadeira: 1179, divida por 2: Entrada falsa: 1180, divida por 2: entrada verdadeira: 1181, divida por 2: entrada falsa: 1182, divida por 2: entrada verdadeira: 1183, divida por 2: entrada falsa: 1184, divida por 2: entrada verdadeira: 1185, divida por 2: falso entrada: 1186, divida por 2: entrada verdadeira: 1187, divida por 2: entrada falsa: 1188, divida por 2: entrada verdadeira: 1189, divida por 2: entrada falsa: 1190, divida por 2: entrada verdadeira: 1191, divida por 2: entrada falsa: 1192, divida por 2: entrada verdadeira: 1193, divida por 2: entrada falsa: 1194, divida por 2: entrada verdadeira: 1195, divida por 2: entrada falsa: 1196, divida por 2: entrada verdadeira : 1197, divida por 2: entrada falsa: 1198, divida por 2: entrada verdadeira: 1199, divida por 2: falsoEntrada verdadeira: 1179, divida por 2: entrada falsa: 1180, divida por 2: entrada verdadeira: 1181, divida por 2: entrada falsa: 1182, divida por 2: entrada verdadeira: 1183, divida por 2: entrada falsa: 1184, divida por 2: entrada verdadeira: 1185, divida por 2: entrada falsa: 1186, divida por 2: entrada verdadeira: 1187, divida por 2: entrada falsa: 1188, divida por 2: entrada verdadeira: 1189, divida por 2: falso entrada: 1190, divida por 2: entrada verdadeira: 1191, divida por 2: entrada falsa: 1192, divida por 2: entrada verdadeira: 1193, divida por 2: entrada falsa: 1194, divida por 2: entrada verdadeira: 1195, divida por 2: Entrada falsa: 1196, divida por 2: Entrada verdadeira: 1197, divida por 2: Entrada falsa: 1198, divida por 2: Entrada verdadeira: 1199, divida por 2: FalsoEntrada verdadeira: 1179, divida por 2: entrada falsa: 1180, divida por 2: entrada verdadeira: 1181, divida por 2: entrada falsa: 1182, divida por 2: entrada verdadeira: 1183, divida por 2: entrada falsa: 1184, divida por 2: entrada verdadeira: 1185, divida por 2: entrada falsa: 1186, divida por 2: entrada verdadeira: 1187, divida por 2: entrada falsa: 1188, divida por 2: entrada verdadeira: 1189, divida por 2: falso entrada: 1190, divida por 2: entrada verdadeira: 1191, divida por 2: entrada falsa: 1192, divida por 2: entrada verdadeira: 1193, divida por 2: entrada falsa: 1194, divida por 2: entrada verdadeira: 1195, divida por 2: Entrada falsa: 1196, divida por 2: Entrada verdadeira: 1197, divida por 2: Entrada falsa: 1198, divida por 2: Entrada verdadeira: 1199, divida por 2: FalsoEntrada verdadeira: 1187, divida por 2: entrada falsa: 1188, divida por 2: entrada verdadeira: 1189, divida por 2: entrada falsa: 1190, divida por 2: entrada verdadeira: 1191, divida por 2: entrada falsa: 1192, divida por 2: entrada verdadeira: 1193, divida por 2: entrada falsa: 1194, divida por 2: entrada verdadeira: 1195, divida por 2: entrada falsa: 1196, divida por 2: entrada verdadeira: 1197, divida por 2: falso entrada: 1198, divida por 2: entrada verdadeira: 1199, divida por 2: falsoEntrada verdadeira: 1187, divida por 2: entrada falsa: 1188, divida por 2: entrada verdadeira: 1189, divida por 2: entrada falsa: 1190, divida por 2: entrada verdadeira: 1191, divida por 2: entrada falsa: 1192, divida por 2: entrada verdadeira: 1193, divida por 2: entrada falsa: 1194, divida por 2: entrada verdadeira: 1195, divida por 2: entrada falsa: 1196, divida por 2: entrada verdadeira: 1197, divida por 2: falso entrada: 1198, divida por 2: entrada verdadeira: 1199, divida por 2: falso
Além disso, dividir por outros números (digamos, 7) também é bom:
import numpy as np
def layer_1_z(x, w1, b1):
return 1 / w1 * x + b1
def layer_2(x, w1, b1, w2, b2):
y1 = layer_1_z(x, w1, b1)
y2 = y1 - np.floor(y1)
return w2 * y2 + b2
def layer_2_activation(x, w1, b1, w2, b2):
y2 = layer_2(x, w1, b1, w2, b2)
# return 1 / (1 + np.exp(-y2))
return (y2 > 0) * 1
def loss(param):
w1, b1, w2, b2 = param
x = np.arange(0, 1000, 1)
y_hat = layer_2_activation(x, w1, b1, w2, b2)
y_true = (x % 7 > 0) * 1
return sum(np.square(y_hat - y_true))
# %%
from sko.GA import GA
ga = GA(func=loss, n_dim=4, size_pop=50, max_iter=100, lb=[1, 0, 1, 0], ub=[32, 1, 2, 1], precision=1)
best_x, best_y = ga.run()
print('best_x:', best_x, '\n', 'best_y:', best_y)
for x in range(1001, 1200):
y_hat = layer_2_activation(x, *best_x)
print('input:{},divide by 7:{}'.format(x, y_hat == 0))
entrada: 1001, divida por 7: entrada verdadeira: 1002, divida por 7: entrada falsa: 1003, divida por 7: entrada falsa: 1004, divida por 7: entrada falsa: 1005, divida por 7: entrada falsa: 1006, divida por 7: entrada falsa: 1007, divida por 7: entrada falsa: 1008, divida por 7: entrada verdadeira: 1009, divida por 7: entrada falsa: 1010, divida por 7: entrada falsa: 1011, divida por 7: entrada falsa : 1012, divida por 7: entrada falsa: 1013, divida por 7: entrada falsa: 1014, divida por 7: entrada falsa: 1015, divida por 7: entrada verdadeira: 1016, divida por 7: entrada falsa: 1017, divida por 7: Entrada falsa: 1018, divida por 7: Entrada falsa: 1019, divida por 7: Entrada falsa: 1020, divida por 7: Entrada falsa: 1021, divida por 7: Entrada falsa: 1022, divida por 7: Entrada verdadeira: 1023, divida por 7: entrada falsa: 1024, divida por 7: entrada falsa: 1025, divida por 7: entrada falsa: 1026, divida por 7: entrada falsa: 1027, divida por 7: entrada falsa: 1028, divida por 7 : Entrada falsa: 1029, divida por 7:Entrada verdadeira: 1030, divida por 7: entrada falsa: 1031, divida por 7: entrada falsa: 1032, divida por 7: entrada falsa: 1033, divida por 7: entrada falsa: 1034, divida por 7: entrada falsa: 1035, divida por 7: entrada falsa: 1036, divida por 7: entrada verdadeira: 1037, divida por 7: entrada falsa: 1038, divida por 7: entrada falsa: 1039, divida por 7: entrada falsa: 1040, divida por 7: falsa entrada: 1041, divida por 7: entrada falsa: 1042, divida por 7: entrada falsa: 1043, divida por 7: entrada verdadeira: 1044, divida por 7: entrada falsa: 1045, divida por 7: entrada falsa: 1046, divida por 7: entrada falsa: 1047, divida por 7: entrada falsa: 1048, divida por 7: entrada falsa: 1049, divida por 7: entrada falsa: 1050, divida por 7: entrada verdadeira: 1051, divida por 7: entrada falsa : 1052, divida por 7: entrada falsa: 1053, divida por 7: entrada falsa: 1054, divida por 7: entrada falsa: 1055, divida por 7: entrada falsa: 1056, divida por 7: entrada falsa: 1057, divida por 7: Entrada verdadeira: 1058,divida por 7: entrada falsa: 1059, divida por 7: entrada falsa: 1060, divida por 7: entrada falsa: 1061, divida por 7: entrada falsa: 1062, divida por 7: entrada falsa: 1063, divida por 7: falsa entrada: 1064, divida por 7: entrada verdadeira: 1065, divida por 7: entrada falsa: 1066, divida por 7: entrada falsa: 1067, divida por 7: entrada falsa: 1068, divida por 7: entrada falsa: 1069, divida por 7: entrada falsa: 1070, divida por 7: entrada falsa: 1071, divida por 7: entrada verdadeira: 1072, divida por 7: entrada falsa: 1073, divida por 7: entrada falsa: 1074, divida por 7: entrada falsa : 1075, divida por 7: entrada falsa: 1076, divida por 7: entrada falsa: 1077, divida por 7: entrada falsa: 1078, divida por 7: entrada verdadeira: 1079, divida por 7: entrada falsa: 1080, divida por 7: Entrada falsa: 1081, divida por 7: Entrada falsa: 1082, divida por 7: Entrada falsa: 1083, divida por 7: Entrada falsa: 1084, divida por 7: Entrada falsa: 1085, divida por 7: Entrada verdadeira: 1086, divida por 7:Entrada falsa: 1087, divida por 7: Entrada falsa: 1088, divida por 7: entrada falsa: 1089, divida por 7: entrada falsa: 1090, divida por 7: entrada falsa: 1091, divida por 7: entrada falsa: 1092, divida por 7: entrada verdadeira: 1093, divida por 7: entrada falsa: 1094, divida por 7: entrada falsa: 1095, divida por 7: entrada falsa: 1096, divida por 7: entrada falsa: 1097, divida por 7: falsa entrada: 1098, divida por 7: entrada falsa: 1099, divida por 7: entrada verdadeira: 1100, divida por 7: entrada falsa: 1101, divida por 7: entrada falsa: 1102, divida por 7: entrada falsa: 1103, divida por 7: entrada falsa: 1104, divida por 7: entrada falsa: 1105, divida por 7: entrada falsa: 1106, divida por 7: entrada verdadeira: 1107, divida por 7: entrada falsa: 1108, divida por 7: entrada falsa : 1109, divida por 7: entrada falsa: 1110, divida por 7: entrada falsa: 1111, divida por 7: entrada falsa: 1112, divida por 7: entrada falsa: 1113, divida por 7: entrada verdadeira: 1114, divida por 7: Entrada falsa: 1115,divida por 7: entrada falsa: 1116, divida por 7: entrada falsa: 1117, divida por 7: entrada falsa: 1118, divida por 7: entrada falsa: 1119, divida por 7: entrada falsa: 1120, divida por 7: verdadeira entrada: 1121, divida por 7: entrada falsa: 1122, divida por 7: entrada falsa: 1123, divida por 7: entrada falsa: 1124, divida por 7: entrada falsa: 1125, divida por 7: entrada falsa: 1126, divida por 7: entrada falsa: 1127, divida por 7: entrada verdadeira: 1128, divida por 7: entrada falsa: 1129, divida por 7: entrada falsa: 1130, divida por 7: entrada falsa: 1131, divida por 7: entrada falsa : 1132, divida por 7: entrada falsa: 1133, divida por 7: entrada falsa: 1134, divida por 7: entrada verdadeira: 1135, divida por 7: entrada falsa: 1136, divida por 7: entrada falsa: 1137, divida por 7: Entrada falsa: 1138, divida por 7: Entrada falsa: 1139, divida por 7: Entrada falsa: 1140, divida por 7: Entrada falsa: 1141, divida por 7: Entrada verdadeira: 1142, divida por 7: Entrada falsa: 1143, divida por 7: entrada falsa:1144, divida por 7: entrada falsa: 1145, divida por 7: entrada falsa: 1146, divida por 7: entrada falsa: 1147, divida por 7: entrada falsa: 1148, divida por 7: entrada verdadeira: 1149, divida por 7 : Entrada falsa: 1150, divida por 7: Entrada falsa: 1151, divida por 7: Entrada falsa: 1152, divida por 7: Entrada falsa: 1153, divida por 7: Entrada falsa: 1154, divida por 7: Entrada falsa: 1155 , divida por 7: entrada verdadeira: 1156, divida por 7: entrada falsa: 1157, divida por 7: entrada falsa: 1158, divida por 7: entrada falsa: 1159, divida por 7: entrada falsa: 1160, divida por 7: Entrada falsa: 1161, divida por 7: entrada falsa: 1162, divida por 7: entrada verdadeira: 1163, divida por 7: entrada falsa: 1164, divida por 7: entrada falsa: 1165, divida por 7: entrada falsa: 1166, divida por 7: entrada falsa: 1167, divida por 7: entrada falsa: 1168, divida por 7: entrada falsa: 1169, divida por 7: entrada verdadeira: 1170, divida por 7: entrada falsa: 1171, divida por 7: falsa entrada: 1172, divida por 7:Entrada falsa: 1173, divida por 7: entrada falsa: 1174, divida por 7: entrada falsa: 1175, divida por 7: entrada falsa: 1176, divida por 7: entrada verdadeira: 1177, divida por 7: entrada falsa: 1178, divida por 7: entrada falsa: 1179, divida por 7: entrada falsa: 1180, divida por 7: entrada falsa: 1181, divida por 7: entrada falsa: 1182, divida por 7: entrada falsa: 1183, divida por 7: verdadeira entrada: 1184, divida por 7: entrada falsa: 1185, divida por 7: entrada falsa: 1186, divida por 7: entrada falsa: 1187, divida por 7: entrada falsa: 1188, divida por 7: entrada falsa: 1189, divida por 7: entrada falsa: 1190, divida por 7: entrada verdadeira: 1191, divida por 7: entrada falsa: 1192, divida por 7: entrada falsa: 1193, divida por 7: entrada falsa: 1194, divida por 7: entrada falsa : 1195, divida por 7: entrada falsa: 1196, divida por 7: entrada falsa: 1197, divida por 7: entrada verdadeira: 1198, divida por 7: entrada falsa: 1199, divida por 7: falsadivida por 7: entrada falsa: 1175, divida por 7: entrada falsa: 1176, divida por 7: entrada verdadeira: 1177, divida por 7: entrada falsa: 1178, divida por 7: entrada falsa: 1179, divida por 7: falsa entrada: 1180, divida por 7: entrada falsa: 1181, divida por 7: entrada falsa: 1182, divida por 7: entrada falsa: 1183, divida por 7: entrada verdadeira: 1184, divida por 7: entrada falsa: 1185, divida por 7: entrada falsa: 1186, divida por 7: entrada falsa: 1187, divida por 7: entrada falsa: 1188, divida por 7: entrada falsa: 1189, divida por 7: entrada falsa: 1190, divida por 7: entrada verdadeira : 1191, divida por 7: entrada falsa: 1192, divida por 7: entrada falsa: 1193, divida por 7: entrada falsa: 1194, divida por 7: entrada falsa: 1195, divida por 7: entrada falsa: 1196, divida por 7: Entrada falsa: 1197, divida por 7: Entrada verdadeira: 1198, divida por 7: Entrada falsa: 1199, divida por 7: Falsodivida por 7: entrada falsa: 1175, divida por 7: entrada falsa: 1176, divida por 7: entrada verdadeira: 1177, divida por 7: entrada falsa: 1178, divida por 7: entrada falsa: 1179, divida por 7: falsa entrada: 1180, divida por 7: entrada falsa: 1181, divida por 7: entrada falsa: 1182, divida por 7: entrada falsa: 1183, divida por 7: entrada verdadeira: 1184, divida por 7: entrada falsa: 1185, divida por 7: entrada falsa: 1186, divida por 7: entrada falsa: 1187, divida por 7: entrada falsa: 1188, divida por 7: entrada falsa: 1189, divida por 7: entrada falsa: 1190, divida por 7: entrada verdadeira : 1191, divida por 7: entrada falsa: 1192, divida por 7: entrada falsa: 1193, divida por 7: entrada falsa: 1194, divida por 7: entrada falsa: 1195, divida por 7: entrada falsa: 1196, divida por 7: Entrada falsa: 1197, divida por 7: Entrada verdadeira: 1198, divida por 7: Entrada falsa: 1199, divida por 7: FalsoEntrada falsa: 1178, divida por 7: Entrada falsa: 1179, divida por 7: entrada falsa: 1180, divida por 7: entrada falsa: 1181, divida por 7: entrada falsa: 1182, divida por 7: entrada falsa: 1183, divida por 7: entrada verdadeira: 1184, divida por 7: entrada falsa: 1185, divida por 7: entrada falsa: 1186, divida por 7: entrada falsa: 1187, divida por 7: entrada falsa: 1188, divida por 7: falsa entrada: 1189, divida por 7: entrada falsa: 1190, divida por 7: entrada verdadeira: 1191, divida por 7: entrada falsa: 1192, divida por 7: entrada falsa: 1193, divida por 7: entrada falsa: 1194, divida por 7: entrada falsa: 1195, divida por 7: entrada falsa: 1196, divida por 7: entrada falsa: 1197, divida por 7: entrada verdadeira: 1198, divida por 7: entrada falsa: 1199, divida por 7: falsaEntrada falsa: 1178, divida por 7: Entrada falsa: 1179, divida por 7: entrada falsa: 1180, divida por 7: entrada falsa: 1181, divida por 7: entrada falsa: 1182, divida por 7: entrada falsa: 1183, divida por 7: entrada verdadeira: 1184, divida por 7: entrada falsa: 1185, divida por 7: entrada falsa: 1186, divida por 7: entrada falsa: 1187, divida por 7: entrada falsa: 1188, divida por 7: falsa entrada: 1189, divida por 7: entrada falsa: 1190, divida por 7: entrada verdadeira: 1191, divida por 7: entrada falsa: 1192, divida por 7: entrada falsa: 1193, divida por 7: entrada falsa: 1194, divida por 7: entrada falsa: 1195, divida por 7: entrada falsa: 1196, divida por 7: entrada falsa: 1197, divida por 7: entrada verdadeira: 1198, divida por 7: entrada falsa: 1199, divida por 7: falsadivida por 7: entrada falsa: 1185, divida por 7: entrada falsa: 1186, divida por 7: entrada falsa: 1187, divida por 7: entrada falsa: 1188, divida por 7: entrada falsa: 1189, divida por 7: falsa entrada: 1190, divida por 7: entrada verdadeira: 1191, divida por 7: entrada falsa: 1192, divida por 7: entrada falsa: 1193, divida por 7: entrada falsa: 1194, divida por 7: entrada falsa: 1195, divida por 7: Entrada falsa: 1196, divida por 7: Entrada falsa: 1197, divida por 7: Entrada verdadeira: 1198, divida por 7: Entrada falsa: 1199, divida por 7: Falsodivida por 7: entrada falsa: 1185, divida por 7: entrada falsa: 1186, divida por 7: entrada falsa: 1187, divida por 7: entrada falsa: 1188, divida por 7: entrada falsa: 1189, divida por 7: falsa entrada: 1190, divida por 7: entrada verdadeira: 1191, divida por 7: entrada falsa: 1192, divida por 7: entrada falsa: 1193, divida por 7: entrada falsa: 1194, divida por 7: entrada falsa: 1195, divida por 7: Entrada falsa: 1196, divida por 7: Entrada falsa: 1197, divida por 7: Entrada verdadeira: 1198, divida por 7: Entrada falsa: 1199, divida por 7: Falsodivida por 7: entrada verdadeira: 1198, divida por 7: entrada falsa: 1199, divida por 7: falsadivida por 7: entrada verdadeira: 1198, divida por 7: entrada falsa: 1199, divida por 7: falsa
Explicação:
Eu recebo 2 soluções diferentes. Ambos são bons:
1. pecado como ativação
2. andar (ou int) como ativação
É impossível encontrar os melhores pesos usando descida de gradiente, e eu uso o algoritmo genético (do scikit-opt )