យើងកំពុងឃើញបដិវត្តន៍ AI ដ៏អស្ចារ្យ!
ជារៀងរាល់ថ្ងៃយើងទទួលបានកម្មវិធីថ្មីដែលមានសមត្ថភាពអស្ចារ្យ។ ជាមួយនឹងកម្មវិធី និងកម្មវិធីជាច្រើនដែលប្រើ AI និងការរៀនម៉ាស៊ីនចូលក្នុងជីវិតរបស់យើង; យើងគួរតែចំណាយពេលបន្ថែមទៀតដើម្បីរៀនអំពីរឿងទាំងនេះ។
នៅក្នុងការប្រកាសនេះយើងនឹងស្វែងយល់ ការរៀនម៉ាស៊ីន ជាលំអិត។ ផងដែរ យើងនឹងផ្តោតជាពិសេសលើប្រធានបទនៃការបណ្តុះបណ្តាលម៉ាស៊ីន និងសេចក្តីសន្និដ្ឋាន។
ចូរចាប់ផ្តើមជាមួយមូលដ្ឋានគ្រឹះ។
តើការរៀនម៉ាស៊ីនគឺជាអ្វី?
ជាច្រើនដងដែលយើងឃើញពាក្យ "ការរៀនម៉ាស៊ីន" និង "បញ្ញាសិប្បនិម្មិត" ត្រូវបានប្រើជាមួយគ្នា។ ដូច្នេះដំបូងយើងត្រូវជម្រះវាចេញ។ ការរៀនម៉ាស៊ីនគឺជាសាខានៃបញ្ញាសិប្បនិម្មិត។ វាពាក់ព័ន្ធនឹងក្បួនដោះស្រាយការបណ្តុះបណ្តាលដើម្បីបង្កើតការព្យាករណ៍ឬជម្រើសដែលជំរុញដោយទិន្នន័យ។
លើសពីនេះ វាអនុញ្ញាតឱ្យប្រព័ន្ធបង្កើនការអនុវត្តរបស់ពួកគេដោយស្វ័យប្រវត្តិដោយផ្អែកលើបទពិសោធន៍កន្លងមក។
ក្លែងបន្លំម៉្យាងវិញទៀត គឺជាការត្រាប់តាមបញ្ញារបស់មនុស្ស។ ដូច្នេះ កុំព្យូទ័រមានន័យថាគិត និងធ្វើដូចមនុស្ស។ វារួមបញ្ចូលផ្នែករងជាច្រើនដូចជា ការរៀនម៉ាស៊ីន ចក្ខុវិស័យកុំព្យូទ័រ និងដំណើរការភាសាធម្មជាតិ។
ការអភិវឌ្ឍន៍គំរូរៀនម៉ាស៊ីន
គំរូរៀនម៉ាស៊ីនគឺជាក្បួនដោះស្រាយ។ យើងបង្កើតក្បួនដោះស្រាយទាំងនេះដើម្បីបង្កើនប្រសិទ្ធភាពដោយស្វ័យប្រវត្តិតាមរយៈការរៀនទិន្នន័យ។ យើងប្រើពួកវាដើម្បីពិនិត្យមើលទិន្នន័យបញ្ចូល ប្រមើលមើលលទ្ធផលនាពេលអនាគត ឬធ្វើការវិនិច្ឆ័យ។
ចូរយើងផ្តល់ឧទាហរណ៍មួយ។ ដើម្បីចាត់ថ្នាក់រូបថតជាផ្កា ឬឆ្មា គំរូអាចត្រូវបានបណ្តុះបណ្តាលដើម្បីកំណត់អត្តសញ្ញាណរូបភាព។
ហើយវាអាចសម្រេចថាតើរូបភាពនោះជាផ្កា ឬឆ្មា គោលការណ៍សំខាន់នៃការរៀនម៉ាស៊ីនគឺថាការអនុវត្តរបស់ម៉ូដែលគួរតែត្រូវបានកែលម្អជាបន្តបន្ទាប់។ វាគួរតែមានប្រតិកម្មល្អចំពោះការផ្លាស់ប្តូរប៉ារ៉ាម៉ែត្រនៅក្នុងទិន្នន័យ។
ភាគច្រើន យើងអនុវត្តការហ្វឹកហាត់រៀនម៉ាស៊ីននេះនៅលើ កុំព្យូទ័រយួរដៃ Jupyterដែលជាឧបករណ៍ដ៏អស្ចារ្យសម្រាប់គម្រោងទាក់ទងនឹងទិន្នន័យណាមួយ។
ការបណ្តុះបណ្តាលគំរូ
ដំណើរការនៃការបង្រៀនក្បួនដោះស្រាយដើម្បីបង្កើតការទស្សន៍ទាយ ឬធ្វើសកម្មភាពដោយផ្អែកលើទិន្នន័យបញ្ចូលត្រូវបានគេហៅថា "ការបណ្តុះបណ្តាល" ។ កំឡុងពេលបណ្តុះបណ្តាល ប៉ារ៉ាម៉ែត្ររបស់ប្រព័ន្ធត្រូវបានកែប្រែ ដើម្បីអនុញ្ញាតឲ្យក្បួនដោះស្រាយដំណើរការ។ ទីបំផុត យើងកំពុងព្យាយាមបង្កើតការព្យាករណ៍ច្បាស់លាស់លើទិន្នន័យម៉ាកថ្មី។
ត្រួតពិនិត្យ និង ការរៀនសូត្រដែលមិនមានការត្រួតពិនិត្យ គឺជាប្រភេទចម្បងពីរនៃការរៀនម៉ាស៊ីន។
ការរៀនសូត្រត្រួតពិនិត្យ
សំណុំទិន្នន័យដែលមានស្លាកត្រូវបានប្រើដើម្បីបណ្តុះបណ្តាលក្បួនដោះស្រាយក្នុងការរៀនដែលមានការគ្រប់គ្រង។ នៅក្នុងប្រភេទនៃការរៀនម៉ាស៊ីននេះ លទ្ធផលរំពឹងទុកត្រូវបានបញ្ជាក់សម្រាប់ការបញ្ចូលនីមួយៗ។ ក្បួនដោះស្រាយធ្វើឱ្យការព្យាករណ៍លើទិន្នន័យថ្មីៗ។ ដូចគ្នានេះផងដែរ វាសិក្សាពីការតភ្ជាប់រវាងធាតុចូល និងលទ្ធផលដោយប្រើព័ត៌មាននេះ។
ដោយសារគំរូទទួលបានការត្រួតពិនិត្យលើអ្វីដែលលទ្ធផលដែលចង់បានគួរជាការរៀនសូត្រប្រភេទនេះត្រូវបានគេហៅថាជា "ការត្រួតពិនិត្យ"។
កម្មវិធីដូចជាការទទួលស្គាល់ការនិយាយ ចំណាត់ថ្នាក់រូបភាពហើយការកែច្នៃភាសាធម្មជាតិទាំងអស់ ប្រើប្រាស់ការរៀនសូត្រដែលមានការគ្រប់គ្រង។ នៅក្នុងកម្មវិធីទាំងនេះ ក្បួនដោះស្រាយត្រូវបានបណ្តុះបណ្តាលលើសំណុំទិន្នន័យដែលមានស្លាកធំ។ អាស្រ័យហេតុនេះ យើងអាចព្យាករណ៍ទិន្នន័យថ្មីៗ ដែលមិនបានមើលឃើញទុកជាមុន។
ផងដែរ ការគូសផែនទីបញ្ចូលទៅទិន្នផលត្រូវតែត្រូវបានរៀនដើម្បីឱ្យមានភាពត្រឹមត្រូវតាមដែលអាចធ្វើទៅបាន។
ការស្វែងរកផែនទីត្រឹមត្រូវបំផុតរវាងធាតុចូល និងលទ្ធផល គឺជាគោលបំណងនៃការសិក្សាដែលស្ថិតក្រោមការគ្រប់គ្រង។
ការរៀនសូត្រដែលមិនមានការត្រួតពិនិត្យ
ការរៀនដោយគ្មានការត្រួតពិនិត្យគឺជាសំណុំរងនៃការរៀនម៉ាស៊ីន យើងបណ្តុះបណ្តាលក្បួនដោះស្រាយលើសំណុំទិន្នន័យដែលមិនមានស្លាក។ ដូច្នេះ ម៉ូដែលអាចរកឃើញលំនាំ ឬទំនាក់ទំនងនៅក្នុងទិន្នន័យ។ យើងមិនចាំបាច់កំណត់ជាក់លាក់ថាលទ្ធផលគួរជាអ្វីនោះទេ។ ប្រភេទនៃការសិក្សានេះត្រូវបានគេហៅថា "គ្មានការត្រួតពិនិត្យ" ។ នេះគឺដោយសារតែគំរូមិនបានទទួលការណែនាំច្បាស់លាស់អំពីអ្វីដែលលទ្ធផលគួរតែជា។
កម្មវិធីដូចជាការរកឃើញភាពខុសប្រក្រតី ការដាក់ចង្កោម និងការកាត់បន្ថយវិមាត្រតម្រូវឱ្យមានការសិក្សាដោយមិនមានការត្រួតពិនិត្យ។ នៅក្នុងកម្មវិធីទាំងនេះ ក្បួនដោះស្រាយត្រូវតែទទួលស្គាល់លំនាំ ឬទំនាក់ទំនងនៅក្នុងទិន្នន័យ។ ហើយ វាគ្មានការណែនាំច្បាស់លាស់ទេ បន្ទាប់ពីត្រូវបានបណ្តុះបណ្តាលលើគំរូនៃទិន្នន័យដែលមិនមានស្លាក។
ការរៀនដែលគ្មានការត្រួតពិនិត្យមានគោលបំណងស្វែងរកគំរូ ឬរចនាសម្ព័ន្ធដែលលាក់កំបាំង។ យើងអាចប្រើវាក្នុងកិច្ចការផ្សេងៗគ្នាដូចជាការបង្ហាប់ទិន្នន័យ ឬការដាក់ជាក្រុមជាមួយគ្នានូវអ្វីដែលស្រដៀងគ្នា។
ការបង្កើនប្រសិទ្ធភាពការរៀនម៉ាស៊ីន
ដំណើរការបង្កើនប្រសិទ្ធភាពគឺចាំបាច់ក្នុងការសាងសង់គំរូម៉ាស៊ីនរៀន។ គោលបំណងនៃការបង្កើនប្រសិទ្ធភាពគឺដើម្បីកាត់បន្ថយភាពខុសគ្នារវាងការព្យាករណ៍នៃគំរូ និងតម្លៃជាក់ស្តែងនៅក្នុងទិន្នន័យបណ្តុះបណ្តាល។
ដំណើរការនេះជួយដល់គំរូក្នុងការរៀនទំនាក់ទំនងរវាងធាតុចូល និងលទ្ធផល។ ដូច្នេះហើយ យើងអាចទទួលបានការព្យាករណ៍ត្រឹមត្រូវបំផុតដែលអាចធ្វើទៅបាន។
តាមរយៈការកាត់បន្ថយកំហុស គំរូនេះអាចជាទូទៅកាន់តែប្រសើរឡើងចំពោះទិន្នន័យថ្មី ដែលមិនស្គាល់ពីមុន។ ដូច្នេះ វាអាចបង្កើតការព្យាករណ៍កាន់តែរឹងមាំ និងអាចទុកចិត្តបាន។
នៅក្នុងការរៀនម៉ាស៊ីន ដំណើរការបង្កើនប្រសិទ្ធភាពត្រូវបានសម្រេចដោយការប្រើប្រាស់ក្បួនដោះស្រាយដូចជា gradient descent។ ដូច្នេះ ក្បួនដោះស្រាយរបស់យើងបន្តកែតម្រូវប៉ារ៉ាម៉ែត្ររហូតទាល់តែកំហុសត្រូវបានបង្រួមអប្បបរមា។ នីតិវិធីបង្កើនប្រសិទ្ធភាពគឺចាំបាច់ដើម្បីឱ្យការព្យាករណ៍របស់ម៉ូដែលមានភាពត្រឹមត្រូវ។
សំណុំទិន្នន័យបណ្តុះបណ្តាលរបស់ Machine Learning
សំណុំទិន្នន័យបណ្ដុះបណ្ដាល គឺជាសំណុំទិន្នន័យដែលត្រូវបានប្រើដើម្បីបណ្តុះបណ្តាល ក គំរូរៀនម៉ាស៊ីន. យើងបណ្តុះបណ្តាលគំរូអំពីរបៀបបង្កើតការព្យាករណ៍ដោយបង្ហាញឧទាហរណ៍នៃការបញ្ចូល និងលទ្ធផល។ ដោយផ្អែកលើទិន្នន័យបណ្តុះបណ្តាលនេះ គំរូកែប្រែប៉ារ៉ាម៉ែត្ររបស់វា។
ដូច្នេះ ភាពត្រឹមត្រូវនៃការទស្សន៍ទាយរបស់វាត្រូវបានវាយតម្លៃដោយប្រើសំណុំទិន្នន័យដាច់ដោយឡែក ដែលជាសំណុំសុពលភាព។
សំណុំទិន្នន័យបណ្តុះបណ្តាលគួរតែឆ្លុះបញ្ចាំងពីបញ្ហាដែលកំពុងត្រូវបានដោះស្រាយ។ ហើយវាគួរតែមានទិន្នន័យគ្រប់គ្រាន់ ដើម្បីបណ្តុះបណ្តាលគំរូឱ្យបានគ្រប់គ្រាន់។ ការព្យាករណ៍របស់គំរូអាចមានភាពមិនត្រឹមត្រូវ ប្រសិនបើសំណុំទិន្នន័យបណ្តុះបណ្តាលតូចពេក។
ឬវាអាចមិនមែនជាតំណាងខ្លាំង។ ជាលទ្ធផល ដំណើរការមុនយ៉ាងទូលំទូលាយនៃសំណុំទិន្នន័យបណ្តុះបណ្តាល គឺជាតម្រូវការមួយ។ ដូច្នេះហើយ យើងអាចធានាបានថា ម៉ូដែលនេះទទួលបានជោគជ័យខ្ពស់បំផុត។
ឧទាហរណ៍នៃការបណ្តុះបណ្តាល៖
ចូរយើងផ្តល់ឧទាហរណ៍មួយដើម្បីយល់ពីដំណើរការបណ្តុះបណ្តាល។
ក្នុងឧទាហរណ៍នេះ យើងសន្មត់ថាយើងមានសំណុំទិន្នន័យមួយដែលមានឈ្មោះថា “music.csv”។ វាមានតម្លៃនៃភេទ អាយុ និងប្រភេទ។ ដូច្នេះហើយ វាទាយថាប្រភេទតន្ត្រីណាដែលមនុស្សម្នាក់កំពុងស្តាប់ ដោយផ្អែកលើអាយុ និងភេទរបស់ពួកគេ។
នេះគឺជាកូដ Python សម្រាប់ការហ្វឹកហ្វឺនការរៀនម៉ាស៊ីនសាមញ្ញដោយប្រើបណ្ណាល័យ scikit-learn៖ វិធីសាស្រ្តនៃការតំរែតំរង់ logistic ត្រូវបានប្រើនៅក្នុងកូដនេះដើម្បីបណ្តុះបណ្តាលគំរូលើទិន្នន័យ ហើយបន្ទាប់មកវាយតម្លៃភាពត្រឹមត្រូវរបស់វាលើទិន្នន័យសាកល្បង។
ទិន្នន័យដំបូងត្រូវបានដាក់ចូលទៅក្នុងស៊ុមទិន្នន័យខ្លាឃ្មុំផេនដា មុនពេលត្រូវបានបែងចែកជាលក្ខណៈ (X) និងគោលដៅ (Y) (y)។ បន្ទាប់មក ទិន្នន័យត្រូវបានបែងចែកទៅជាសំណុំបណ្តុះបណ្តាល និងការធ្វើតេស្ត ដោយ 80% នៃទិន្នន័យប្រើប្រាស់សម្រាប់ការបណ្តុះបណ្តាល និង 20% សម្រាប់ការធ្វើតេស្ត។ បន្ទាប់មក គំរូត្រូវបានបណ្តុះបណ្តាលលើទិន្នន័យបណ្តុះបណ្តាល មុនពេលត្រូវបានសាកល្បងលើទិន្នន័យសាកល្បង។
ការសន្និដ្ឋាននៅក្នុង Machine Learning
ដំណើរការនៃការប្រើប្រាស់គំរូដែលបានបណ្តុះបណ្តាលដើម្បីបង្កើតការទស្សន៍ទាយលើទិន្នន័យថ្មីគឺសំដៅទៅលើការសន្និដ្ឋាន។
ដើម្បីដាក់វាតាមវិធីមួយទៀត វាគឺជាការអនុវត្តព័ត៌មានដែលទទួលបានក្នុងអំឡុងពេលបណ្តុះបណ្តាល។ គំរូទទួលបានទិន្នន័យថ្មី និងបង្កើតការព្យាករណ៍ ឬការវិនិច្ឆ័យដោយផ្អែកលើគំរូដែលវាបានរកឃើញនៅក្នុងទិន្នន័យបណ្តុះបណ្តាល។
ការព្យាករណ៍របស់ម៉ូដែលនឹងមានភាពត្រឹមត្រូវអាស្រ័យលើគុណភាពនៃទិន្នន័យបណ្តុះបណ្តាល។ ដូចគ្នានេះផងដែរ, វានឹងអាស្រ័យលើស្ថាបត្យកម្មគំរូដែលបានជ្រើសរើស, និងបច្ចេកទេសដែលបានប្រើដើម្បីបណ្តុះបណ្តាគំរូ។
សារៈសំខាន់នៃការសន្និដ្ឋាននៅក្នុងកម្មវិធី
នៅក្នុងការសន្និដ្ឋាន យើងទទួលបានដើម្បីឱ្យគំរូដើម្បីផ្តល់នូវលទ្ធផលសម្រាប់គោលដៅជាក់លាក់មួយ។ ទាំងនេះអាចប្រែប្រួលដូចជា ការចាត់ថ្នាក់រូបភាព ដំណើរការភាសាធម្មជាតិ ឬប្រព័ន្ធណែនាំ។ ភាពត្រឹមត្រូវនៃជំហានសន្និដ្ឋានមានឥទ្ធិពលផ្ទាល់ទៅលើដំណើរការទាំងមូលនៃប្រព័ន្ធ។
វាមានសារៈសំខាន់ណាស់សម្រាប់ការអនុវត្តជាក់ស្តែងនៃគំរូសិក្សាម៉ាស៊ីននៅក្នុងកម្មវិធីពិភពពិត។
ការបញ្ចូលទិន្នន័យថ្មីដែលមិនស្គាល់
ដំណើរការសន្និដ្ឋានក្នុងការរៀនម៉ាស៊ីនចាប់ផ្ដើមដោយការបន្ថែមទិន្នន័យថ្មីទៅគំរូ។ ទិន្នន័យនេះត្រូវតែដំណើរការជាមុន ដើម្បីផ្គូផ្គងទម្រង់បញ្ចូលដែលបានប្រើដើម្បីបណ្តុះបណ្តាលគំរូ។
ការទស្សន៍ទាយដោយផ្អែកលើលំនាំដែលបានរៀន
បន្ទាប់មក គំរូប្រើប្រាស់ទិន្នន័យបញ្ចូលដើម្បីបង្កើតការទស្សន៍ទាយដោយផ្អែកលើគំរូដែលបានសិក្សារបស់ទិន្នន័យបណ្តុះបណ្តាល។ ភាពត្រឹមត្រូវនៃការព្យាករណ៍គឺអាស្រ័យលើគុណភាពទិន្នន័យបណ្តុះបណ្តាល និងបច្ចេកទេសដែលបានប្រើប្រាស់។
ឧទាហរណ៍នៃការសន្និដ្ឋាន៖
ដូចឧទាហរណ៍មុន; ដំបូងយើងនឹងបង្ហាត់ទិន្នន័យ ហើយបន្ទាប់មកអនុវត្តការសន្និដ្ឋាន។ ក្នុងករណីនេះ យើងបានប្រើ RandomForestClassifier ជំនួសឱ្យ LogisticRegression។
យើងកំពុងបង្កើតការព្យាករណ៍ម្តងទៀតនៅក្នុង Python ដោយប្រើ sci-kit-learn toolkit ។ សន្មតថាយើងបានបណ្តុះបណ្តាលគំរូមួយ ហើយមានសំណុំទិន្នន័យហៅថា X test ដែលយើងចង់ធ្វើការទស្សន៍ទាយ។
លេខកូដនេះព្យាករណ៍លើទិន្នន័យតេស្តសាកល្បង X ដោយប្រើមុខងារទស្សន៍ទាយរបស់គំរូដែលបានបណ្តុះបណ្តាល។ បន្ទាប់មកការព្យាករណ៍ត្រូវបានរក្សាទុកក្នុងស៊ុមទិន្នន័យ ដោយប្រាំដំបូងត្រូវបានបង្ហាញ។
កត្តាដែលមានឥទ្ធិពលលើការអនុវត្តការសន្និដ្ឋាន
ធាតុសំខាន់ៗមួយចំនួនមានឥទ្ធិពលលើការអនុវត្តនៃការសន្និដ្ឋាននៅក្នុងការរៀនម៉ាស៊ីន។
ល្បឿននៃការសន្និដ្ឋាន
ល្បឿននៃការសន្និដ្ឋានគឺជាកង្វល់ដ៏សំខាន់មួយព្រោះវាប៉ះពាល់ផ្ទាល់ដល់ដំណើរការរបស់ប្រព័ន្ធ។ ពេលវេលានៃការសន្និដ្ឋានលឿនជាងមុនអាចអនុញ្ញាតឱ្យធ្វើការសម្រេចចិត្ត ឬទស្សន៍ទាយបានលឿនជាងមុន។ ដូចគ្នានេះផងដែរវាបង្កើនអត្ថប្រយោជន៍របស់ម៉ូដែល។
ភាពត្រឹមត្រូវនៃការទស្សន៍ទាយ
សមាសធាតុសំខាន់មួយទៀតគឺភាពត្រឹមត្រូវនៃការព្យាករណ៍ដែលបានបង្កើតកំឡុងពេលសន្និដ្ឋាន។ នេះគឺដោយសារតែគោលដៅរបស់ម៉ូដែលគឺដើម្បីផ្តល់នូវលទ្ធផលដែលនៅជិតតម្លៃពិតប្រាកដតាមដែលអាចធ្វើទៅបាន។ ភាពត្រឹមត្រូវនៃទិន្នផលរបស់ម៉ូដែលគឺអាស្រ័យលើគុណភាពនៃទិន្នន័យបណ្តុះបណ្តាល។
ដូចគ្នានេះផងដែរវាទាក់ទងយ៉ាងខ្លាំងទៅនឹងស្ថាបត្យកម្មគំរូ។
សារៈសំខាន់នៃការបង្កើនប្រសិទ្ធភាពដំណាក់កាលសន្និដ្ឋាន
ដោយមើលឃើញពីសារៈសំខាន់នៃល្បឿននៃការសន្និដ្ឋាន និងភាពត្រឹមត្រូវ វាមានសារៈសំខាន់ណាស់ក្នុងការបង្កើនប្រសិទ្ធភាពដំណើរការសន្និដ្ឋានដើម្បីទទួលបានលទ្ធផលប្រកបដោយប្រសិទ្ធភាព។ នេះអាចរួមបញ្ចូលយុទ្ធសាស្រ្តដូចជាការបង្រួមទំហំរបស់ម៉ូដែល។ ឬអ្នកអាចបង្កើនការបង្កើនល្បឿនផ្នែករឹង ឬកែលម្អដំណើរការដំណើរការទិន្នន័យបញ្ចូល។
សន្និដ្ឋាន
ជាចុងក្រោយ នៅក្នុងការរៀនម៉ាស៊ីន ការបណ្តុះបណ្តាល និងការសន្និដ្ឋាន គឺជាដំណើរការដ៏សំខាន់។ យើងត្រូវមានចំណេះដឹង និងសមត្ថភាពពិសេស ដើម្បីអនុវត្តវាឱ្យមានប្រសិទ្ធភាព។ ការបណ្តុះបណ្តាលអនុញ្ញាតឱ្យគំរូធ្វើការទស្សន៍ទាយ ចំណែកការសន្និដ្ឋានអនុញ្ញាតឱ្យគំរូធ្វើការព្យាករណ៍ដោយផ្អែកលើទិន្នន័យថ្មីៗ។
ទាំងពីរដើរតួយ៉ាងសំខាន់ក្នុងការកំណត់ភាពជោគជ័យ និងភាពត្រឹមត្រូវរបស់គំរូ។ ដូច្នេះ សូមចងចាំពួកគេនៅក្នុងគម្រោងបន្ទាប់របស់អ្នក!
សូមផ្ដល់យោបល់