Жасанды интеллект (AI) соңғы жылдары айтарлықтай танымалдыққа ие болды.
Егер сіз бағдарламалық жасақтама инженері, компьютер ғалымы немесе жалпы деректер ғылымының әуесқойы болсаңыз, онда сізді осы сала ұсынатын кескіндерді өңдеу, үлгіні тану және объектіні анықтаудың таңғажайып қолданбалары қызықтыруы мүмкін.
Сіз естіген AI-ның ең маңызды ішкі саласы - терең оқыту. Бұл өріс адам миының функционалдық мүмкіндіктерінен кейін үлгіленген қуатты алгоритмдерге (компьютерлік бағдарлама нұсқаулары) назар аударады. Нейрондық желілер.
Бұл мақалада біз нейрондық желілер тұжырымдамасын және осы модельдерді қалай құруға, құрастыруға, сәйкестендіруге және бағалауға болатынын қарастырамыз. Python.
Нейрондық желілер
Нейрондық желілер немесе NN - бұл адам миының биологиялық белсенділігінен кейін үлгіленген алгоритмдер сериясы. Нейрондық желілер нейрондар деп те аталатын түйіндерден тұрады.
Тік түйіндердің жинағы қабаттар ретінде белгілі. Модель бір кірістен, бір шығыстан және бірнеше жасырын қабаттардан тұрады. Әрбір қабат есептеулер орындалатын нейрондар деп аталатын түйіндерден тұрады.
Келесі диаграммада шеңберлер түйіндерді, ал түйіндердің тік жинағы қабаттарды көрсетеді. Бұл модельде үш қабат бар.
Бір қабаттың түйіндері төменде көрсетілгендей тасымалдау желілері арқылы келесі қабатқа қосылады.
Біздің деректер жинағы белгіленген деректерден тұрады. Бұл әрбір деректер нысанына белгілі бір атау мәні тағайындалғанын білдіреді.
Жануарларды жіктеу деректер жинағы үшін бізде деректер ретінде мысықтар мен иттердің суреттері болады, ал жапсырмалар ретінде «мысық» және «ит» болады.
Айта кету керек, жапсырмалар олардың мағынасын түсіну үшін үлгіміз үшін сандық мәндерге түрлендіру керек, сондықтан жануарлардың жапсырмалары мысық үшін «0» және ит үшін «1» болады. Деректер де, белгілер де үлгі арқылы өтеді.
Learning
Деректер үлгіге бір уақытта бір нысан беріледі. Бұл деректер бөліктерге бөлінеді және үлгінің әрбір түйіні арқылы өтеді. Түйіндер осы бөліктерге математикалық операцияларды орындайды.
Бұл оқулық үшін математикалық функцияларды немесе есептеулерді білудің қажеті жоқ, бірақ бұл модельдер қалай жұмыс істейтіні туралы жалпы түсінік болуы маңызды. Бір қабаттағы бірқатар есептеулерден кейін деректер келесі қабатқа беріледі және т.б.
Аяқтағаннан кейін, біздің модель шығыс қабатындағы деректер белгісін болжайды (мысалы, жануарларды жіктеу мәселесінде біз мысық үшін «0» болжамын аламыз).
Модель осы болжамды мәнді нақты белгі мәнімен салыстыруды жалғастырады.
Мәндер сәйкес келсе, біздің модель келесі енгізуді қабылдайды, бірақ мәндер әртүрлі болса, модель жоғалту деп аталатын екі мәннің арасындағы айырмашылықты есептейді және келесі жолы сәйкес белгілерді жасау үшін түйін есептеулерін реттейді.
Deep Learning Frameworks
Кодта нейрондық желілерді құру үшін импорттау керек Терең оқыту шеңберлері Біріктірілген даму ортасын (IDE) пайдаланатын кітапханалар ретінде белгілі.
Бұл фреймворктар осы оқулықта бізге көмектесетін алдын ала жазылған функциялардың жинағы болып табылады. Модельді құру үшін біз Keras негізін қолданамыз.
Keras - терең оқыту және жасанды интеллект серверін пайдаланатын Python кітапханасы Тенсорлық ағын қарапайым тізбекті модельдер түріндегі NN оңай құру.
Keras сонымен қатар қолдануға болатын өзінің бұрыннан бар үлгілерімен бірге келеді. Бұл оқулық үшін біз Keras көмегімен өз үлгімізді жасайтын боламыз.
Осы Deep Learning жүйесі туралы қосымша ақпаратты мына жерден біле аласыз Keras веб-сайты.
Нейрондық желіні құру (оқулық)
Python көмегімен нейрондық желіні құруға көшейік.
Проблемалық мәлімдеме
Нейрондық желілер AI негізіндегі мәселелерді шешудің бір түрі болып табылады. Бұл оқулық үшін біз Pima Indians қант диабеті деректерін қарастырамыз, ол қол жетімді Мұнда.
UCI Machine Learning бұл деректер жинағын құрастырды және үнділік науқастардың медициналық жазбасын қамтиды. Біздің модель науқаста 5 жыл ішінде қант диабетінің басталуын немесе жоқтығын болжауы керек.
Деректер жинағы жүктелуде
Біздің деректер жинағы Microsoft Excel көмегімен оңай өңдеуге болатын "diabetes.csv" деп аталатын жалғыз CSV файлы.
Үлгімізді жасамас бұрын деректер жиынын импорттауымыз керек. Келесі кодты пайдаланып, мұны істеуге болады:
пандаларды pd ретінде импорттау
деректер = pd.read_csv('diabetes.csv')
x = data.drop («Нәтиже»)
y = деректер[“Нәтиже”]
Мұнда біз пайдаланамыз Панда CSV файл деректерін өңдеу мүмкіндігін беретін кітапхана болса, read_csv() файлдағы мәндерді «деректер» деп аталатын айнымалы мәнге сақтауға мүмкіндік беретін Pandas бағдарламасының кірістірілген функциясы болып табылады.
x айнымалысы нәтиже (белгілер) деректерінсіз деректер жиынын қамтиды. Біз бұған x үшін белгілерді алып тастайтын data.drop() функциясы арқылы қол жеткіземіз, ал y тек нәтиже (белгі) деректерін қамтиды.
Жүйелі модельді құру
1-қадам: Кітапханаларды импорттау
Біріншіден, біз TensorFlow және Keras импорттауымыз керек, сонымен қатар біздің модельге қажетті белгілі бір параметрлер. Келесі код бізге мұны істеуге мүмкіндік береді:
тензор ағынын tf ретінде импорттау
тензорфлекторлық импорттық кералардан
tensorflow.keras.models ішінен Sequential импорттау
tensorflow.keras.layers импорттау белсендіру, тығыз
tensorflow.keras.optimizers ішінен Адамды импорттайды
tensorflow.keras.metrics ішінен categorical_crossentropy импорттау
Біздің модель үшін біз тығыз қабаттарды импорттаймыз. Бұл толығымен қосылған қабаттар; яғни қабаттағы әрбір түйін келесі қабаттағы басқа түйінмен толықтай байланысты.
Біз де импорттап жатырмыз белсендіру түйіндерге жіберілген деректерді масштабтау үшін қажет функция. Оңтайландырушылар шығынды азайту үшін де импортталды.
Адам — атақты оңтайландырушы, ол біздің үлгіні жаңарту түйіндерін есептеулерді тиімдірек етеді категориялық_кроссентропия, яғни біз қолданатын жоғалту функциясының түрі (нақты және болжамды белгі мәндерінің арасындағы айырмашылықты есептейді).
2-қадам: Модельді жобалау
Мен жасап жатқан модельде бір кіріс (16 бірлік), бір жасырын (32 бірлік) және бір шығыс (2 бірлік) қабаты бар. Бұл сандар бекітілген емес және толығымен берілген мәселеге байланысты болады.
Бірліктер мен қабаттардың дұрыс санын орнату - бұл тәжірибе арқылы қосымша жұмыс уақытын жақсартуға болатын процесс. Белсендіру деректерімізді түйін арқылы өткізбес бұрын орындайтын масштабтау түріне сәйкес келеді.
Relu және Softmax - бұл тапсырма үшін танымал белсендіру функциялары.
үлгі = ретті([
Тығыз(бірліктер = 16, кіріс_пішіні = (1,), белсендіру = 'relu'),
Тығыз(бірліктер = 32, белсендіру = 'relu'),
Тығыз(бірліктер = 2, белсендіру = 'softmax')
])
Модельдің қысқаша мазмұны келесідей болуы керек:
Модельді жаттықтыру
Біздің модель екі қадамда оқытылады, біріншісі модельді құрастыру (модельді біріктіру) және келесісі модельді берілген деректер жиынына сәйкестендіру.
Мұны model.compile() функциясынан кейін model.fit() функциясы арқылы жасауға болады.
model.compile(оңтайландырушы = Адам(оқу_ставкасы = 0.0001), жоғалту = 'екілік_кроссентропия', метрика = ['дәлдік'])
model.fit(x, y, дәуірлер = 30, топтама_өлшемі = 10)
«Дәлдік» көрсеткішін көрсету жаттығу кезінде үлгіміздің дәлдігін байқауға мүмкіндік береді.
Біздің белгілеріміз 1 және 0 түрінде болғандықтан, біз нақты және болжамды белгілер арасындағы айырмашылықты есептеу үшін екілік жоғалту функциясын қолданамыз.
Деректер жинағы да 10 (patch_size) топтамаларына бөлінеді және үлгі арқылы 30 рет (дәуірлер) өтеді. Берілген деректер жинағы үшін x деректер болады, ал у деректерге сәйкес белгілер болады.
Болжамдарды қолдану арқылы тестілеу моделі
Модельді бағалау үшін болжау() функциясын пайдаланып сынақ деректеріне болжам жасаймыз.
болжамдар = model.predict(x)
Бұл да сол!
Енді сіз оны жақсы түсінуіңіз керек Deep Learning қолданбасы, нейрондық желілер, олар жалпы қалай жұмыс істейді және Python кодында модельді құру, үйрету және сынау.
Бұл оқулық сізге өзіңіздің Deep Learning үлгілеріңізді жасауға және орналастыруға мүмкіндік береді деп үміттенемін.
Мақала пайдалы болса, түсініктемелерде бізге хабарлаңыз.
пікір қалдыру