Біз роботтарға өзіміздің туа біткен қабілеттерімізді үлгі етіп үйренуге және олардың айналасын қабылдауға сіңіре алғанымызды білу бізді тыныштандырады. Негізгі міндет - компьютерлерді адамдарға «көруге» үйрететін адамдар әлдеқайда көп уақыт пен күш-жігерді қажет етеді.
Дегенмен, бұл дағдының қазіргі уақытта ұйымдар мен кәсіпорындарға беретін практикалық құндылығын қарастырсақ, күш жұмсауға тұрарлық. Бұл мақалада сіз кескіннің жіктелуі, оның жұмыс істеу әдісі және оның практикалық орындалуы туралы біле аласыз. Бастайық.
Суреттің классификациясы дегеніміз не?
Кескінді a ішіне беру жұмысы нейрондық желі және оның сол суретке арналған белгінің қандай да бір түрін шығаруы кескінді тану деп аталады. Желінің шығыс белгісі алдын ала анықталған классқа сәйкес болады.
Суретке тағайындалған көптеген сыныптар немесе жай ғана біреуі болуы мүмкін. Бір ғана класс болған кезде «тану» термині жиі пайдаланылады, ал бірнеше сыныптар болған кезде «жіктеу» термині жиі қолданылады.
Объектіні анықтау жануарлар, көліктер немесе адамдар сияқты белгілі бір нысандардың даналарының берілген сыныпқа жататындығы анықталатын сурет классификациясының ішкі жиыны.
Кескінді жіктеу қалай жұмыс істейді?
Пиксель түріндегі кескін компьютермен талданады. Ол мұны суретті өлшемі кескін ажыратымдылығымен анықталатын матрицалар жиынтығы ретінде қарастыру арқылы жүзеге асырады. Қарапайым тілмен айтқанда, суреттерді жіктеу - бұл компьютер тұрғысынан алгоритмдерді қолданатын статистикалық деректерді зерттеу.
Кескінді жіктеу пикселдерді алдын ала анықталған топтарға немесе «сыныптарға» топтастыру арқылы кескінді цифрлық өңдеуде жүзеге асырылады. Алгоритмдер кескінді назар аударарлық сипаттамалар қатарына бөледі, бұл соңғы классификаторға жүктемені азайтады.
Бұл қасиеттер классификаторға кескіннің мәні мен потенциалды классификациясы туралы хабарлайды. Суретті жіктеудегі қалған процестер оған байланысты болғандықтан, сипаттамалық экстракция әдісі ең маңызды кезең болып табылады.
The деректер берілген Алгоритмнің кескінді жіктеуде, әсіресе бақыланатын классификациясында да маңызды. Сыныпқа және төмен сурет пен аннотация сапасына негізделген деректер теңгерімсіздігі бар қорқынышты деректер жиынтығымен салыстырғанда, жақсы оңтайландырылған жіктеу деректер жинағы тамаша жұмыс істейді.
Python тіліндегі Tensorflow және Keras көмегімен кескінді жіктеу
Біз қолданатын боламыз CIFAR-10 деректер жинағы (оған ұшақтар, ұшақтар, құстар және басқа 7 нәрсе кіреді).
1. Орнату талаптары
Төмендегі код барлық алғышарттарды орнатады.
2. Тәуелділіктерді импорттау
Python тілінде train.py файлын жасаңыз. Төмендегі код Tensorflow және Keras тәуелділіктерін импорттайды.
3. Параметрлерді инициализациялау
CIFAR-10 бар болғаны 10 сурет санатын қамтиды, сондықтан сандық сыныптар жай ғана жіктеу үшін санаттар санын білдіреді.
4. Деректер жиынын жүктеу
Функция деректер жинағын жүктеу үшін Tensorflow Datasets модулін пайдаланады және ол туралы кейбір ақпаратты алу үшін ақпаратпен True мәнін орнатамыз. Өрістер мен олардың мәндері қандай екенін көру үшін оны басып шығаруға болады, біз ақпаратты оқу және сынақ жинақтарындағы үлгілердің санын шығарып алу үшін пайдаланамыз.
5. Модельді құру
Енді біз әрқайсысы максималды біріктіру және ReLU белсендіру функциясы бар екі ConvNet, одан кейін толық қосылған 1024 бірлік жүйесі бар үш қабатты құрастырамыз. Соңғы үлгілер болып табылатын ResNet50 немесе Xception-пен салыстырғанда, бұл салыстырмалы түрде кішкентай модель болуы мүмкін.
6. Модельді жаттықтыру
Мен Tensorboard-ты әр дәуірдегі дәлдік пен жоғалтуды өлшеу үшін қолдандым және деректерді импорттап, үлгіні жасағаннан кейін бізге тамаша дисплейді қамтамасыз еттім. Келесі кодты іске қосыңыз; CPU/GPU-ға байланысты жаттығу бірнеше минутқа созылады.
Тензор тақтасын пайдалану үшін терминалға немесе ағымдағы каталогтағы пәрмен жолына келесі пәрменді теріңіз:
Валидацияның жоғалуы азайып, дәлдік шамамен 81%-ға дейін көтерілетінін көресіз. Бұл керемет!
Модельді сынау
Жаттығу аяқталғаннан кейін соңғы үлгі мен салмақтар нәтижелер қалтасында сақталады, бұл бізге бір рет жаттығуға және таңдаған кезде болжам жасауға мүмкіндік береді. test.py деп аталатын жаңа питон файлындағы кодты орындаңыз.
7. Тестілеу үшін утилиталарды импорттау
8. Python каталогын жасау
Әрбір бүтін мәнді деректер жиынының сәйкес белгісіне аударатын Python сөздігін жасаңыз:
9. Сынақ деректері мен үлгісін жүктеу
Келесі код сынақ деректері мен үлгісін жүктейді.
10. Бағалау және болжау
Келесі код бақа суреттерін бағалайды және болжам жасайды.
11. Нәтижелері
Модель бақаны 80.62% дәлдікпен болжаған.
қорытынды
Жақсы, бұл сабақты аяқтадық. Кішкене CNN үшін 80.62% жақсы болмаса да, жақсы нәтиже алу үшін үлгіні өзгертуге немесе ResNet50, Xception немесе басқа озық үлгілерді қарауға кеңес беремін.
Керастағы алғашқы кескінді тану желісін құрғаныңыздан кейін, әртүрлі параметрлердің оның өнімділігіне қалай әсер ететінін білу үшін үлгімен тәжірибе жасау керек.
пікір қалдыру