182 lines
7.0 KiB
HTML
182 lines
7.0 KiB
HTML
<html>
|
|
<head>
|
|
<title>сшсышюЄхър фы ЁрсюЄ√ ё эхщЁюёхЄ№■ (neural network perceptron)</title>
|
|
<meta charset="WINDOWS-1251">
|
|
<style>
|
|
body
|
|
{
|
|
font-size: 15px;
|
|
font-family: "Bookman Old Style";
|
|
color: black;
|
|
text-align: justify;
|
|
}
|
|
h1 { color: green; font-size: 23px; }
|
|
h2 { color: green; font-size: 21px; }
|
|
h3 { color: green; font-size: 19px; }
|
|
h4 { color: #803f00; font-size: 17px; }
|
|
i { color: #0099cc; }
|
|
b { color: #0099cc; }
|
|
p {
|
|
text-indent: 1em;
|
|
margin-top: 3px;
|
|
margin-bottom: 2px;
|
|
margin-left: 0px;
|
|
margin-right: 0px;
|
|
}
|
|
ol, ul, dl{
|
|
margin-top: 3px;
|
|
margin-bottom: 2px;
|
|
}
|
|
pre
|
|
{
|
|
padding: 2px;
|
|
padding-left: 20px;
|
|
margin-top: 5px;
|
|
margin-bottom: 5px;
|
|
margin-left: 0px;
|
|
margin-right: 0px;
|
|
font-family: "Courier New";
|
|
font-size: 15px;
|
|
color: #004000;
|
|
background-color: #ffd0ff;
|
|
}
|
|
table { font-size: 15px; }
|
|
</style>
|
|
</head>
|
|
|
|
<body>
|
|
|
|
<h1>╬уыртыхэшх</h1>
|
|
<ul>
|
|
<li>┬ёЄєяыхэшх</li>
|
|
<li><a href="#fun">╘єэъЎшш</a><br>
|
|
<ul>
|
|
<li><a href="#f_init">lib_init</a></li>
|
|
<li><a href="#f_create">NNP_Create</a></li>
|
|
<li><a href="#f_reset">NNP_Reset</a></li>
|
|
<li><a href="#f_feedf">NNP_FeedForward</a></li>
|
|
<li><a href="#f_backp">NNP_BackPropagation</a></li>
|
|
<li><a href="#f_getmd">NNP_GetMemData</a></li>
|
|
<li><a href="#f_setmd">NNP_SetMemData</a></li>
|
|
<li><a href="#f_destroy">NNP_Destroy</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a href="#const">╩юэёЄрэЄ√</a></li>
|
|
<li><a href="#tabl_e">╥рсышЎр ¤ъёяюЁЄр</a></li>
|
|
<li><a href="#ex1">╧ЁшьхЁ</a></li>
|
|
<li><a href="#hist">╚ёЄюЁш </a></li>
|
|
</ul>
|
|
|
|
<h1>┬ёЄєяыхэшх</h1>
|
|
<p>─юъєьхэЄрЎш ъ сшсышюЄхъх <b>nnp.obj</b>, фы <b>╬╤ ╩юышсЁш</b>. ▌Єр сшсышюЄхър ёючфрэр фы ЁрсюЄ√ ё эхщЁюёхЄ ьш (neural network perceptron). ┬шфхю яю эхщЁюёхЄ ь: <a href="https://www.youtube.com/watch?v=GNcGPw_Kb_0">1</a>,
|
|
<a href="https://www.youtube.com/watch?v=wzIOl4hWP3U">2</a>. ╚ёїюфэ√щ ъюф ( ч√ъ java), эр юёэютх ъюЄюЁюую фхырыё№ сшсышюЄхър: <a href="https://github.com/ArtemOnigiri/SimpleNN">3</a>.</p>
|
|
|
|
<p>╧юёыхфэхх юсэютыхэшх сшсышюЄхъш 28.05.22.</p>
|
|
|
|
<h1><a name="fun">╘єэъЎшш</a></h1>
|
|
|
|
<p>┬ёх ЇєэъЎшш (ъЁюьх lib_init) 1-ь ярЁрьхЄЁюь яЁшэшьр■Є єърчрЄхы№ эр ёЄЁєъЄєЁє NeuralNetwork.
|
|
╬яшёрэшх ёЄЁєъЄєЁ√ NeuralNetwork:</p>
|
|
<pre>struct NeuralNetwork
|
|
learningRate dq ? ;+ 0 ёъюЁюёЄ№ юсєўхэш
|
|
layers dd ? ;+ 8 [] ёыюш
|
|
layers_length dd ? ;+12 ўшёыю ёыюхт
|
|
activation dd ? ;+16 єърчрЄхы№ эр ЇєэъЎш■ ръЄштрЎшш
|
|
derivative dd ? ;+20 єърчрЄхы№ эр ЇєэъЎш■
|
|
errors dd ? ;+24 ьрёёшт фы т√ўшёыхэшщ
|
|
errorsNext dd ? ;+28
|
|
gradients dd ? ;+32
|
|
deltas dd ? ;+36
|
|
ends</pre>
|
|
|
|
<h4><a name="f_init">lib_init</a></h4>
|
|
<p>▌Єр ЇєэъЎш яюыєўрхЄ єърчрЄхыш эр ЇєэъЎшш ЁрсюЄ√ ё ярь Є№■, т√ч√трЄё фюыцэр яЁш чруЁєчъх сшсышюЄхъш. ╠юцхЄх шёяюы№чютрЄ№ ьръЁюё <b>@use_library</b>, фы хх ртЄюьрЄшўхёъющ эрёЄЁющъш.</p>
|
|
|
|
<h4><a name="f_create">NNP_Create</a></h4>
|
|
<p>╤ючфрхЄ ёыюш эхщЁюёхЄш ш чряюыэ хЄ тхёр ёыєўрщэ√ьш чэрўхэш ьш юЄ -1 фю 1. ╧ЁшьхЁ:</p>
|
|
<pre>NNLOPT_LEN equ 7
|
|
nnlopt dd 2,8,8,8,8,8,3
|
|
...
|
|
stdcall [NNP_Create], nnp_0, 0.01, 0, 0, nnlopt, NNLOPT_LEN</pre>
|
|
<p>уфх nnp_0 - ёЄЁєъЄєЁр эхщЁюёхЄш.</p>
|
|
<p>0.01 - ёъюЁюёЄ№ юсєўхэш .</p>
|
|
<p>0 - рфЁхё ЇєэъЎшш ръЄштрЎшш, хёыш 0 Єю схЁхЄё ёЄрэфрЁЄэр ЇєэъЎш тэєЄЁш сшсышюЄхъш.</p>
|
|
<p>0 - рфЁхё ЇєэъЎшш ёт╕ЁЄъш, хёыш 0 Єю схЁхЄё ёЄрэфрЁЄэр ЇєэъЎш тэєЄЁш сшсышюЄхъш.</p>
|
|
<p>nnlopt - ьрёёшт ё ўшёыюь эхщЁюэют эр ърцфюь ёыюх.</p>
|
|
<p>NNLOPT_LEN - фышээр ьрёёштр nnlopt.</p>
|
|
|
|
<h4><a name="f_reset">NNP_Reset</a></h4>
|
|
<p>╤сЁюё ярЁрьхЄЁют эхщЁюёхЄш. ─ы ърцфюую ёыю срчшёэ√щ тхъЄюЁ ш тхёр чряюыэ ■Єё ёыєўрщэ√ьш ўшёырьш юЄ -1 фю 1. ╥ръшх цх фхщёЄтш яЁюшёїюф Є т ъюэёЄЁєъЄюЁх NNP_Create.</p>
|
|
<pre>stdcall [NNP_Reset], nnp_0</pre>
|
|
<p>уфх nnp_0 - ёЄЁєъЄєЁр эхщЁюёхЄш.</p>
|
|
|
|
<h4><a name="f_feedf">NNP_FeedForward</a></h4>
|
|
<p>╘єэъЎш ЁрёўхЄр чэрўхэшщ т√їюфэ√ї эхщЁюэют. ═р тїюф яюфр■Є№ё чэрўхэш тїюфэ√ї эхщЁюэют. ═р т√їюфх тючтЁр∙рхЄё єърчрЄхы№ эр ёыющ т√їюфэ√ї эхщЁюэют.</p>
|
|
<pre>n_input dq ?,?,?
|
|
...
|
|
stdcall [NNP_FeedForward], nnp_0,n_input</pre>
|
|
<p>уфх nnp_0 - ёЄЁєъЄєЁр эхщЁюёхЄш, n_input - єърчрЄхы№ эр фрээ√х тїюфэ√ї эхщЁюэют.</p>
|
|
|
|
<h4><a name="f_backp">NNP_BackPropagation</a></h4>
|
|
<p>╘єэъЎш фы юсєўхэш ёхЄш. ╧ЁшьхЁ:</p>
|
|
<pre>n_targ dq ?,?,?
|
|
...
|
|
stdcall [NNP_BackPropagation], nnp_0, n_targ</pre>
|
|
<p>уфх nnp_0 - ёЄЁєъЄєЁр эхщЁюёхЄш, n_targ - єърчрЄхы№ эр фрээ√х фы юсєўхэш ёхЄш.</p>
|
|
|
|
<h4><a name="f_getmd">NNP_GetMemData</a></h4>
|
|
<p>┴хЁхЄ фрээ√х эхщЁюёхЄш ш чряшё√трхЄ шї т єърчрээюх ьхёЄю т ярь Єш. ╧ЁшьхЁ:</p>
|
|
<pre>f_data dd ?
|
|
...
|
|
stdcall [NNP_GetMemData], nnp_0, NNP_FF_JSON, [f_data]</pre>
|
|
<p>уфх nnp_0 - ёЄЁєъЄєЁр эхщЁюёхЄш, f_data - єърчрЄхы№ эр фрээ√х фы чряшёш ярЁрьхЄЁют ёхЄш.</p>
|
|
|
|
<h4><a name="f_setmd">NNP_SetMemData</a></h4>
|
|
<p>┴хЁхЄ фрээ√х шч єърчрээюую ьхёЄр ярь Єш ш чряшё√трхЄ шї т эхщЁюёхЄ№. ┬ ёыєўрх єёяхїр т ЁхушёЄЁх eax тючтЁр∙рхЄё 0, шэрўх єърчрЄхы№ эр ёЄЁюъє ё ЄхъёЄюь ю°шсъш. ╧ЁшьхЁ:</p>
|
|
<pre>f_data dd ?
|
|
...
|
|
stdcall [NNP_SetMemData], nnp_0, NNP_FF_JSON, [f_data]</pre>
|
|
<p>уфх nnp_0 - ёЄЁєъЄєЁр эхщЁюёхЄш, f_data - єърчрЄхы№ эр фрээ√х ё ярЁрьхЄЁрьш ёхЄш.</p>
|
|
|
|
<h4><a name="f_delete">NNP_Destroy</a></h4>
|
|
<p>╬ётюсюцфрхЄ ярь Є№ чрэ Єє■ эхщЁюёхЄ№■.</p>
|
|
|
|
<h1><a name="const">╩юэёЄрэЄ√</a></h1>
|
|
<h4>NNP_FF_BIN equ 0x6e6962</h4>
|
|
<p>╩юэёЄрэЄр фы ЇєэъЎшщ NNP_GetMemData ш NNP_SetMemData. ╙ърч√трхЄ сшэрЁэ√щ ЇюЁьрЄ ттюфр ш т√тюфр фрээ√ї.</p>
|
|
<h4>NNP_FF_JSON equ 0x6e6f736a</h4>
|
|
<p>╩юэёЄрэЄр фы ЇєэъЎшщ NNP_GetMemData ш NNP_SetMemData. ╙ърч√трхЄ ЄхъёЄют√щ (JSON) ЇюЁьрЄ ттюфр ш т√тюфр фрээ√ї.</p>
|
|
|
|
<h1><a name="tabl_e">╥рсышЎр ¤ъёяюЁЄр</a></h1>
|
|
<p>╧ЁшьхЁ ЄрсышЎ√ ¤ъёяюЁЄр, ЁрёўшЄрээющ эр шёяюы№чютрэшх ьръЁюёр <b>@use_library_mem</b>:</p>
|
|
<pre>align 4
|
|
import_nnp_lib:
|
|
dd sz_lib_init
|
|
NNP_Create dd sz_create
|
|
NNP_Reset dd sz_reset
|
|
NNP_FeedForward dd sz_feedforward
|
|
NNP_BackPropagation dd sz_backpropagation
|
|
NNP_GetMemData dd sz_getmemdata
|
|
NNP_SetMemData dd sz_setmemdata
|
|
NNP_Destroy dd sz_destroy
|
|
dd 0,0
|
|
sz_lib_init db 'lib_init',0
|
|
sz_create db 'NNP_Create',0
|
|
sz_reset db 'NNP_Reset',0
|
|
sz_feedforward db 'NNP_FeedForward',0
|
|
sz_backpropagation db 'NNP_BackPropagation',0
|
|
sz_getmemdata db 'NNP_GetMemData',0
|
|
sz_setmemdata db 'NNP_SetMemData',0
|
|
sz_destroy db 'NNP_Destroy',0
|
|
</pre>
|
|
|
|
<h1><a name="ex1">╧ЁшьхЁ</a></h1>
|
|
<p>┬ фрээюь яЁшьхЁх ёючфр■Єё 8 юс·хъЄют (Єюўхъ ё ъююЁфшэрЄрьш x, y), ърцф√щ шч ъюЄюЁ√ї шьххЄ Єшя 0 (ёшэшх) шыш 1 (чхыхэ√х). ╧Ёш эрцрЄшш ъэюяъш <img src="but05.png"> яЁюшёїюфшЄ ЄЁхэшЁютър эхщЁюёхЄш. ┬ яЁюЎхёёх ЄЁхэшЁютъш эхщЁюёхЄ№ єўшЄё юяЁхфхы Є№ ъръющ ЎтхЄ фюыцхэ ёююЄтхЄёЄтютрЄ№ чрфрээ√ь ъююЁфшэрЄрь x, y. ╥ЁхэшЁютрЄ№ ёхЄ№ ьюцэю ьэюую Ёрч, ўшёыю Ўшъыют ЄЁхэшЁютъш яюърчрэю т чруюыютъх юъэр. ╩эюяър <img src="but04.png"> яхЁхёЄрты хЄ Єюўъш ёыєўрщэ√ь юсЁрчюь. ╩эюяър <img src="but01.png"> ёсЁрё√трхЄ ёюёЄю эшх эхщЁюёхЄш.</p>
|
|
<p><img src="img01.png"></p>
|
|
<p>╨шё. 1. ╧ЁшьхЁ шёяюы№чютрэш сшсышюЄхъш</p>
|
|
|
|
<h1><a name="hist">╚ёЄюЁш </a></h1>
|
|
<p>01.03.22 - ёрьр яхЁтр тхЁёш сшсышюЄхъш.</p>
|
|
<p>28.05.22 - яЁшьхЁ шёяюы№чютрэш сшсышюЄхъш, эютр ЇєэъЎш NNP_Reset, юсэютыхэшх ЇєэъЎшш NNP_SetMemData.</p>
|
|
</body>
|
|
</html> |