Kes võidab? ;) (teeb ainult nalja, see pole võistlus)

Kassid vs koerad, kasutades AI-d

Kas olete kunagi kuulnud fraasi “Sajab kasse ja koeri!”? Kui jah, olete ilmselt aktsepteerinud asjaolu, et see on lihtsalt fraas ja ei midagi muud. See on vesi, mis valab õues, mitte imetlusväärsed loomad.

Mis aga juhtuks, kui see poleks lihtsalt fraas? Olen kindel, et jookseksite (või vähemalt tahaksin) akna juurde ja vaataksite erinevaid loomi. Pärsia kassid, buldogid, kuldsed labradorid, munchkin-kassid (jah, see on REAL nimi, ärge tulge minu juurde), Ameerika lokid ja palju muud.

Olgem tõelised. Mõnikord ei saa te öelda, milline kass või mis koer on, kuid see ei tähenda, et te ei armastaks neid sama.

Aga… arvake mis?
Kas teate, arvutid, need lahedad asjad, mis muudavad meie elu 1000x lihtsamaks? Arvutid ei saa CATS-i eristada peale koerte, palju vähem eristavad tüüpe. Vähemalt ei suuda nad neid üksteisest eristada.

Siiski .. ehk saaksime neid aidata. Ma tean, mida me saaksime neile aidata (ja tõenäoliselt teete ka teie)! Väga peen vihje: see on pealkirjas.

Mis on AI? Tehisintellekt (AI) on teooria ja arendamine arvutisüsteemide jaoks, mis on võimelised täitma ülesandeid, mis tavaliselt nõuavad inimese intelligentsust, nagu visuaalne taju, kõnetuvastus, otsuste tegemine ja keeltevaheline tõlkimine. See on väga kiiresti kasvav tööstusharu.

Kuid keskendugeme kindlale osale. Konvolutsioonilised närvivõrgud.

Konvolutsioonilised närvivõrgud

Konvolutsioonilised närvivõrgud või CNN klassifitseerivad sisuliselt pilte. Täiuslik, eks? Ükskord ei ütle ma ei.

Olgu, see oli omamoodi ebamäärane. Selgitan neid põhjalikumalt.

Konvolutsioonivõrgud on teatud tüüpi närvivõrgud. Nad klassifitseerivad pilte koolituse teel. Siin on pilt, kuidas nad töötavad!

Esiteks on sisendkiht. See on tegelik pilt. Seejärel liigutame selle läbi konvolutsioonikihi ja seejärel paneme selle läbi maksimaalse ühendava kihi. Konvolutsioonikiht laseb neil pildi partiisid skannida ja neid lihtsustada.

Suurim liitmise kiht on koht, kus masin jagab pildi neljaks ruuduks ja hoiab igas ruudus suurimat väärtust, lihtsustades pilti. Siis kordame seda veel kord. Pärast seda need kihid tasandatakse ja klassifitseeritakse.

See kõlab lahedalt, eks? Kuid ma olen kindel, et enamik teist soovib teada, kuidas seda kodeerida. Ma ei hakka siin täpset õpetust kordama, sest selline on juba olemas ja minu meelest on selline juba mõttetu, kui juba on olemas.

Kui plaanisite seda järgida, on link ülal, see avatakse, kui klõpsate nupul „täpne õpetus”. Ka PSA: selle jaoks on Kaggle'i andmestik. Ärge piinake ennast, kui üritate seda leida.

Algoritm (sammud)

Ma räägin algoritmist! (Jah, lohistamist kodeerimine KASUTAB mingit laadi, välja arvatud süütute laste piinamine.) Haha, kas ma saan oma nali? Ei? See on okei.

Esiteks alustasin kõigi väärtuste määratlemisega. Kui ma seda tegin, tõin sisse ja määratlesin pildi suuruse, testimis- ja treenimismudelid ning masina õppimiskiiruse. Impordisin ka tehnika, mida kasutaksin (tqdm) ja vajalikud funktsioonid.

Teiseks tegin funktsiooni nii, et kui koolitatud pildid läbi käisid, teadis arvuti, kumb neist oli, ja eraldas need.

Järgmisena rajasin funktsioone piltide töötlemiseks treenimiseks. Selle eesmärk oli veenduda, et kui pildid läbi saavad, ei istu nad seal lihtsalt ja neid töödeldakse tegelikult.

Pärast seda lõin funktsiooni KATSETAMISE andmete töötlemiseks. Need on andmed, millega katsetaksin oma CNN-i täpsust!

Hiljem jooksin ma oma masina proovile. Külgmärkus: see aitab tõesti TQDM-i kasutamisel. Treeninguga saate vaadata, kui kaugel see on, ja te ei pea pimesi ootama. (Ei, ma ei saanud sponsorlust (soovin)!)

Olgu, nii et see oli kõik lihtsalt sissejuhatus ja eeltöötlus. Vaatame nüüd tõeliste asjade juurde (nalja pärast, ka need asjad olid tõelised).

Nüüd ehitame ja koolitame tegelikku närvivõrku.

Esiteks loon 2-kihilise konvolutsioonilise närvivõrgu. See on üsna iseenesest mõistetav, kuid on olemas sisend- ja väljundkihid (yay).

Järgmisena loote if-lause, mis võimaldab teil mudeli automaatseks salvestamiseks pärast treeningu lõppu, kuna me ei soovi andmeid ja tulemusi kaotada.

Pärast seda on see üsna lihtne. Põhimõtteliselt treenite lihtsalt oma mudelit tonni kordi, kuni selle täpsus on suurem, ja siis saate seda testida väärtuste järgi, mis ei tea selle tegelikku identiteeti. Lahe, eks?

Põnev rakendus

Nagu näete, oli see keeruline. Õnneks on sellel nii palju lahedaid rakendusi (või muidu ei tahaks ma seda üles tuua ega sellest nii kõrgelt rääkida).

Artikkel, mida võite lihtsalt varsti minult vaadata, räägib vananevate rakkude eristamisest teistest rakkudest. Tsiteerides minu viimast AI artiklit,

„See on tohutu probleem. Senesentsrakud on zombierakud, mis teie kehas ringi rändavad (paremini kui rakud, mis on surnud ja elus oleku vahel). Neil on ka suur mõju vananemisele ja neil pole ühtegi neile spetsiifilist biomarkerit.

Biomarkerid on Google'i sõnul (meie pidev päästja): mõõdetav aine organismis, mille olemasolu viitab mõnele nähtusele, näiteks haigusele, nakkusele või keskkonnale. Senesentseeruvatel rakkudel on kasvupeetus ja laienemine (mõnikord kuni punktini, kus nad kahekordistuvad).

Nende omaduste analüüsimiseks ja vananevate rakkude eristamiseks teistest rakkudest võiksime kasutada konvolutsioonilist närvivõrku.

Veel üks asi, mida me saaksime CNN-ide abil ära teha, on loomulik keeletöötlus. Nad saavad teha paljusid asju, näiteks sentimentide analüüsi. Nad analüüsivad teksti ja selle tundeid ning kavatsusi ja katsetavad seejärel oma mudelit tähistamata (neile) andmetega.

Seal on nii palju lahedaid asju, mida saaksime teha CNN-ide ja AI-ga üldiselt, vaadata lahedaid arenguid (isesõitvad autod, keegi?).

Key Takeaways

  • CNN-ide abil saame pilte klassifitseerida.
  • Selle proovimiseks järgisin õpetust ja klassifitseerisin kassid ja koerad.
  • See on esimene samm mõnes tõsiselt lahedas asjas. AI-d on nii palju põnevaid rakendusi, see on hull!

Täname, et lugesite minu artiklit! Kui teile meeldis, vaadake minu teisi artikleid!