ടെക്‌സ്‌റ്റ് തിരിച്ചറിയാനുള്ള വേഗത്തിലുള്ള മാർഗം. കൂട്ടിച്ചേർക്കൽ. ബാക്ക്‌പ്രൊപഗേഷന്റെ ഗണിതശാസ്ത്ര ഘടകം. ഒരു ബ്ലാക്ക് ആൻഡ് വൈറ്റ് ചിത്രം ലഭിക്കുന്നു

ഒരു അക്ക തിരിച്ചറിയൽ പ്രശ്നത്തിന്റെയും പെർസെപ്‌ട്രോൺ മോഡലിന്റെയും ഉദാഹരണം ഉപയോഗിച്ച് നിരവധി ആനിമേഷനുകളുടെ സഹായത്തോടെ, ഒരു ന്യൂറൽ നെറ്റ്‌വർക്ക് പരിശീലിപ്പിക്കുന്ന പ്രക്രിയയ്ക്ക് ഒരു വിഷ്വൽ ആമുഖം നൽകുന്നു.

ആദ്യത്തെ വീഡിയോ ഘടക ഘടനയെക്കുറിച്ചാണ് ന്യൂറൽ നെറ്റ്വർക്ക്, രണ്ടാമത്തേത് - അതിന്റെ പരിശീലനം, മൂന്നാമത്തേത് - ഈ പ്രക്രിയയുടെ അൽഗോരിതം. കൈയക്ഷര നമ്പറുകൾ തിരിച്ചറിയുക എന്ന ക്ലാസിക് ടാസ്‌ക് ഒരു പരിശീലന ചുമതലയായി എടുത്തു.

ഒരു മൾട്ടിലെയർ പെർസെപ്‌ട്രോൺ വിശദമായി പരിഗണിക്കുന്നു - ന്യൂറൽ നെറ്റ്‌വർക്കുകളുടെ കൂടുതൽ ആധുനിക പതിപ്പുകൾ മനസ്സിലാക്കുന്നതിനുള്ള അടിസ്ഥാന (എന്നാൽ ഇതിനകം തന്നെ വളരെ സങ്കീർണ്ണമായ) മോഡൽ.

1. ന്യൂറൽ നെറ്റ്‌വർക്ക് ഘടകങ്ങൾ

ന്യൂറൽ നെറ്റ്‌വർക്ക് എന്താണെന്ന് കാണിക്കുക എന്നതാണ് ആദ്യ വീഡിയോയുടെ ലക്ഷ്യം. ഒരു അക്ക തിരിച്ചറിയൽ ജോലിയുടെ ഉദാഹരണം ഉപയോഗിച്ച്, ന്യൂറൽ നെറ്റ്‌വർക്ക് ഘടകങ്ങളുടെ ഘടന ദൃശ്യവൽക്കരിക്കുന്നു. വീഡിയോയ്ക്ക് റഷ്യൻ സബ്ടൈറ്റിലുകൾ ഉണ്ട്.

നമ്പർ തിരിച്ചറിയൽ പ്രശ്നത്തിന്റെ പ്രസ്താവന

28x28 പിക്സലിന്റെ വളരെ കുറഞ്ഞ റെസല്യൂഷനിൽ റെൻഡർ ചെയ്ത നമ്പർ 3 നിങ്ങൾക്ക് ഉണ്ടെന്ന് സങ്കൽപ്പിക്കുക. നിങ്ങളുടെ തലച്ചോറിന് ഈ നമ്പർ എളുപ്പത്തിൽ തിരിച്ചറിയാൻ കഴിയും.

വീക്ഷണകോണിൽ നിന്ന് കമ്പ്യൂട്ടർ സാങ്കേതികവിദ്യപിക്സലുകളുടെ കൃത്യമായ ക്രമീകരണം ഒരു ഇമേജിൽ നിന്ന് അടുത്തതിലേക്ക് വളരെ വ്യത്യാസപ്പെട്ടിരിക്കുമെങ്കിലും, മസ്തിഷ്കം ഈ പ്രവർത്തനം എത്ര എളുപ്പത്തിൽ നിർവഹിക്കുന്നു എന്നത് അതിശയകരമാണ്. നമ്മുടെ വിഷ്വൽ കോർട്ടക്സിലെ എന്തോ ഒന്ന് തീരുമാനിക്കുന്നു, ഈ മൂന്നെണ്ണവും, അവ എങ്ങനെ ചിത്രീകരിച്ചാലും, ഒരേ അസ്തിത്വത്തെ പ്രതിനിധീകരിക്കുന്നു. അതിനാൽ, ഈ സന്ദർഭത്തിൽ സംഖ്യകൾ തിരിച്ചറിയുന്നതിനുള്ള ചുമതല ലളിതമാണ്.

എന്നാൽ 28x28 പിക്സലുകളുടെ ഒരു അറേയുടെ രൂപത്തിൽ ഏതെങ്കിലും സംഖ്യയുടെ ഇമേജ് ഇൻപുട്ടായി എടുത്ത് “സത്ത” തന്നെ ഔട്ട്പുട്ട് ചെയ്യുന്ന ഒരു പ്രോഗ്രാം എഴുതാൻ നിങ്ങളോട് ആവശ്യപ്പെട്ടാൽ - 0 മുതൽ 9 വരെയുള്ള സംഖ്യ, ഈ ടാസ്ക് ഇനി ലളിതമായി തോന്നില്ല. .

പേര് സൂചിപ്പിക്കുന്നത് പോലെ, ഒരു ന്യൂറൽ നെറ്റ്‌വർക്കിന്റെ ഘടന തലച്ചോറിന്റെ ന്യൂറൽ നെറ്റ്‌വർക്കിന്റെ ഘടനയോട് ഒരു പരിധിവരെ അടുത്താണ്. ഇപ്പോൾ, ലാളിത്യത്തിനായി, ന്യൂറൽ നെറ്റ്‌വർക്കുകളിലെ ഗണിതശാസ്ത്ര അർത്ഥത്തിൽ, ന്യൂറോണുകളെ പൂജ്യം മുതൽ ഒന്ന് വരെയുള്ള ഒരു സംഖ്യ ഉൾക്കൊള്ളുന്ന ഒരു പ്രത്യേക കണ്ടെയ്‌നറായി മനസ്സിലാക്കുന്നുവെന്ന് ഞങ്ങൾ സങ്കൽപ്പിക്കും.

ന്യൂറോണുകളുടെ സജീവമാക്കൽ. ന്യൂറൽ നെറ്റ്‌വർക്ക് പാളികൾ

ഞങ്ങളുടെ ഗ്രിഡിൽ 28x28=784 പിക്സലുകൾ അടങ്ങിയിരിക്കുന്നതിനാൽ, 784 ന്യൂറോണുകൾ അടങ്ങിയിരിക്കട്ടെ വ്യത്യസ്ത സംഖ്യകൾ 0 മുതൽ 1 വരെ: പിക്സൽ അതിനോട് അടുക്കുന്നു വെളുത്ത നിറം, അനുബന്ധ നമ്പർ ഒന്നിനോട് അടുക്കുന്നു. ഗ്രിഡ് ന്യൂറോൺ ആക്ടിവേഷനുകൾ പൂരിപ്പിക്കുന്ന ഈ നമ്പറുകളെ നമുക്ക് വിളിക്കാം. 1-ന് അടുത്തുള്ള ഒരു സംഖ്യ അടങ്ങിയിരിക്കുമ്പോൾ ഒരു ന്യൂറോൺ ഒരു ലൈറ്റ് ബൾബ് പോലെ പ്രകാശിക്കുകയും 0-ന് അടുത്ത് ഒരു സംഖ്യ അടങ്ങിയിരിക്കുമ്പോൾ അത് അണയുകയും ചെയ്യുന്നതുപോലെ നിങ്ങൾക്ക് ഇത് ചിന്തിക്കാനാകും.

വിവരിച്ച 784 ന്യൂറോണുകൾ ന്യൂറൽ നെറ്റ്‌വർക്കിന്റെ ആദ്യ പാളിയാണ്. അവസാന പാളിയിൽ 10 ന്യൂറോണുകൾ അടങ്ങിയിരിക്കുന്നു, അവയിൽ ഓരോന്നും പത്ത് അക്കങ്ങളിൽ ഒന്നിനോട് യോജിക്കുന്നു. ഈ സംഖ്യകളിൽ, ആക്ടിവേഷൻ എന്നത് പൂജ്യത്തിനും ഒന്നിനും ഇടയിലുള്ള ഒരു സംഖ്യയാണ്, ഇൻപുട്ട് ഇമേജിൽ അനുബന്ധ അക്കം അടങ്ങിയിരിക്കുന്നുവെന്നത് സിസ്റ്റത്തിന് എത്രത്തോളം ആത്മവിശ്വാസമാണെന്ന് പ്രതിഫലിപ്പിക്കുന്നു.

മറഞ്ഞിരിക്കുന്ന പാളികൾ എന്ന് വിളിക്കപ്പെടുന്ന രണ്ട് മധ്യ പാളികളും ഉണ്ട്, അവ നമുക്ക് ഉടൻ ലഭിക്കും. മറഞ്ഞിരിക്കുന്ന പാളികളുടെയും അവയിൽ അടങ്ങിയിരിക്കുന്ന ന്യൂറോണുകളുടെയും എണ്ണം തിരഞ്ഞെടുക്കുന്നത് ഏകപക്ഷീയമാണ് (ഞങ്ങൾ 16 ന്യൂറോണുകളുടെ 2 ലെയറുകൾ വീതം തിരഞ്ഞെടുത്തു), പക്ഷേ സാധാരണയായി അവ ന്യൂറൽ നെറ്റ്‌വർക്ക് പരിഹരിക്കുന്ന പ്രശ്നത്തെക്കുറിച്ചുള്ള ചില ആശയങ്ങളിൽ നിന്നാണ് തിരഞ്ഞെടുക്കുന്നത്.

ഒരു ന്യൂറൽ നെറ്റ്‌വർക്കിന്റെ പ്രവർത്തന തത്വം, ഒരു ലെയറിലെ സജീവമാക്കൽ അടുത്തതിലെ സജീവമാക്കൽ നിർണ്ണയിക്കുന്നു എന്നതാണ്. ആവേശഭരിതമാകുമ്പോൾ, ഒരു പ്രത്യേക കൂട്ടം ന്യൂറോണുകൾ മറ്റൊരു ഗ്രൂപ്പിന്റെ ആവേശത്തിന് കാരണമാകുന്നു. ചിത്രത്തിന്റെ ഓരോ പിക്‌സലിന്റെയും തെളിച്ചമനുസരിച്ച് പരിശീലനം ലഭിച്ച ന്യൂറൽ നെറ്റ്‌വർക്കിന്റെ ആദ്യ ലെയറിലേക്ക് ആക്റ്റിവേഷൻ മൂല്യങ്ങൾ കൈമാറുകയാണെങ്കിൽ, ന്യൂറൽ നെറ്റ്‌വർക്കിന്റെ ഒരു ലെയറിൽ നിന്ന് അടുത്തതിലേക്കുള്ള ആക്റ്റിവേഷൻ ശൃംഖല ഒന്നിന്റെ മുൻഗണന സജീവമാക്കുന്നതിലേക്ക് നയിക്കും. അംഗീകൃത അക്കവുമായി ബന്ധപ്പെട്ട അവസാന പാളിയിലെ ന്യൂറോണുകളുടെ - ന്യൂറൽ നെറ്റ്‌വർക്കിന്റെ തിരഞ്ഞെടുപ്പ്.

മറഞ്ഞിരിക്കുന്ന പാളികളുടെ ഉദ്ദേശ്യം

ഒരു ലെയർ അടുത്തതിനെ എങ്ങനെ സ്വാധീനിക്കുന്നു, പഠനം എങ്ങനെ സംഭവിക്കുന്നു, ഒരു ന്യൂറൽ നെറ്റ്‌വർക്ക് സംഖ്യകൾ തിരിച്ചറിയുന്നതിനുള്ള പ്രശ്നം എങ്ങനെ പരിഹരിക്കുന്നു എന്നതിന്റെ ഗണിതശാസ്ത്രത്തിലേക്ക് കടക്കുന്നതിന് മുമ്പ്, അത്തരമൊരു ലേയേർഡ് ഘടനയ്ക്ക് ബുദ്ധിപരമായി പ്രവർത്തിക്കാൻ കഴിയുന്നത് എന്തുകൊണ്ടെന്ന് നമുക്ക് ചർച്ച ചെയ്യാം. ഇൻപുട്ട്, ഔട്ട്പുട്ട് ലെയറുകൾക്കിടയിൽ ഇന്റർമീഡിയറ്റ് ലെയറുകൾ എന്താണ് ചെയ്യുന്നത്?

ഷേപ്പ് ഇമേജ് ലെയർ

സംഖ്യകൾ തിരിച്ചറിയുന്ന പ്രക്രിയയിൽ, ഞങ്ങൾ ഒരുമിച്ച് കൊണ്ടുവരുന്നു വിവിധ ഘടകങ്ങൾ. ഉദാഹരണത്തിന്, ഒൻപതിൽ മുകളിൽ ഒരു വൃത്തവും വലതുവശത്ത് ഒരു വരയും അടങ്ങിയിരിക്കുന്നു. എട്ട് ചിത്രത്തിന് മുകളിൽ ഒരു വൃത്തമുണ്ട്, എന്നാൽ വലതുവശത്ത് ഒരു വരിക്ക് പകരം താഴെ ഒരു ജോടി സർക്കിളുകളാണുള്ളത്. ഒരു നിശ്ചിത രീതിയിൽ ബന്ധിപ്പിച്ചിരിക്കുന്ന മൂന്ന് വരികളായി നാലിനെ പ്രതിനിധീകരിക്കാം. ഇത്യാദി.

ഒരു അനുയോജ്യമായ സാഹചര്യത്തിൽ, രണ്ടാമത്തെ ലെയറിലെ ഓരോ ന്യൂറോണും ഈ ഘടകങ്ങളിലൊന്നിലേക്ക് മാപ്പ് ചെയ്യുമെന്ന് ഞങ്ങൾ പ്രതീക്ഷിക്കുന്നു. കൂടാതെ, ഉദാഹരണത്തിന്, നിങ്ങൾ ന്യൂറൽ നെറ്റ്‌വർക്കിന് മുകളിൽ ഒരു സർക്കിളുള്ള ഒരു ചിത്രം നൽകുമ്പോൾ, ഒരു പ്രത്യേക ന്യൂറോണുണ്ട്, അതിന്റെ സജീവത ഒന്നിലേക്ക് അടുക്കും. അങ്ങനെ, രണ്ടാമത്തെ മറഞ്ഞിരിക്കുന്ന ലെയറിൽ നിന്ന് ഔട്ട്പുട്ട് ലെയറിലേക്കുള്ള മാറ്റം ഏത് അക്കവുമായി പൊരുത്തപ്പെടുന്ന ഘടകങ്ങളെക്കുറിച്ചുള്ള അറിവുമായി പൊരുത്തപ്പെടുന്നു.

ഘടനാപരമായ യൂണിറ്റുകളുടെ ചിത്രങ്ങളുടെ പാളി

സർക്കിൾ തിരിച്ചറിയൽ ടാസ്‌ക്കിനെ ഉപടാസ്‌ക്കുകളായി തിരിക്കാം. ഉദാഹരണത്തിന്, അത് രൂപപ്പെടുന്ന വിവിധ ചെറിയ അറ്റങ്ങൾ തിരിച്ചറിയുന്നു. അതുപോലെ, ഒരു നീണ്ട ലംബ രേഖ നിരവധി ചെറിയ കഷണങ്ങളെ ബന്ധിപ്പിക്കുന്ന ഒരു പാറ്റേണായി കണക്കാക്കാം. അതിനാൽ, ന്യൂറൽ നെറ്റ്‌വർക്കിന്റെ ആദ്യത്തെ മറഞ്ഞിരിക്കുന്ന പാളിയിൽ നിന്നുള്ള ഓരോ ന്യൂറോണും ഈ ചെറിയ അരികുകൾ തിരിച്ചറിയുന്നതിനുള്ള പ്രവർത്തനം നടത്തുമെന്ന് നമുക്ക് പ്രതീക്ഷിക്കാം.

അങ്ങനെ, ഇൻപുട്ട് ഇമേജ് ആദ്യത്തെ മറഞ്ഞിരിക്കുന്ന പാളിയിലെ ചില ന്യൂറോണുകൾ സജീവമാക്കുന്നതിലേക്ക് നയിക്കുന്നു, ചെറിയ ചെറിയ കഷണങ്ങൾ നിർവചിക്കുന്നു, ഈ ന്യൂറോണുകൾ വലിയ രൂപങ്ങൾ സജീവമാക്കുന്നു, അതിന്റെ ഫലമായി ഒരു നിശ്ചിത രൂപവുമായി ബന്ധപ്പെട്ട ഔട്ട്പുട്ട് ലെയറിന്റെ ന്യൂറോണിനെ സജീവമാക്കുന്നു.

ന്യൂറൽ നെറ്റ്‌വർക്ക് ഈ രീതിയിൽ പ്രവർത്തിക്കുമോ ഇല്ലയോ എന്നത് നെറ്റ്‌വർക്കിനെ പരിശീലിപ്പിക്കുന്ന പ്രക്രിയയെക്കുറിച്ച് ചർച്ച ചെയ്യുമ്പോൾ നിങ്ങൾ മടങ്ങിവരുന്ന മറ്റൊരു ചോദ്യമാണ്. എന്നിരുന്നാലും, ഇത് ഒരു ഗൈഡായി വർത്തിക്കും, അത്തരമൊരു ലേയേർഡ് ഘടനയ്ക്കുള്ള ഒരുതരം ലക്ഷ്യം.

മറുവശത്ത്, അരികുകളുടെയും പാറ്റേണുകളുടെയും അത്തരമൊരു നിർവചനം സംഖ്യകൾ തിരിച്ചറിയുന്നതിനുള്ള ചുമതലയിൽ മാത്രമല്ല, പൊതുവായി ചിത്രങ്ങൾ തിരിച്ചറിയുന്നതിനുള്ള പ്രശ്നത്തിലും ഉപയോഗപ്രദമാണ്.

അക്കങ്ങളും ചിത്രങ്ങളും തിരിച്ചറിയുന്നതിന് മാത്രമല്ല, അമൂർത്തതയുടെ പാളികളായി വിഭജിക്കാവുന്ന മറ്റ് ബൗദ്ധിക ജോലികളും. ഉദാഹരണത്തിന്, സംഭാഷണം തിരിച്ചറിയുന്നതിനായി, റോ ഓഡിയോ എക്‌സ്‌ട്രാക്‌റ്റുചെയ്യുന്നു വ്യക്തിഗത ശബ്ദങ്ങൾ, അക്ഷരങ്ങൾ, വാക്കുകൾ, പിന്നെ ശൈലികൾ, കൂടുതൽ അമൂർത്തമായ ചിന്തകൾ മുതലായവ.

തിരിച്ചറിയൽ മേഖല നിർവചിക്കുന്നു

വ്യക്തമായി പറഞ്ഞാൽ, ആദ്യത്തെ മറഞ്ഞിരിക്കുന്ന പാളിയിലെ ഒരൊറ്റ ന്യൂറോണിന്റെ ലക്ഷ്യം ചിത്രത്തിൽ അടയാളപ്പെടുത്തിയിരിക്കുന്ന ഭാഗത്ത് ചിത്രത്തിൽ ഒരു എഡ്ജ് അടങ്ങിയിട്ടുണ്ടോ എന്ന് നിർണ്ണയിക്കുക എന്നതാണ്.

ആദ്യത്തെ ചോദ്യം ഇതാണ്: ഈ പാറ്റേൺ അല്ലെങ്കിൽ മറ്റേതെങ്കിലും പിക്സൽ പാറ്റേൺ കണ്ടെത്തുന്നതിന് ന്യൂറൽ നെറ്റ്‌വർക്കിന് എന്ത് ക്രമീകരണങ്ങൾ ഉണ്ടായിരിക്കണം.

ഇൻപുട്ട് ലെയറിൽ നിന്ന് നമ്മുടെ ന്യൂറോണും ന്യൂറോണും തമ്മിലുള്ള ഓരോ കണക്ഷനും ഒരു സംഖ്യാ ഭാരം നൽകാം. തുടർന്ന് ഞങ്ങൾ ആദ്യ ലെയറിൽ നിന്ന് എല്ലാ ആക്ടിവേഷനുകളും എടുക്കുകയും ഈ ഭാരം അനുസരിച്ച് അവയുടെ തൂക്കമുള്ള തുക കണക്കാക്കുകയും ചെയ്യുന്നു.

വെയ്റ്റുകളുടെ എണ്ണം ആക്റ്റിവേഷനുകളുടെ എണ്ണത്തിന് തുല്യമായതിനാൽ, അവ സമാനമായ ഗ്രിഡിലേക്ക് മാപ്പ് ചെയ്യാനും കഴിയും. പച്ച പിക്സലുകളുള്ള പോസിറ്റീവ് വെയിറ്റുകളും ചുവന്ന പിക്സലുകളുള്ള നെഗറ്റീവ് വെയിറ്റുകളും ഞങ്ങൾ സൂചിപ്പിക്കും. പിക്സലിന്റെ തെളിച്ചം ഭാരത്തിന്റെ കേവല മൂല്യവുമായി പൊരുത്തപ്പെടും.

ഇപ്പോൾ ഞങ്ങൾ എല്ലാ തൂക്കങ്ങളും സജ്ജമാക്കിയാൽ പൂജ്യത്തിന് തുല്യം, ഞങ്ങളുടെ ടെംപ്ലേറ്റുമായി പൊരുത്തപ്പെടുന്ന പിക്സലുകൾ ഒഴികെ, ഞങ്ങൾക്ക് താൽപ്പര്യമുള്ള മേഖലയിലെ പിക്സലുകളുടെ സജീവമാക്കൽ മൂല്യങ്ങളുടെ സംഗ്രഹത്തിലേക്ക് വെയ്റ്റഡ് തുക കുറയ്ക്കും.

അവിടെ ഒരു എഡ്ജ് ഉണ്ടോ എന്ന് നിർണ്ണയിക്കണമെങ്കിൽ, നെഗറ്റീവ് ഭാരത്തിന് അനുസൃതമായി പച്ച വെയ്റ്റ് ദീർഘചതുരത്തിന് ചുറ്റും ചുവന്ന വെയ്റ്റ് അരികുകൾ ചേർക്കാം. ഈ ഭാഗത്തെ ചിത്രത്തിന്റെ മധ്യ പിക്സലുകൾ തെളിച്ചമുള്ളതും അവയെ ചുറ്റിപ്പറ്റിയുള്ള പിക്സലുകൾ ഇരുണ്ടതുമായിരിക്കുമ്പോൾ ഈ ഏരിയയുടെ വെയ്റ്റഡ് തുക പരമാവധി ആയിരിക്കും.

ഇടവേളയിലേക്ക് സ്കെയിലിംഗ് സജീവമാക്കൽ

ഇത്രയും തൂക്കമുള്ള തുക കണക്കാക്കുന്നതിലൂടെ, നിങ്ങൾക്ക് ഏത് സംഖ്യയും ലഭിക്കും വിശാലമായ ശ്രേണിമൂല്യങ്ങൾ. 0 മുതൽ 1 വരെയുള്ള ആക്ടിവേഷനുകളുടെ ആവശ്യമായ ശ്രേണിയിലേക്ക് ഇത് വീഴുന്നതിന്, മുഴുവൻ ശ്രേണിയും ഇടവേളയിലേക്ക് "കംപ്രസ്" ചെയ്യുന്ന ഒരു ഫംഗ്ഷൻ ഉപയോഗിക്കുന്നത് ന്യായമാണ്.

പലപ്പോഴും ഈ സ്കെയിലിംഗിനായി ഒരു സിഗ്മോയിഡ് ലോജിസ്റ്റിക് ഫംഗ്ഷൻ ഉപയോഗിക്കുന്നു. കൂടുതൽ യഥാർത്ഥ മൂല്യംനെഗറ്റീവ് ഇൻപുട്ട് നമ്പർ, ഔട്ട്പുട്ട് സിഗ്മോയിഡ് മൂല്യം പൂജ്യത്തോട് അടുക്കുന്നു. വലിയ പോസിറ്റീവ് ഇൻപുട്ട് നമ്പർ, ഫംഗ്ഷൻ മൂല്യം ഒന്നിനോട് അടുക്കും.

അതിനാൽ, ഒരു ന്യൂറോണിന്റെ ഫയറിംഗ് അടിസ്ഥാനപരമായി അനുബന്ധ തൂക്കമുള്ള തുക എത്ര പോസിറ്റീവ് ആണെന്നതിന്റെ അളവാണ്. ന്യൂറോൺ താഴ്ന്ന നിലയിൽ സജീവമാകുന്നത് തടയാൻ പോസിറ്റീവ് നമ്പറുകൾ, നിങ്ങൾക്ക് വെയ്റ്റഡ് തുകയിലേക്ക് കുറച്ച് നെഗറ്റീവ് നമ്പർ ചേർക്കാം - ഒരു ഷിഫ്റ്റ് (ഇംഗ്ലീഷ് ബയസ്), ഇത് ന്യൂറോണിനെ സജീവമാക്കുന്നതിന് വെയ്റ്റഡ് തുക എത്ര വലുതായിരിക്കണമെന്ന് നിർണ്ണയിക്കുന്നു.

ഇതുവരെയുള്ള സംഭാഷണം ഒരു ന്യൂറോണിനെപ്പറ്റി മാത്രമായിരുന്നു. ആദ്യത്തെ മറഞ്ഞിരിക്കുന്ന പാളിയിലെ ഓരോ ന്യൂറോണും ആദ്യ പാളിയിലെ എല്ലാ 784 പിക്സൽ ന്യൂറോണുകളുമായും ബന്ധിപ്പിച്ചിരിക്കുന്നു. ഈ 784 കണക്ഷനുകളിൽ ഓരോന്നിനും അതിന്റേതായ ഭാരം ഉണ്ടായിരിക്കും. കൂടാതെ, ആദ്യത്തെ മറഞ്ഞിരിക്കുന്ന പാളിയിലെ ഓരോ ന്യൂറോണുകൾക്കും ഒരു അനുബന്ധ ഷിഫ്റ്റ് ഉണ്ട്, അത് സിഗ്മോയിഡ് ആ മൂല്യത്തെ "കംപ്രസ്" ചെയ്യുന്നതിന് മുമ്പ് വെയ്റ്റഡ് തുകയിലേക്ക് ചേർക്കുന്നു. അങ്ങനെ, ആദ്യത്തെ മറഞ്ഞിരിക്കുന്ന പാളിക്ക് 784x16 ഭാരവും 16 ഷിഫ്റ്റുകളും ഉണ്ട്.

മറ്റ് ലെയറുകൾ തമ്മിലുള്ള കണക്ഷനുകളിൽ അവയുമായി ബന്ധപ്പെട്ട ഭാരങ്ങളും വിവർത്തനങ്ങളും അടങ്ങിയിരിക്കുന്നു. അതിനാൽ, നൽകിയിരിക്കുന്ന ഉദാഹരണത്തിന്, ന്യൂറൽ നെറ്റ്‌വർക്കിന്റെ സ്വഭാവം നിർണ്ണയിക്കുന്ന ഏകദേശം 13 ആയിരം ഭാരങ്ങളും ഷിഫ്റ്റുകളും കോൺഫിഗർ ചെയ്യാവുന്ന പാരാമീറ്ററുകളായി പ്രവർത്തിക്കുന്നു.

അക്കങ്ങൾ തിരിച്ചറിയാൻ ഒരു ന്യൂറൽ നെറ്റ്‌വർക്കിനെ പരിശീലിപ്പിക്കുക എന്നതിനർത്ഥം ഈ സംഖ്യകൾക്കെല്ലാം ശരിയായ മൂല്യങ്ങൾ കണ്ടെത്താൻ കമ്പ്യൂട്ടറിനെ നിർബന്ധിക്കുകയും അതുവഴി പ്രശ്നം പരിഹരിക്കുകയും ചെയ്യുന്നു. ആ ഭാരങ്ങളെല്ലാം ക്രമീകരിച്ച് കൈകൊണ്ട് മാറ്റുന്നത് സങ്കൽപ്പിക്കുക. ഒരു ന്യൂറൽ നെറ്റ്‌വർക്കിനെ ബ്ലാക്ക് ബോക്‌സായി കണക്കാക്കുന്നതിനുള്ള ഫലപ്രദമായ വാദങ്ങളിലൊന്നാണിത് - എല്ലാ പാരാമീറ്ററുകളുടെയും സംയുക്ത സ്വഭാവം മാനസികമായി ട്രാക്കുചെയ്യുന്നത് മിക്കവാറും അസാധ്യമാണ്.

ലീനിയർ ആൾജിബ്രയുടെ അടിസ്ഥാനത്തിൽ ഒരു ന്യൂറൽ നെറ്റ്‌വർക്കിന്റെ വിവരണം

ന്യൂറൽ നെറ്റ്‌വർക്ക് കണക്ഷനുകളെ ഗണിതശാസ്ത്രപരമായി പ്രതിനിധീകരിക്കുന്നതിനുള്ള ഒരു കോം‌പാക്റ്റ് വഴി നമുക്ക് ചർച്ച ചെയ്യാം. ആദ്യ ലെയറിന്റെ എല്ലാ ആക്റ്റിവേഷനുകളും ഒരു കോളം വെക്റ്ററിലേക്ക് സംയോജിപ്പിക്കാം. ഞങ്ങൾ എല്ലാ ഭാരങ്ങളും ഒരു മാട്രിക്സിലേക്ക് സംയോജിപ്പിക്കും, ഓരോ നിരയും ഒരു ലെയറിന്റെ ന്യൂറോണുകൾ തമ്മിലുള്ള ബന്ധത്തെ അടുത്ത ഒരു പ്രത്യേക ന്യൂറോണുമായി വിവരിക്കുന്നു (നിങ്ങൾക്ക് എന്തെങ്കിലും ബുദ്ധിമുട്ടുകൾ ഉണ്ടെങ്കിൽ, ഞങ്ങൾ വിവരിച്ച കോഴ്സ് കാണുക). മാട്രിക്സ് വെക്റ്റർ കൊണ്ട് ഗുണിച്ചതിന്റെ ഫലമായി, ആദ്യ ലെയറിന്റെ വെയ്റ്റഡ് തുകകൾക്ക് അനുയോജ്യമായ ഒരു വെക്റ്റർ നമുക്ക് ലഭിക്കും. നമുക്ക് ഷിഫ്റ്റ് വെക്റ്ററിനൊപ്പം മാട്രിക്സ് ഉൽപ്പന്നം ചേർത്ത് മൂല്യ ഇടവേളകൾ സ്കെയിൽ ചെയ്യുന്നതിന് ഒരു സിഗ്മോയിഡ് ഫംഗ്ഷൻ ഉപയോഗിച്ച് പൊതിയാം. തൽഫലമായി, ഞങ്ങൾക്ക് അനുബന്ധ ആക്റ്റിവേഷനുകളുടെ ഒരു നിര ലഭിക്കും.

വ്യക്തമായും, രേഖീയ ബീജഗണിതത്തിൽ പതിവ് പോലെ, നിരകൾക്കും മെട്രിക്സുകൾക്കും പകരം, അവയുടെ ഹ്രസ്വ നൊട്ടേഷനുകൾ ഉപയോഗിക്കാം. ഇത് അനുരൂപമാക്കുന്നു പ്രോഗ്രാം കോഡ്ലൈബ്രറികൾ മുതൽ എളുപ്പത്തിലും വേഗത്തിലും യന്ത്ര പഠനംവെക്റ്റർ കണക്കുകൂട്ടലുകൾക്കായി ഒപ്റ്റിമൈസ് ചെയ്തു.

ന്യൂറോൺ സജീവമാക്കൽ സംബന്ധിച്ച വ്യക്തത

ഞങ്ങൾ ആരംഭിച്ച ലളിതവൽക്കരണം വ്യക്തമാക്കേണ്ട സമയമാണിത്. ന്യൂറോണുകൾ ആക്റ്റിവേഷൻ നമ്പറുകളുമായി മാത്രമല്ല, മുമ്പത്തെ ലെയറിലെ എല്ലാ ന്യൂറോണുകളിൽ നിന്നും മൂല്യങ്ങൾ എടുക്കുകയും 0 മുതൽ 1 വരെയുള്ള ശ്രേണിയിൽ ഔട്ട്പുട്ട് മൂല്യങ്ങൾ കണക്കാക്കുകയും ചെയ്യുന്ന ആക്റ്റിവേഷൻ ഫംഗ്ഷനുകളുമായി പൊരുത്തപ്പെടുന്നു.

വാസ്തവത്തിൽ, മുഴുവൻ ന്യൂറൽ നെറ്റ്‌വർക്കും ഒരു വലിയ പ്രവർത്തനമാണ്, പരിശീലനത്തിലൂടെ ഇഷ്‌ടാനുസൃതമാക്കാൻ കഴിയും, 13 ആയിരം പാരാമീറ്ററുകൾ, 784 ഇൻപുട്ട് മൂല്യങ്ങൾ സ്വീകരിക്കുകയും ചിത്രം തിരിച്ചറിയാൻ ഉദ്ദേശിച്ചിട്ടുള്ള പത്ത് അക്കങ്ങളിൽ ഒന്നുമായി പൊരുത്തപ്പെടാനുള്ള സാധ്യത സൃഷ്ടിക്കുകയും ചെയ്യുന്നു. എന്നിരുന്നാലും, അതിന്റെ സങ്കീർണ്ണത ഉണ്ടായിരുന്നിട്ടും, ഇത് കേവലം ഒരു പ്രവർത്തനമാണ്, ഒരർത്ഥത്തിൽ ഇത് സങ്കീർണ്ണമായി കാണപ്പെടുന്നത് യുക്തിസഹമാണ്, കാരണം ഇത് ലളിതമാണെങ്കിൽ, ഈ ഫംഗ്ഷന് സംഖ്യകൾ തിരിച്ചറിയുന്നതിനുള്ള പ്രശ്നം പരിഹരിക്കാൻ കഴിയില്ല.

കൂടാതെ, ന്യൂറൽ നെറ്റ്‌വർക്കുകൾ പ്രോഗ്രാം ചെയ്യുന്നതിന് നിലവിൽ ഏത് ആക്റ്റിവേഷൻ ഫംഗ്‌ഷനുകളാണ് ഉപയോഗിക്കുന്നതെന്ന് ഞങ്ങൾ ചർച്ച ചെയ്യും.

കൂട്ടിച്ചേർക്കൽ: ആക്ടിവേഷൻ ഫംഗ്ഷനുകളെക്കുറിച്ച് അൽപ്പം. Sigmoid, ReLU എന്നിവയുടെ താരതമ്യം

ആക്ടിവേഷൻ മൂല്യങ്ങളുടെ ശ്രേണി "കംപ്രസ്" ചെയ്യാൻ ഉപയോഗിക്കുന്ന ഫംഗ്ഷനുകളുടെ വിഷയത്തിൽ നമുക്ക് ഹ്രസ്വമായി സ്പർശിക്കാം. ബയോളജിക്കൽ ന്യൂറോണുകളെ അനുകരിക്കുന്ന ഒരു ഉദാഹരണമാണ് സിഗ്മോയിഡ് ഫംഗ്ഷൻ, ന്യൂറൽ നെറ്റ്‌വർക്കുകളിലെ ആദ്യകാല പ്രവർത്തനങ്ങളിൽ ഉപയോഗിച്ചിരുന്നു, എന്നാൽ ന്യൂറൽ നെറ്റ്‌വർക്ക് പരിശീലനം എളുപ്പമാക്കുന്നതിന് ലളിതമായ ReLU ഫംഗ്‌ഷൻ ഇപ്പോൾ സാധാരണയായി ഉപയോഗിക്കുന്നു.

ReLU ഫംഗ്‌ഷൻ, ന്യൂറോണുകൾ സജീവമായ അവസ്ഥയിലായിരിക്കുമോ ഇല്ലയോ എന്ന ജീവശാസ്ത്രപരമായ സാമ്യത്തെ പിന്തുടരുന്നു. ഒരു നിശ്ചിത പരിധി കടന്നാൽ, ഫംഗ്ഷൻ പ്രവർത്തനക്ഷമമാകും, അത് കടന്നുപോയില്ലെങ്കിൽ, ന്യൂറോൺ നിഷ്ക്രിയമായി തുടരും, സജീവമാക്കൽ പൂജ്യത്തിന് തുല്യമാണ്.

ആഴത്തിലുള്ള മൾട്ടി ലെയർ നെറ്റ്‌വർക്കുകൾക്ക് ReLU ഫംഗ്‌ഷൻ വളരെ നന്നായി പ്രവർത്തിക്കുന്നുവെന്നും പലപ്പോഴും സിഗ്‌മോയിഡ് ഫംഗ്‌ഷൻ കണക്കാക്കാൻ കൂടുതൽ ബുദ്ധിമുട്ടുള്ളതായി ഉപയോഗിക്കുന്നതിൽ അർത്ഥമില്ലെന്നും ഇത് മാറി.

2. നമ്പറുകൾ തിരിച്ചറിയാൻ ഒരു ന്യൂറൽ നെറ്റ്‌വർക്ക് പരിശീലിപ്പിക്കുക

ചോദ്യം ഉയർന്നുവരുന്നു: ആദ്യ പാഠത്തിൽ വിവരിച്ചിരിക്കുന്ന നെറ്റ്‌വർക്ക് എങ്ങനെയാണ് ലഭിച്ച ഡാറ്റയെ അടിസ്ഥാനമാക്കി ഉചിതമായ ഭാരങ്ങളും ഷിഫ്റ്റുകളും കണ്ടെത്തുന്നത്? രണ്ടാമത്തെ പാഠം ഇതിനെക്കുറിച്ച് സംസാരിക്കുന്നു.

IN പൊതുവായ കാഴ്ചകൈയക്ഷര സംഖ്യകളുടെ ജോഡി ചിത്രങ്ങളെയും അവയുടെ അമൂർത്ത ഗണിത പ്രതിനിധാനങ്ങളെയും പ്രതിനിധീകരിക്കുന്ന പരിശീലന ഡാറ്റയുടെ ഒരു കൂട്ടം ന്യൂറൽ നെറ്റ്‌വർക്കിനെ കാണിക്കുന്നത് അൽഗോരിതം ഉൾക്കൊള്ളുന്നു.

രൂപരേഖയിൽ

പരിശീലനത്തിന്റെ ഫലമായി, ന്യൂറൽ നെറ്റ്‌വർക്ക് മുമ്പ് അവതരിപ്പിക്കാത്ത ടെസ്റ്റ് ഡാറ്റയിൽ നിന്ന് നമ്പറുകളെ ശരിയായി വേർതിരിച്ചറിയണം. അതനുസരിച്ച്, ന്യൂറൽ നെറ്റ്‌വർക്ക് പരിശീലനത്തിനുള്ള ഒരു ടെസ്റ്റ് എന്ന നിലയിൽ, ടെസ്റ്റ് സാമ്പിളിന്റെ മൂലകങ്ങളുടെ എണ്ണവുമായി ശരിയായ അക്ക തിരിച്ചറിയലിന്റെ പ്രവർത്തനങ്ങളുടെ എണ്ണത്തിന്റെ അനുപാതം നിങ്ങൾക്ക് ഉപയോഗിക്കാം.

പരിശീലന ഡാറ്റ എവിടെ നിന്ന് വരുന്നു? പരിഗണനയിലുള്ള പ്രശ്നം വളരെ സാധാരണമാണ്, അത് പരിഹരിക്കാൻ, 60 ആയിരം ലേബൽ ചെയ്ത ഡാറ്റയും 10 ആയിരം ടെസ്റ്റ് ഇമേജുകളും അടങ്ങുന്ന ഒരു വലിയ MNIST ഡാറ്റാബേസ് സൃഷ്ടിച്ചു.

ചെലവ് പ്രവർത്തനം

ആശയപരമായി, ഒരു ന്യൂറൽ ശൃംഖലയെ പരിശീലിപ്പിക്കുന്നതിനുള്ള ചുമതല ഒരു നിശ്ചിത ഫംഗ്ഷന്റെ ഏറ്റവും കുറഞ്ഞ ചെലവ് കണ്ടെത്തുന്നതിലേക്ക് വരുന്നു. അതെന്താണെന്ന് വിവരിക്കാം.

നിങ്ങൾ ഓർക്കുന്നതുപോലെ, അടുത്ത ലെയറിലെ ഓരോ ന്യൂറോണും മുമ്പത്തെ ലെയറിന്റെ ഒരു ന്യൂറോണുമായി ബന്ധിപ്പിച്ചിരിക്കുന്നു, ഈ കണക്ഷനുകളുടെ ഭാരവും മൊത്തത്തിലുള്ള ഷിഫ്റ്റും അതിന്റെ സജീവമാക്കൽ പ്രവർത്തനത്തെ നിർണ്ണയിക്കുന്നു. എവിടെയെങ്കിലും ആരംഭിക്കാൻ, റാൻഡം നമ്പറുകൾ ഉപയോഗിച്ച് നമുക്ക് ഈ ഭാരങ്ങളും ഷിഫ്റ്റുകളും ആരംഭിക്കാം.

അതനുസരിച്ച്, പ്രാരംഭ നിമിഷത്തിൽ, ചിത്രത്തിന് പ്രതികരണമായി പരിശീലനം ലഭിക്കാത്ത ന്യൂറൽ നെറ്റ്വർക്ക് നൽകിയ നമ്പർ, ഉദാഹരണത്തിന്, ഒരു ട്രിപ്പിൾ ഒരു ഇമേജ്, ഔട്ട്പുട്ട് ലെയർ പൂർണ്ണമായും ക്രമരഹിതമായ ഉത്തരം നൽകുന്നു.

ന്യൂറൽ നെറ്റ്‌വർക്കിനെ പരിശീലിപ്പിക്കുന്നതിന്, ഞങ്ങൾ ഒരു കോസ്റ്റ് ഫംഗ്ഷൻ അവതരിപ്പിക്കും, അത് സമാനമായ ഒരു ഫലമുണ്ടായാൽ കമ്പ്യൂട്ടറിനോട് പറയും: “ഇല്ല, മോശം കമ്പ്യൂട്ടർ! ശരിയായ ഒന്ന് ഒഴികെ എല്ലാ ന്യൂറോണുകൾക്കും സജീവമാക്കൽ മൂല്യം പൂജ്യമായിരിക്കണം.

അക്ക തിരിച്ചറിയലിനായി ഒരു കോസ്റ്റ് ഫംഗ്ഷൻ സജ്ജീകരിക്കുന്നു

ഗണിതശാസ്ത്രപരമായി, ഈ ഫംഗ്ഷൻ ഔട്ട്പുട്ട് ലെയറിന്റെ യഥാർത്ഥ ആക്റ്റിവേഷൻ മൂല്യങ്ങളും അവയുടെ അനുയോജ്യമായ മൂല്യങ്ങളും തമ്മിലുള്ള സ്ക്വയർ വ്യത്യാസങ്ങളുടെ ആകെത്തുകയാണ്. ഉദാഹരണത്തിന്, ഒരു ട്രിപ്പിളിന്റെ കാര്യത്തിൽ, അനുബന്ധ ട്രിപ്പിൾ ഒഴികെയുള്ള എല്ലാ ന്യൂറോണുകൾക്കും സജീവമാക്കൽ പൂജ്യമായിരിക്കണം, അതിന് ഇത് ഒന്നിന് തുല്യമാണ്.

ഒരു ഇമേജിനായി നമുക്ക് കോസ്റ്റ് ഫംഗ്ഷന്റെ ഒരു നിലവിലെ മൂല്യം നിർണ്ണയിക്കാൻ കഴിയുമെന്ന് ഇത് മാറുന്നു. ന്യൂറൽ ശൃംഖല പരിശീലിപ്പിച്ചാൽ, ഈ മൂല്യം ചെറുതായിരിക്കും, അത് പൂജ്യത്തിലേക്ക് നയിക്കും, തിരിച്ചും: കോസ്റ്റ് ഫംഗ്ഷന്റെ മൂല്യം വലുതായിരിക്കും, ന്യൂറൽ നെറ്റ്‌വർക്ക് പരിശീലിപ്പിക്കപ്പെടുന്നു.

അതിനാൽ, ന്യൂറൽ നെറ്റ്‌വർക്ക് എത്ര നന്നായി പരിശീലിപ്പിക്കപ്പെട്ടുവെന്ന് പിന്നീട് നിർണ്ണയിക്കുന്നതിന്, പരിശീലന സെറ്റിന്റെ എല്ലാ ചിത്രങ്ങൾക്കും ചെലവ് പ്രവർത്തനത്തിന്റെ ശരാശരി മൂല്യം നിർണ്ണയിക്കേണ്ടത് ആവശ്യമാണ്.

ഇത് തികച്ചും ബുദ്ധിമുട്ടുള്ള ഒരു ജോലിയാണ്. നമ്മുടെ ന്യൂറൽ നെറ്റ്‌വർക്കിന് ഇൻപുട്ടായി 784 പിക്‌സലുകളും ഒരു ഔട്ട്‌പുട്ടായി 10 മൂല്യങ്ങളും അവ കണക്കാക്കാൻ 13 ആയിരം പാരാമീറ്ററുകൾ ആവശ്യവുമുണ്ടെങ്കിൽ, കോസ്റ്റ് ഫംഗ്ഷൻ ഈ 13 ആയിരം പാരാമീറ്ററുകളുടെ ഒരു പ്രവർത്തനമാണ്, ഞങ്ങൾ ചെറുതാക്കാൻ ആഗ്രഹിക്കുന്ന ഒരൊറ്റ ചെലവ് മൂല്യം നിർമ്മിക്കുന്നു. , അതേ സമയം മുഴുവൻ പരിശീലന സാമ്പിളും പാരാമീറ്ററുകളായി വർത്തിക്കുന്നു.

ന്യൂറൽ നെറ്റ്‌വർക്ക് പഠിക്കുന്ന തരത്തിൽ ഈ ഭാരങ്ങളും ഷിഫ്റ്റുകളും എങ്ങനെ മാറ്റാം?

ഗ്രേഡിയന്റ് ഡിസന്റ്

ആരംഭിക്കുന്നതിന്, 13 ആയിരം ഇൻപുട്ട് മൂല്യങ്ങളുള്ള ഒരു ഫംഗ്‌ഷനെ പ്രതിനിധീകരിക്കുന്നതിനുപകരം, ഞങ്ങൾ ഒരു വേരിയബിളിന്റെ C(w) ഫംഗ്‌ഷൻ ഉപയോഗിച്ച് ആരംഭിക്കും. കോഴ്സിൽ നിന്ന് നിങ്ങൾ ഒരുപക്ഷേ ഓർക്കുന്നതുപോലെ ഗണിത വിശകലനം, ഒരു ഫംഗ്‌ഷന്റെ മിനിമം കണ്ടെത്തുന്നതിന്, നിങ്ങൾ ഡെറിവേറ്റീവ് എടുക്കേണ്ടതുണ്ട്.

എന്നിരുന്നാലും, ഫംഗ്‌ഷന്റെ ആകൃതി വളരെ സങ്കീർണ്ണമായേക്കാം, ചില അനിയന്ത്രിതമായ പോയിന്റിൽ ആരംഭിച്ച് ഫംഗ്‌ഷന്റെ മൂല്യത്തിൽ താഴേക്ക് പ്രവർത്തിക്കുക എന്നതാണ് ഒരു വഴക്കമുള്ള തന്ത്രം. ഓരോന്നിലും ഈ നടപടിക്രമം ആവർത്തിക്കുന്നു അടുത്ത പോയിന്റ്, കുന്നിൽ നിന്ന് ഉരുളുന്ന ഒരു പന്ത് ചെയ്യുന്നതുപോലെ, നിങ്ങൾക്ക് ക്രമേണ ഒരു പ്രാദേശിക മിനിമം ഫംഗ്ഷനിലേക്ക് വരാം.

മുകളിലെ ചിത്രം കാണിക്കുന്നത് പോലെ, ഒരു ഫംഗ്‌ഷന് നിരവധി ലോക്കൽ മിനിമകൾ ഉണ്ടായിരിക്കാം, കൂടാതെ ഏത് പ്രാദേശിക മിനിമം അൽഗോരിതം അവസാനിക്കുന്നു എന്നത് ആരംഭ പോയിന്റിന്റെ തിരഞ്ഞെടുപ്പിനെ ആശ്രയിച്ചിരിക്കുന്നു, കൂടാതെ കണ്ടെത്തിയ ഏറ്റവും കുറഞ്ഞ മൂല്യം കോസ്റ്റ് ഫംഗ്‌ഷന്റെ ഏറ്റവും കുറഞ്ഞ മൂല്യമാണെന്ന് ഉറപ്പില്ല. ഇത് മനസ്സിൽ സൂക്ഷിക്കേണ്ടതുണ്ട്. കൂടാതെ, പ്രാദേശിക മിനിമം മൂല്യം "ഓവർഷൂട്ട്" ചെയ്യാതിരിക്കാൻ, ഫംഗ്ഷന്റെ ചരിവിന് ആനുപാതികമായി നിങ്ങൾ സ്റ്റെപ്പ് വലുപ്പം മാറ്റേണ്ടതുണ്ട്.

ഈ ടാസ്‌ക് കുറച്ചുകൂടി സങ്കീർണ്ണമാക്കുന്നതിന്, ഒരു വേരിയബിളിന്റെ ഫംഗ്‌ഷനുപകരം, ഒരു ഔട്ട്‌പുട്ട് മൂല്യമുള്ള രണ്ട് വേരിയബിളുകളുടെ ഒരു ഫംഗ്‌ഷൻ നിങ്ങൾക്ക് സങ്കൽപ്പിക്കാൻ കഴിയും. ഏറ്റവും കൂടുതൽ ദിശ കണ്ടെത്തുന്നതിനുള്ള അനുബന്ധ പ്രവർത്തനം പെട്ടെന്നുള്ള ഇറക്കംഒരു നെഗറ്റീവ് ഗ്രേഡിയന്റ് പ്രതിനിധീകരിക്കുന്നു -∇С. ഗ്രേഡിയന്റ് കണക്കാക്കുന്നു, -∇С എന്ന ദിശയിൽ ഒരു ചുവടുവെപ്പ് നടത്തുന്നു, നമ്മൾ ഏറ്റവും കുറഞ്ഞത് കണ്ടെത്തുന്നതുവരെ നടപടിക്രമം ആവർത്തിക്കുന്നു.

വിവരിച്ച ആശയത്തെ ഗ്രേഡിയന്റ് ഡിസെന്റ് എന്ന് വിളിക്കുന്നു, കൂടാതെ രണ്ട് വേരിയബിളുകളുടെ ഒരു ഫംഗ്‌ഷൻ മാത്രമല്ല, 13 ആയിരം, കൂടാതെ മറ്റേതെങ്കിലും വേരിയബിളുകളുടെ ഏറ്റവും കുറഞ്ഞത് കണ്ടെത്താനും ഇത് ഉപയോഗിക്കാം. എല്ലാ ഭാരങ്ങളും ഷിഫ്റ്റുകളും ഒരു വലിയ നിര വെക്റ്റർ w രൂപപ്പെടുത്തുന്നുവെന്ന് സങ്കൽപ്പിക്കുക. ഈ വെക്‌ടറിനായി, നമുക്ക് കോസ്റ്റ് ഫംഗ്‌ഷന്റെ അതേ ഗ്രേഡിയന്റ് വെക്‌ടറിനെ കണക്കാക്കുകയും തത്ഫലമായുണ്ടാകുന്ന വെക്‌ടറിനെ വെക്‌ടറുമായി ചേർത്ത് ഉചിതമായ ദിശയിലേക്ക് നീങ്ങുകയും ചെയ്യാം. അതിനാൽ C(w) ഫംഗ്‌ഷൻ ഏറ്റവും കുറഞ്ഞത് എത്തുന്നതുവരെ ഈ നടപടിക്രമം ആവർത്തിക്കുക.

ഗ്രേഡിയന്റ് ഡിസെന്റ് ഘടകങ്ങൾ

ഞങ്ങളുടെ ന്യൂറൽ നെറ്റ്‌വർക്കിനെ സംബന്ധിച്ചിടത്തോളം, കോസ്റ്റ് ഫംഗ്‌ഷന്റെ ഒരു ചെറിയ മൂല്യത്തിലേക്കുള്ള ചുവടുകൾ പരിശീലന ഡാറ്റയോടുള്ള പ്രതികരണമായി ന്യൂറൽ നെറ്റ്‌വർക്കിന്റെ ക്രമരഹിതമായ പെരുമാറ്റം കുറയ്ക്കും. ഈ ഗ്രേഡിയന്റ് കാര്യക്ഷമമായി കണക്കാക്കുന്നതിനുള്ള അൽഗോരിതത്തെ ബാക്ക്പ്രൊപഗേഷൻ എന്ന് വിളിക്കുന്നു, അടുത്ത വിഭാഗത്തിൽ ഇത് വിശദമായി ചർച്ച ചെയ്യും.

വേണ്ടി ഗ്രേഡിയന്റ് ഇറക്കംചെലവ് പ്രവർത്തനത്തിന്റെ ഔട്ട്പുട്ട് മൂല്യങ്ങൾ സുഗമമായി വ്യത്യാസപ്പെടുന്നത് പ്രധാനമാണ്. അതുകൊണ്ടാണ് ആക്ടിവേഷൻ മൂല്യങ്ങൾക്ക് 0, 1 എന്നിവയുടെ ബൈനറി മൂല്യങ്ങൾ ഇല്ലാത്തത്, എന്നാൽ യഥാർത്ഥ സംഖ്യകളെ പ്രതിനിധീകരിക്കുകയും ഈ മൂല്യങ്ങൾ തമ്മിലുള്ള ഇടവേളയിൽ കിടക്കുകയും ചെയ്യുന്നു.

ഓരോ ഗ്രേഡിയന്റ് ഘടകങ്ങളും നമ്മോട് രണ്ട് കാര്യങ്ങൾ പറയുന്നു. ഘടകത്തിന്റെ അടയാളം മാറ്റത്തിന്റെ ദിശയെ സൂചിപ്പിക്കുന്നു, കൂടാതെ യഥാർത്ഥ മൂല്യം- അന്തിമ ഫലത്തിൽ ഈ ഘടകത്തിന്റെ സ്വാധീനത്തിൽ: ചില തൂക്കങ്ങൾ മറ്റുള്ളവയേക്കാൾ ചെലവ് പ്രവർത്തനത്തിന് വലിയ സംഭാവന നൽകുന്നു.

മറഞ്ഞിരിക്കുന്ന പാളികളുടെ ഉദ്ദേശ്യത്തെക്കുറിച്ചുള്ള അനുമാനങ്ങൾ പരിശോധിക്കുന്നു

ന്യൂറൽ നെറ്റ്‌വർക്കിന്റെ പാളികൾ ആദ്യ പാഠത്തിൽ നിന്നുള്ള നമ്മുടെ പ്രതീക്ഷകളുമായി എങ്ങനെ പൊരുത്തപ്പെടുന്നു എന്ന ചോദ്യം ചർച്ച ചെയ്യാം. പരിശീലനം ലഭിച്ച ന്യൂറൽ നെറ്റ്‌വർക്കിന്റെ ആദ്യത്തെ മറഞ്ഞിരിക്കുന്ന പാളിയിലെ ന്യൂറോണുകളുടെ ഭാരം ഞങ്ങൾ ദൃശ്യവൽക്കരിക്കുകയാണെങ്കിൽ, അക്കങ്ങളുടെ ചെറിയ ഘടക ഘടകങ്ങളുമായി പൊരുത്തപ്പെടുന്ന പ്രതീക്ഷിച്ച കണക്കുകൾ നമുക്ക് കാണാനാകില്ല. ന്യൂറൽ നെറ്റ്‌വർക്ക് ചെലവ് പ്രവർത്തനത്തെ എങ്ങനെ ചെറുതാക്കി എന്നതുമായി ബന്ധപ്പെട്ട വളരെ കുറച്ച് വ്യക്തമായ പാറ്റേണുകൾ ഞങ്ങൾ കാണും.

മറുവശത്ത്, നിങ്ങൾ ഒരു ചിത്രം ഒരു ന്യൂറൽ നെറ്റ്‌വർക്കിലേക്ക് മാറ്റുകയാണെങ്കിൽ എന്താണ് പ്രതീക്ഷിക്കേണ്ടതെന്ന ചോദ്യം ഉയർന്നുവരുന്നു വെളുത്ത ശബ്ദം? ഒരു ന്യൂറൽ നെറ്റ്‌വർക്ക് ഒന്നും ഉണ്ടാക്കാൻ പാടില്ല എന്ന് ഒരാൾ ഊഹിച്ചേക്കാം ഒരു നിശ്ചിത സംഖ്യകൂടാതെ ഔട്ട്പുട്ട് ലെയറിന്റെ ന്യൂറോണുകൾ സജീവമാക്കാൻ പാടില്ല അല്ലെങ്കിൽ, അവ സജീവമാക്കിയാൽ, പിന്നീട് ഒരു യൂണിഫോം രീതിയിൽ. പകരം, ന്യൂറൽ നെറ്റ്‌വർക്ക് പ്രതികരിക്കുന്നു ക്രമരഹിതമായ ചിത്രംവളരെ നിർദ്ദിഷ്ട നമ്പർ നൽകും.

ന്യൂറൽ നെറ്റ്‌വർക്ക് നമ്പർ തിരിച്ചറിയൽ പ്രവർത്തനങ്ങൾ നടത്തുന്നുണ്ടെങ്കിലും, അവ എങ്ങനെ എഴുതുന്നുവെന്ന് അതിന് അറിയില്ല. വാസ്തവത്തിൽ, അത്തരം ന്യൂറൽ നെറ്റ്വർക്കുകൾ തികച്ചും പഴയ സാങ്കേതികവിദ്യ, 80-90 കളിൽ വികസിപ്പിച്ചെടുത്തു. എന്നിരുന്നാലും, വിവിധ രസകരമായ പ്രശ്നങ്ങൾ പരിഹരിക്കാൻ കഴിയുന്ന നിലവിലെ ഓപ്ഷനുകൾ മനസിലാക്കുന്നതിന് മുമ്പ് ഇത്തരത്തിലുള്ള ന്യൂറൽ നെറ്റ്‌വർക്ക് എങ്ങനെ പ്രവർത്തിക്കുന്നുവെന്ന് മനസിലാക്കുന്നത് വളരെ ഉപയോഗപ്രദമാണ്. എന്നാൽ ഒരു ന്യൂറൽ നെറ്റ്‌വർക്കിന്റെ മറഞ്ഞിരിക്കുന്ന പാളികൾ എന്താണ് ചെയ്യുന്നതെന്ന് നിങ്ങൾ കൂടുതൽ ആഴത്തിൽ പരിശോധിക്കുമ്പോൾ, ന്യൂറൽ നെറ്റ്‌വർക്കിന് ബുദ്ധി കുറവാണെന്ന് തോന്നുന്നു.

ഘടനാപരവും ക്രമരഹിതവുമായ ഡാറ്റയിൽ നിന്ന് പഠിക്കുന്നു

തിരിച്ചറിയാനുള്ള ആധുനിക ന്യൂറൽ നെറ്റ്‌വർക്കിന്റെ ഒരു ഉദാഹരണം നോക്കാം വിവിധ വസ്തുക്കൾയഥാർത്ഥ ലോകം.

ഒബ്‌ജക്‌റ്റ് നാമങ്ങളും ചിത്രങ്ങളും പൊരുത്തപ്പെടാത്ത തരത്തിൽ നിങ്ങൾ ഡാറ്റാബേസ് ഷഫിൾ ചെയ്‌താൽ എന്ത് സംഭവിക്കും? വ്യക്തമായും, ഡാറ്റ ക്രമരഹിതമായി ലേബൽ ചെയ്‌തിരിക്കുന്നതിനാൽ, ടെസ്റ്റ് സെറ്റിലെ തിരിച്ചറിയൽ കൃത്യത മോശമായിരിക്കും. എന്നിരുന്നാലും, പരിശീലന സെറ്റിൽ, ഡാറ്റ ശരിയായി ലേബൽ ചെയ്‌തിരിക്കുന്ന അതേ തലത്തിൽ നിങ്ങൾക്ക് തിരിച്ചറിയൽ കൃത്യത ലഭിക്കും.

ഈ പ്രത്യേക അത്യാധുനിക ന്യൂറൽ നെറ്റ്‌വർക്കിന്റെ ദശലക്ഷക്കണക്കിന് ഭാരങ്ങൾ ഡാറ്റയും അതിന്റെ ടോക്കണുകളും കൃത്യമായി പൊരുത്തപ്പെടുത്തുന്നതിന് ട്യൂൺ ചെയ്യപ്പെടും. ചിലവ് ഫംഗ്‌ഷൻ കുറയ്ക്കുന്നത് ഏതെങ്കിലും ഇമേജ് പാറ്റേണുകളുമായി പൊരുത്തപ്പെടുന്നുണ്ടോ, കൂടാതെ ക്രമരഹിതമായി ലേബൽ ചെയ്‌ത ഡാറ്റയിലെ പരിശീലനം തെറ്റായി ലേബൽ ചെയ്‌ത ഡാറ്റയിലെ പരിശീലനത്തിൽ നിന്ന് വ്യത്യസ്തമാണോ?

ക്രമരഹിതമായി ലേബൽ ചെയ്‌ത ഡാറ്റയിൽ നിങ്ങൾ ഒരു ന്യൂറൽ നെറ്റ്‌വർക്കിനെ തിരിച്ചറിയൽ പ്രക്രിയയിൽ പരിശീലിപ്പിക്കുകയാണെങ്കിൽ, പരിശീലനം വളരെ സാവധാനത്തിലാണ് സംഭവിക്കുന്നത്, എടുത്ത ഘട്ടങ്ങളുടെ എണ്ണവും ചെലവ് വക്രവും ഏതാണ്ട് രേഖീയമായി പ്രവർത്തിക്കുന്നു. ഘടനാപരമായ ഡാറ്റയിലാണ് പരിശീലനം സംഭവിക്കുന്നതെങ്കിൽ, വളരെ ചെറിയ ആവർത്തനങ്ങളിൽ ചെലവ് പ്രവർത്തനത്തിന്റെ മൂല്യം കുറയുന്നു.

3. രീതി backpropagationപിശകുകൾ

ബാക്ക്‌പ്രൊപഗേഷൻ ഒരു പ്രധാന ന്യൂറൽ നെറ്റ്‌വർക്ക് പരിശീലന അൽഗോരിതം ആണ്. ആദ്യം നമുക്ക് ചർച്ച ചെയ്യാം പൊതുവായ രൂപരേഖ, എന്താണ് രീതി.

ന്യൂറോൺ ആക്റ്റിവേഷൻ നിയന്ത്രണം

അൽഗോരിതത്തിന്റെ ഓരോ ഘട്ടവും സൈദ്ധാന്തികമായി, പരിശീലന സെറ്റിന്റെ എല്ലാ ഉദാഹരണങ്ങളും ഉപയോഗിക്കുന്നു. നമുക്ക് രണ്ടിന്റെ ഒരു ഇമേജ് ഉണ്ടായിരിക്കാം, ഞങ്ങൾ പരിശീലനത്തിന്റെ തുടക്കത്തിലാണ്: ഭാരങ്ങളും ഷിഫ്റ്റുകളും ക്രമരഹിതമായി ക്രമീകരിച്ചിരിക്കുന്നു, കൂടാതെ ചിത്രം ഔട്ട്പുട്ട് ലെയറിന്റെ സജീവമാക്കലുകളുടെ ചില ക്രമരഹിതമായ പാറ്റേണുമായി പൊരുത്തപ്പെടുന്നു.

അവസാന ലെയറിന്റെ ആക്റ്റിവേഷനുകൾ നേരിട്ട് മാറ്റാൻ ഞങ്ങൾക്ക് കഴിയില്ല, പക്ഷേ ഔട്ട്‌പുട്ട് ലെയറിന്റെ ആക്റ്റിവേഷൻ പാറ്റേൺ മാറ്റാൻ ഞങ്ങൾക്ക് ഭാരങ്ങളെയും ഷിഫ്റ്റുകളെയും സ്വാധീനിക്കാൻ കഴിയും: അനുബന്ധ 2 ഒഴികെയുള്ള എല്ലാ ന്യൂറോണുകളുടെയും സജീവമാക്കൽ മൂല്യങ്ങൾ കുറയ്ക്കുക, കൂടാതെ ആക്റ്റിവേഷൻ മൂല്യം വർദ്ധിപ്പിക്കുക ആവശ്യമുള്ള ന്യൂറോൺ. ഈ സാഹചര്യത്തിൽ, ആവശ്യമുള്ള മൂല്യത്തിൽ നിന്ന് നിലവിലെ മൂല്യം കൂടുതലാണ്, കൂടുതൽ വർദ്ധനവും കുറവും ആവശ്യമാണ്.

ന്യൂറൽ നെറ്റ്‌വർക്ക് കോൺഫിഗറേഷൻ ഓപ്ഷനുകൾ

ഔട്ട്പുട്ട് ലെയറിലെ ന്യൂറോൺ രണ്ട് സജീവമാക്കുന്നതിന് അനുയോജ്യമായ ഒരു ന്യൂറോണിൽ ശ്രദ്ധ കേന്ദ്രീകരിക്കാം. നമ്മൾ ഓർക്കുന്നതുപോലെ, അതിന്റെ മൂല്യം മുൻ ലെയറിന്റെ ന്യൂറോണുകളുടെ ആക്റ്റിവേഷനുകളുടെയും ഷിഫ്റ്റിന്റെയും വെയ്റ്റഡ് ആകെത്തുകയാണ്, ഒരു സ്കെയിലിംഗ് ഫംഗ്ഷനിൽ (സിഗ്മോയിഡ് അല്ലെങ്കിൽ റെലു) പൊതിഞ്ഞ്.

അതിനാൽ, ഈ ആക്റ്റിവേഷന്റെ മൂല്യം വർദ്ധിപ്പിക്കുന്നതിന്, നമുക്ക് ഇവ ചെയ്യാനാകും:

  1. ഷിഫ്റ്റ് വർദ്ധിപ്പിക്കുക b.
  2. ഭാരം വർദ്ധിപ്പിക്കുക w i .
  3. മുമ്പത്തെ ലെയറിന്റെ ആക്ടിവേഷനുകൾ മാറ്റുക a i .

വെയ്റ്റഡ് സം ഫോർമുലയിൽ നിന്ന്, ഒരു ന്യൂറോണിന്റെ സജീവമാക്കലിന് ഏറ്റവും വലിയ സംഭാവന നൽകുന്നത് ഏറ്റവും സജീവമായ ന്യൂറോണുകളുമായുള്ള കണക്ഷനുമായി ബന്ധപ്പെട്ട ഭാരങ്ങളാണെന്ന് നിങ്ങൾക്ക് കാണാൻ കഴിയും. ബയോളജിക്കൽ ന്യൂറൽ നെറ്റ്‌വർക്കുകൾക്ക് സമീപമുള്ള ഒരു തന്ത്രം, മുമ്പത്തെ പാളിയിലെ അനുബന്ധ ന്യൂറോണുകളുടെ സജീവമാക്കലുകളുടെ വ്യാപ്തിക്ക് ആനുപാതികമായി ഭാരം w i വർദ്ധിപ്പിക്കുക എന്നതാണ്. ഏറ്റവും സജീവമായ ന്യൂറോണുകൾ ഏറ്റവും "ശക്തമായ" കണക്ഷനുകൾ ഉപയോഗിച്ച് മാത്രം സജീവമാക്കാൻ ആഗ്രഹിക്കുന്ന ന്യൂറോണുമായി ബന്ധിപ്പിച്ചിട്ടുണ്ടെന്ന് ഇത് മാറുന്നു.

സമാനമായ മറ്റൊരു സമീപനം, മുൻ പാളി a i യുടെ ന്യൂറോണുകളുടെ സജീവമാക്കൽ ഭാരം w i ന് ആനുപാതികമായി മാറ്റുക എന്നതാണ്. നമുക്ക് ന്യൂറോണുകളുടെ സജീവമാക്കൽ മാറ്റാൻ കഴിയില്ല, പക്ഷേ നമുക്ക് അനുബന്ധ ഭാരങ്ങളും ഷിഫ്റ്റുകളും മാറ്റാനും അങ്ങനെ ന്യൂറോണുകളുടെ പ്രവർത്തനത്തെ സ്വാധീനിക്കാനും കഴിയും.

Backpropagation

ന്യൂറോണുകളുടെ അവസാന പാളി ഔട്ട്പുട്ട് പാളിക്ക് സമാനമായി കണക്കാക്കാം. ഔട്ട്‌പുട്ട് ലെയറിന്റെ ആക്റ്റിവേഷനുകൾ മാറുന്നതിന് ഈ ലെയറിലെ ന്യൂറോണുകളുടെ സജീവമാക്കൽ എങ്ങനെ മാറണം എന്നതിനെക്കുറിച്ചുള്ള വിവരങ്ങൾ നിങ്ങൾ ശേഖരിക്കുന്നു.

നിലവിലെ ലെയറിലെ ഓരോ ന്യൂറോണും മുമ്പത്തെ എല്ലാ ന്യൂറോണുകളുമായും ബന്ധിപ്പിച്ചിരിക്കുന്നതിനാൽ, ഈ പ്രവർത്തനങ്ങളെല്ലാം രണ്ടിന് അനുയോജ്യമായ ന്യൂറോണുമായി മാത്രമല്ല, ഔട്ട്പുട്ട് ലെയറിന്റെ എല്ലാ ന്യൂറോണുകളുമായും സംഭവിക്കുന്നുവെന്ന് മനസ്സിലാക്കേണ്ടത് പ്രധാനമാണ്.

അവസാനത്തെ പാളിക്ക് ആവശ്യമായ ഈ മാറ്റങ്ങളെല്ലാം സംഗ്രഹിച്ച ശേഷം, അവസാനം മുതൽ രണ്ടാമത്തെ ലെയർ എങ്ങനെ മാറണമെന്ന് നിങ്ങൾ മനസ്സിലാക്കുന്നു. തുടർന്ന്, ആവർത്തിച്ച്, എല്ലാ ലെയറുകളുടെയും ഭാരത്തിന്റെയും പക്ഷപാതത്തിന്റെയും ഗുണവിശേഷതകൾ നിർണ്ണയിക്കാൻ നിങ്ങൾ അതേ പ്രക്രിയ ആവർത്തിക്കുന്നു.

ക്ലാസിക് ഗ്രേഡിയന്റ് ഇറക്കം

തൽഫലമായി, ഒരു ഇമേജിലെ മുഴുവൻ പ്രവർത്തനവും 13 ആയിരം ഭാരത്തിലും ഷിഫ്റ്റുകളിലും ആവശ്യമായ മാറ്റങ്ങൾ കണ്ടെത്തുന്നതിലേക്ക് നയിക്കുന്നു. പരിശീലന സെറ്റിന്റെ എല്ലാ ഉദാഹരണങ്ങളിലും പ്രവർത്തനം ആവർത്തിക്കുന്നതിലൂടെ, ഓരോ ഉദാഹരണത്തിനും നിങ്ങൾക്ക് മാറ്റ മൂല്യങ്ങൾ ലഭിക്കും, അത് നിങ്ങൾക്ക് ഓരോ പാരാമീറ്ററിനും വെവ്വേറെ ശരാശരി നൽകാം.

ഈ ശരാശരിയുടെ ഫലം കോസ്റ്റ് ഫംഗ്‌ഷന്റെ നെഗറ്റീവ് ഗ്രേഡിയന്റിന്റെ കോളം വെക്‌ടറിനെ പ്രതിനിധീകരിക്കുന്നു.

സ്ഥായിയായ ഗ്രേഡിയന്റ് ഇറക്കം

ഒരൊറ്റ ഘട്ടം കണക്കാക്കുന്നതിനുള്ള മുഴുവൻ പരിശീലന സെറ്റും പരിഗണിക്കുന്നത് ഗ്രേഡിയന്റ് ഇറക്ക പ്രക്രിയയെ മന്ദഗതിയിലാക്കുന്നു. അതിനാൽ, ഇനിപ്പറയുന്നവ സാധാരണയായി ചെയ്യുന്നു.

പരിശീലന സെറ്റ് ഡാറ്റ ക്രമരഹിതമായി കലർത്തി ഉപഗ്രൂപ്പുകളായി തിരിച്ചിരിക്കുന്നു, ഉദാഹരണത്തിന്, 100 ലേബൽ ചെയ്ത ചിത്രങ്ങൾ. അടുത്തതായി, ഒരു ഉപഗ്രൂപ്പിനുള്ള ഗ്രേഡിയന്റ് ഡിസെന്റ് സ്റ്റെപ്പ് അൽഗോരിതം കണക്കാക്കുന്നു.

പരിശീലന സെറ്റിലെ എല്ലാ ഡാറ്റയും ആവശ്യമുള്ള കോസ്റ്റ് ഫംഗ്‌ഷന്റെ യഥാർത്ഥ ഗ്രേഡിയന്റല്ല ഇത്, എന്നാൽ ഡാറ്റ ക്രമരഹിതമായി തിരഞ്ഞെടുത്തതിനാൽ, ഇത് ഒരു നല്ല ഏകദേശം നൽകുന്നു, പ്രധാനമായി, കമ്പ്യൂട്ടേഷണൽ വേഗതയിൽ ഗണ്യമായ വർദ്ധനവ് അനുവദിക്കുന്നു.

ആധുനികവൽക്കരിച്ച ഗ്രേഡിയന്റ് വംശത്തിന്റെ പഠന വക്രത ഞങ്ങൾ പ്ലോട്ട് ചെയ്താൽ, അത് ഒരു കുന്നിൻ മുകളിലുള്ള ഏകീകൃതവും ലക്ഷ്യബോധമുള്ളതുമായ ഇറക്കം പോലെയല്ല, മറിച്ച് ഒരു മദ്യപാനിയുടെ വളഞ്ഞുപുളഞ്ഞ പാത പോലെയാകും, പക്ഷേ കൂടുതൽ ചെയ്യുന്നു. ദ്രുത നടപടികൾകൂടാതെ ഒരു മിനിമം ഫംഗ്ഷനിലേക്ക് വരുന്നു.

ഈ സമീപനത്തെ സ്റ്റോക്കാസ്റ്റിക് ഗ്രേഡിയന്റ് ഡിസെന്റ് എന്ന് വിളിക്കുന്നു.

കൂട്ടിച്ചേർക്കൽ. Backpropagation ന് പിന്നിലെ മഠം

ബാക്ക്‌പ്രൊപഗേഷൻ അൽഗോരിതത്തിന്റെ ഗണിതശാസ്ത്ര പശ്ചാത്തലത്തിലേക്ക് നമുക്ക് ഇപ്പോൾ കുറച്ചുകൂടി ഔപചാരികമായി നോക്കാം.

പ്രാകൃത ന്യൂറൽ നെറ്റ്‌വർക്ക് മാതൃക

ഓരോ ലെയറിനും ഒരു ന്യൂറോൺ മാത്രമുള്ള നാല് പാളികൾ അടങ്ങുന്ന, വളരെ ലളിതമായ ഒരു ന്യൂറൽ നെറ്റ്‌വർക്ക് ഉപയോഗിച്ച് നമ്മുടെ പരിഗണന ആരംഭിക്കാം. അതനുസരിച്ച്, നെറ്റ്‌വർക്കിന് മൂന്ന് വെയ്റ്റുകളും മൂന്ന് ഷിഫ്റ്റുകളും ഉണ്ട്. ഈ വേരിയബിളുകളോട് പ്രവർത്തനം എത്രമാത്രം സെൻസിറ്റീവ് ആണെന്ന് നമുക്ക് നോക്കാം.

അവസാനത്തെ രണ്ട് ന്യൂറോണുകൾ തമ്മിലുള്ള ബന്ധത്തിൽ നിന്ന് നമുക്ക് ആരംഭിക്കാം. അവസാന പാളി L, അവസാനത്തെ പാളി L-1, അവയിൽ കിടക്കുന്ന ന്യൂറോണുകളുടെ സജീവമാക്കൽ എന്നിവയെ സൂചിപ്പിക്കാം a (L), a (L-1) .

ചെലവ് പ്രവർത്തനം

പരിശീലന ഉദാഹരണം നൽകിയ അവസാന ന്യൂറോണിന്റെ ആവശ്യമുള്ള ആക്റ്റിവേഷൻ മൂല്യം y ആണെന്ന് സങ്കൽപ്പിക്കുക, ഉദാഹരണത്തിന്, 0 അല്ലെങ്കിൽ 1 ന് തുല്യമാണ്. അതിനാൽ, ഈ ഉദാഹരണത്തിന് ചെലവ് ഫംഗ്ഷൻ ഇങ്ങനെ നിർവചിച്ചിരിക്കുന്നു.

C 0 = (a (L) - y) 2.

ഈ അവസാന ന്യൂറോണിന്റെ സജീവമാക്കൽ ഒരു വെയ്റ്റഡ് സം അല്ലെങ്കിൽ വെയ്റ്റഡ് തുകയുടെ ഒരു സ്കെയിലിംഗ് ഫംഗ്ഷനാണ് നൽകുന്നത് എന്ന് ഓർക്കുക:

a(L) = σ (w (L) a (L-1) + b (L)).

സംക്ഷിപ്തതയ്‌ക്കായി, വെയ്റ്റഡ് തുകയെ ഉചിതമായ സബ്‌സ്‌ക്രിപ്‌റ്റുള്ള ഒരു അക്ഷരം ഉപയോഗിച്ച് സൂചിപ്പിക്കാൻ കഴിയും, ഉദാഹരണത്തിന് z(L):

a(L) = σ (z(L)).

ഭാരം w (L) യിലെ ചെറിയ മാറ്റങ്ങൾ ചെലവ് പ്രവർത്തനത്തിന്റെ മൂല്യത്തെ എങ്ങനെ ബാധിക്കുന്നു എന്ന് നമുക്ക് നോക്കാം. അഥവാ ഗണിത ഭാഷ, ഭാരം ∂C 0 /∂w (L) യുമായി ബന്ധപ്പെട്ട് കോസ്റ്റ് ഫംഗ്‌ഷന്റെ ഡെറിവേറ്റീവ് എന്താണ്?

C 0-ലെ മാറ്റം a (L)-ലെ മാറ്റത്തെ ആശ്രയിച്ചിരിക്കുന്നു, അത് w (L)-നെ ആശ്രയിക്കുന്ന z (L)-ലെ മാറ്റത്തെ ആശ്രയിച്ചിരിക്കുന്നു. സമാന ഡെറിവേറ്റീവുകൾ എടുക്കുന്നതിനുള്ള നിയമം അനുസരിച്ച്, ആവശ്യമുള്ള മൂല്യം ഇനിപ്പറയുന്ന ഭാഗിക ഡെറിവേറ്റീവുകളുടെ ഉൽപ്പന്നത്താൽ നിർണ്ണയിക്കപ്പെടുന്നു:

∂C 0 /∂w (L) = ∂z (L) /∂w (L) ∂a (L) /∂z (L) ∂C 0 /∂a (L) .

ഡെറിവേറ്റീവുകളുടെ നിർവ്വചനം

നമുക്ക് അനുബന്ധ ഡെറിവേറ്റീവുകൾ കണക്കാക്കാം:

∂C 0 /∂a (L) = 2(a (L) - y)

അതായത്, ഡെറിവേറ്റീവ് നിലവിലെ ആക്റ്റിവേഷൻ മൂല്യവും ആവശ്യമുള്ളതും തമ്മിലുള്ള വ്യത്യാസത്തിന് ആനുപാതികമാണ്.

ശൃംഖലയിലെ ശരാശരി ഡെറിവേറ്റീവ് സ്കെയിലിംഗ് ഫംഗ്ഷന്റെ ഡെറിവേറ്റീവ് ആണ്:

∂a (L) /∂z (L) = σ"(z (L))

അവസാനമായി, അവസാന ഘടകം വെയ്റ്റഡ് തുകയുടെ ഡെറിവേറ്റീവ് ആണ്:

∂z (L) /∂w (L) = a (L-1)

അതിനാൽ, മുമ്പത്തെ ന്യൂറോൺ എത്രത്തോളം സജീവമാണ് എന്നതിനെ അടിസ്ഥാനമാക്കിയുള്ള മാറ്റം നിർണ്ണയിക്കപ്പെടുന്നു. ജ്വലിക്കുന്ന ന്യൂറോണുകൾ ഒരു ശക്തമായ ബന്ധം ഉണ്ടാക്കുന്നു എന്ന മുകളിൽ സൂചിപ്പിച്ച ആശയവുമായി ഇത് ബന്ധപ്പെട്ടിരിക്കുന്നു.

അന്തിമ ആവിഷ്കാരം:

∂C 0 /∂w (L) = 2(a (L) - y) σ"(z (L)) a (L-1)

Backpropagation

പരിശീലന സാമ്പിൾ C 0 ന്റെ ഒരു പ്രത്യേക ഉദാഹരണത്തിന്റെ വിലയ്ക്ക് മാത്രമാണ് നിശ്ചിത ഡെറിവേറ്റീവ് എന്ന് ഓർക്കുക. കോസ്റ്റ് ഫംഗ്‌ഷൻ സിക്ക്, ഞങ്ങൾ ഓർക്കുന്നതുപോലെ, പരിശീലന സെറ്റിന്റെ എല്ലാ ഉദാഹരണങ്ങളിലും ഞങ്ങൾ ശരാശരി നൽകേണ്ടതുണ്ട്:

∂C/∂w (L) = 1/n Σ ∂C k /∂w (L)

ഒരു പ്രത്യേക w(L) ന്റെ ഫലമായുണ്ടാകുന്ന ശരാശരി മൂല്യം കോസ്റ്റ് ഫംഗ്‌ഷന്റെ ഗ്രേഡിയന്റിന്റെ ഘടകങ്ങളിലൊന്നാണ്. ഷിഫ്റ്റുകൾക്കുള്ള പരിഗണന, ഭാരം സംബന്ധിച്ച മേൽപ്പറഞ്ഞ പരിഗണനയ്ക്ക് സമാനമാണ്.

അനുബന്ധ ഡെറിവേറ്റീവുകൾ ലഭിച്ച ശേഷം, മുമ്പത്തെ ലെയറുകളുടെ പരിഗണന തുടരാം.

ഒരു ലെയറിൽ ധാരാളം ന്യൂറോണുകളുള്ള മോഡൽ

എന്നിരുന്നാലും, ഒരു ന്യൂറോൺ വീതമുള്ള പാളികളിൽ നിന്ന് യഥാർത്ഥമായി കണക്കാക്കപ്പെട്ട ന്യൂറൽ നെറ്റ്‌വർക്കിലേക്ക് എങ്ങനെ മാറ്റം വരുത്താം. എല്ലാം സമാനമായി കാണപ്പെടും, ലെയറിനുള്ളിലെ ന്യൂറോണിന്റെ എണ്ണം പ്രതിഫലിപ്പിക്കുന്ന ഒരു അധിക സബ്‌സ്‌ക്രിപ്‌റ്റ് ചേർക്കും, കൂടാതെ ഭാരങ്ങൾക്ക് ഇരട്ട സബ്‌സ്‌ക്രിപ്‌റ്റുകൾ ഉണ്ടാകും, ഉദാഹരണത്തിന്, jk, ഒരു ലെയറിൽ നിന്ന് മറ്റൊരു ന്യൂറോൺ കെയുമായി ന്യൂറോണിന്റെ കണക്ഷൻ പ്രതിഫലിപ്പിക്കുന്നു. ലെയർ L-1 ൽ.

അന്തിമ ഡെറിവേറ്റീവുകൾ നൽകുന്നു ആവശ്യമായ ഘടകങ്ങൾഗ്രേഡിയന്റ് ∇C യുടെ ഘടകങ്ങൾ നിർണ്ണയിക്കാൻ.

GitHub-ലെ പരിശീലന ശേഖരണവും സൂചിപ്പിച്ച MNIST അക്ക തിരിച്ചറിയൽ ഡാറ്റാസെറ്റും ഉപയോഗിച്ച് നിങ്ങൾക്ക് വിവരിച്ച അക്ക തിരിച്ചറിയൽ ടാസ്‌ക് പരിശീലിക്കാം.

  • ട്യൂട്ടോറിയൽ

ഇമേജ് റെക്കഗ്നിഷന്റെ അടിസ്ഥാനകാര്യങ്ങൾ ഉൾക്കൊള്ളുന്ന ഒരു പൊതു ലേഖനം എഴുതാൻ ഞാൻ പണ്ടേ ആഗ്രഹിച്ചിരുന്നു, ഇത് ഒരു വഴികാട്ടിയാണ് അടിസ്ഥാന രീതികൾ, അവ എപ്പോൾ ഉപയോഗിക്കണം, എന്തൊക്കെ പ്രശ്‌നങ്ങൾ പരിഹരിക്കും, വൈകുന്നേരങ്ങളിൽ മുട്ടുകുത്തി നിന്ന് എന്ത് ചെയ്യാൻ കഴിയും, 20 പേരുടെ ഒരു ടീം ഇല്ലാതെ ചിന്തിക്കാതിരിക്കുന്നതാണ് നല്ലത്.

ഞാൻ വളരെക്കാലമായി ഒപ്റ്റിക്കൽ റെക്കഗ്നിഷനിൽ ചില ലേഖനങ്ങൾ എഴുതുന്നു, അതിനാൽ ആളുകൾ എനിക്ക് മാസത്തിൽ രണ്ട് തവണ എഴുതുന്നു വിവിധ ആളുകൾഈ വിഷയത്തെക്കുറിച്ചുള്ള ചോദ്യങ്ങൾക്കൊപ്പം. ചിലപ്പോൾ നിങ്ങൾ അവരുടെ കൂടെ ജീവിക്കുന്നു എന്ന തോന്നൽ ഉണ്ടാകും വ്യത്യസ്ത ലോകങ്ങൾ. ഒരു വശത്ത്, ആ വ്യക്തി മിക്കവാറും ബന്ധപ്പെട്ട വിഷയത്തിൽ പ്രൊഫഷണലാണെന്ന് നിങ്ങൾ മനസ്സിലാക്കുന്നു, എന്നാൽ ഒപ്റ്റിക്കൽ റെക്കഗ്നിഷൻ രീതികളെക്കുറിച്ച് വളരെ കുറച്ച് മാത്രമേ അറിയൂ. ഏറ്റവും അരോചകമായ കാര്യം, അവൻ അടുത്തുള്ള ഒരു വിജ്ഞാന മേഖലയിൽ നിന്ന് ഒരു രീതി പ്രയോഗിക്കാൻ ശ്രമിക്കുന്നു എന്നതാണ്, അത് യുക്തിസഹമാണ്, പക്ഷേ ഇമേജ് തിരിച്ചറിയലിൽ പൂർണ്ണമായും പ്രവർത്തിക്കുന്നില്ല, പക്ഷേ ഇത് മനസ്സിലാക്കുന്നില്ല, നിങ്ങൾ അവനോട് എന്തെങ്കിലും പറയാൻ തുടങ്ങിയാൽ വളരെ അസ്വസ്ഥനാകും. വളരെ അടിസ്ഥാനകാര്യങ്ങൾ. അടിസ്ഥാനകാര്യങ്ങളിൽ നിന്ന് പറയാൻ വളരെയധികം സമയമെടുക്കുന്നു, അത് പലപ്പോഴും ലഭ്യമല്ല, അത് കൂടുതൽ സങ്കടകരമാകും.

ഇമേജ് തിരിച്ചറിയൽ രീതികളിൽ ഒരിക്കലും പ്രവർത്തിച്ചിട്ടില്ലാത്ത ഒരു വ്യക്തിക്ക്, 10-15 മിനിറ്റിനുള്ളിൽ, വിഷയവുമായി പൊരുത്തപ്പെടുന്ന ലോകത്തിന്റെ ഒരു നിശ്ചിത അടിസ്ഥാന ചിത്രം അവന്റെ തലയിൽ സൃഷ്ടിക്കാനും ഏത് ദിശയിലാണ് കുഴിക്കേണ്ടതെന്ന് മനസിലാക്കാനും ഈ ലേഖനം ഉദ്ദേശിച്ചുള്ളതാണ്. ഇവിടെ വിവരിച്ചിരിക്കുന്ന പല സാങ്കേതിക വിദ്യകളും റഡാറിനും ഓഡിയോ പ്രോസസ്സിംഗിനും ബാധകമാണ്.
സാധ്യതയുള്ള ഒരു ഉപഭോക്താവിനോട് അല്ലെങ്കിൽ ഒപ്റ്റിക്കൽ റെക്കഗ്നിഷൻ ചെയ്യാൻ ആഗ്രഹിക്കുന്ന ഒരു വ്യക്തിയോട് ഞങ്ങൾ എപ്പോഴും പറയാൻ തുടങ്ങുന്ന രണ്ട് തത്വങ്ങൾ ഉപയോഗിച്ച് ഞാൻ ആരംഭിക്കും:

  • ഒരു പ്രശ്നം പരിഹരിക്കുമ്പോൾ, എല്ലായ്പ്പോഴും ഏറ്റവും ലളിതമായതിൽ നിന്ന് പോകുക. ഒരു വ്യക്തിയെ പിന്തുടരുന്നതിനേക്കാൾ ഒരു ഓറഞ്ച് ടാഗ് ഇടുന്നത് വളരെ എളുപ്പമാണ്, അവനെ കാസ്കേഡുകളിൽ ഹൈലൈറ്റ് ചെയ്യുന്നു. ഒരു സൂപ്പർ റെസല്യൂഷൻ അൽഗോരിതം വികസിപ്പിക്കുന്നതിനേക്കാൾ ഉയർന്ന റെസല്യൂഷനുള്ള ക്യാമറ എടുക്കുന്നത് വളരെ എളുപ്പമാണ്.
  • ഒപ്റ്റിക്കൽ റെക്കഗ്നിഷൻ രീതികളിലെ പ്രശ്നത്തിന്റെ കർശനമായ രൂപീകരണം സിസ്റ്റം പ്രോഗ്രാമിംഗ് പ്രശ്നങ്ങളേക്കാൾ പ്രാധാന്യമുള്ള ഓർഡറുകളാണ്: ഒന്ന് അമിതമായ വാക്ക്സാങ്കേതിക സവിശേഷതകളിലേക്ക് 50% ജോലി ചേർക്കാൻ കഴിയും.
  • ജോലികളിൽ അംഗീകാരമില്ല സാർവത്രിക പരിഹാരങ്ങൾ. "ഏത് ലിഖിതവും തിരിച്ചറിയുന്ന" ഒരു അൽഗോരിതം ഉണ്ടാക്കാൻ നിങ്ങൾക്ക് കഴിയില്ല. തെരുവിലെ ഒരു അടയാളവും വാചകത്തിന്റെ ഷീറ്റും അടിസ്ഥാനപരമായി വ്യത്യസ്ത വസ്തുക്കളാണ്. ഒരു പൊതു അൽഗോരിതം സൃഷ്ടിക്കുന്നത് ഒരുപക്ഷേ സാധ്യമാണ് (ഇവിടെ Google-ൽ നിന്നുള്ള ഒരു നല്ല ഉദാഹരണമുണ്ട്), എന്നാൽ ഇതിന് ഒരു വലിയ ടീമിൽ നിന്ന് ധാരാളം ജോലികൾ ആവശ്യമായി വരും കൂടാതെ ഡസൻ കണക്കിന് വ്യത്യസ്ത സബ്റൂട്ടീനുകൾ അടങ്ങിയിരിക്കും.
  • ഓപ്പൺസിവി എന്നത് നിരവധി രീതികളുള്ള ഒരു ബൈബിളാണ്, കൂടാതെ ഏത് പ്രശ്‌നത്തിന്റെയും 50% പരിഹരിക്കാൻ കഴിയും, എന്നാൽ യഥാർത്ഥത്തിൽ ചെയ്യാൻ കഴിയുന്നതിന്റെ ഒരു ചെറിയ ഭാഗം മാത്രമാണ് ഓപ്പൺസിവി. ഒരു പഠനത്തിൽ, നിഗമനങ്ങൾ എഴുതി: "ഓപ്പൺസിവി രീതികൾ ഉപയോഗിച്ച് പ്രശ്നം പരിഹരിക്കാൻ കഴിയില്ല, അതിനാൽ ഇത് പരിഹരിക്കാനാവില്ല." ഇത് ഒഴിവാക്കാൻ ശ്രമിക്കുക, ഓപ്പൺസിവി ടെംപ്ലേറ്റുകൾ ഉപയോഗിക്കാതെ, അലസമായിരിക്കരുത്, ഓരോ തവണയും ആദ്യം മുതൽ നിലവിലെ ടാസ്ക്ക് നിർണ്ണായകമായി വിലയിരുത്തുക.
ഏതെങ്കിലും സാർവത്രിക ഉപദേശം നൽകുന്നത് വളരെ ബുദ്ധിമുട്ടാണ്, അല്ലെങ്കിൽ അനിയന്ത്രിതമായ പ്രശ്നങ്ങൾക്ക് പരിഹാരം ഉണ്ടാക്കാൻ കഴിയുന്ന ഒരുതരം ഘടന എങ്ങനെ സൃഷ്ടിക്കാമെന്ന് പറയുക. കമ്പ്യൂട്ടർ ദർശനം. ഈ ലേഖനത്തിന്റെ ഉദ്ദേശം എന്തെല്ലാം ഉപയോഗിക്കാനാകുമെന്നതാണ്. നിലവിലുള്ള രീതികളെ മൂന്ന് ഗ്രൂപ്പുകളായി തിരിക്കാൻ ഞാൻ ശ്രമിക്കും. ആദ്യ ഗ്രൂപ്പ് പ്രാഥമിക ഫിൽട്ടറിംഗ്, ഇമേജ് തയ്യാറാക്കൽ എന്നിവയാണ്. രണ്ടാമത്തെ ഗ്രൂപ്പ് ഫിൽട്ടറിംഗ് ഫലങ്ങളുടെ ലോജിക്കൽ പ്രോസസ്സിംഗ് ആണ്. മൂന്നാമത്തെ ഗ്രൂപ്പ് ലോജിക്കൽ പ്രോസസ്സിംഗിനെ അടിസ്ഥാനമാക്കിയുള്ള തീരുമാനമെടുക്കൽ അൽഗോരിതങ്ങളാണ്. ഗ്രൂപ്പുകൾ തമ്മിലുള്ള അതിരുകൾ വളരെ ഏകപക്ഷീയമാണ്. ഒരു പ്രശ്നം പരിഹരിക്കുന്നതിന്, എല്ലാ ഗ്രൂപ്പുകളിൽ നിന്നുമുള്ള രീതികൾ ഉപയോഗിക്കേണ്ടത് എല്ലായ്പ്പോഴും ആവശ്യമില്ല; ചിലപ്പോൾ രണ്ട് മതി, ചിലപ്പോൾ ഒന്ന് പോലും.

ഇവിടെ നൽകിയിരിക്കുന്ന രീതികളുടെ പട്ടിക പൂർണ്ണമല്ല. ഞാൻ എഴുതാത്ത അഭിപ്രായങ്ങളിൽ വിമർശനാത്മക രീതികൾ ചേർക്കാനും ഓരോന്നിനും 2-3 അനുബന്ധ വാക്കുകൾ ആട്രിബ്യൂട്ട് ചെയ്യാനും ഞാൻ നിർദ്ദേശിക്കുന്നു.

ഭാഗം 1. ഫിൽട്ടറേഷൻ

ഈ ഗ്രൂപ്പിൽ ചിത്രങ്ങൾ വിശകലനം ചെയ്യാതെ താൽപ്പര്യമുള്ള മേഖലകൾ തിരഞ്ഞെടുക്കാൻ നിങ്ങളെ അനുവദിക്കുന്ന രീതികൾ ഞാൻ സ്ഥാപിച്ചു. ഈ രീതികളിൽ മിക്കവയും ചിത്രത്തിലെ എല്ലാ പോയിന്റുകളിലേക്കും ഏതെങ്കിലും തരത്തിലുള്ള ഒറ്റ പരിവർത്തനം പ്രയോഗിക്കുന്നു. ഫിൽട്ടറിംഗ് തലത്തിൽ, ഇമേജ് വിശകലനം നടത്തുന്നില്ല, എന്നാൽ ഫിൽട്ടർ ചെയ്ത പോയിന്റുകൾ പ്രത്യേക സ്വഭാവസവിശേഷതകളുള്ള മേഖലകളായി കണക്കാക്കാം.
പരിധി പ്രകാരം ബൈനറൈസേഷൻ, ഹിസ്റ്റോഗ്രാം ഏരിയ തിരഞ്ഞെടുക്കൽ
ത്രെഷോൾഡ് പ്രകാരം ചിത്രത്തിന്റെ ബൈനറൈസേഷൻ ആണ് ഏറ്റവും ലളിതമായ പരിവർത്തനം. RGB, ഗ്രേസ്‌കെയിൽ ഇമേജുകൾക്ക്, ത്രെഷോൾഡ് വർണ്ണ മൂല്യമാണ്. അത്തരമൊരു പരിവർത്തനം മതിയാകുമ്പോൾ അനുയോജ്യമായ പ്രശ്നങ്ങളുണ്ട്. ഒരു വെള്ള പേപ്പറിൽ ഒബ്ജക്റ്റുകൾ സ്വയമേവ തിരഞ്ഞെടുക്കാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നുവെന്ന് കരുതുക:




ബൈനറൈസേഷൻ സംഭവിക്കുന്ന പരിധി തിരഞ്ഞെടുക്കുന്നത് ബൈനറൈസേഷൻ പ്രക്രിയയെ തന്നെ നിർണ്ണയിക്കുന്നു. IN ഈ സാഹചര്യത്തിൽ, ചിത്രം ശരാശരി നിറം കൊണ്ട് ബൈനറൈസ് ചെയ്തു. സാധാരണഗതിയിൽ, ഒരു പരിധി തിരഞ്ഞെടുക്കുന്ന ഒരു അൽഗോരിതം ഉപയോഗിച്ചാണ് ബൈനറൈസേഷൻ നടത്തുന്നത്. അത്തരമൊരു അൽഗോരിതം പ്രതീക്ഷയുടെയോ മോഡിന്റെയോ തിരഞ്ഞെടുപ്പായിരിക്കാം. അല്ലെങ്കിൽ ഹിസ്റ്റോഗ്രാമിലെ ഏറ്റവും വലിയ കൊടുമുടി നിങ്ങൾക്ക് തിരഞ്ഞെടുക്കാം.

ഹിസ്റ്റോഗ്രാമുകൾക്കൊപ്പം പ്രവർത്തിക്കുമ്പോൾ ബൈനറൈസേഷൻ വളരെ രസകരമായ ഫലങ്ങൾ നൽകും, ഞങ്ങൾ ഒരു ചിത്രം RGB-യിലല്ല, HSV-യിൽ പരിഗണിക്കുന്ന സാഹചര്യത്തിൽ ഉൾപ്പെടെ. ഉദാഹരണത്തിന്, താൽപ്പര്യമുള്ള സെഗ്മെന്റ് നിറങ്ങൾ. ഈ തത്വത്തിൽ, നിങ്ങൾക്ക് ഒരു ടാഗ് ഡിറ്റക്ടറും മനുഷ്യ ചർമ്മ ഡിറ്റക്ടറും നിർമ്മിക്കാൻ കഴിയും.
ക്ലാസിക്കൽ ഫിൽട്ടറിംഗ്: ഫ്യൂറിയർ, ലോ-പാസ് ഫിൽട്ടർ, ഹൈ-പാസ് ഫിൽട്ടർ
ക്ലാസിക് റഡാർ ഫിൽട്ടറിംഗ്, സിഗ്നൽ പ്രോസസ്സിംഗ് രീതികൾ വിവിധ പാറ്റേൺ റെക്കഗ്നിഷൻ ടാസ്ക്കുകളിൽ വിജയകരമായി പ്രയോഗിക്കാൻ കഴിയും. പരമ്പരാഗത രീതിചിത്രങ്ങളിൽ ഒരിക്കലും ഉപയോഗിക്കാത്ത റഡാറിൽ ശുദ്ധമായ രൂപം, ഫൂറിയർ രൂപാന്തരമാണ് (കൂടുതൽ വ്യക്തമായി പറഞ്ഞാൽ, FFT). ഏകമാനമായ ഫോറിയർ പരിവർത്തനം ഉപയോഗിക്കുന്ന ചില അപവാദങ്ങളിൽ ഒന്ന് ഇമേജ് കംപ്രഷൻ ആണ്. ഇമേജ് വിശകലനത്തിനായി, ഒരു മാനുഷിക പരിവർത്തനം സാധാരണയായി മതിയാകില്ല; നിങ്ങൾ കൂടുതൽ റിസോഴ്സ്-ഇന്റൻസീവ് ദ്വിമാന പരിവർത്തനം ഉപയോഗിക്കേണ്ടതുണ്ട്.

കുറച്ച് ആളുകൾ ഇത് യഥാർത്ഥത്തിൽ കണക്കാക്കുന്നു; സാധാരണയായി, ഉയർന്ന (HPF) അല്ലെങ്കിൽ കുറഞ്ഞ (LPF) ആവൃത്തികൾക്കായി ട്യൂൺ ചെയ്‌ത ഒരു റെഡിമെയ്ഡ് ഫിൽട്ടർ ഉപയോഗിച്ച് താൽപ്പര്യമുള്ള മേഖലയുടെ പരിവർത്തനം ഉപയോഗിക്കുന്നത് വളരെ വേഗത്തിലും എളുപ്പത്തിലും ആണ്. ഈ രീതി, തീർച്ചയായും, സ്പെക്ട്രം വിശകലനം അനുവദിക്കുന്നില്ല, പക്ഷേ ഇൻ നിർദ്ദിഷ്ട ചുമതലവീഡിയോ പ്രോസസ്സിംഗിന് സാധാരണയായി വിശകലനമല്ല, ഫലങ്ങൾ ആവശ്യമാണ്.


ഏറ്റവും ലളിതമായ ഉദാഹരണങ്ങൾഅടിവരയിടൽ നടപ്പിലാക്കുന്ന ഫിൽട്ടറുകൾ കുറഞ്ഞ ആവൃത്തികൾ(ഗൗസിയൻ ഫിൽട്ടർ) കൂടാതെ ഉയർന്ന ആവൃത്തികൾ(ഗബോർ ഫിൽട്ടർ).
ഓരോ ഇമേജ് പോയിന്റിനും, ഒരു വിൻഡോ തിരഞ്ഞെടുത്ത് അതേ വലുപ്പത്തിലുള്ള ഒരു ഫിൽട്ടർ ഉപയോഗിച്ച് ഗുണിക്കുന്നു. അത്തരമൊരു പരിവർത്തനത്തിന്റെ ഫലം ഒരു പുതിയ പോയിന്റ് മൂല്യമാണ്. ലോ-പാസ് ഫിൽട്ടറുകളും ഹൈ-പാസ് ഫിൽട്ടറുകളും നടപ്പിലാക്കുമ്പോൾ, ഇനിപ്പറയുന്ന തരത്തിലുള്ള ചിത്രങ്ങൾ ലഭിക്കും:



തരംഗങ്ങൾ
എന്നാൽ സിഗ്നലുമായി പരിവർത്തനം ചെയ്യുന്നതിനായി ഞങ്ങൾ ചില അനിയന്ത്രിതമായ സ്വഭാവ സവിശേഷതകൾ ഉപയോഗിച്ചാലോ? അപ്പോൾ അതിനെ "Wavelet Transform" എന്ന് വിളിക്കും. തരംഗങ്ങളുടെ ഈ നിർവചനം ശരിയല്ല, എന്നാൽ പരമ്പരാഗതമായി, പല ടീമുകളിലും, ഈ പാറ്റേണിന്റെ ഒരു മാതൃക ഉപയോഗിച്ച് കൺവ്യൂഷൻ ഉപയോഗിച്ച് ഒരു ഇമേജിലെ അനിയന്ത്രിതമായ പാറ്റേണിനായുള്ള തിരയലാണ് തരംഗ വിശകലനം. ഒരു സെറ്റ് ഉണ്ട് ക്ലാസിക്കൽ പ്രവർത്തനങ്ങൾ, വേവ്ലെറ്റ് വിശകലനത്തിൽ ഉപയോഗിക്കുന്നു. ഹാർ വേവ്‌ലെറ്റ്, മോർലെറ്റ് വേവ്‌ലെറ്റ്, മെക്‌സിക്കൻ ഹാറ്റ് വേവ്‌ലെറ്റ് തുടങ്ങിയവ ഇതിൽ ഉൾപ്പെടുന്നു. എന്റെ മുമ്പത്തെ നിരവധി ലേഖനങ്ങൾ (,) ഉണ്ടായിരുന്ന ഹാർ പ്രിമിറ്റീവുകൾ ദ്വിമാന സ്ഥലത്തിനായുള്ള അത്തരം പ്രവർത്തനങ്ങളുമായി ബന്ധപ്പെട്ടിരിക്കുന്നു.


ക്ലാസിക്കൽ തരംഗങ്ങളുടെ 4 ഉദാഹരണങ്ങളാണ് മുകളിൽ. 3-ഡൈമൻഷണൽ ഹാർ വേവ്ലെറ്റ്, 2-ഡൈമൻഷണൽ മേയർ വേവ്ലെറ്റ്, മെക്സിക്കൻ ഹാറ്റ് വേവ്ലെറ്റ്, ഡൗബെച്ചീസ് വേവ്ലെറ്റ്. ഒരു നല്ല ഉദാഹരണംവേവ്‌ലെറ്റുകളുടെ വിപുലീകൃത വ്യാഖ്യാനം ഉപയോഗിക്കുന്നത് കണ്ണിൽ ഒരു തിളക്കം കണ്ടെത്തുന്നതിനുള്ള പ്രശ്നമാണ്, ഇതിന് തരംഗമാണ് തിളക്കം:

ക്ലാസിക് തരംഗങ്ങൾ സാധാരണയായി ഇമേജ് കംപ്രഷൻ അല്ലെങ്കിൽ ഇമേജ് വർഗ്ഗീകരണത്തിനായി ഉപയോഗിക്കുന്നു (ചുവടെ വിവരിക്കുന്നത്).
പരസ്പരബന്ധം
എന്റെ ഭാഗത്തുനിന്നുള്ള തരംഗങ്ങളുടെ അത്തരമൊരു സ്വതന്ത്ര വ്യാഖ്യാനത്തിന് ശേഷം, അവയ്ക്ക് അടിവരയിടുന്ന യഥാർത്ഥ പരസ്പരബന്ധം പരാമർശിക്കേണ്ടതാണ്. ചിത്രങ്ങൾ ഫിൽട്ടർ ചെയ്യുമ്പോൾ ഇത് ഒഴിച്ചുകൂടാനാവാത്ത ഉപകരണം. ഷിഫ്റ്റുകളോ ഒപ്റ്റിക്കൽ ഫ്ലോകളോ കണ്ടെത്താൻ ഒരു വീഡിയോ സ്ട്രീമിനെ പരസ്പരബന്ധിതമാക്കുകയാണ് ഒരു ക്ലാസിക് ആപ്ലിക്കേഷൻ. ഏറ്റവും ലളിതമായ ഷിഫ്റ്റ് ഡിറ്റക്ടർ, ഒരർത്ഥത്തിൽ, ഒരു ഡിഫറൻസ് കോറിലേറ്ററാണ്. ചിത്രങ്ങൾ പരസ്പരം ബന്ധമില്ലാത്തിടത്ത് ചലനമുണ്ടായിരുന്നു.

ഫിൽട്ടറിംഗ് പ്രവർത്തനങ്ങൾ
ഫിൽട്ടറുകളുടെ രസകരമായ ഒരു ക്ലാസ് ഫംഗ്ഷൻ ഫിൽട്ടറിംഗ് ആണ്. ലളിതമായി കണ്ടുപിടിക്കാൻ നിങ്ങളെ അനുവദിക്കുന്ന തികച്ചും ഗണിതശാസ്ത്ര ഫിൽട്ടറുകളാണിവ ഗണിതപരമായ പ്രവർത്തനംചിത്രത്തിൽ (നേരായ രേഖ, പരവലയം, വൃത്തം). ഒരു സഞ്ചിത ഇമേജ് നിർമ്മിക്കപ്പെടുന്നു, അതിൽ യഥാർത്ഥ ചിത്രത്തിന്റെ ഓരോ പോയിന്റിനും അത് സൃഷ്ടിക്കുന്ന ഒരു കൂട്ടം ഫംഗ്ഷനുകൾ വരയ്ക്കുന്നു. ലൈനുകൾക്കുള്ള ഹഗ് പരിവർത്തനമാണ് ഏറ്റവും ക്ലാസിക് പരിവർത്തനം. ഈ പരിവർത്തനത്തിൽ, ഓരോ പോയിന്റിനും (x;y), y=ax+b എന്ന നേർരേഖയുടെ ഒരു കൂട്ടം പോയിന്റുകൾ (a;b) വരയ്ക്കുന്നു, അതിന് തുല്യത ശരിയാണ്. നിങ്ങൾക്ക് മനോഹരമായ ചിത്രങ്ങൾ ലഭിക്കും:


(ആദ്യത്തെ പ്ലസ് ചിത്രത്തിലും ഈ നിർവചനത്തിലും ഒരു ക്യാച്ച് കണ്ടെത്തുകയും അത് വിശദീകരിക്കുകയും ചെയ്യുന്നയാൾക്കാണ്, രണ്ടാമത്തെ പ്ലസ് ഇവിടെ കാണിച്ചിരിക്കുന്നത് ആദ്യം പറയുന്ന ആളാണ്)
പാരാമീറ്ററൈസ് ചെയ്യാവുന്ന ഫംഗ്‌ഷനുകൾ കണ്ടെത്താൻ ഹഗ് ട്രാൻസ്ഫോർമേഷൻ നിങ്ങളെ അനുവദിക്കുന്നു. ഉദാഹരണത്തിന് സർക്കിളുകൾ. ഏത് രൂപവും തിരയാൻ നിങ്ങളെ അനുവദിക്കുന്ന ഒരു പരിഷ്‌ക്കരിച്ച പരിവർത്തനമുണ്ട്. ഈ പരിവർത്തനത്തെ ഗണിതശാസ്ത്രജ്ഞർക്ക് ഭയങ്കര ഇഷ്ടമാണ്. എന്നാൽ ഇമേജുകൾ പ്രോസസ്സ് ചെയ്യുമ്പോൾ, നിർഭാഗ്യവശാൽ, ഇത് എല്ലായ്പ്പോഴും പ്രവർത്തിക്കില്ല. വളരെ വേഗത കുറഞ്ഞ വേഗതജോലി, ബൈനറൈസേഷന്റെ ഗുണനിലവാരത്തിന് വളരെ ഉയർന്ന സംവേദനക്ഷമത. അനുയോജ്യമായ സാഹചര്യങ്ങളിൽപ്പോലും, മറ്റ് രീതികൾ ഉപയോഗിച്ച് ചെയ്യാൻ ഞാൻ ഇഷ്ടപ്പെട്ടു.
നേർരേഖകൾക്കുള്ള ഹഗ് പരിവർത്തനത്തിന്റെ ഒരു അനലോഗ് റാഡൺ രൂപാന്തരമാണ്. ധാരാളം പോയിന്റുകൾ ഉള്ള സാഹചര്യത്തിൽ പ്രകടന നേട്ടം നൽകുന്ന FFT വഴിയാണ് ഇത് കണക്കാക്കുന്നത്. കൂടാതെ, ബൈനറൈസ് ചെയ്യാത്ത ഒരു ചിത്രത്തിലും ഇത് പ്രയോഗിക്കാവുന്നതാണ്.
കോണ്ടൂർ ഫിൽട്ടറിംഗ്
ഫിൽട്ടറുകളുടെ ഒരു പ്രത്യേക ക്ലാസ് ബോർഡറും കോണ്ടൂർ ഫിൽട്ടറിംഗും ആണ്. ഒരു ഇമേജിനൊപ്പം പ്രവർത്തിക്കുന്നതിൽ നിന്ന് ആ ചിത്രത്തിലെ ഒബ്‌ജക്‌റ്റുകൾക്കൊപ്പം പ്രവർത്തിക്കുന്നതിലേക്ക് മാറാൻ ഞങ്ങൾ ആഗ്രഹിക്കുമ്പോൾ ഔട്ട്‌ലൈനുകൾ വളരെ ഉപയോഗപ്രദമാണ്. ഒരു വസ്തു വളരെ സങ്കീർണ്ണവും എന്നാൽ നന്നായി വേറിട്ടുനിൽക്കുന്നതും ആയിരിക്കുമ്പോൾ, പലപ്പോഴും ഒരേ ഒരു വഴിഅതിനൊപ്പം പ്രവർത്തിക്കുന്നത് അതിന്റെ രൂപരേഖകൾ ഹൈലൈറ്റ് ചെയ്യുക എന്നതാണ്. നിരവധി അൽഗോരിതങ്ങൾ ഉണ്ട് പ്രശ്നം പരിഹരിക്കുന്നുഫിൽട്ടറിംഗ് സർക്യൂട്ടുകൾ:

മിക്കപ്പോഴും ഇത് ഉപയോഗിക്കുന്നത് കാനിയാണ്, അത് നന്നായി പ്രവർത്തിക്കുന്നു, അതിന്റെ നടപ്പാക്കൽ ഓപ്പൺസിവിയിൽ ഉണ്ട് (സോബെലും അവിടെയുണ്ട്, പക്ഷേ അത് മോശമായ രൂപരേഖകൾക്കായി തിരയുന്നു).



മറ്റ് ഫിൽട്ടറുകൾ
80-90% പ്രശ്നങ്ങൾ പരിഹരിക്കാൻ സഹായിക്കുന്ന ഫിൽട്ടറുകളാണ് മുകളിൽ. എന്നാൽ അവ കൂടാതെ, പ്രാദേശിക ജോലികളിൽ അപൂർവമായ ഫിൽട്ടറുകൾ ഉപയോഗിക്കുന്നു. അത്തരം ഡസൻ കണക്കിന് ഫിൽട്ടറുകൾ ഉണ്ട്, ഞാൻ അവയെല്ലാം പട്ടികപ്പെടുത്തില്ല. രസകരം ആവർത്തന ഫിൽട്ടറുകൾ (ഉദാഹരണത്തിന്, ഒരു സജീവ രൂപഭാവം മോഡൽ), അതുപോലെ തന്നെ റഡ്‌ലെറ്റ്, കർവ്‌ലെറ്റ് പരിവർത്തനങ്ങൾ, ഇവ ക്ലാസിക്കൽ വേവ്‌ലെറ്റ് ഫിൽട്ടറിംഗിന്റെയും റാഡൺ ട്രാൻസ്ഫോർമിംഗ് ഫീൽഡിലെ വിശകലനത്തിന്റെയും സംയോജനമാണ്. ബീംലെറ്റ് രൂപാന്തരം തരംഗ രൂപാന്തരത്തിന്റെ അതിർത്തിയിൽ മനോഹരമായി പ്രവർത്തിക്കുന്നു ലോജിക്കൽ വിശകലനം, കോണ്ടൂർ തിരഞ്ഞെടുക്കാൻ നിങ്ങളെ അനുവദിക്കുന്നു:

എന്നാൽ ഈ പരിവർത്തനങ്ങൾ വളരെ നിർദ്ദിഷ്ടവും അപൂർവമായ ജോലികൾക്ക് അനുയോജ്യവുമാണ്.

ഭാഗം 2. ഫിൽട്ടറിംഗ് ഫലങ്ങളുടെ ലോജിക്കൽ പ്രോസസ്സിംഗ്

പ്രോസസ്സിംഗിന് അനുയോജ്യമായ ഒരു കൂട്ടം ഡാറ്റ ഫിൽട്ടറിംഗ് നൽകുന്നു. എന്നാൽ പലപ്പോഴും നിങ്ങൾക്ക് ഈ ഡാറ്റ പ്രോസസ്സ് ചെയ്യാതെ എടുക്കാനും ഉപയോഗിക്കാനും കഴിയില്ല. ഈ വിഭാഗത്തിൽ ഒരു ഇമേജിൽ നിന്ന് ഒബ്‌ജക്റ്റുകളുടെ ഗുണങ്ങളിലേക്കോ ഒബ്‌ജക്റ്റുകളിലേക്കോ നീങ്ങാൻ നിങ്ങളെ അനുവദിക്കുന്ന നിരവധി ക്ലാസിക് രീതികൾ ഉണ്ടാകും.
മോർഫോളജി
ഫിൽട്ടറിംഗിൽ നിന്ന് യുക്തിയിലേക്കുള്ള മാറ്റം, എന്റെ അഭിപ്രായത്തിൽ, ഗണിതശാസ്ത്ര രൂപശാസ്ത്രത്തിന്റെ രീതികളാണ് (, ,). സാരാംശത്തിൽ, ബൈനറി ഇമേജുകൾ വളരുന്നതിനും നശിപ്പിക്കുന്നതിനുമുള്ള ഏറ്റവും ലളിതമായ പ്രവർത്തനങ്ങളാണ് ഇവ. നിലവിലുള്ള മൂലകങ്ങൾ കൂട്ടുകയോ കുറയ്ക്കുകയോ ചെയ്തുകൊണ്ട് ഒരു ബൈനറി ഇമേജിൽ നിന്ന് ശബ്ദം നീക്കം ചെയ്യാൻ ഈ രീതികൾ നിങ്ങളെ അനുവദിക്കുന്നു. ഗണിത രൂപഘടനയെ അടിസ്ഥാനമാക്കിയുള്ള കോണ്ടൂർ അൽഗോരിതങ്ങൾ ഉണ്ട്, എന്നാൽ സാധാരണയായി ചിലതരം ഹൈബ്രിഡ് അൽഗോരിതങ്ങൾ അല്ലെങ്കിൽ സംയോജനത്തിൽ അൽഗോരിതങ്ങൾ ഉപയോഗിക്കുന്നു.
കോണ്ടൂർ വിശകലനം
അതിരുകൾ നേടുന്നതിനുള്ള അൽഗോരിതങ്ങൾ ഫിൽട്ടറിംഗ് വിഭാഗത്തിൽ ഇതിനകം സൂചിപ്പിച്ചിട്ടുണ്ട്. തത്ഫലമായുണ്ടാകുന്ന അതിരുകൾ വളരെ ലളിതമായി രൂപരേഖകളായി പരിവർത്തനം ചെയ്യപ്പെടുന്നു. Canny അൽഗോരിതത്തിന് ഇത് സ്വയമേവ സംഭവിക്കുന്നു; മറ്റ് അൽഗോരിതങ്ങൾക്ക് അധിക ബൈനറൈസേഷൻ ആവശ്യമാണ്. നിങ്ങൾക്ക് ഒരു ബൈനറി അൽഗോരിതത്തിനായി ഒരു കോണ്ടൂർ ലഭിക്കും, ഉദാഹരണത്തിന്, ബീറ്റിൽ അൽഗോരിതം ഉപയോഗിച്ച്.
ഒരു വസ്തുവിന്റെ സവിശേഷ സ്വഭാവമാണ് രൂപരേഖ. ഒരു വസ്തുവിനെ അതിന്റെ രൂപരേഖ ഉപയോഗിച്ച് തിരിച്ചറിയാൻ ഇത് പലപ്പോഴും നിങ്ങളെ അനുവദിക്കുന്നു. ഇത് ചെയ്യാൻ നിങ്ങളെ അനുവദിക്കുന്ന ശക്തമായ ഒരു ഗണിത ഉപകരണമുണ്ട്. ഉപകരണത്തെ കോണ്ടൂർ വിശകലനം (,) എന്ന് വിളിക്കുന്നു.

സത്യം പറഞ്ഞാൽ, യഥാർത്ഥ പ്രശ്നങ്ങളിൽ കോണ്ടൂർ വിശകലനം പ്രയോഗിക്കാൻ എനിക്ക് ഒരിക്കലും കഴിഞ്ഞിട്ടില്ല. വളരെ അനുയോജ്യമായ വ്യവസ്ഥകൾ ആവശ്യമാണ്. ഒന്നുകിൽ അതിരില്ല, അല്ലെങ്കിൽ അമിതമായ ശബ്ദമുണ്ട്. പക്ഷേ, അനുയോജ്യമായ സാഹചര്യങ്ങളിൽ നിങ്ങൾക്ക് എന്തെങ്കിലും തിരിച്ചറിയണമെങ്കിൽ, കോണ്ടൂർ വിശകലനം ഒരു മികച്ച ഓപ്ഷനാണ്. ഇത് വളരെ വേഗത്തിൽ പ്രവർത്തിക്കുന്നു, മനോഹരമായ ഗണിതവും വ്യക്തമായ യുക്തിയും.
പ്രത്യേക പോയിന്റുകൾ
ഒബ്ജക്‌റ്റിനെ തന്നുമായോ സമാന ക്ലാസുകളുമായോ താരതമ്യം ചെയ്യാൻ അനുവദിക്കുന്ന ഒരു വസ്തുവിന്റെ തനതായ സവിശേഷതകളാണ് സിംഗുലാർ പോയിന്റുകൾ. അത്തരം പോയിന്റുകൾ തിരിച്ചറിയാൻ നിരവധി ഡസൻ വഴികളുണ്ട്. ചില രീതികൾ അടുത്തുള്ള ഫ്രെയിമുകളിൽ പ്രത്യേക പോയിന്റുകൾ തിരിച്ചറിയുന്നു, ചിലത് വളരെക്കാലം കഴിഞ്ഞ് ലൈറ്റിംഗ് മാറുമ്പോൾ, ചിലത് ഒബ്ജക്റ്റ് തിരിക്കുമ്പോൾ പോലും നിലനിൽക്കുന്ന പ്രത്യേക പോയിന്റുകൾ കണ്ടെത്താൻ നിങ്ങളെ അനുവദിക്കുന്നു. പ്രത്യേക പോയിന്റുകൾ കണ്ടെത്താൻ ഞങ്ങളെ അനുവദിക്കുന്ന രീതികളിൽ നിന്ന് നമുക്ക് ആരംഭിക്കാം, അവ അത്ര സ്ഥിരതയുള്ളതല്ല, എന്നാൽ വേഗത്തിൽ കണക്കാക്കുന്നു, തുടർന്ന് ഞങ്ങൾ സങ്കീർണ്ണത വർദ്ധിപ്പിക്കും:
ഒന്നാം തരം. സെക്കൻഡുകളുടെ കാലയളവിൽ സ്ഥിരതയുള്ള പ്രത്യേക പോയിന്റുകൾ.അത്തരം പോയിന്റുകൾ അടുത്തുള്ള വീഡിയോ ഫ്രെയിമുകൾക്കിടയിൽ ഒരു വസ്തുവിനെ നയിക്കാൻ അല്ലെങ്കിൽ അയൽ ക്യാമറകളിൽ നിന്നുള്ള ചിത്രങ്ങൾ സംയോജിപ്പിക്കാൻ ഉപയോഗിക്കുന്നു. അത്തരം പോയിന്റുകളിൽ ചിത്രത്തിന്റെ ലോക്കൽ മാക്സിമ, ചിത്രത്തിലെ കോണുകൾ (മികച്ച ഡിറ്റക്ടർ, ഒരുപക്ഷേ, ചാരിസ് ഡിറ്റക്ടർ), പരമാവധി ഡിസ്പർഷൻ നേടിയ പോയിന്റുകൾ, ചില ഗ്രേഡിയന്റുകൾ മുതലായവ ഉൾപ്പെടുന്നു.
രണ്ടാം ക്ലാസ്. ലൈറ്റിംഗ് മാറുമ്പോഴും വസ്തുവിന്റെ ചെറിയ ചലനങ്ങളിലും സ്ഥിരതയുള്ള പ്രത്യേക പോയിന്റുകൾ.അത്തരം പോയിന്റുകൾ പ്രാഥമികമായി പരിശീലനത്തിനും ഒബ്ജക്റ്റ് തരങ്ങളുടെ തുടർന്നുള്ള വർഗ്ഗീകരണത്തിനും സഹായിക്കുന്നു. ഉദാഹരണത്തിന്, ഒരു കാൽനട ക്ലാസിഫയർ അല്ലെങ്കിൽ ഫെയ്സ് ക്ലാസിഫയർ അത്തരം പോയിന്റുകളിൽ കൃത്യമായി നിർമ്മിച്ച ഒരു സിസ്റ്റത്തിന്റെ ഉൽപ്പന്നമാണ്. മുമ്പ് സൂചിപ്പിച്ച ചില തരംഗങ്ങൾ അത്തരം പോയിന്റുകൾക്ക് അടിസ്ഥാനമായിരിക്കാം. ഉദാഹരണത്തിന്, ഹാർ പ്രിമിറ്റീവ്സ്, ഹൈലൈറ്റുകൾക്കായി തിരയുക, മറ്റ് നിർദ്ദിഷ്ട പ്രവർത്തനങ്ങൾക്കായി തിരയുക. ഈ പോയിന്റുകളിൽ ഹിസ്റ്റോഗ്രാം ഓഫ് ഡയറക്ഷണൽ ഗ്രേഡിയന്റ്സ് (HOG) രീതി കണ്ടെത്തിയവ ഉൾപ്പെടുന്നു.
മൂന്നാം ക്ലാസ്. സ്ഥിരതയുള്ള പോയിന്റുകൾ.പൂർണ്ണമായ സ്ഥിരത നൽകുന്ന രണ്ട് രീതികളെക്കുറിച്ചും അവയുടെ പരിഷ്കാരങ്ങളെക്കുറിച്ചും എനിക്ക് മാത്രമേ അറിയൂ. ഇവയാണ് SURF, SIFT. നിങ്ങൾ ചിത്രം തിരിക്കുമ്പോഴും പ്രത്യേക പോയിന്റുകൾ കണ്ടെത്താൻ അവ നിങ്ങളെ അനുവദിക്കുന്നു. അത്തരം പോയിന്റുകളുടെ കണക്കുകൂട്ടൽ മറ്റ് രീതികളുമായി താരതമ്യപ്പെടുത്തുമ്പോൾ കൂടുതൽ സമയമെടുക്കും, പക്ഷേ ഇത് മതിയാകും പരിമിതമായ സമയം. നിർഭാഗ്യവശാൽ, ഈ രീതികൾക്ക് പേറ്റന്റ് ഉണ്ട്. എന്നിരുന്നാലും, റഷ്യയിൽ അൽഗോരിതം പേറ്റന്റ് ചെയ്യുന്നത് അസാധ്യമാണ്, അതിനാൽ ഇത് ആഭ്യന്തര വിപണിയിൽ ഉപയോഗിക്കുക.

ഭാഗം 3. പരിശീലനം

ചിത്രവുമായി നേരിട്ട് പ്രവർത്തിക്കാത്ത, എന്നാൽ തീരുമാനങ്ങൾ എടുക്കാൻ നിങ്ങളെ അനുവദിക്കുന്ന രീതികൾക്കായി കഥയുടെ മൂന്നാം ഭാഗം നീക്കിവയ്ക്കും. പ്രധാനമായും വിവിധ രീതികൾയന്ത്ര പഠനവും തീരുമാനമെടുക്കലും. അടുത്തിടെ Yandyx ഈ വിഷയത്തിൽ ഹബറിൽ ഒരു കോഴ്സ് പോസ്റ്റ് ചെയ്തു, ഇത് വളരെ നല്ലതാണ് നല്ല തിരഞ്ഞെടുപ്പ്. ഇവിടെ അത് ടെക്സ്റ്റ് പതിപ്പിലാണ്. വിഷയത്തെക്കുറിച്ചുള്ള ഗൗരവമായ പഠനത്തിന്, അവ കാണാൻ ഞാൻ വളരെ ശുപാർശ ചെയ്യുന്നു. പാറ്റേൺ തിരിച്ചറിയലിൽ പ്രത്യേകമായി ഉപയോഗിക്കുന്ന നിരവധി പ്രധാന രീതികളുടെ രൂപരേഖ ഇവിടെ ഞാൻ ശ്രമിക്കും.
80% സാഹചര്യങ്ങളിലും, തിരിച്ചറിയൽ ടാസ്ക്കിലെ പഠനത്തിന്റെ സാരാംശം ഇപ്രകാരമാണ്:
ഒബ്‌ജക്റ്റുകളുടെ നിരവധി ക്ലാസുകൾ ഉൾക്കൊള്ളുന്ന ഒരു ടെസ്റ്റ് സാമ്പിൾ ഉണ്ട്. അത് ഫോട്ടോയിൽ ഒരാളുടെ സാന്നിധ്യം/അസാന്നിധ്യം ആയിരിക്കട്ടെ. ഓരോ ചിത്രത്തിനും ചില ഫീച്ചറുകൾ ഹൈലൈറ്റ് ചെയ്ത ഒരു കൂട്ടം ഫീച്ചറുകൾ ഉണ്ട്, അത് Haar, HOG, SURF അല്ലെങ്കിൽ ചില തരംഗങ്ങൾ. പഠന അൽഗോരിതം ഒരു മോഡൽ നിർമ്മിക്കണം, അതുവഴി ഒരു പുതിയ ഇമേജ് വിശകലനം ചെയ്യാനും ചിത്രത്തിലുള്ള ഒബ്ജക്റ്റ് ഏതെന്ന് തീരുമാനിക്കാനും കഴിയും.
അത് എങ്ങനെ ചെയ്തു? ഓരോ ടെസ്റ്റ് ചിത്രങ്ങളും ഫീച്ചർ സ്പേസിലെ ഒരു പോയിന്റാണ്. ചിത്രത്തിലെ ഓരോ സവിശേഷതകളുടെയും ഭാരമാണ് അതിന്റെ കോർഡിനേറ്റുകൾ. നമ്മുടെ അടയാളങ്ങൾ ഇതായിരിക്കട്ടെ: "കണ്ണുകളുടെ സാന്നിധ്യം", "ഒരു മൂക്കിന്റെ സാന്നിധ്യം", "രണ്ട് കൈകളുടെ സാന്നിധ്യം", "ചെവികളുടെ സാന്നിധ്യം" മുതലായവ... പരിശീലിപ്പിച്ചിട്ടുള്ള ഞങ്ങളുടെ നിലവിലുള്ള ഡിറ്റക്ടറുകൾ ഉപയോഗിച്ച് ഈ അടയാളങ്ങളെല്ലാം ഞങ്ങൾ ഹൈലൈറ്റ് ചെയ്യും. മനുഷ്യനു സമാനമായ ശരീരഭാഗങ്ങൾ അത്തരമൊരു സ്ഥലത്ത് ഒരു വ്യക്തിക്ക്, ശരിയായ പോയിന്റ് ആയിരിക്കും. കുരങ്ങന്, കുതിരക്ക് ഡോട്ട്. ഉദാഹരണങ്ങളുടെ ഒരു മാതൃക ഉപയോഗിച്ചാണ് ക്ലാസിഫയർ പരിശീലിപ്പിക്കുന്നത്. എന്നാൽ എല്ലാ ഫോട്ടോഗ്രാഫുകളും കൈ കാണിച്ചില്ല, മറ്റുള്ളവർക്ക് കണ്ണില്ല, മൂന്നാമത്തേതിൽ, ക്ലാസിഫയർ പിശക് കാരണം കുരങ്ങന് ഒരു മനുഷ്യ മൂക്ക് ഉണ്ടായിരുന്നു. പരിശീലനം ലഭിച്ച ഒരു ഹ്യൂമൻ ക്ലാസിഫയർ സ്വയമേവ ഫീച്ചർ സ്പേസിനെ ഇങ്ങനെ പറയുന്ന രീതിയിൽ വിഭജിക്കുന്നു: ആദ്യ സവിശേഷത 0.5 എന്ന ശ്രേണിയിലാണെങ്കിൽ അടിസ്ഥാനപരമായി, ക്ലാസിഫിക്കേഷൻ ഒബ്‌ജക്‌റ്റുകളുടെ സവിശേഷതയായ ഫീച്ചർ സ്‌പെയ്‌സിൽ ഏരിയകൾ വരയ്ക്കുക എന്നതാണ് ക്ലാസിഫയറിന്റെ ലക്ഷ്യം. ദ്വിമാന സ്‌പെയ്‌സിലെ ക്ലാസിഫയറുകളിൽ ഒന്നിന് (AdaBoost) ഉത്തരത്തിന്റെ തുടർച്ചയായ ഏകദേശ കണക്ക് ഇങ്ങനെയായിരിക്കും:


ധാരാളം ക്ലാസിഫയറുകൾ ഉണ്ട്. അവ ഓരോന്നും ചില പ്രത്യേക ജോലികളിൽ നന്നായി പ്രവർത്തിക്കുന്നു. ഒരു നിർദ്ദിഷ്‌ട ടാസ്‌ക്കിനായി ഒരു ക്ലാസിഫയർ തിരഞ്ഞെടുക്കുന്നതിനുള്ള ചുമതല വലിയൊരു കലയാണ്. വിഷയത്തെക്കുറിച്ചുള്ള ചില മനോഹരമായ ചിത്രങ്ങൾ ഇതാ.
ലളിതമായ കേസ്, ഏകമാനമായ വേർതിരിവ്
വർഗ്ഗീകരണത്തിന്റെ ഏറ്റവും ലളിതമായ ഒരു ഉദാഹരണം നോക്കാം, ഫീച്ചർ സ്പേസ് ഏകമാനമായിരിക്കുമ്പോൾ, നമുക്ക് 2 ക്ലാസുകൾ വേർതിരിക്കേണ്ടതുണ്ട്. നിങ്ങൾ വിചാരിക്കുന്നതിലും കൂടുതൽ തവണ സാഹചര്യം സംഭവിക്കുന്നു: ഉദാഹരണത്തിന്, നിങ്ങൾക്ക് രണ്ട് സിഗ്നലുകൾ വേർതിരിച്ചറിയേണ്ടിവരുമ്പോൾ അല്ലെങ്കിൽ ഒരു മാതൃകയുമായി ഒരു പാറ്റേൺ താരതമ്യം ചെയ്യുക. നമുക്ക് ഒരു പരിശീലന സാമ്പിൾ എടുക്കാം. X-അക്ഷം സമാനതയുടെ അളവുകോലാകുന്ന ഒരു ചിത്രം ഇത് നിർമ്മിക്കുന്നു, Y-അക്ഷം അത്തരം അളവിലുള്ള ഇവന്റുകളുടെ എണ്ണമാണ്. ആവശ്യമുള്ള വസ്തു തന്നോട് സാമ്യമുള്ളപ്പോൾ, ഒരു ഇടത് ഗൗസിയൻ ലഭിക്കും. അങ്ങനെ തോന്നാത്തപ്പോൾ, അത് ശരിയാണ്. X=0.4 ന്റെ മൂല്യം സാമ്പിളുകളെ വേർതിരിക്കുന്നതിനാൽ തെറ്റായ തീരുമാനം ഏതെങ്കിലും തെറ്റായ തീരുമാനമെടുക്കാനുള്ള സാധ്യത കുറയ്ക്കുന്നു. അത്തരമൊരു സെപ്പറേറ്ററിനായുള്ള തിരയൽ വർഗ്ഗീകരണത്തിന്റെ ചുമതലയാണ്.


ഒരു ചെറിയ കുറിപ്പ്. പിശക് കുറയ്ക്കുന്ന മാനദണ്ഡം എല്ലായ്പ്പോഴും ഒപ്റ്റിമൽ ആയിരിക്കില്ല. ഇനിപ്പറയുന്ന ഗ്രാഫ് ഒരു യഥാർത്ഥ ഐറിസ് തിരിച്ചറിയൽ സിസ്റ്റത്തിന്റെ ഗ്രാഫാണ്. അത്തരമൊരു സംവിധാനത്തിനായി, ഈ സൗകര്യത്തിലേക്ക് അനധികൃത വ്യക്തിയുടെ തെറ്റായ പ്രവേശനത്തിനുള്ള സാധ്യത കുറയ്ക്കുന്നതിനാണ് മാനദണ്ഡം തിരഞ്ഞെടുത്തിരിക്കുന്നത്. ഈ പ്രോബബിലിറ്റിയെ "ടൈപ്പ് I പിശക്", "തെറ്റായ അലാറം പ്രോബബിലിറ്റി", "തെറ്റായ പോസിറ്റീവ്" എന്ന് വിളിക്കുന്നു. ഇംഗ്ലീഷ് ഭാഷാ സാഹിത്യത്തിൽ "തെറ്റായ പ്രവേശന നിരക്ക്".
) AdaBusta ഏറ്റവും സാധാരണമായ ക്ലാസിഫയറുകളിൽ ഒന്നാണ്. ഉദാഹരണത്തിന്, ഹാർ കാസ്കേഡ് അതിൽ നിർമ്മിച്ചിരിക്കുന്നു. ബൈനറി വർഗ്ഗീകരണം ആവശ്യമായി വരുമ്പോൾ സാധാരണയായി ഉപയോഗിക്കാറുണ്ട്, എന്നാൽ കൂടുതൽ ക്ലാസുകൾക്കുള്ള പരിശീലനത്തെ ഒന്നും തടയുന്നില്ല.
SVM ( , , ) നിരവധി നിർവ്വഹണങ്ങളുള്ള ഏറ്റവും ശക്തമായ ക്ലാസിഫയറുകളിൽ ഒന്ന്. അടിസ്ഥാനപരമായി, ഞാൻ നേരിട്ട ലേണിംഗ് ടാസ്ക്കുകളിൽ, ഇത് അഡാബസ്റ്റയ്ക്ക് സമാനമായി പ്രവർത്തിച്ചു. ഇത് വളരെ വേഗത്തിൽ കണക്കാക്കപ്പെടുന്നു, പക്ഷേ അതിന്റെ പരിശീലനം അഡാബസ്റ്റയേക്കാൾ ബുദ്ധിമുട്ടുള്ളതും ശരിയായ കോർ തിരഞ്ഞെടുക്കേണ്ടതുണ്ട്.

ന്യൂറൽ നെറ്റ്‌വർക്കുകളും റിഗ്രഷനും ഉണ്ട്. എന്നാൽ അവയെ സംക്ഷിപ്തമായി തരംതിരിക്കാനും അവ എങ്ങനെ വ്യത്യാസപ്പെട്ടിരിക്കുന്നുവെന്ന് കാണിക്കാനും, ഇതിനേക്കാൾ ദൈർഘ്യമേറിയ ഒരു ലേഖനം ആവശ്യമാണ്.
________________________________________________
ഗണിതത്തിലേക്കും വിവരണത്തിലേക്കും മുങ്ങാതെ ഉപയോഗിക്കുന്ന രീതികളെക്കുറിച്ച് ഒരു ദ്രുത അവലോകനം നൽകാൻ എനിക്ക് കഴിഞ്ഞുവെന്ന് ഞാൻ പ്രതീക്ഷിക്കുന്നു. ഒരുപക്ഷേ ഇത് ആരെയെങ്കിലും സഹായിക്കും. തീർച്ചയായും, ലേഖനം അപൂർണ്ണമാണെങ്കിലും സ്റ്റീരിയോ ഇമേജുകൾക്കൊപ്പം പ്രവർത്തിക്കുന്നതിനെക്കുറിച്ചോ ഒരു കൽമാൻ ഫിൽട്ടറിനൊപ്പം എൽഎസ്എമ്മിനെക്കുറിച്ചോ അഡാപ്റ്റീവ് ബയേസ് സമീപനത്തെക്കുറിച്ചോ ഒരു വാക്കുമില്ല.
നിങ്ങൾക്ക് ലേഖനം ഇഷ്‌ടപ്പെട്ടെങ്കിൽ, നിലവിലുള്ള ഇമേജ് റെക്കഗ്നിഷൻ പ്രശ്‌നങ്ങൾ എങ്ങനെ പരിഹരിക്കപ്പെടുന്നു എന്നതിന്റെ ഉദാഹരണങ്ങൾ തിരഞ്ഞെടുത്ത് ഒരു രണ്ടാം ഭാഗം നിർമ്മിക്കാൻ ഞാൻ ശ്രമിക്കും.

ഒടുവിൽ

എന്താണ് വായിക്കേണ്ടത്?
1) ബി യാനിന്റെ "ഡിജിറ്റൽ ഇമേജ് പ്രോസസ്സിംഗ്" എന്ന പുസ്തകം ഒരിക്കൽ എനിക്ക് ശരിക്കും ഇഷ്ടപ്പെട്ടു, അത് ലളിതമായും വ്യക്തമായും എഴുതിയിട്ടുണ്ട്, എന്നാൽ അതേ സമയം മിക്കവാറും എല്ലാ ഗണിതശാസ്ത്രവും നൽകിയിരിക്കുന്നു. നിലവിലുള്ള രീതികൾ പരിചയപ്പെടാൻ നല്ലതാണ്.
2) ആർ ഗോൺസാലസ്, ആർ വുഡ്സ് "ഡിജിറ്റൽ ഇമേജ് പ്രോസസ്സിംഗ്" ആണ് ഈ വിഭാഗത്തിന്റെ ഒരു ക്ലാസിക്. ചില കാരണങ്ങളാൽ എനിക്ക് ആദ്യത്തേതിനേക്കാൾ ബുദ്ധിമുട്ടായിരുന്നു. ഗണിതശാസ്ത്രം വളരെ കുറവാണ്, എന്നാൽ കൂടുതൽ രീതികളും ചിത്രങ്ങളും.
3) "കമ്പ്യൂട്ടർ കാഴ്ച പ്രശ്നങ്ങളിൽ ഇമേജ് പ്രോസസ്സിംഗും വിശകലനവും" - ഫിസിക്സ് ആൻഡ് ടെക്നോളജി വകുപ്പുകളിലൊന്നിൽ പഠിപ്പിക്കുന്ന ഒരു കോഴ്സിന്റെ അടിസ്ഥാനത്തിൽ എഴുതിയതാണ്. ധാരാളം രീതികളും അവയുടെ വിശദമായ വിവരണങ്ങളും ഉണ്ട്. എന്നാൽ എന്റെ അഭിപ്രായത്തിൽ, പുസ്തകത്തിന് രണ്ട് വലിയ പോരായ്മകളുണ്ട്: പുസ്തകം അതിനോടൊപ്പം വരുന്ന സോഫ്റ്റ്വെയർ പാക്കേജിൽ ശക്തമായി ശ്രദ്ധ കേന്ദ്രീകരിച്ചിരിക്കുന്നു; പുസ്തകത്തിൽ, പലപ്പോഴും ഒരു ലളിതമായ രീതിയുടെ വിവരണം ഒരു ഗണിതശാസ്ത്ര വനമായി മാറുന്നു, അതിൽ നിന്ന് അത് ബുദ്ധിമുട്ടാണ്. രീതിയുടെ ഘടനാപരമായ ഡയഗ്രം കണ്ടെത്തുക. എന്നാൽ രചയിതാക്കൾ സൗകര്യപ്രദമായ ഒരു വെബ്സൈറ്റ് ഉണ്ടാക്കിയിട്ടുണ്ട്, അവിടെ മിക്കവാറും എല്ലാ ഉള്ളടക്കവും അവതരിപ്പിക്കുന്നു - wiki.technicalvision.ru ടാഗുകൾ ചേർക്കുക

ഈ പ്രോജക്റ്റ് ലോകത്തിലെ ഒന്നാം സ്ഥാനമാണെന്ന് അവകാശപ്പെടുന്നില്ല, മാത്രമല്ല ഒരു എതിരാളിയായി പരിഗണിക്കപ്പെടുന്നില്ല ഫൈൻ റീഡർ, എന്നാൽ യൂലർ സ്വഭാവം ഉപയോഗിച്ച് പ്രതീക പാറ്റേൺ തിരിച്ചറിയൽ ആശയം പുതിയതായിരിക്കുമെന്ന് ഞാൻ പ്രതീക്ഷിക്കുന്നു.

ഒരു ചിത്രത്തിന്റെ യൂലർ സ്വഭാവത്തിലേക്കുള്ള ആമുഖം.

അടിസ്ഥാന ആശയം നിങ്ങൾ ഒരു ബ്ലാക്ക് ആൻഡ് വൈറ്റ് ഇമേജ് എടുക്കുന്നു, കൂടാതെ 0 ഒരു വെള്ള പിക്സലും 1 ഒരു ബ്ലാക്ക് പിക്സലും ആണെന്ന് കരുതുക, അപ്പോൾ മുഴുവൻ ചിത്രവും പൂജ്യങ്ങളുടെയും ഒന്നിന്റെയും മാട്രിക്സ് ആയിരിക്കും. ഈ സാഹചര്യത്തിൽ, ഒരു കറുപ്പും വെളുപ്പും ചിത്രത്തെ 2 ബൈ 2 പിക്സലുകൾ അളക്കുന്ന ശകലങ്ങളുടെ ഒരു കൂട്ടമായി പ്രതിനിധീകരിക്കാം; സാധ്യമായ എല്ലാ കോമ്പിനേഷനുകളും ചിത്രത്തിൽ അവതരിപ്പിച്ചിരിക്കുന്നു:

ഓരോ ചിത്രത്തിലും ചിത്രം1, ചിത്രം2,... അൽഗോരിതത്തിലെ എണ്ണൽ ഘട്ടത്തിന്റെ ചുവന്ന ചതുരം കാണിക്കുന്നു, അതിനുള്ളിൽ ശകലങ്ങളിൽ ഒന്നാണ് എഫ്മുകളിലെ ചിത്രത്തിൽ നിന്ന്. ഓരോ ഘട്ടത്തിലും, ഓരോ ശകലവും സംഗ്രഹിക്കപ്പെടുന്നു, അതിന്റെ ഫലമായി ഒരു ചിത്രം ലഭിക്കും ഒറിജിനൽനമുക്ക് സെറ്റ് ലഭിക്കുന്നു: , ഇനി മുതൽ അതിനെ ചിത്രത്തിന്റെ Euler സ്വഭാവം അല്ലെങ്കിൽ സ്വഭാവം സെറ്റ് എന്ന് വിളിക്കും.


അഭിപ്രായം:പ്രായോഗികമായി, F0 മൂല്യം (യഥാർത്ഥ ചിത്രത്തിന് ഈ മൂല്യം 8 ആണ്) ഉപയോഗിക്കില്ല, കാരണം ഇത് ചിത്രത്തിന്റെ പശ്ചാത്തലമാണ്. അതിനാൽ, F1 മുതൽ F15 വരെ 15 മൂല്യങ്ങൾ ഉപയോഗിക്കും.

ഒരു ചിത്രത്തിന്റെ സവിശേഷതയായ യൂലറിന്റെ സവിശേഷതകൾ.

  1. സ്വഭാവസവിശേഷതകളുടെ മൂല്യം അദ്വിതീയമാണ്, മറ്റൊരു വിധത്തിൽ പറഞ്ഞാൽ, ഒരേ യൂലർ സ്വഭാവമുള്ള രണ്ട് ചിത്രങ്ങളില്ല.
  2. ഒരു സ്വഭാവസവിശേഷതയിൽ നിന്ന് യഥാർത്ഥ ചിത്രത്തിലേക്ക് പരിവർത്തനം ചെയ്യുന്നതിന് അൽഗോരിതം ഒന്നുമില്ല; ഒരേയൊരു മാർഗ്ഗം മൃഗശക്തിയാണ്.

ടെക്സ്റ്റ് തിരിച്ചറിയൽ അൽഗോരിതം എന്താണ്?

ഭാഷയുടെ അക്ഷരമാലയിലെ എല്ലാ പ്രതീകങ്ങൾക്കുമുള്ള യൂലർ സ്വഭാവം ഞങ്ങൾ മുൻകൂട്ടി കണക്കാക്കുകയും ഇത് വിജ്ഞാന അടിത്തറയിൽ സംഭരിക്കുകയും ചെയ്യുക എന്നതാണ് അക്ഷര തിരിച്ചറിയലിന്റെ ആശയം. തുടർന്ന് നമ്മൾ അംഗീകൃത ചിത്രത്തിന്റെ ഭാഗങ്ങൾക്കായി യൂലർ സ്വഭാവം കണക്കാക്കുകയും വിജ്ഞാന അടിത്തറയിൽ തിരയുകയും ചെയ്യും.

തിരിച്ചറിയൽ ഘട്ടങ്ങൾ:

  1. ചിത്രം കറുപ്പും വെളുപ്പും നിറവും ആകാം, അതിനാൽ ആദ്യ ഘട്ടം ചിത്രത്തിന്റെ ഏകദേശമാണ്, അതായത് അതിൽ നിന്ന് കറുപ്പും വെളുപ്പും നേടുക.
  2. കറുത്ത പിക്സലുകൾ കണ്ടെത്തുന്നതിനായി ഞങ്ങൾ മുഴുവൻ ചിത്രത്തിലൂടെയും പിക്സൽ-ബൈ-പിക്സൽ കടന്നുപോകുന്നു. ഒരു ഷേഡുള്ള പിക്സൽ കണ്ടെത്തുമ്പോൾ, കണ്ടെത്തിയതിനും തുടർന്നുള്ളവയ്ക്കും സമീപമുള്ള എല്ലാ ഷേഡുള്ള പിക്സലുകളും തിരയാൻ ഒരു ആവർത്തന പ്രവർത്തനം ആരംഭിക്കുന്നു. തൽഫലമായി, ചിത്രത്തിന്റെ ഒരു ഭാഗം ഞങ്ങൾക്ക് ലഭിക്കും, അത് ഒന്നുകിൽ ഒരു മുഴുവൻ പ്രതീകമോ അല്ലെങ്കിൽ അതിന്റെ ഭാഗമോ അല്ലെങ്കിൽ ഉപേക്ഷിക്കേണ്ട "മാലിന്യങ്ങൾ" ആകാം.
  3. ചിത്രത്തിന്റെ എല്ലാ ബന്ധമില്ലാത്ത ഭാഗങ്ങളും കണ്ടെത്തിയ ശേഷം, ഓരോന്നിനും യൂലർ സ്വഭാവം കണക്കാക്കുന്നു.
  4. അടുത്തതായി, അനലൈസർ പ്രവർത്തനക്ഷമമാകും, ഓരോ ശകലത്തിലൂടെയും കടന്നുപോകുമ്പോൾ, അതിന്റെ യൂലർ സ്വഭാവത്തിന്റെ മൂല്യം വിജ്ഞാന അടിത്തറയിലാണോ എന്ന് നിർണ്ണയിക്കുന്നു. ഞങ്ങൾ മൂല്യം കണ്ടെത്തുകയാണെങ്കിൽ, അത് ചിത്രത്തിന്റെ അംഗീകൃത ശകലമാണെന്ന് ഞങ്ങൾ കരുതുന്നു, അല്ലാത്തപക്ഷം ഞങ്ങൾ അത് കൂടുതൽ പഠനത്തിനായി വിടുന്നു.
  5. ചിത്രത്തിന്റെ തിരിച്ചറിയാത്ത ഭാഗങ്ങൾ ഹ്യൂറിസ്റ്റിക് വിശകലനത്തിന് വിധേയമാണ്, അതായത്, യൂലർ സ്വഭാവത്തിന്റെ മൂല്യത്തെ അടിസ്ഥാനമാക്കി വിജ്ഞാന അടിത്തറയിൽ ഏറ്റവും അനുയോജ്യമായ മൂല്യം കണ്ടെത്താൻ ഞാൻ ശ്രമിക്കുന്നു. കണ്ടെത്താൻ കഴിയുന്നില്ലെങ്കിൽ, സമീപത്തുള്ള ശകലങ്ങൾ "ഒട്ടിപ്പിടിക്കാൻ" ഒരു ശ്രമം നടത്തുകയും അവയ്ക്കുള്ള വിജ്ഞാന അടിത്തറയിൽ ഒരു ഫലം തിരയുകയും ചെയ്യുന്നു. "gluing" എന്തിനുവേണ്ടിയാണ് ചെയ്യുന്നത്? എല്ലാ അക്ഷരങ്ങളും ഒരു തുടർച്ചയായ ചിത്രം ഉൾക്കൊള്ളുന്നില്ല എന്നതാണ് വസ്തുത, ഉദാഹരണത്തിന് "!" ആശ്ചര്യചിഹ്നത്തിൽ 2 സെഗ്‌മെന്റുകൾ (ഒരു വടിയും ഒരു ഡോട്ടും) അടങ്ങിയിരിക്കുന്നു, അതിനാൽ വിജ്ഞാന അടിത്തറയിൽ അത് തിരയുന്നതിന് മുമ്പ്, രണ്ട് ഭാഗങ്ങളിൽ നിന്നും യൂലർ സ്വഭാവത്തിന്റെ ആകെ മൂല്യം നിങ്ങൾ കണക്കാക്കേണ്ടതുണ്ട്. അടുത്തുള്ള സെഗ്‌മെന്റുകൾ ഉപയോഗിച്ച് ഒട്ടിച്ചതിന് ശേഷവും സ്വീകാര്യമായ ഫലം കണ്ടെത്താൻ കഴിഞ്ഞില്ലെങ്കിൽ, ഞങ്ങൾ ശകലത്തെ മാലിന്യമായി കണക്കാക്കുകയും അത് ഒഴിവാക്കുകയും ചെയ്യുന്നു.

സിസ്റ്റം ഘടന:

  1. വിജ്ഞാന അടിത്തറ- ഞാനോ മറ്റാരെങ്കിലുമോ യഥാർത്ഥത്തിൽ സൃഷ്‌ടിച്ച ഒരു ഫയലോ ഫയലോ, സ്വഭാവ സവിശേഷതകളുള്ളതും തിരിച്ചറിയാൻ ആവശ്യമായതുമായ പ്രതീക സെറ്റുകൾ അടങ്ങിയിരിക്കുന്നു.
  2. കോർ- തിരിച്ചറിയൽ നിർവഹിക്കുന്ന അടിസ്ഥാന പ്രവർത്തനങ്ങൾ അടങ്ങിയിരിക്കുന്നു
  3. ജനറേറ്റർ- ഒരു വിജ്ഞാന അടിത്തറ സൃഷ്ടിക്കുന്നതിനുള്ള മൊഡ്യൂൾ.

ക്ലിയർടൈപ്പും ആന്റി-അലിയാസിംഗും.

അതിനാൽ, ഇൻപുട്ട് എന്ന നിലയിൽ ഞങ്ങൾക്ക് തിരിച്ചറിയാവുന്ന ഒരു ഇമേജ് ഉണ്ട്, തിരിച്ചറിയൽ പ്രക്രിയ ആരംഭിക്കുന്നതിന് അനുയോജ്യമായ കറുപ്പും വെളുപ്പും ആക്കുക എന്നതാണ് ലക്ഷ്യം. ഏറ്റവും ലളിതമായത് എന്താണെന്ന് തോന്നുന്നു, ഞങ്ങൾ എല്ലാ വെളുത്ത പിക്സലുകളും 0 ആയും ബാക്കിയുള്ളവ 1 ആയും കണക്കാക്കുന്നു, പക്ഷേ എല്ലാം അത്ര ലളിതമല്ല. ഒരു ചിത്രത്തിലെ ടെക്‌സ്‌റ്റ് ആന്റി-അലിയാസ്ഡ് അല്ലെങ്കിൽ നോൺ-അലിയാസ്ഡ് ആകാം. ആന്റി-അലിയാസ്ഡ് പ്രതീകങ്ങൾ മിനുസമാർന്നതും കോണുകളില്ലാതെയും കാണപ്പെടുന്നു, അതേസമയം മിനുസപ്പെടുത്താത്തവ ബാഹ്യരേഖയിൽ ദൃശ്യമാകുന്ന പിക്സലുകളുള്ള ആധുനിക മോണിറ്ററുകളിൽ കാണപ്പെടും. എൽസിഡി (ലിക്വിഡ് ക്രിസ്റ്റൽ) സ്ക്രീനുകളുടെ വരവോടെ, മോണിറ്റർ മാട്രിക്സിന്റെ സവിശേഷതകൾ പ്രയോജനപ്പെടുത്തിയ ക്ലിയർടൈപ്പും (വിൻഡോസിനായി) മറ്റ് തരത്തിലുള്ള ആന്റി-അലിയാസിംഗും സൃഷ്ടിക്കപ്പെട്ടു. ടെക്സ്റ്റ് ഇമേജിന്റെ പിക്സലുകൾ നിറങ്ങൾ മാറ്റുന്നു, അതിനുശേഷം അത് വളരെ "മൃദു"മായി കാണപ്പെടുന്നു. സുഗമമാക്കുന്നതിന്റെ ഫലം കാണുന്നതിന്, നിങ്ങൾക്ക് ചില അക്ഷരങ്ങൾ (അല്ലെങ്കിൽ വാചകം) ടൈപ്പുചെയ്യാം, ഉദാഹരണത്തിന് ഇൻ mspaint, സൂം ഇൻ ചെയ്യുക, നിങ്ങളുടെ വാചകം ഏതെങ്കിലും തരത്തിലുള്ള മൾട്ടി-കളർ മൊസൈക്ക് ആയി മാറിയിരിക്കുന്നു.

എന്താണ് കാര്യം?എന്തുകൊണ്ടാണ് നമ്മൾ ഒരു സാധാരണ ചിഹ്നം ചെറിയ തോതിൽ കാണുന്നത്? നമ്മുടെ കണ്ണുകൾ നമ്മെ ചതിക്കുകയാണോ? ഒരു എൽസിഡി മോണിറ്ററിന്റെ പിക്സലിൽ ആവശ്യമുള്ള നിറം സ്വീകരിക്കാൻ കഴിയുന്ന ഒരൊറ്റ പിക്സൽ അടങ്ങിയിട്ടില്ല, എന്നാൽ ആവശ്യമുള്ള നിറം ലഭിക്കാൻ പര്യാപ്തമായ 3 നിറങ്ങളുടെ 3 സബ്പിക്സലുകൾ അടങ്ങിയിരിക്കുന്നു എന്നതാണ് വസ്തുത. അതിനാൽ, LCD മോണിറ്റർ മാട്രിക്‌സിന്റെ സവിശേഷത ഉപയോഗിച്ച് ദൃശ്യപരമായി ഏറ്റവും മനോഹരമായ ടെക്‌സ്‌റ്റ് നേടുക എന്നതാണ് ക്ലിയർടൈപ്പിന്റെ ലക്ഷ്യം, ഇത് സബ്‌പിക്‌സൽ റെൻഡറിംഗ് ഉപയോഗിച്ചാണ് നേടുന്നത്. "മാഗ്‌നിഫൈയിംഗ് ഗ്ലാസ്" ഉള്ള ആർക്കും, പരീക്ഷണാർത്ഥം, സ്ക്രീനിൽ ഓണാക്കിയിരിക്കുന്ന ഏത് സ്ഥലവും വലുതാക്കാനും ചുവടെയുള്ള ചിത്രത്തിലെ പോലെ മാട്രിക്സ് കാണാനും കഴിയും.

LCD മാട്രിക്സിന്റെ 3x3 പിക്സലുകളുടെ ഒരു ചതുരം ചിത്രം കാണിക്കുന്നു.

ശ്രദ്ധ!ഈ സവിശേഷത ഒരു ബ്ലാക്ക് ആൻഡ് വൈറ്റ് ഇമേജ് നേടുന്നത് സങ്കീർണ്ണമാക്കുകയും ഫലത്തെ വളരെയധികം ബാധിക്കുകയും ചെയ്യുന്നു, കാരണം ഇത് എല്ലായ്പ്പോഴും ഒരേ ചിത്രം നേടുന്നത് സാധ്യമാക്കുന്നില്ല, ഇതിന്റെ യൂലർ സ്വഭാവം വിജ്ഞാന അടിത്തറയിൽ സംരക്ഷിച്ചിരിക്കുന്നു. അതിനാൽ, ചിത്രങ്ങളിലെ വ്യത്യാസം ഒരു ഹ്യൂറിസ്റ്റിക് വിശകലനത്തെ പ്രേരിപ്പിക്കുന്നു, അത് എല്ലായ്പ്പോഴും വിജയിച്ചേക്കില്ല.


ഒരു കറുപ്പും വെളുപ്പും ചിത്രം നേടുന്നു.

ഇൻറർനെറ്റിൽ കാണുന്ന കറുപ്പും വെളുപ്പും പരിവർത്തന അൽഗോരിതങ്ങളിലേക്കുള്ള നിറത്തിന്റെ ഗുണനിലവാരത്തിൽ ഞാൻ തൃപ്തനല്ല. അവരുടെ ആപ്ലിക്കേഷനുശേഷം, സബ്ലെപിക്സൽ റെൻഡറിംഗിന് വിധേയമായ പ്രതീകങ്ങളുടെ ചിത്രങ്ങൾ വീതിയിൽ വ്യത്യസ്തമായി, അക്ഷര വരികളിലെ ഇടവേളകളും മനസ്സിലാക്കാൻ കഴിയാത്ത മാലിന്യങ്ങളും പ്രത്യക്ഷപ്പെട്ടു. തൽഫലമായി, പിക്സലിന്റെ തെളിച്ചം വിശകലനം ചെയ്തുകൊണ്ട് കറുപ്പും വെളുപ്പും ചിത്രങ്ങൾ നേടാൻ ഞാൻ തീരുമാനിച്ചു. എല്ലാ പിക്സലുകളും തെളിച്ചമുള്ളതാണ് (മൂല്യത്തേക്കാൾ വലുത്) 130 യൂണിറ്റുകൾ കറുപ്പായി കണക്കാക്കപ്പെട്ടു, ബാക്കിയുള്ളവ വെള്ളയായിരുന്നു. ഈ രീതി അനുയോജ്യമല്ല, വാചകത്തിന്റെ തെളിച്ചം മാറുകയാണെങ്കിൽ ഇപ്പോഴും തൃപ്തികരമല്ലാത്ത ഫലത്തിലേക്ക് നയിക്കുന്നു, പക്ഷേ കുറഞ്ഞത് വിജ്ഞാന അടിത്തറയിലെ മൂല്യങ്ങൾക്ക് സമാനമായ ചിത്രങ്ങളെങ്കിലും ഇതിന് ലഭിച്ചു. ലുമിനോസിറ്റി അപ്രോക്‌സിമേറ്റർ ക്ലാസിൽ നടപ്പിലാക്കുന്നത് കാണാൻ കഴിയും.

വിജ്ഞാന അടിത്തറ.

വിജ്ഞാന അടിത്തറ പൂരിപ്പിക്കുന്നതിനുള്ള പ്രാരംഭ ആശയം, ഭാഷയിലെ ഓരോ അക്ഷരത്തിനും, എന്റെ കമ്പ്യൂട്ടറിൽ (C:\Windows\Fonts) ഇൻസ്റ്റാൾ ചെയ്തിട്ടുള്ള (C:\Windows\Fonts) ഫലമായുണ്ടാകുന്ന ചിഹ്ന ഇമേജിന്റെ Euler സ്വഭാവം ഞാൻ കണക്കാക്കും. ഫോണ്ട് തരങ്ങൾക്കുള്ള ഓപ്ഷനുകൾ (പതിവ്, കൊഴുത്ത, ഇറ്റാലിക്സ്) കൂടാതെ 8 മുതൽ 32 വരെയുള്ള വലുപ്പങ്ങൾ, അതുവഴി എല്ലാ അല്ലെങ്കിൽ മിക്കവാറും എല്ലാം ഉൾക്കൊള്ളുന്നു, അക്ഷരങ്ങളുടെയും അടിസ്ഥാനത്തിന്റെയും വ്യതിയാനങ്ങൾ സാർവത്രികമാകും, പക്ഷേ നിർഭാഗ്യവശാൽ ഇത് തോന്നുന്നത്ര മികച്ചതല്ല. ഈ വ്യവസ്ഥകൾക്കൊപ്പം, എനിക്ക് ലഭിച്ചത് ഇതാണ്:

  1. നോളജ് ബേസ് ഫയൽ റഷ്യൻ, ഇംഗ്ലീഷ് ഭാഷകൾക്കായി വളരെ വലുതായി (ഏകദേശം 3 മെഗാബൈറ്റ്) മാറി. Euler സ്വഭാവം 15 അക്കങ്ങളുടെ ഒരു ലളിതമായ സ്ട്രിംഗായി സംഭരിച്ചിട്ടുണ്ടെങ്കിലും, ഫയൽ തന്നെ ഒരു കംപ്രസ് ചെയ്ത ആർക്കൈവ് (DeflateStream) ആണ്, അത് മെമ്മറിയിൽ അൺപാക്ക് ചെയ്യുന്നു.
  2. വിജ്ഞാന അടിത്തറ ഇല്ലാതാക്കാൻ എനിക്ക് ഏകദേശം 10 സെക്കൻഡ് എടുക്കും. അതേസമയം, സ്വഭാവസവിശേഷതകൾ താരതമ്യം ചെയ്യുന്നതിനുള്ള സമയം കഷ്ടപ്പെട്ടു. GetHashCode() കണക്കാക്കുന്നതിനുള്ള ഒരു ഫംഗ്‌ഷൻ കണ്ടെത്തുന്നത് സാധ്യമല്ലാത്തതിനാൽ എനിക്ക് ബിറ്റ് ബിറ്റ് താരതമ്യം ചെയ്യേണ്ടിവന്നു. 3-5 ഫോണ്ടുകളുടെ വിജ്ഞാന അടിത്തറയുമായി താരതമ്യപ്പെടുത്തുമ്പോൾ, 140 ഫോണ്ടുകളുടെ ഡാറ്റാബേസ് ഉള്ള ടെക്സ്റ്റ് വിശകലനത്തിനുള്ള സമയം 30-50 മടങ്ങ് വർദ്ധിച്ചു. അതേ സമയം, വ്യത്യസ്‌ത ഫോണ്ടുകളിലെ ചില പ്രതീകങ്ങൾ ഒരുപോലെയും സമാനവുമാകാം, ഉദാഹരണത്തിന്, 20, 21 ഫോണ്ടുകൾ ഉണ്ടെങ്കിലും, അതേ സ്വഭാവസവിശേഷതകൾ വിജ്ഞാന അടിത്തറയിൽ സംരക്ഷിക്കപ്പെടുന്നില്ല.

അതിനാൽ, കോർ മൊഡ്യൂളിനുള്ളിൽ പോയി പ്രവർത്തനക്ഷമത പരിശോധിക്കുന്നത് സാധ്യമാക്കുന്ന ഒരു ചെറിയ വിജ്ഞാന അടിത്തറ എനിക്ക് സൃഷ്ടിക്കേണ്ടി വന്നു. ഡാറ്റാബേസ് പൂരിപ്പിക്കുമ്പോൾ വളരെ ഗുരുതരമായ ഒരു പ്രശ്നമുണ്ട്. എല്ലാ ഫോണ്ടുകളും ചെറിയ അക്ഷരങ്ങൾ ശരിയായി കാണിക്കുന്നില്ല. "ഫ്രാങ്ക്ലിൻ ഗോതിക് മീഡിയം" എന്ന് പേരിട്ടിരിക്കുന്ന 8 സൈസ് ഫോണ്ടിൽ റെൻഡർ ചെയ്യുമ്പോൾ "e" എന്ന അക്ഷരം ഇതായിരിക്കുമെന്ന് നമുക്ക് പറയാം:

കൂടാതെ ഒറിജിനലുമായി ഇതിന് ചെറിയ സാമ്യമുണ്ട്. മാത്രമല്ല, നിങ്ങൾ ഇത് വിജ്ഞാന അടിത്തറയിലേക്ക് ചേർക്കുകയാണെങ്കിൽ, ഇത് ഇതിന് സമാനമായ ചിഹ്നങ്ങളുടെ വിശകലനം തെറ്റിദ്ധരിപ്പിക്കുന്നതിനാൽ, ഹ്യൂറിസ്റ്റിക് ഫലങ്ങളെ വളരെയധികം വഷളാക്കും. ഡിവ്യത്യസ്ത അക്ഷരങ്ങൾക്ക് വ്യത്യസ്ത ഫോണ്ടുകളിൽ ഈ ചിഹ്നം ലഭിച്ചു. വിജ്ഞാന ബേസ് പൂരിപ്പിക്കുന്ന പ്രക്രിയ തന്നെ നിയന്ത്രിക്കേണ്ടതുണ്ട്, അതിലൂടെ ഒരു ചിഹ്നത്തിന്റെ ഓരോ ചിത്രവും വിജ്ഞാന അടിത്തറയിലേക്ക് സംരക്ഷിക്കുന്നതിന് മുമ്പ് ഒരു വ്യക്തി അക്ഷരം പാലിക്കുന്നുണ്ടോയെന്ന് പരിശോധിക്കുന്നു. പക്ഷേ, നിർഭാഗ്യവശാൽ, എനിക്ക് അത്രയും ഊർജ്ജവും സമയവും ഇല്ല.

പ്രതീക തിരയൽ അൽഗോരിതം.

തിരയലിലെ ഈ പ്രശ്‌നം തുടക്കത്തിൽ ഞാൻ കുറച്ചുകാണുകയും ചിഹ്നങ്ങൾക്ക് നിരവധി ഭാഗങ്ങൾ ഉൾക്കൊള്ളാൻ കഴിയുമെന്ന് മറന്നുവെന്നും ഞാൻ ഉടൻ പറയും. ഒരു പിക്സൽ-ബൈ-പിക്സൽ പാസേജിൽ ഞാൻ ഒരു ചിഹ്നത്തെ അഭിമുഖീകരിക്കുമെന്നും അതിന്റെ ഭാഗങ്ങൾ ഉണ്ടെങ്കിൽ കണ്ടെത്തുമെന്നും അവ സംയോജിപ്പിച്ച് വിശകലനം ചെയ്യുമെന്നും എനിക്ക് തോന്നി. ഒരു സാധാരണ പാസ് ഇതുപോലെ കാണപ്പെടും: ഞാൻ "H" (വിജ്ഞാന അടിത്തറയിൽ) എന്ന അക്ഷരം നോക്കുന്നു, കൂടാതെ മുകളിലെ ഡോട്ടിന് താഴെയും താഴെയുള്ള ഡോട്ടിന് മുകളിലും ഉള്ള എല്ലാ പ്രതീകങ്ങളും നിലവിലെ വരിയിൽ പെട്ടതാണെന്നും അവ ഒരുമിച്ച് അപരനാമമാക്കണമെന്നും കരുതുന്നു:

എന്നാൽ ഇതൊരു അനുയോജ്യമായ സാഹചര്യമാണ്; തിരിച്ചറിയൽ സമയത്ത്, എനിക്ക് കീറിപ്പോയ ചിത്രങ്ങൾ കൈകാര്യം ചെയ്യേണ്ടിവന്നു, എല്ലാത്തിനും പുറമേ, വാചകത്തിന് അടുത്തായി വലിയ അളവിൽ മാലിന്യങ്ങൾ ഉണ്ടായിരിക്കാം:


"അതെ" എന്ന വാക്കിന്റെ ഈ ചിത്രം വിശകലനത്തിന്റെ സങ്കീർണ്ണത വിശദീകരിക്കാൻ ശ്രമിക്കും. ഇതൊരു സമ്പൂർണ്ണ സ്ട്രിംഗ് ആണെന്ന് ഞങ്ങൾ അനുമാനിക്കും, എന്നാൽ b13 ഉം i6 ഉം ഏകദേശം കണക്കാക്കിയതിന്റെ ഫലമായി മാലിന്യത്തിന്റെ ശകലങ്ങളാണ്. "y" എന്ന അക്ഷരത്തിന് ഒരു കാലഘട്ടം നഷ്‌ടമായിരിക്കുന്നു, കൂടാതെ "c" മുതൽ "i" വരി വരെയുള്ള ഒരു വാചകമാണ് ഞങ്ങൾ കൈകാര്യം ചെയ്യുന്നതെന്ന് ഉറപ്പോടെ പറയാൻ അറിവിന്റെ അടിത്തറയിൽ ഒരു കഥാപാത്രവും ഇല്ല. വരിയുടെ ഉയരം ഞങ്ങൾക്ക് വളരെ പ്രധാനമാണ്, കാരണം ഒട്ടിക്കുന്നതിന് ശകലങ്ങൾ എത്ര അടുത്ത് “ഒട്ടിച്ച്” വിശകലനം ചെയ്യണമെന്ന് നമ്മൾ അറിയേണ്ടതുണ്ട്. എല്ലാത്തിനുമുപരി, ഞങ്ങൾ ആകസ്മികമായി രണ്ട് സ്ട്രിംഗുകളിൽ നിന്നുള്ള പ്രതീകങ്ങൾ ഒരുമിച്ച് ഒട്ടിക്കാൻ തുടങ്ങുന്ന ഒരു സാഹചര്യം ഉണ്ടാകാം, അത്തരം തിരിച്ചറിയലിന്റെ ഫലങ്ങൾ ആദർശത്തിൽ നിന്ന് വളരെ അകലെയായിരിക്കും.

ഇമേജ് വിശകലനത്തിൽ ഹ്യൂറിസ്റ്റിക്സ്.


ഇമേജ് തിരിച്ചറിയലിലെ ഹ്യൂറിസ്റ്റിക്സ് എന്തൊക്കെയാണ്?
വിജ്ഞാന അടിത്തറയിൽ ഇല്ലാത്ത ഒരു സ്വഭാവസവിശേഷതയെ അക്ഷരമാലയിലെ ശരിയായ അക്ഷരമായി അംഗീകരിക്കുന്ന പ്രക്രിയയാണിത്. വിശകലനം എങ്ങനെ നടത്താമെന്ന് ഞാൻ വളരെക്കാലമായി ചിന്തിച്ചു, അവസാനം ഏറ്റവും വിജയകരമായ അൽഗോരിതം ഇതായിരുന്നു:

  1. വിജ്ഞാന അടിത്തറയിൽ ഏറ്റവും കൂടുതൽ മൂല്യങ്ങളുള്ള എല്ലാ സ്വഭാവസവിശേഷതകളും ഞാൻ കണ്ടെത്തുന്നു എഫ് ശകലങ്ങൾഅംഗീകൃത ചിത്രവുമായി പൊരുത്തപ്പെടുന്നു.
  2. അടുത്തതായി, ശകലത്തിന്റെ അസമമായ എഫ് മൂല്യങ്ങളെ അടിസ്ഥാനമാക്കി തിരിച്ചറിയാവുന്ന ഇമേജിനൊപ്പം, വ്യത്യാസം +- 1 യൂണിറ്റിൽ കൂടുതലല്ല: -1 എന്ന സ്വഭാവസവിശേഷതകൾ മാത്രമേ ഞാൻ തിരഞ്ഞെടുക്കൂ.< F < 1. И это все подсчитывается для каждой буквы алфавита.
  3. അപ്പോൾ ഏറ്റവും കൂടുതൽ സംഭവങ്ങളുള്ള ചിഹ്നം ഞാൻ കണ്ടെത്തുന്നു. ഒരു ഹ്യൂറിസ്റ്റിക് വിശകലനത്തിന്റെ ഫലമായാണ് ഇത് കണക്കാക്കുന്നത്.
ഈ അൽഗോരിതം ചെറിയ പ്രതീക ചിത്രങ്ങളിൽ മികച്ച ഫലങ്ങൾ നൽകുന്നില്ല (ഫോണ്ട് വലുപ്പം 7 - 12) . എന്നാൽ വിജ്ഞാന അടിത്തറയിൽ വ്യത്യസ്ത ചിഹ്നങ്ങളുടെ സമാന ചിത്രങ്ങളുടെ സ്വഭാവസവിശേഷതകൾ അടങ്ങിയിരിക്കുന്നതിനാലാകാം.

C#-ലെ ഉപയോഗത്തിന്റെ ഒരു ഉദാഹരണം.

ഇമേജ് തിരിച്ചറിയൽ ചിത്രത്തിന്റെ തുടക്കത്തിന്റെ ഒരു ഉദാഹരണം. ഫല വേരിയബിളിൽ വാചകം അടങ്ങിയിരിക്കും:

var തിരിച്ചറിയൽ = പുതിയ TextRecognizer(കണ്ടെയ്നർ); var റിപ്പോർട്ട് = recognize.Recognize(image); // അസംസ്കൃത വാചകം. var ഫലം = റിപ്പോർട്ട്.RawText(); // എല്ലാ ശകലങ്ങളുടെയും പട്ടികയും ഓരോന്നിനും തിരിച്ചറിയൽ നില. var ശകലങ്ങൾ = റിപ്പോർട്ട്.ചിഹ്നങ്ങൾ;

ഡെമോ പ്രോജക്റ്റ്.

സൃഷ്ടിയുടെ ഒരു ദൃശ്യപ്രദർശനത്തിനായി, ഞാൻ എഴുതി WPFഅപേക്ഷ. "എന്ന പേരിലുള്ള ഒരു പദ്ധതിയിൽ നിന്നാണ് ഇത് സമാരംഭിച്ചത്. Qocr.Application.Wpf". തിരിച്ചറിയൽ ഫലമുള്ള ഒരു വിൻഡോയുടെ ഉദാഹരണം ചുവടെയുണ്ട്:

ഒരു ചിത്രം തിരിച്ചറിയാൻ നിങ്ങൾക്ക് ഇത് ആവശ്യമാണ്:

  • അമർത്തുന്നു "പുതിയ ചിത്രം"തിരിച്ചറിയലിനായി ഒരു ചിത്രം തിരഞ്ഞെടുക്കുന്നു
  • ഉപയോഗിച്ച് " കറുപ്പും വെളുപ്പും"ഏത് ചിത്രമാണ് വിശകലനം ചെയ്യേണ്ടതെന്ന് നിങ്ങൾക്ക് കാണാൻ കഴിയും. വളരെ നിലവാരം കുറഞ്ഞ ഒരു ചിത്രം നിങ്ങൾ കാണുകയാണെങ്കിൽ, നല്ല ഫലങ്ങൾ പ്രതീക്ഷിക്കരുത്. ഫലങ്ങൾ മെച്ചപ്പെടുത്തുന്നതിന്, ബ്ലാക്ക് ആൻഡ് വൈറ്റ് കൺവെർട്ടറിൽ നിങ്ങൾക്ക് ഒരു കളർ ഇമേജ് എഴുതാൻ ശ്രമിക്കാം.
  • ഒരു ഭാഷ തിരഞ്ഞെടുക്കുന്നു "ഭാഷ".
  • ക്ലിക്കുകൾ തിരിച്ചറിയുന്നു "തിരിച്ചറിയുക".
എല്ലാ ചിത്ര ശകലങ്ങളും ഓറഞ്ച് അല്ലെങ്കിൽ പച്ച ഫ്രെയിം ഉപയോഗിച്ച് അടയാളപ്പെടുത്തണം.
ഇംഗ്ലീഷ് ഭാഷാ വാചകം തിരിച്ചറിയുന്നതിനുള്ള ഒരു ഉദാഹരണം: