Жасалма интеллект (AI) акыркы жылдары бир топ популярдуулукка ээ болду.
Эгерде сиз инженер-программист, компьютердик илимпоз же жалпысынан маалымат илиминин энтузиасты болсоңуз, анда сизди бул тармакта каралган сүрөттөрдү иштетүү, үлгү таануу жана объектти аныктоонун укмуштуудай колдонмолору кызыктырышы мүмкүн.
Сиз уккан AIнын эң маанилүү тармагы бул Deep Learning. Бул талаа деп аталган адамдын мээсинин иштөөсүнөн кийин моделделген күчтүү алгоритмдерге (компьютердик программанын нускамаларына) багытталган. нейрон тармактары.
Бул макалада биз Нейрондук тармактардын концепциясын жана бул моделдерди кантип курууну, компиляциялоону, тууралоону жана баалоону карап чыгабыз. Python.
нейрон тармактары
Нейрондук тармактар же NN - адамдын мээсинин биологиялык активдүүлүгүнөн кийин моделделген алгоритмдердин сериясы. Нейрондук тармактар нейрондор деп да аталган түйүндөрдөн турат.
Вертикалдык түйүндөрдүн жыйындысы катмарлар деп аталат. Модель бир киргизүүдөн, бир чыгуудан жана бир катар жашыруун катмарлардан турат. Ар бир катмар түйүндөрдөн турат, ошондой эле нейрондор деп аталат, ал жерде эсептөөлөр жүргүзүлөт.
Төмөнкү диаграммада тегерекчелер түйүндөрдү, ал эми түйүндөрдүн вертикалдык жыйнагы катмарларды билдирет. Бул моделдин үч катмары бар.
Бир катмардын түйүндөрү төмөндөгүдөй өткөргүч линиялары аркылуу кийинки катмарга туташтырылган.
Биздин маалымат топтому белгиленген маалыматтардан турат. Бул ар бир маалымат объектисине белгилүү бир ат мааниси ыйгарылганын билдирет.
Ошентип, жаныбарлардын классификациясынын берилиштер топтому үчүн бизде мышыктар менен иттердин сүрөттөрү биздин маалымат катары болот, ал эми энбелгилери катары "мышык" жана "ит" болот.
Белгилеп кетүүчү нерсе, биздин моделибиз үчүн энбелгилер сандык маанилерге айландырылышы керек, андыктан жаныбарлардын энбелгилери мышык үчүн "0" жана ит үчүн "1" болуп калат. Маалыматтар да, энбелгилер да модель аркылуу өткөрүлөт.
Learning
Берилиштер моделге бир эле учурда берилет. Бул маалыматтар бөлүктөргө бөлүнөт жана моделдин ар бир түйүнү аркылуу өтөт. Түйүндөр бул бөлүктөрдө математикалык операцияларды аткарышат.
Бул окуу куралы үчүн математикалык функцияларды же эсептөөлөрдү билүүнүн кереги жок, бирок бул моделдердин кантип иштеши жөнүндө жалпы түшүнүккө ээ болуу маанилүү. Бир катмардагы бир катар эсептөөлөрдөн кийин маалыматтар кийинки катмарга өтөт жана башкалар.
Бүткөндөн кийин, биздин моделибиз чыгуу катмарындагы маалымат энбелгисин болжолдойт (мисалы, жаныбарларды классификациялоо маселесинде биз мышык үчүн "0" божомолун алабыз).
Андан кийин модель бул болжолдонгон маанини чыныгы энбелги мааниси менен салыштырууну улантат.
Эгерде баалуулуктар дал келсе, биздин моделибиз кийинки киргизүүнү алат, бирок баалуулуктар айырмаланып калса, модель жоготуу деп аталган эки маанинин ортосундагы айырманы эсептеп, кийинки жолу дал келген энбелгилерди чыгаруу үчүн түйүн эсептөөлөрүн тууралайт.
Deep Learning Frameworks
Нейрондук тармактарды код менен куруу үчүн биз импорттообуз керек Deep Learning алкактары Биздин Интеграцияланган Өнүгүү чөйрөсүн (IDE) колдонгон китепканалар катары белгилүү.
Бул алкактар бул окуу куралында бизге жардам бере турган алдын ала жазылган функциялардын жыйындысы. Биз моделибизди куруу үчүн Keras алкагын колдонобуз.
Keras бул Python китепканасы, ал терең үйрөнүү жана жасалма интеллект деп аталат тензордук агым Жөнөкөй ырааттуу моделдер түрүндө NN түзүүгө оңой.
Керас ошондой эле колдонулушу мүмкүн болгон өзүнүн мурдатан бар моделдери менен келет. Бул окуу куралы үчүн биз Keras аркылуу өзүбүздүн моделибизди түзөбүз.
Бул Deep Learning алкактары жөнүндө көбүрөөк билсеңиз болот Keras сайты.
Нейрондук тармакты куруу (окуу куралы)
Келгиле, Python аркылуу Нейрондук тармакты курууга өтөлү.
Маселени билдирүү
Нейрондук тармактар AIге негизделген маселелерди чечүүнүн бир түрү. Бул окуу куралы үчүн биз Pima Indians Диабет маалыматтарын карап чыгабыз, ал жеткиликтүү бул жерде.
ICU Machine Learning бул маалымат топтомун түзгөн жана индиялык бейтаптардын медициналык рекордун камтыйт. Биздин модель бейтап 5 жыл ичинде кант диабети башталышы же жокпу, алдын ала айтууга тийиш.
Берилиштер топтому жүктөлүүдө
Биздин берилиштер топтому бул "diabetes.csv" деп аталган бир CSV файлы, аны Microsoft Excel аркылуу оңой эле башкарса болот.
Модельди түзүүдөн мурун, биз маалымат топтомубузду импорттообуз керек. Төмөнкү кодду колдонуу менен сиз муну кыла аласыз:
pandas форматында импорттоо
маалымат = pd.read_csv('diabetes.csv')
x = data.drop("Натыйжа")
y = маалымат["Натыйжа"]
Бул жерде биз колдонуп жатабыз рттъ биздин CSV файл маалыматтарыбызды манипуляциялоо мүмкүнчүлүгүнө ээ болуу үчүн, read_csv() - бул Pandasдын орнотулган функциясы, ал бизге файлыбыздагы маанилерди "маалымат" деп аталган өзгөрмөгө сактоого мүмкүндүк берет.
Өзгөрүлмө x жыйынтыгы (белгилери) дайындары жок биздин берилиштер топтомун камтыйт. Биз буга x үчүн энбелгилерди алып салган data.drop() функциясы менен жетишебиз, ал эми y жыйынтык (белги) маалыматтарын гана камтыйт.
Building Sequential Model
1-кадам: Китепканаларды импорттоо
Биринчиден, биз моделибиз үчүн талап кылынган кээ бир параметрлер менен бирге TensorFlow жана Keras импорттообуз керек. Төмөнкү код бизге муну кылууга мүмкүндүк берет:
tf катары импорттоо тензорflow
тензорфлктун импорттук кераларынан
tensorflow.keras.models импорттоо Sequential
tensorflow.keras.layers импорттоо активдештирүү, тыгыз
tensorflow.keras.optimizers тартып Адамды импорттоо
tensorflow.keras.metrics'тен categorical_crossentropy импорттоо
Биздин моделибиз үчүн биз жыш катмарларды импорттоп жатабыз. Бул толугу менен байланышкан катмарлар; башкача айтканда, катмардагы ар бир түйүн кийинки катмардагы башка түйүн менен толук байланышкан.
Биз дагы импорттоп жатабыз жандандыруу түйүндөргө жөнөтүлгөн маалыматтарды масштабдоо үчүн керектүү функция. Оптимизаторлор жоготууларды азайтуу үчүн да импорттолгон.
Адам атактуу оптимизатор болуп саналат, ал биздин моделди жаңыртуу түйүнүнүн эсептөөлөрүн натыйжалуураак кылат категориялык_кросссентропия биз колдоно турган жоготуу функциясынын түрү (иш жүзүндөгү жана болжолдонгон энбелгилердин ортосундагы айырманы эсептейт).
2-кадам: Биздин моделди долбоорлоо
Мен түзүп жаткан моделде бир киргизүү (16 бирдик менен), бир жашыруун (32 бирдик менен) жана бир чыгуу (2 бирдик менен) катмары бар. Бул сандар такталган эмес жана толугу менен берилген маселеге жараша болот.
Бирдиктердин жана катмарлардын туура санын орнотуу - бул практика аркылуу ашыкча убакытты жакшыртууга мүмкүн болгон процесс. Активдештирүү биз дайындарыбызды түйүн аркылуу өткөрүүдөн мурун аткара турган масштабдын түрүнө туура келет.
Relu жана Softmax бул тапшырма үчүн белгилүү активдештирүү функциялары болуп саналат.
модели = ырааттуу([
Тыгыз(бирдик = 16, input_shape = (1,), активдештирүү = 'relu'),
Тыгыз(бирдик = 32, активдештирүү = 'relu'),
Тыгыз(бирдик = 2, активдештирүү = 'softmax')
])
Бул жерде моделдин корутундусу кандай болушу керек:
Моделди үйрөтүү
Биздин модель эки этапта окутулат, биринчиси моделди түзүү (моделди бириктирүү) жана кийинкиси моделди берилген маалымат топтомуна орнотуу.
Муну model.compile() функциясы, андан кийин model.fit() функциясы аркылуу жасоого болот.
model.compile(оптимизатор = Адам(үйрөнүү_чени = 0.0001), жоготуу = 'экилик_кросссентропия', метрика = ['тактыгын'])
model.fit(x, y, epochs = 30, пакеттик_өлчөм = 10)
"Тактык" метрикасын көрсөтүү машыгуу учурунда моделибиздин тактыгын байкоого мүмкүндүк берет.
Биздин энбелгилер 1 жана 0 түрүндө болгондуктан, биз чыныгы жана болжолдонгон энбелгилердин ортосундагы айырманы эсептөө үчүн экилик жоготуу функциясын колдонобуз.
Берилиштер топтому да 10 партияга бөлүнүүдө (batch_size) жана моделден 30 жолу (эпокалар) өтөт. Берилген берилиштер топтому үчүн x маалымат болмок, ал эми y маалыматтарга тиешелүү энбелгилер болмок.
Болжолдоолорду колдонуу менен тестирлөө модели
Моделибизди баалоо үчүн, биз болжолдоо () функциясын колдонуп, тесттик маалыматтарга божомолдорду жасайбыз.
божомолдор = model.predict(x)
Мына ушуну менен!
Сиз азыр жакшы түшүнүшүңүз керек Deep Learning колдонмо, Нейрондук тармактар, алар жалпысынан кантип иштешет жана Python кодунда моделди кантип куруу, үйрөтүү жана сынап көрүү.
Бул окуу куралы сизге өзүңүздүн Deep Learning моделдериңизди түзүүгө жана жайылтууга жардам берет деп үмүттөнөм.
Макала пайдалуу болсо, комментарийлерде бизге айтыңыз.
Таштап Жооп