ជម្រាលជម្រាលគឺជាបច្ចេកទេសបង្កើនប្រសិទ្ធភាពដ៏ពេញនិយមបំផុតក្នុងការរៀនម៉ាស៊ីន (ML) គំរូ។ ក្បួនដោះស្រាយកាត់បន្ថយកំហុសរវាងតម្លៃដែលបានព្យាករណ៍ និងការពិតមូលដ្ឋាន។ ដោយសារបច្ចេកទេសពិចារណាចំណុចទិន្នន័យនីមួយៗដើម្បីយល់ និងកាត់បន្ថយកំហុស នោះដំណើរការរបស់វាអាស្រ័យលើទំហំទិន្នន័យបណ្តុះបណ្តាល។ បច្ចេកទេសដូចជា Stochastic Gradient Descent (SGD) ត្រូវបានរចនាឡើងដើម្បីកែលម្អដំណើរការគណនា ប៉ុន្តែត្រូវចំណាយលើភាពត្រឹមត្រូវនៃការបញ្ចូលគ្នា។
Stochastic Average Gradient ធ្វើឱ្យមានតុល្យភាពរវាងវិធីសាស្រ្តបុរាណ ដែលត្រូវបានគេស្គាល់ថាជា Full Gradient Descent និង SGD ហើយផ្តល់នូវអត្ថប្រយោជន៍ទាំងពីរ។ ប៉ុន្តែមុននឹងយើងអាចប្រើ algorithm បាន យើងត្រូវយល់ពីសារៈសំខាន់របស់វាជាមុនសិនសម្រាប់ការបង្កើនប្រសិទ្ធភាពគំរូ។
ការបង្កើនប្រសិទ្ធភាពគោលបំណងរៀនម៉ាស៊ីនជាមួយនឹងជម្រាលជម្រាល
រាល់ក្បួនដោះស្រាយ ML មានមុខងារបាត់បង់ដែលទាក់ទងគ្នា ដែលមានបំណងកាត់បន្ថយ ឬកែលម្អដំណើរការរបស់ម៉ូដែល។ តាមគណិតវិទ្យា ការបាត់បង់អាចត្រូវបានកំណត់ជា៖
វាគ្រាន់តែជាភាពខុសគ្នារវាងលទ្ធផលជាក់ស្តែង និងលទ្ធផលដែលបានព្យាករណ៍ ហើយការកាត់បន្ថយភាពខុសគ្នានេះមានន័យថាគំរូរបស់យើងខិតទៅជិតតម្លៃការពិត។
ក្បួនដោះស្រាយការបង្រួមអប្បបរមាប្រើការចុះជម្រាលដើម្បីឆ្លងកាត់មុខងារបាត់បង់ និងស្វែងរកអប្បបរមាជាសកល។ ជំហានឆ្លងកាត់នីមួយៗពាក់ព័ន្ធនឹងការធ្វើបច្ចុប្បន្នភាពទម្ងន់របស់ក្បួនដោះស្រាយ ដើម្បីបង្កើនប្រសិទ្ធភាពលទ្ធផល។
ជម្រាលជម្រាលធម្មតា
ក្បួនដោះស្រាយការចុះជម្រាលជម្រាលធម្មតាប្រើជាមធ្យមនៃជម្រាលទាំងអស់ដែលបានគណនានៅទូទាំងសំណុំទិន្នន័យទាំងមូល។ វដ្តជីវិតនៃឧទាហរណ៍ការបណ្តុះបណ្តាលតែមួយមើលទៅដូចតទៅ៖
សមីការធ្វើបច្ចុប្បន្នភាពទម្ងន់មើលទៅដូចខាងក្រោម៖
ដែល W
តំណាងឱ្យទម្ងន់គំរូ ហើយ dJ/dW
គឺជាដេរីវេនៃមុខងារបាត់បង់ទាក់ទងនឹងទម្ងន់គំរូ។ វិធីសាស្រ្តសាមញ្ញមានអត្រាការបញ្ចូលគ្នាខ្ពស់ ប៉ុន្តែក្លាយជាថ្លៃគណនានៅពេលដោះស្រាយជាមួយសំណុំទិន្នន័យធំដែលមានចំណុចទិន្នន័យរាប់លាន។
Stochastic Gradient Descent (SGD)
វិធីសាស្រ្ត SGD នៅតែដូចគ្នានឹង GD ធម្មតា ប៉ុន្តែជំនួសឱ្យការប្រើសំណុំទិន្នន័យទាំងមូលដើម្បីគណនាជម្រាល វាប្រើបណ្តុំតូចមួយពីធាតុបញ្ចូល។ វិធីសាស្ត្រនេះមានប្រសិទ្ធភាពជាង ប៉ុន្តែអាចនឹងលោតច្រើនពេកជុំវិញអប្បបរមាសកល ដោយសារការធ្វើឡើងវិញនីមួយៗប្រើតែផ្នែកមួយនៃទិន្នន័យសម្រាប់ការរៀនប៉ុណ្ណោះ។
ជម្រាលមធ្យម Stochastic
វិធីសាស្រ្ត Stochastic Average Gradient (SAG) ត្រូវបានណែនាំជាចំណុចកណ្តាលរវាង GD និង SGD ។ វាជ្រើសរើសចំណុចទិន្នន័យចៃដន្យ និងធ្វើបច្ចុប្បន្នភាពតម្លៃរបស់វាដោយផ្អែកលើជម្រាលនៅចំណុចនោះ និងជាមធ្យមទម្ងន់នៃជម្រាលអតីតកាលដែលបានរក្សាទុកសម្រាប់ចំណុចទិន្នន័យជាក់លាក់នោះ។
ស្រដៀងទៅនឹង SGD ដែរ ម៉ូដែល SAG រាល់បញ្ហាទាំងអស់ជាផលបូកកំណត់នៃប៉ោង មុខងារផ្សេងគ្នា។ នៅក្នុងការបញ្ជាក់ឡើងវិញណាមួយ វាប្រើជម្រាលបច្ចុប្បន្ន និងមធ្យមនៃជម្រាលពីមុនសម្រាប់ការធ្វើបច្ចុប្បន្នភាពទម្ងន់។ សមីការមានទម្រង់ដូចខាងក្រោមៈ
អត្រាការបញ្ចូលគ្នា
រវាងក្បួនដោះស្រាយដ៏ពេញនិយមពីរគឺ ជម្រាលពេញលេញ (FG) និងការធ្លាក់ចុះជម្រាល stochastic (SGD) ក្បួនដោះស្រាយ FG មានអត្រាការបញ្ចូលគ្នាប្រសើរជាងមុន ចាប់តាំងពីវាប្រើប្រាស់សំណុំទិន្នន័យទាំងមូលកំឡុងពេលធ្វើម្តងទៀតនីមួយៗសម្រាប់ការគណនា។
ទោះបីជា SAG មានរចនាសម្ព័ន្ធស្រដៀងនឹង SGD ក៏ដោយ អត្រានៃការបញ្ចូលគ្នារបស់វាគឺអាចប្រៀបធៀបទៅនឹង និងពេលខ្លះប្រសើរជាងវិធីសាស្រ្តជម្រាលពេញលេញ។ តារាងទី 1 ខាងក្រោមសង្ខេបលទ្ធផលពីការពិសោធន៍របស់
ការកែប្រែបន្ថែម
ទោះបីជាដំណើរការដ៏អស្ចារ្យរបស់វាក៏ដោយ ការកែប្រែជាច្រើនត្រូវបានស្នើឡើងចំពោះក្បួនដោះស្រាយ SGD ដើម ដើម្បីជួយកែលម្អការអនុវត្ត។
- ការថ្លឹងថ្លែងឡើងវិញក្នុងដំណាក់កាលដំបូង៖ ការបង្រួបបង្រួម SAG នៅតែមានភាពយឺតយ៉ាវក្នុងកំឡុងពេលធ្វើម្តងទៀតពីរបីដងដំបូងចាប់តាំងពី algorithm ធ្វើឱ្យទិសដៅធម្មតាជាមួយ n (ចំនួនសរុបនៃចំណុចទិន្នន័យ)។ នេះផ្តល់នូវការប៉ាន់ប្រមាណមិនត្រឹមត្រូវ ដោយសារក្បួនដោះស្រាយមិនទាន់ឃើញចំណុចទិន្នន័យជាច្រើន។ ការកែប្រែណែនាំការធ្វើឱ្យធម្មតាដោយ m ជំនួសឱ្យ n ដែល m គឺជាចំនួននៃចំណុចទិន្នន័យដែលបានឃើញយ៉ាងហោចណាស់ម្តងរហូតដល់ការធ្វើម្តងទៀតជាក់លាក់នោះ។
- Mini-batches៖ វិធីសាស្រ្ត Stochastic Gradient ប្រើដុំតូចៗ ដើម្បីដំណើរការចំណុចទិន្នន័យច្រើនក្នុងពេលដំណាលគ្នា។ វិធីសាស្រ្តដូចគ្នាអាចត្រូវបានអនុវត្តទៅ SAG ។ នេះអនុញ្ញាតឱ្យមាន vectorization និង parallelization សម្រាប់ធ្វើឱ្យប្រសើរឡើងនូវប្រសិទ្ធភាពកុំព្យូទ័រ។ វាក៏កាត់បន្ថយការផ្ទុកអង្គចងចាំ ដែលជាបញ្ហាប្រឈមដ៏លេចធ្លោសម្រាប់ក្បួនដោះស្រាយ SAG ។
- ការពិសោធន៍ទំហំជំហាន៖ ទំហំជំហានដែលបានរៀបរាប់ពីមុន (116L) ផ្តល់នូវលទ្ធផលដ៏អស្ចារ្យ ប៉ុន្តែអ្នកនិពន្ធបានធ្វើការពិសោធន៍បន្ថែមទៀតដោយប្រើទំហំជំហាននៃ 1L ។ ក្រោយមកទៀតផ្តល់នូវការរួបរួមគ្នាកាន់តែប្រសើរឡើង។ ទោះជាយ៉ាងណាក៏ដោយ អ្នកនិពន្ធមិនអាចបង្ហាញការវិភាគជាផ្លូវការអំពីលទ្ធផលដែលប្រសើរឡើងនោះទេ។ ពួកគេសន្និដ្ឋានថាទំហំជំហានគួរត្រូវបានពិសោធដើម្បីស្វែងរកជម្រើសល្អបំផុតសម្រាប់បញ្ហាជាក់លាក់។
គំនិតចុងក្រោយ
ជម្រាលជម្រាលគឺជាការបង្កើនប្រសិទ្ធភាពដ៏ពេញនិយមដែលប្រើសម្រាប់កំណត់ទីតាំងអប្បបរមាសកលនៃមុខងារគោលបំណងដែលបានផ្តល់។ ក្បួនដោះស្រាយប្រើជម្រាលនៃមុខងារគោលបំណងដើម្បីឆ្លងកាត់ជម្រាលមុខងាររហូតដល់វាឈានដល់ចំណុចទាបបំផុត។
Full Gradient Descent (FG) និង Stochastic Gradient Descent (SGD) គឺជាបំរែបំរួលដ៏ពេញនិយមពីរនៃក្បួនដោះស្រាយ។ FG ប្រើសំណុំទិន្នន័យទាំងមូលកំឡុងពេលធ្វើម្តងទៀតនីមួយៗ និងផ្តល់អត្រាការបញ្ចូលគ្នាខ្ពស់ក្នុងការចំណាយគណនាខ្ពស់។ នៅពេលធ្វើឡើងវិញនីមួយៗ SGD ប្រើសំណុំទិន្នន័យរងដើម្បីដំណើរការក្បួនដោះស្រាយ។ វាមានប្រសិទ្ធភាពជាង ប៉ុន្តែជាមួយនឹងការបញ្ចូលគ្នាមិនច្បាស់លាស់។
Stochastic Average Gradient (SAG) គឺជាបំរែបំរួលមួយផ្សេងទៀតដែលផ្តល់នូវអត្ថប្រយោជន៍នៃក្បួនដោះស្រាយមុនទាំងពីរ។ វាប្រើជាមធ្យមនៃជម្រាលអតីតកាល និងសំណុំរងនៃសំណុំទិន្នន័យ ដើម្បីផ្តល់អត្រាការបញ្ចូលគ្នាខ្ពស់ជាមួយនឹងការគណនាទាប។ ក្បួនដោះស្រាយអាចត្រូវបានកែប្រែបន្ថែមទៀត ដើម្បីបង្កើនប្រសិទ្ធភាពរបស់វាដោយប្រើ vectorization និង mini-batches ។