Kdo vyhraje? ;) (jen si dělám srandu, nejedná se o soutěž)

Kočky vs. psi používající AI

Už jste někdy slyšeli frázi „Prší kočky a psi!“? Pokud ano, pravděpodobně jste přijali skutečnost, že je to prostě věta a nic víc. Je to voda, která proudí venku, ne rozkošná zvířata.

Co kdyby to ale nebyla jen fráze? Jsem si jistý, že byste (nebo alespoň já) běžel k oknu a podíval se na rozmanitost zvířat. Perské kočky, buldok, zlatí labradoři, munchkinské kočky (ano, to je skutečné jméno, nepřijděte ke mně), americké kadeře a další.

Buďme skuteční. Někdy nemůžete říct, která kočka nebo který pes je který, ale to neznamená, že je nemilujete stejně.

Ale Hádej co?
Znáte počítače, ty opravdu skvělé věci, které usnadňují náš život 1000x? Počítače nedokážou rozeznat CATS kromě DOGS, mnohem méně rozeznat typy. Aspoň jim to nedokážou rozeznat.

Možná bychom jim však mohli pomoci. Vím, s čím bychom jim mohli pomoci (a pravděpodobně i vy)! Velmi jemný náznak: Je to v názvu.

Co je to AI? Umělá inteligence, umělá inteligence, je teorie a vývoj počítačových systémů schopných plnit úkoly, které obvykle vyžadují lidskou inteligenci, jako je vizuální vnímání, rozpoznávání řeči, rozhodování a překlad mezi jazyky. Je to velmi rychle rostoucí průmysl.

Zaměřme se však na konkrétní část. Konvoluční neuronové sítě.

Konvoluční neuronové sítě

Konvoluční neuronové sítě nebo CNN v podstatě klasifikují obrazy. Perfektní, že? Prozatím neřeknu ne.

Dobře, to bylo trochu vágní. Dovolte mi je podrobněji vysvětlit.

Konvoluční sítě jsou typem neuronové sítě. Klasifikují obrázky podle toho, že jsou „vyškoleni“. Zde je obrázek ukazující, jak fungují!

Nejprve je tu vstupní vrstva. Toto je skutečný obrázek. Pak to projdeme konvoluční vrstvou a pak ji dáme přes maximální sdružovací vrstvu. Konvoluční vrstva je místem, kde „skenuje“ dávky obrázku a zjednodušuje je.

Maximální společná vrstva je místo, kde stroj rozdělí obraz na čtyři čtverce a udržuje největší hodnotu v každém čtverci, což obraz zjednodušuje. Pak to opakujeme ještě jednou. Poté jsou tyto vrstvy vyrovnány a klasifikovány.

Zní to skvěle, že? Ale jsem si jistý, že většina z vás chce vědět, jak to kódovat. Přesný tutoriál zde nebudu replikovat, protože už existuje, a podle mého názoru, pokud již existuje, je zbytečný.

Pokud jste to chtěli sledovat, odkaz je výše, bude otevřen, když kliknete na „přesný návod“. Také PSA: Dataset pro toto je na Kaggle. Nesnažte se ho mučit.

Algoritmus (kroky)

Budu mluvit o algoritmu! (Ano, kódování drag and drop MÁ nějaké využití kromě mučení nevinných dětí.) Haha, vtipu? Ne? To je v pořádku.

Nejprve jsem začal definováním všech hodnot. Když jsem to udělal, přinesl jsem a definoval velikost obrazu, modely testování a školení a rychlost učení stroje. Také jsem importoval technologii, kterou bych používal (tqdm) a funkce, které bych potřeboval.

Zadruhé jsem vytvořil funkci, takže když procházely trénované obrazy, počítač věděl, který je a který je oddělil.

Dále jsem vytvořil funkce pro zpracování obrázků pro trénink. To mělo zajistit, že když obrázky procházejí, nebudou tam jen sedět a budou ve skutečnosti zpracovány.

Poté jsem vytvořil funkci pro zpracování testovacích dat. Toto jsou data, se kterými bych testoval přesnost mého CNN!

Poté jsem provedl školení, abych otestoval svůj stroj. Vedlejší poznámka: Je to opravdu opravdu užitečné, pokud máte TQDM. Uvidíte, jak daleko to je s tréninkem a nemusíte slepě čekat. (Ne, nedostal jsem sponzorství (přeji)!)

Dobře, takže to bylo všechno jen úvodní a předzpracování. Teď se pojďme do skutečných věcí (jen si dělám srandu, ta věc byla také skutečná).

Nyní vytváříme a trénujeme skutečnou neuronovou síť.

Nejprve vytvořím dvouvrstvou konvoluční neuronovou síť. To je docela samo-vysvětlující, ale existují vstupní a výstupní vrstvy (yay).

Dále vytvoříte příkaz if, který vám umožní automaticky uložit model, jakmile je vaše tréninkové cvičení ukončeno, protože nechceme ztratit data a výsledky.

Poté je to docela snadné. V podstatě stačí model několikrát trénovat, dokud není jeho přesnost vyšší, a pak ho můžete vyzkoušet na hodnotách, které nezná skutečné identity. Super, že?

Fascinující aplikace

Jak vidíte, bylo to trochu komplikované. Naštěstí to má tolik skvělých aplikací (jinak bych to nevyzvedl ani o nich nemluvil tak vysoko).

Článek, který ode mě brzy uvidíte, je o odlišení senescentních buněk od ostatních buněk. Citovat z mého posledního článku AI,

"To je obrovský problém." Senescentní buňky jsou „zombie“ buňky, které se potulují po vašem těle (lépe popsané jako buňky, které jsou ve stavu mezi mrtvými a živými). Mají také velký dopad na stárnutí a nemají pro ně žádné specifické biomarkery.

Biomarkery jsou podle společnosti Google (náš stálý spasitel): měřitelnou látkou v organismu, jejíž přítomnost naznačuje určitý jev, jako je nemoc, infekce nebo expozice v životním prostředí. Senescentní buňky mají zastavení růstu a rozšíření (někdy až do bodu, kdy se zdvojnásobí) jako své. “

Mohli bychom použít konvoluční neuronovou síť k analýze jejich funkcí a k rozlišení senescentních buněk od ostatních buněk.

Další věcí, kterou bychom mohli udělat pomocí CNN, je zpracování přirozeného jazyka. Umí provádět mnoho věcí, jako je analýza sentimentu. Analyzují text a jeho sentimenty a záměry a poté otestují svůj model s neoznačenými (k nim) daty.

Existuje tolik skvělých věcí, které bychom mohli dělat s CNN a AI obecně, dávejte si pozor na skvělý vývoj (auta s vlastním pohonem, někdo?).

Klíč s sebou

  • Pomocí CNN můžeme klasifikovat obrázky.
  • Abych to vyzkoušel, sledoval jsem kurz a klasifikoval kočky a psy.
  • Toto je první krok v některých vážně skvělých věcech. Existuje tolik fascinujících aplikací AI, jeho blázen!

Děkuji za přečtení mého článku! Pokud se vám líbil, podívejte se na mé další články!