Походил, подумал, так не понял почему в hiasme нельзя сделать нейросеть. Решил почитать в интернете, что пишут. Нашел небольшое руководство на странице: https://neurohive.io/ru/osnovy-data-science/osnovy-nejronnyh-setej-algoritmy-obuchenie-funkcii-aktivacii-i-poteri/. Решил сделать как написано.
Add(MainForm,2953706,77,56) { Height=217 Caption="нейросеть" BorderStyle=1 Position=1 } Add(Memo,5818142,1525,665) { Top=35 Width=384 Height=52 } Add(Button,232110,98,203) { Left=180 Top=87 Width=204 Caption="Учить" link(onClick,14798066:doEvent1,[]) } Add(Random,7893346,546,126) { link(onRandom,15268055:doOperation,[(608,132)(608,125)]) } Add(For,4320093,448,133) { End=2 link(onEvent,7893346:doRandom,[(531,139)(531,132)]) link(onStop,823416:In,[(495,146)(495,174)]) } Add(Math,15268055,637,119) { OpType=3 Op2=100 link(onResult,13232827:doAdd,[(719,125)(719,132)]) link(Op1,7893346:Random,[(643,114)(597,114)(597,170)(552,170)]) } Add(MathParse,9250038,972,280) { DataCount=3 MathStr="1/(1+e^((%2*%1)+(%3*%1)))" link(onResult,9135928:doOperation,[(1065,286)(1065,251)]) link(X1,1287673:Var,[(978,206)(979,206)]) link(X2,13587347:Var2,[(985,180)(1042,180)]) link(X3,7690501:Var2,[(992,253)(1088,253)]) } Add(Math,9135928,1126,245) { Point(doClear) link(Op2,443059:Var3,[(1139,233)(1137,233)(1137,292)]) } Add(Hub,14798066,168,203) { OutCount=3 link(onEvent1,10249591:In,[(200,209)(200,153)]) link(onEvent2,12551519:In,[(214,216)(214,167)]) link(onEvent3,15036713:doEvent1,[]) } Add(LineBreak,11345495,1084,252) { link(Out,9135928:doClear,[]) Primary=[10249591,-867,-105] } Add(Math,16110325,1238,340) { OpType=1 link(onResult,9246201:doValue,[(1327,346)(1327,339)]) link(Op1,16442475:Text,[]) link(Op2,15851051:Var,[]) } Add(Edit,16442475,1238,214) { Left=120 Top=15 Width=164 Text="1" } Add(StrList,13232827,769,126) { } Add(LineBreak,4774714,699,133) { link(Out,13232827:doClear,[]) Primary=[12551519,-454,28] } Add(Memory,9246201,1427,333) { } Add(GetDataEx,443059,1126,287) { link(Data,9135928:Result,[]) } Add(LineBreak,16302653,1126,311) { Type=1 link(Data,443059:Var2,[]) Primary=[15851051,119,1] } Add(ArrayEnum,2257085,790,322) { link(onItem,9250038:doCalc,[(897,328)(897,286)]) link(onEndEnum,3988918:doEvent1,[(855,335)(855,349)]) link(Array,10480258:Var2,[(796,304)(793,304)]) } Add(Hub,3988918,888,343) { link(onEvent1,16110325:doOperation,[(1106,347)(1176,347)(1176,346)]) link(onEvent2,1501520:doEnum,[(951,356)(951,608)]) } Add(Memory,15060778,1154,532) { Default=String(0.01) } Add(ArrayEnum,1501520,1035,602) { link(onItem,145600:doCalc,[]) link(onEndEnum,2973558:doTimer,[(1135,615)(1135,706)]) link(Array,14709785:Var,[]) } Add(GetDataEx,10480258,787,193) { link(Data,13232827:Array,[(793,182)(789,182)]) } Add(MathParse,145600,1161,602) { DataCount=3 MathStr="%3-((%1*(1/(1+e^(%2))))/(1/(1+e^(%3))))" link(onResult,5649291:doEvent1,[]) link(X1,15060778:Value,[(1167,583)(1160,583)]) link(X2,11167896:Var,[]) link(X3,13013882:Var,[]) } Add(IndexToChanel,8608340,308,217) { Point(Index) link(onEvent1,4320093:doFor,[(394,223)(394,139)]) link(onEvent2,931595:doData,[(464,230)(464,314)]) link(Index,11757201:Value,[]) } Add(DoData,931595,476,308) { link(onEventData,13403264:doEvent1,[]) link(Data,7470258:Var,[]) } Add(LineBreak,6727217,1567,742) { Type=1 link(Data,5818142:Text,[(1573,726)(1531,726)]) Primary=[7470258,-1091,-462] } Add(Hub,13403264,532,308) { OutCount=3 link(onEvent1,13232827:doText,[(686,314)(686,153)]) link(onEvent2,16178709:In,[]) link(onEvent3,15522394:doEvent2,[(630,328)(630,335)]) } Add(LineBreak,10063462,1435,672) { link(Out,14779023:doEvent1,[]) Primary=[16178709,-798,-357] } Add(Memory,11757201,308,91) { Default=Integer(0) } Add(Hub,12276822,1225,700) { link(onEvent1,13552621:doData,[(1260,706)(1260,692)]) link(onEvent2,7839421:In,[(1260,713)(1260,727)]) } Add(DoData,13552621,1281,686) { Data=Integer(1) link(onEventData,7848787:In,[]) } Add(LineBreak,8859062,259,84) { link(Out,11757201:doValue,[(299,90)(299,97)]) Primary=[7848787,1064,602] } Add(Hub,15036713,231,217) { InCount=2 OutCount=1 link(onEvent1,8608340:doEvent,[]) } Add(LineBreak,7457174,182,231) { link(Out,15036713:doEvent2,[(222,237)(222,230)]) Primary=[7839421,1085,490] } Add(LineBreak,11444634,693,280) { link(Out,15522394:doEvent1,[(742,286)(742,328)]) Primary=[823416,-189,-112] } Add(Hub,15522394,756,322) { InCount=2 OutCount=1 link(onEvent1,2257085:doEnum,[]) } Add(Timer,2973558,1162,700) { Enable=1 link(onTimer,12276822:doEvent1,[]) } Add(Label,4660302,1288,217) { Left=5 Top=15 Width=116 Height=17 Caption="Какой результат хочу:" } Add(Button,13291767,1103,711) { Top=87 Width=179 Caption="Остановить" link(onClick,2973558:doStop,[(1149,717)(1149,713)]) } Add(CheckBox,5783179,1036,14) { Left=5 Top=110 Width=175 Caption="Есть работа" } Add(CheckBox,14479807,1110,11) { Left=180 Top=110 Width=175 Caption="Желания иметь свой дом" } Add(Label,12815975,1554,525) { Left=10 Top=140 Width=104 Height=17 Caption="У меня есть дом: %" } Add(Label,11844836,1554,574) { Left=120 Top=140 Width=4 Height=4 Caption="" } Add(Hub,5649291,1236,602) { link(onEvent1,9238156:In,[]) link(onEvent2,5818142:doAdd,[(1277,615)(1277,671)]) } Add(Math,9689440,1498,574) { OpType=2 Op2=100 link(onResult,11844836:doText,[]) } Add(Button,11684095,105,532) { Left=210 Top=135 Width=170 Caption="Узнать" link(onClick,1810444:doEvent1,[]) } Add(ArrayEnum,11872268,210,532) { link(onItem,3400600:doEvent,[(293,537)]) link(onEndEnum,12555394:doOperation,[(314,545)(314,643)]) link(Array,1331200:Var,[]) } Add(LineBreak,6678867,1539,749) { Type=1 link(Data,5818142:Array,[]) Primary=[1331200,-1329,-259] } Add(Math,3705988,420,469) { OpType=2 link(Op2,3202119:Var,[]) } Add(IndexToChanel,3400600,336,532) { Point(Index) Point(Data) link(onEvent1,3705988:doOperation,[(394,538)(394,475)]) link(onEvent2,4243685:doOperation,[(464,545)(464,482)]) link(Index,11748065:Var,[]) link(Data,11872268:Item,[(349,520)(254,520)(254,576)(216,576)]) } Add(GetDataEx,13587347,1036,70) { link(Data,5783179:Checked,[]) } Add(LineBreak,5539737,1001,91) { Type=1 link(Data,13587347:Var1,[(1007,75)]) Primary=[3310172,-504,350] } Add(Math,4243685,490,476) { OpType=2 link(Op2,3310172:Var,[]) } Add(GetDataEx,7690501,1082,77) { link(Data,14479807:Checked,[(1088,60)(1116,60)]) } Add(LineBreak,9534299,1120,91) { Type=1 link(Data,7690501:Var1,[(1126,82)]) Primary=[3202119,-693,350] } Add(Math,12555394,455,637) { link(onResult,7648739:In,[]) link(Op1,3705988:Result,[(461,569)(426,569)]) link(Op2,4243685:Result,[(468,571)(496,571)]) } Add(LineBreak,6888472,1442,574) { link(Out,9689440:doOperation,[]) Primary=[7648739,-945,63] } Add(Button,6694263,98,357) { Left=210 Top=155 Width=170 Caption="Удалить" link(onClick,1823499:doEvent1,[]) } Add(LineBreak,15951247,259,98) { link(Out,11757201:doClear,[]) Primary=[10514145,-77,259] } Add(Hub,1823499,147,357) { link(onEvent1,10514145:In,[]) link(onEvent2,2684425:In,[]) } Add(Hub,14779023,1498,672) { InCount=2 OutCount=1 link(onEvent1,5818142:doClear,[]) } Add(LineBreak,14983604,1435,679) { link(Out,14779023:doEvent2,[]) Primary=[2684425,-1260,-315] } Add(LineBreak,859792,790,370) { Type=1 link(Data,2257085:Item,[(796,359)(796,359)]) Primary=[1287673,183,-216] } Add(LineBreak,8761235,819,210) { Type=1 link(Data,10480258:Var3,[(825,198)]) Primary=[14709785,216,364] } Add(LineBreak,12843045,1421,382) { Type=1 link(Data,9246201:Value,[(1427,374)(1433,374)]) Primary=[11167896,-253,125] } Add(LineBreak,1881234,217,602) { Type=1 link(Data,11872268:Index,[]) Primary=[11748065,119,-112] } Add(LineBreak,3099286,1035,655) { Type=1 link(Data,1501520:Item,[]) Primary=[13013882,140,-180] } Add(InfoTip,11302864,84,420) { Info=#42:Узнать новые ответы из известных подсчетов| Width=463 Height=256 } Add(InfoTip,3671835,77,329) { Info=#15:Обнулить работу| Width=148 Height=74 } Add(InfoTip,8917234,245,28) { Info=#25:Индекс: 0-первое обучения|22:1-продолжения обучения| Width=162 Height=242 } Add(InfoTip,4214946,413,84) { Info=#49:Зададим начальные веса случайным образом: w1; w2;| Width=288 Height=123 } Add(InfoTip,5449507,777,224) { Info=#61:Умножим входные данные на веса для формирования скрытого слоя| Width=274 Height=165 } Add(Hub,1810444,175,532) { InCount=2 OutCount=1 link(onEvent1,11872268:doEnum,[]) } Add(LineBreak,15749151,140,546) { link(Out,1810444:doEvent2,[(172,552)(172,545)]) Primary=[9238156,1239,56] } Add(InfoTip,6402321,1057,210) { Info=#20:y_ = fn(h1 , h2, h3)| Width=141 Height=158 } Add(InfoTip,4077879,1232,203) { Info=#24:err = loss_func( у , y_)| Width=253 Height=214 } Add(InfoTip,8796384,952,427) { Info=#50:В результате получатся следующие обновленные веса:|0:|30:w1 = w1 — (n * d(err) / d(w1))|30:w2 = w2 — (n * d(err) / d(w2))|30:w3 = w3 — (n * d(err) / d(w3))| Width=673 Height=347 } Add(InfoTip,7596771,1078,658) { Info=#34:Остановить, когда все удовлетворит| Width=281 Height=109 } Add(InfoTip,16627571,35,119) { Info=#27:Начать учить или продолжить| Width=204 Height=158 }
У меня только один вопрос, эта сеть может помочь для распознания чего-либо?
|