ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° искусствСнной Π½Π΅ΠΉΡ€ΠΎΠ½Π½ΠΎΠΉ сСти для распознавания ΠΏΠΎΠ»Π° ΠΏΠΎ Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ

ΠšΡƒΡ€ΡΠΎΠ²Π°ΡΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, А Π ΡƒΠΊΠΎΠ²ΠΎΠ΄ΡΡ‚Π²ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Π˜ΡΠΊΡƒΡΡΡ‚Π²Π΅Π½Π½Ρ‹Π΅ Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹Π΅ сСти (ИНБ) — матСматичСскиС ΠΌΠΎΠ΄Π΅Π»ΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Π΅ ΠΈΠ»ΠΈ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, построСнныС ΠΏΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ Ρ„ункционирования биологичСских Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹Ρ… сСтСй — сСтСй Π½Π΅Ρ€Π²Π½Ρ‹Ρ… ΠΊΠ»Π΅Ρ‚ΠΎΠΊ ΠΆΠΈΠ²ΠΎΠ³ΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΌΠ°. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для прогнозирования Ρ‡Π΅Π³ΠΎΠ»ΠΈΠ±ΠΎ ΠΈΠ»ΠΈ распознавания. Рисунок 10 — Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ экспСримСнта Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° искусствСнной Π½Π΅ΠΉΡ€ΠΎΠ½Π½ΠΎΠΉ сСти для распознавания ΠΏΠΎΠ»Π° ΠΏΠΎ Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ Π—Π°Π΄Π°Π½ΠΈΠ΅

1. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°

1.1 ΠœΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ

1.2 Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° схСмы Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°

2. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

3. Π’Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ экспСримСнт

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

Π—Π°Π΄Π°Π½ΠΈΠ΅

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ для распознавания ΠΏΠΎΠ»Π° ΠΏΠΎ Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ИНБ.

Разработанная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° для распознания ΠΏΠΎΠ»Π° ΠΏΠΎ Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ рСализовываСтся Π½Π° ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠΉ Π­Π’Πœ. Для ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ этой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму Windows XP (SP 2−3)/Vista (SP 1)/ Windows 7. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° Π² ΡΡ€Π΅Π΄Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния Microsoft Visual Studio 2010.

ЦСлью Ρ€Π°Π±ΠΎΡ‚Ρ‹ являлась Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° искусствСнной Π½Π΅ΠΉΡ€ΠΎΠ½Π½ΠΎΠΉ сСти ΠΏΠΎ Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΡŽ ΠΏΠΎΠ»Π° Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ Π‘#.

Π˜ΡΠΊΡƒΡΡΡ‚Π²Π΅Π½Π½Ρ‹Π΅ Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹Π΅ сСти (ИНБ) — матСматичСскиС ΠΌΠΎΠ΄Π΅Π»ΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Π΅ ΠΈΠ»ΠΈ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, построСнныС ΠΏΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ Ρ„ункционирования биологичСских Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹Ρ… сСтСй — сСтСй Π½Π΅Ρ€Π²Π½Ρ‹Ρ… ΠΊΠ»Π΅Ρ‚ΠΎΠΊ ΠΆΠΈΠ²ΠΎΠ³ΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΌΠ°. ИНБ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой систСму соСдинённых ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΌΠ΅ΠΆΠ΄Ρƒ собой простых процСссоров (искусствСнных Π½Π΅ΠΉΡ€ΠΎΠ½ΠΎΠ²).

ΠŸΡ€ΠΈ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠΈ сСти ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‚ΡΡ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΎΠ±Ρ€Π°Π·Ρ†Ρ‹ ΠΎΠ±Ρ€Π°Π·ΠΎΠ² с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΠ³ΠΎ, ΠΊ ΠΊΠ°ΠΊΠΎΠΌΡƒ классу ΠΎΠ½ΠΈ относятся. ΠžΠ±Ρ€Π°Π·Π΅Ρ†, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, прСдставляСтся ΠΊΠ°ΠΊ Π²Π΅ΠΊΡ‚ΠΎΡ€ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΎΠ². ΠŸΡ€ΠΈ этом ΡΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ всСх ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΎΠ² Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ класс, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ относится ΠΎΠ±Ρ€Π°Π·Π΅Ρ†. Π’ ΡΠ»ΡƒΡ‡Π°Π΅, Ссли ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΎΠ² нСдостаточно, ΡΠ΅Ρ‚ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ соотнСсти ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΎΠ±Ρ€Π°Π·Π΅Ρ† с Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΠΌΠΈ классами, Ρ‡Ρ‚ΠΎ Π½Π΅Π²Π΅Ρ€Π½ΠΎ. По ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΠΈ обучСния сСти Π΅ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡŠΡΠ²Π»ΡΡ‚ΡŒ нСизвСстныС Ρ€Π°Π½Π΅Π΅ ΠΎΠ±Ρ€Π°Π·Ρ‹ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΎΡ‚Π²Π΅Ρ‚ ΠΎ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ½ΠΎΡΡ‚ΠΈ ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠΌΡƒ классу.

Вопология Ρ‚Π°ΠΊΠΎΠΉ сСти характСризуСтся Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ количСство Π½Π΅ΠΉΡ€ΠΎΠ½ΠΎΠ² Π² Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠΌ слоС, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Ρ€Π°Π²Π½ΠΎ количСству опрСдСляСмых классов. ΠŸΡ€ΠΈ этом устанавливаСтся соотвСтствиС ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Ρ‹Ρ…ΠΎΠ΄ΠΎΠΌ Π½Π΅ΠΉΡ€ΠΎΠ½Π½ΠΎΠΉ сСти ΠΈ ΠΊΠ»Π°ΡΡΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ½ ΠΏΡ€Π΅Π΄ΡΡ‚авляСт. Когда сСти ΠΏΡ€Π΅Π΄ΡŠΡΠ²Π»ΡΠ΅Ρ‚ΡΡ Π½Π΅ΠΊΠΈΠΉ ΠΎΠ±Ρ€Π°Π·, Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· Π΅Ρ‘ Π²Ρ‹Ρ…ΠΎΠ΄ΠΎΠ² Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΡΠ²ΠΈΡ‚ΡŒΡΡ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ±Ρ€Π°Π· ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ этому классу.

1. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°

Π’ Π΄Π°Π½Π½ΠΎΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅ прСдставлСны: матСматичСский Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ, Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ установки вСсов, Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ обучСния Π½Π΅ΠΉΡ€ΠΎΠ½Π½ΠΎΠΉ сСти.

Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹ΠΉ ΡΠ΅Ρ‚ΡŒ

1.1 ΠœΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ

ΠŸΡƒΡΡ‚ΡŒ ΠΊ ΡΠΈΠ½Π°ΠΏΡΠ°ΠΌ ΠΏΠΎΡΡ‚ΡƒΠΏΠ°ΡŽΡ‚ ΠΈΠΌΠΏΡƒΠ»ΡŒΡΡ‹ силы x1, x2, x3 соотвСтствСнно, Ρ‚ΠΎΠ³Π΄Π° послС прохоТдСния синапсов ΠΈ Π΄Π΅Π½Π΄Ρ€ΠΈΡ‚ΠΎΠ² ΠΊ Π½Π΅ΠΉΡ€ΠΎΠ½Ρƒ ΠΏΠΎΡΡ‚ΡƒΠΏΠ°ΡŽΡ‚ ΠΈΠΌΠΏΡƒΠ»ΡŒΡΡ‹ w1x1, w2x2, w3x3. НСйрон ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ суммарный ΠΈΠΌΠΏΡƒΠ»ΡŒΡ x=w1x1+ w2x2+ w3x3 Π² ΡΠΎΠΎΡ‚вСтствии с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΠΎΡ‡Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ f (x). Π‘ΠΈΠ»Π° Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠΌΠΏΡƒΠ»ΡŒΡΠ° Ρ€Π°Π²Π½Π° y=f (x)=f (w1x1+ w2x2+ w3x3). Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π½Π΅ΠΉΡ€ΠΎΠ½ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ описываСтся своими вСсами wk ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΠΎΡ‡Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ f (x). ΠŸΠΎΠ»ΡƒΡ‡ΠΈΠ² Π½Π°Π±ΠΎΡ€ чисСл (Π²Π΅ΠΊΡ‚ΠΎΡ€) xk Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ Π²Ρ…ΠΎΠ΄ΠΎΠ², Π½Π΅ΠΉΡ€ΠΎΠ½ Π²Ρ‹Π΄Π°Π΅Ρ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ число y Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π΅. Π‘Ρ…Π΅ΠΌΠ° Π½Π΅ΠΉΡ€ΠΎΠ½Π° ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π° Π½Π° Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ 1.

Рисунок 1 — Π‘Ρ…Π΅ΠΌΠ° Π½Π΅ΠΉΡ€ΠΎΠ½Π°

— Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ сигналы, ΡΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ всСх Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… сигналов Π½Π΅ΠΉΡ€ΠΎΠ½Π° ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ Π²Π΅ΠΊΡ‚ΠΎΡ€ x;

— Π²Π΅ΡΠΎΠ²Ρ‹Π΅ коэффициСнты, ΡΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ вСсовых коэффициСнтов ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ Π²Π΅ΠΊΡ‚ΠΎΡ€ вСсов w;

S — взвСшСнная сумма Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… сигналов, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ NET пСрСдаСтся Π½Π° Π½Π΅Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹ΠΉ элСмСнт;

Π’ ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ Π±Ρ‹Π» Π²Ρ‹Π±Ρ€Π°Π½Π° функция гипСрболичСский тангСнс:

Под ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ΠΌ понимаСтся процСсс Π°Π΄Π°ΠΏΡ‚Π°Ρ†ΠΈΠΈ сСти ΠΊ ΠΏΡ€Π΅Π΄ΡŠΡΠ²Π»ΡΠ΅ΠΌΡ‹ΠΌ эталонным ΠΎΠ±Ρ€Π°Π·Ρ†Π°ΠΌ ΠΏΡƒΡ‚Π΅ΠΌ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ вСсовых коэффициСнтов связСй ΠΌΠ΅ΠΆΠ΄Ρƒ Π½Π΅ΠΉΡ€ΠΎΠ½Π°ΠΌΠΈ. ΠŸΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ вСсовыС коэффициСнты ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΊΠ°ΠΊΠΈΠΌ-Π»ΠΈΠ±ΠΎ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, случайно. На Π²Ρ…ΠΎΠ΄ Π½Π΅ΠΉΡ€ΠΎΠ½Π½ΠΎΠΉ сСти Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ порядкС ΠΏΠΎΠ΄Π°ΡŽΡ‚ΡΡ ΡƒΡ‡Π΅Π±Π½Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹. ВычисляСтся ошибка для ΡƒΡ‡Π΅Π±Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ся коррСкция вСсов Π½Π΅ΠΉΡ€ΠΎΠ½Π½ΠΎΠΉ сСти.

1.2 Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° схСмы Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°

Π‘Ρ…Π΅ΠΌΠ° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π° Π½Π° Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ 2

Рисунок 2 — Π‘Ρ…Π΅ΠΌΠ° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ

Π‘Ρ…Π΅ΠΌΠ° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° установки вСсов ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π° Π½Π° Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ 3

Рисунок 3 — Π‘Ρ…Π΅ΠΌΠ° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° установки вСсов

Π‘Ρ…Π΅ΠΌΠ° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π° Π½Π° Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ 4.

Рисунок 4 — Π‘Ρ…Π΅ΠΌΠ° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ

Π‘Ρ…Π΅ΠΌΠ° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° обучСния Π½Π΅ΠΉΡ€ΠΎΠ½Π½ΠΎΠΉ сСти прСдставлСна Π½Π° Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ 5

Рисунок 5 -Π‘Ρ…Π΅ΠΌΠ° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° обучСния Π½Π΅ΠΉΡ€ΠΎΠ½Π½ΠΎΠΉ сСти

2. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π’ ΡΠΎΠΎΡ‚вСтствии с ΠΌΠ°Ρ‚СматичСским Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠΌ, с ΠΎΠ±Ρ‰Π΅ΠΉ схСмой Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°ΠΌΠΈ ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… процСссов написана ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, которая осущСствляСт распознаваниС ΠΏΠΎΠ»Π° ΠΏΠΎ Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° написана Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ программирования C#, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ срСды Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Microsoft Visual Studio 2010.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°:

1. Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ срСду Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠŸΠž Microsoft Visual Studio 2010.

2. File > New > Project.

3. Visual C# > Windows Forms Applications.

4. View> Toolbox.

ВСкст ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ прСдставлСн Π½Π° Ρ€ΠΈΡΡƒΠ½ΠΊΠ°Ρ… 5, 6, 7.

using System;

using System.Collections.Generic;

using System. ComponentModel;

using System. Data;

using System. Drawing;

using System. Linq;

using System. Text;

using System.Windows.Forms;

using System. IO;

using set;

namespace Kurs

{

public partial class Form1: Form

{

public Form1()

{

InitializeComponent ();

CleanImage = pictureBox1. Image;// ΠΏΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ ΠΎΠΊΠ½Π° сохраняСм ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅

Sloy1 = new Sloy1(2, (pictureBox1.Width — 20) * (pictureBox1.Height — 20));//создаСм ΡΠ΅Ρ‚ΡŒ

}

//создаСм ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅

Sloy1 Sloy1;

Image CleanImage;

Point OldPoint, NewPoint;

public static Image resizeImage (Image imgToResize, Size size)//ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° измСнСния Ρ€Π°Π·ΠΌΠ΅Ρ€Π° изобраТСния (ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΊ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡŽ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°, Ρ€Π°Π·ΠΌΠ΅Ρ€ Π½ΡƒΠΆΠ½Ρ‹ΠΉ)

{

//ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ ΡˆΠΈΡ€ΠΈΠ½Π° ΠΈ Π²Ρ‹ΡΠΎΡ‚Π° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ

int sourceWidth = imgToResize. Width;

int sourceHeight = imgToResize. Height;

float nPercent = 0;

Рисунок 5 — Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ Ρ„Π°ΠΉΠ»Π° Form1. cs

float nPercentW = 0;

float nPercentH = 0;

//ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚Ρ‹ ΡˆΠΈΡ€ΠΈΠ½Ρ‹ ΠΈ Π²Ρ‹ΡΠΎΡ‚Ρ‹ = ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ Π½ΠΎΠ²Ρ‹Ρ… ΠΊ ΡΡ‚Π°Ρ€Ρ‹ΠΌ

nPercentW = ((float)size.Width / (float)sourceWidth);

nPercentH = ((float)size.Height / (float)sourceHeight);

if (nPercentH < nPercentW)

nPercent = nPercentH;

else

nPercent = nPercentW;

//создаСм Ρ†Π΅Π»Π΅Π²ΡƒΡŽ ΡˆΠΈΡ€ΠΈΠ½Ρƒ ΠΈ Π²Ρ‹ΡΠΎΡ‚Ρƒ = исходныС*ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚

int destWidth = (int)(sourceWidth * nPercent);

int destHeight = (int)(sourceHeight * nPercent);

//создаСм Π½ΠΎΠ²ΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€

Bitmap b = new Bitmap (destWidth, destHeight);

Graphics g = Graphics. FromImage ((Image)b);

g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;

//рисуСм ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅

g.DrawImage (imgToResize, 0, 0, destWidth, destHeight);

g.Dispose ();

return (Image)b;

}

private void button1_Click (object sender, EventArgs e)//ΠΊΠ½ΠΎΠΏΠΊΠ° 1

*.*" ;//Ρ‚ΠΈΠΏΡ‹ Ρ„Π°ΠΉΠ»ΠΎΠ² — Ρ„ΠΈΠ»ΡŒΡ‚Ρ€

openFileDialog1.FilterIndex = 1;//установка Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ

openFileDialog1.FileName = «» ;//имя Ρ„Π°ΠΉΠ»Π° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ

openFileDialog1.RestoreDirectory = true;//восстановлСниС Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ

openFileDialog1.ShowDialog ();//ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π΄ΠΈΠ°Π»ΠΎΠ³

private void openFileDialog1_FileOk (object sender, CancelEventArgs e)//ΠΊΠ½ΠΎΠΏΠΊΠ° ΠΎΠΊ

{

pictureBox1.BackgroundImage = new Bitmap (openFileDialog1.FileName);//Ρ„ΠΎΠ½ изобраТСния вставляСтся ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ°

}

private void pictureBox1_MouseMove (object sender, MouseEventArgs e)//Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΌΡ‹ΡˆΠΈ Π½Π°Π΄ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΎΠΉ

{

if (e.Button == MouseButtons. Left)//Ссли Π½Π°ΠΆΠ°Ρ‚Π°Ρ‚Π° лСвая ΠΊΠ½ΠΎΠΏΠΊΠ° ΠΏΡ€ΠΈ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΈ

{

if (OldPoint == NewPoint && checkBox1. Checked)//Ссли старая Ρ‚ΠΎΡ‡ΠΊΠ° совпадаСт с Π½ΠΎΠ²ΠΎΠΉ ΠΈ ΡΡ‚ΠΎΠΈΡ‚ Π³Π°Π»ΠΊΠ° Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅

{

NewPoint = e. Location;//Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΡ‹ΡˆΠΈ присваиваСтся Π² Π½ΠΎΠ²ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ

// Create graphics object for alteration.

Graphics newGraphics;

try

{

newGraphics = Graphics. FromImage (pictureBox1.Image);

}

Catch

{

pictureBox1.Image = pictureBox1. BackgroundImage;

newGraphics = Graphics. FromImage (pictureBox1.Image);

}

// Draw image to screen.

newGraphics.DrawImage (pictureBox1.Image, NewPoint. X — OldPoint. X, NewPoint. Y — OldPoint. Y);

pictureBox1.Refresh ();

// Dispose of graphics object.

OldPoint = NewPoint;

}

pictureBox1.Refresh ();

}

}

private void pictureBox1_MouseUp (object sender, MouseEventArgs e)

{

NewPoint = e. Location;

}

private void pictureBox1_MouseDown (object sender, MouseEventArgs e)

{

if (e.Button == MouseButtons. Left)

{

OldPoint = e. Location;

NewPoint = e. Location;

}

}

private void checkBox1_CheckedChanged (object sender, EventArgs e)

{

DialogResult result;

if (!checkBox1.Checked)

{

result = MessageBox. Show («Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ измСнСния?», «Π‘Π΄Π²ΠΈΠ³», MessageBoxButtons. OKCancel);

if (result == System.Windows.Forms.DialogResult.Cancel)

{

pictureBox1.Image = CleanImage;

}

else

{

pictureBox1.BackgroundImage = pictureBox1. Image;

pictureBox1.Image = CleanImage;

}

pictureBox1.Refresh ();

}

}

private void button5_Click (object sender, EventArgs e)//Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ

{

Bitmap bmp = new Bitmap (pictureBox1.BackgroundImage);

Color Col;

double[] temp = new double[(pictureBox1.Width — 20) * (pictureBox1.Height — 20)];

for (int i = 0; i < (pictureBox1.Width — 20); i++)

{

for (int j = 0; j < (pictureBox1.Height — 20); j++)

{

Col = bmp. GetPixel (i + 10, j + 10);

temp[i * (pictureBox1.Height — 20) + j] = (Convert.ToDouble (Col.B) / 255.0);

}

}

Sloy1.Neironu[0]. setInput (temp);

Sloy1.Neironu[1].setInput (temp);

Sloy1.Activate ();

string st = «» ;

for (int i = 0; i < 2; i++)

{

st += Sloy1. Neironu[i]. getOutput ().ToString () + «, «;

}

MessageBox.Show (st);

}

private void button6_Click (object sender, EventArgs e)//ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅

{

Bitmap bmp = new Bitmap (pictureBox1.BackgroundImage);

Color Col;

double[] temp = new double[(pictureBox1.Width — 20) * (pictureBox1.Height — 20)];

for (int i = 0; i < (pictureBox1.Width — 20); i++)

{

for (int j = 0; j < (pictureBox1.Height — 20); j++)

{

Col = bmp. GetPixel (i + 10, j + 10);

temp[i * (pictureBox1.Height — 20) + j] = (Convert.ToDouble (Col.B) / 255.0);

}

}

Sloy1.Neironu[0]. setInput (temp);

Sloy1.Neironu[1].setInput (temp);

if (radioButton1.Checked)//ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΊΡ€ΡƒΠΆΠΎΡ‡ΠΊΠ°

Sloy1.Learning (1);

else

Sloy1.Learning (2);

} } }

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° Neuron1. cs ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΎ Π½Π° Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ 6

using System;

using System.Collections.Generic;

using System. Linq;

using System. Text;

namespace set

{

class Neuron1

{

public int n = 1;

public double lyambda;

public double[] input;

public double[] weight;

public double output;

public Neuron1()

{

this.weight = new double[1];

this.input = new double[1];

this.lyambda = 1;

}

public Neuron1(int n)

{

this.weight = new double[n];

this.input = new double[n];

this.lyambda = 1;

this.n = n;

}

public void Activate ()

{

double sum = 0;

double net = 0;

for (int i = 0; i < n; i++)

{

sum += input[i] * weight[i];

}

net = lyambda * sum;

net = net / 1000;

output = (Math.Exp (net) — Math. Exp (-net)) / (Math.Exp (net) + Math. Exp (-net));

//output = 1 / (1 + Math. Exp (-lyambda * sum))-0.5;

output = Math. Floor (output * 10 000) / 10 000; }

/// ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π²Ρ‹Ρ…ΠΎΠ΄Π° Π½Π΅ΠΉΡ€ΠΎΠ½Π°.

public double getOutput ()

{

return output;

}

/// Установка вСсов

public void setWeight ()

{

for (int i = 0; i < n; i++)

{

weight[i] = 0.01;

}

}

public void setInput (double[] temp)

{

for (int i = 0; i < n; i++)

{

input[i] = temp[i];

}

}

public void setInput (double temp)

{

input[0] = temp;

}

}

}

using System;

using System.Collections.Generic;

using System. Linq;

using System. Text;

namespace set

{

class Sloy1

{

public Neuron1[] Neironu;

int n = 1;

double so = 0.01; // ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ обучСния

public Sloy1() //созданиС сСти

{

n = 1;

Neironu = new Neuron1[n];

for (int i = 0; i < n; i++)

{

Neironu[i] = new Neuron1();

Neironu[i]. setWeight (); //установка вСсов ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ

}

}

public Sloy1(int n, int vhodi) // ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠ° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (с Π²Ρ…ΠΎΠ΄Π½Ρ‹ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ)

{

this.n = n;

Neironu = new Neuron1[n];

for (int i = 0; i < n; i++)

{

Neironu[i] = new Neuron1(vhodi);

Neironu[i]. setWeight ();

}

}

public void Activate ()

{

for (int i = 0; i < n; i++)

{

Neironu[i]. Activate ();

}

}

public void Learning (int k)//ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΊ=0,1,2 — Π½ΠΎΠΌΠ΅Ρ€ Π½Π΅ΠΉΡ€ΠΎΠ½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹ΠΈΠ³Ρ€Π°Ρ‚ΡŒ

{

for (int i=0;i

{

if (i==k-1)

{

for (int j = 0; j

{

Neironu[i].weight[j] += so * (0.75 — Neironu[i]. getOutput ()) * Neironu[i]. input[j];//пСрСсчСт вСсов

}

}

else

{

for (int j = 0; j

{

Neironu[i].weight[j] += so * (0.25 — Neironu[i]. getOutput ()) * Neironu[i]. input[j];

}}

}

}

//вСс += ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ_обучСния * Ρ€Π°Π·Π½ΠΈΡ†Π°_ΠΌΠ΅ΠΆΠ΄Ρƒ_Π²Ρ‹Ρ…ΠΎΠ΄ΠΎΠΌ_Π½Π΅ΠΉΡ€ΠΎΠ½Π°_ΠΈ_Π΅Π³ΠΎ_Π½ΡƒΠΆΠ½Ρ‹ΠΌ_Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ * Π²Ρ…ΠΎΠ΄_сСти

public double[] poluchves ()// ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ вСсов для сохранСния

{

int kol = Neironu[0]. n * n;

double [] tmp = new double [kol];

for (int i = 0; i < n; i++)

{

for (int j = 0; j < Neironu[i]. n; j++)

{

tmp[i * n + j] = Neironu[i]. weight[j];

}

}

return tmp;

}

public void ustanves (double[] tmp) // установка вСсов послС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈΠ· Ρ„Π°ΠΉΠ»Π°

{

int kol = Neironu[0]. n * n;

for (int i = 0; i < n; i++)

{

for (int j = 0; j < Neironu[i]. n; j++)

{

Neironu[i]. weight[j] = tmp[i * n + j];

}

}}}}

3. Π’Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ экспСримСнт Для выполнСния Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ экспСримСнта запускаСм скомпилированный EXE Ρ„Π°ΠΉΠ» ΠΈΠ»ΠΈ запускаСм ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π² ΡΡ€Π΅Π΄Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Microsoft Visual Studio 2010. ПослС запуска ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ изобраТСния появляСтся ΠΎΠΊΠ½ΠΎ, прСдставлСнноС Π½Π° Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ 8.

Рисунок 8 — Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ экспСримСнта ПослС обучСния сСти ΠΈ Π½Π°ΠΆΠ°Ρ‚ия ΠΊΠ½ΠΎΠΏΠΊΠΈ «Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚» появляСтся ΠΎΠΊΠ½ΠΎ, прСдставлСнноС Π½Π° Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ 9.

Рисунок 9 — Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ экспСримСнта ΠŸΠ΅Ρ€Π²ΠΎΠ΅ число Π² ΠΎΠΊΠ½Π΅ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ принадлСТности Π»ΠΈΡ†Π° Π½Π° Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ ΠΊ ΠΌΡƒΠΆΡΠΊΠΎΠΌΡƒ ΠΏΠΎΠ»Ρƒ (0.1668), Π²Ρ‚ΠΎΡ€ΠΎΠ΅ — ΠΊ ΠΆΠ΅Π½ΡΠΊΠΎΠΌΡƒ (0.9114)

ΠŸΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ изобраТСния ΠΈ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠΈ сСти Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ: Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ ΠΌΡƒΠΆΡ‡ΠΈΠ½Π° = 0.8274, Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ Ρ‡Ρ‚ΠΎ это ΠΆΠ΅Π½Ρ‰ΠΈΠ½Π° = 0.3948. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ экспСримСнта ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π½Π° Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ 10

Рисунок 10 — Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ экспСримСнта Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Разработанная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° рСализовываСтся Π½Π° ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠΉ Π­Π’Πœ. Для ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ этой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму Windows XP (SP 2−3)/Vista (SP 1)/ Windows 7. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° Π² ΡΡ€Π΅Π΄Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния Microsoft Visual Studio 2010.

Π’ Ρ…ΠΎΠ΄Π΅ выполнСния курсовой Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π±Ρ‹Π»ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹ матСматичСский Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ, общая схСма Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, тСкст ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ программирования Π‘# ΠΈ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ экспСримСнты.

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ выполнСния курсовой Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π±Ρ‹Π»ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Ρ‹ Π½Π°Π²Ρ‹ΠΊΠΈ ΠΏΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΈΡΠΊΡƒΡΡΡ‚Π²Π΅Π½Π½Ρ‹ΠΌΠΈ Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹ΠΌΠΈ сСтями.

1. Каллан, Π . ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹Ρ… сСтСй.: ΠŸΠ΅Ρ€. Ρ Π°Π½Π³Π». -М.: Π˜Π·Π΄Π°Ρ‚. Π΄ΠΎΠΌ «Π’ΠΈΠ»ΡŒΡΠΌΡ», 2003. — 288с.

2. ΠšΡ€ΡƒΠ³Π»ΠΎΠ² Π’. Π’., Борисов Π’. Π’. Π˜ΡΠΊΡƒΡΡΡ‚Π²Π΅Π½Π½Ρ‹Π΅ Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹Π΅ сСти. ВСория ΠΈ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° — Изд.: Горячая Линия — Π’Π΅Π»Π΅ΠΊΠΎΠΌ, 2001 Π³. — 386с.

3. Π₯Π°ΠΉΠΊΠΈΠ½ Π‘. НСйронныС сСти: ΠΏΠΎΠ»Π½Ρ‹ΠΉ курс.- Изд.: Π’ΠΈΠ»ΡŒΡΠΌΡ, 2006 — 1104с.

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, А Π ΡƒΠΊΠΎΠ²ΠΎΠ΄ΡΡ‚Π²ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Π˜ΡΠΊΡƒΡΡΡ‚Π²Π΅Π½Π½Ρ‹Π΅ Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹Π΅ сСти (ИНБ) — матСматичСскиС ΠΌΠΎΠ΄Π΅Π»ΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Π΅ ΠΈΠ»ΠΈ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, построСнныС ΠΏΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ Ρ„ункционирования биологичСских Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹Ρ… сСтСй — сСтСй Π½Π΅Ρ€Π²Π½Ρ‹Ρ… ΠΊΠ»Π΅Ρ‚ΠΎΠΊ ΠΆΠΈΠ²ΠΎΠ³ΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΌΠ°. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для прогнозирования Ρ‡Π΅Π³ΠΎΠ»ΠΈΠ±ΠΎ ΠΈΠ»ΠΈ распознавания.

Π—Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌΡ‹Π΅ изобраТСния Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Ρ‡Π΅Ρ€Π½ΠΎ-Π±Π΅Π»Ρ‹ΠΌΠΈ, с ΠΎΠ΄Π½ΠΈΠΌ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ ΠΈΠ· ΡΠΏΠΈΡΠΊΠ°: .bmp, .png, .jpg, .bmp, .png, .jpg, .JPG, .jpeg.

ΠŸΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ «ΠŸΠΎΠ΄ΠΎΠ³Π½Π°Ρ‚ΡŒ» Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅Ρ€Π΅Ρ‚Π°Ρ‰ΠΈΡ‚ΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π»ΠΈΡ†ΠΎ Π±Ρ‹Π»ΠΎ посСрСдинС Ρ€Π°ΠΌΠΊΠΈ.

ΠŸΡ€ΠΈ процСссС обучСния Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΏΠΎΠ», ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ Π»ΠΈΡ†ΠΎ Π½Π° Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ, ΠΈ Π½Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ «ΠžΠ±ΡƒΡ‡ΠΈΡ‚ΡŒ». ПослС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΡ сСти, ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΡŽ ΠΈ Π½Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ «Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚». Π’ ΠΎΠΊΠ½Π΅ появится Π΄Π²Π° числа: ΠΏΠ΅Ρ€Π²ΠΎΠ΅ число ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ принадлСТности Π»ΠΈΡ†Π° ΠΊ ΠΌΡƒΠΆΡΠΊΠΎΠΌΡƒ ΠΏΠΎΠ»Ρƒ, Π²Ρ‚ΠΎΡ€ΠΎΠ΅ — ΠΊ ΠΆΠ΅Π½ΡΠΊΠΎΠΌΡƒ.

Для мСньшСй ошибки Ρ€Π°Π±ΠΎΡ‚Ρ‹ сСти Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ΄Π±ΠΈΡ€Π°Ρ‚ΡŒ изобраТСния с Π»ΠΈΡ†ΠΎΠΌ Π² Ρ„ас, с Π²Ρ‹ΡΠΎΠΊΠΎΠΉ Ρ‡Π΅Ρ‚ΠΊΠΎΡΡ‚ΡŒΡŽ. ΠŸΡ€ΠΈ возмоТности изобраТСния Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ 350*420.

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π’ Π ΡƒΠΊΠΎΠ²ΠΎΠ΄ΡΡ‚Π²ΠΎ программиста

private void button1_Click (object sender, EventArgs e) — функция, которая выполняСтся ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ «ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ» .

private void button5_Click (object sender, EventArgs e) — функция, которая выполняСтся ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ «Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚» .

private void button6_Click (object sender, EventArgs e) — функция, которая выполняСтся ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ «ΠžΠ±ΡƒΡ‡ΠΈΡ‚ΡŒ» .

private void checkBox1_CheckedChanged (object sender, EventArgs e) — функция, которая выполняСтся ΠΏΡ€ΠΈ появлСнии события CheckedChanged — это событиС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Checked ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° checkBox1. Если ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Checked установлСн (checked=true; (Π³Π°Π»ΠΎΡ‡ΠΊΠ° поставлСна)), Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΡŽ Π½Π° Π½ΡƒΠΆΠ½ΠΎΠ΅ мСсто.

private void pictureBox1_MouseMove (object sender, MouseEventArgs e) — функция, которая выполняСтся ΠΏΡ€ΠΈ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΈ ΠΌΡ‹ΡˆΠΈ Π½Π°Π΄ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΎΠΉ.

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ