Convolutional Neural Networks (CNNs): En introduksjon

Konvolusjonelle nevrale nettverk tilbyr en mer skalerbar måte å gjenkjenne objekter og bildeklassifiseringsoppgaver på.

Det skjer mange fremskritt i teknologiens verden. Kunstig intelligens og maskinlæring er noen vanlige du kanskje hører ofte.

For tiden brukes disse teknologiene i nesten alle felt, fra markedsføring, e-handel og programvareutvikling til bank, finans og medisin.

AI og ML er enorme felt, og det jobbes med å utvide applikasjonene deres for å løse mange reelle problemer. Dette er grunnen til at du kan se mange grener i disse teknologiene; ML er en undergruppe av AI selv.

Konvolusjonelle nevrale nettverk er en av grenene til AI som blir populær i disse dager.

I denne artikkelen vil jeg diskutere hva CNN-er er, hvordan de fungerer og deres nytte i den moderne verden.

La oss dykke rett inn!

Hva er et konvolusjonelt nevralt nettverk?

Et konvolusjonelt nevralt nettverk (ConvNet eller CNN) er et kunstig nevralt nettverk (ANN) som bruker dyplæringsalgoritmer for å analysere bilder, klassifisere visuelle elementer og utføre datasynsoppgaver.

CNN utnytter prinsipper for lineær algebra, for eksempel matrisemultiplikasjon, for å oppdage mønstre i et bilde. Siden disse prosessene involverer komplekse beregninger, krever de grafiske prosesseringsenheter (GPUer) for å trene modellene.

Med enkle ord bruker CNN Deep Learning-algoritmer for å ta inndata som bilder og tildele betydning i form av skjevheter og lærbare vekter til forskjellige aspekter av det bildet. På denne måten kan CNN skille mellom bilder eller klassifisere dem.

CNN’s: A Brief History

Siden et konvolusjonelt nevralt nettverk er et kunstig nevralt nettverk, er det viktig å gjenta nevrale nettverk.

I beregning er et nevralt nettverk en del av maskinlæring (ML) ved bruk av dyplæringsalgoritmer. Det er analogt med tilkoblingsmønstrene etterfulgt av nevroner i den menneskelige hjernen. Kunstige nevrale nettverk henter også inspirasjon fra hvordan den visuelle cortex er ordnet.

Så forskjellige typer nevrale nettverk eller kunstige nevrale nettverk (ANN) brukes til forskjellige formål. En av dem er CNN som brukes til bildegjenkjenning og klassifisering, med mer. Det ble introdusert av en postdoktor, Yann LeCun, på 1980-tallet.

CNNs tidlige versjon – LeNet, oppkalt etter LeCun, var i stand til å gjenkjenne håndskrevne sifre. Deretter ble det brukt i bank- og posttjenester for å lese sifre på sjekker og postnummer skrevet på konvolutter.

Imidlertid manglet denne tidlige versjonen skalering; Derfor ble ikke CNN-er brukt mye i kunstig intelligens og datasyn. Det krevde også betydelige beregningsressurser og data for å fungere mer effektivt for større bilder.

Videre, i 2012, besøkte AlexNet dyp læring som bruker nevrale nettverk bestående av flere lag. Rundt denne tiden ble teknologien forbedret, og store datasett og tunge dataressurser var tilgjengelige for å muliggjøre opprettelsen av komplekse CNN-er som var i stand til å utføre datasynsaktiviteter effektivt.

Lag i en CNN

La oss forstå de forskjellige lagene i et CNN. Økende lag i en CNN vil øke kompleksiteten og gjøre den i stand til å oppdage flere aspekter eller områder av et bilde. Starter med en enkel funksjon, blir den i stand til å oppdage komplekse funksjoner som objektets form og større elementer til den endelig kan oppdage bildet.

  Slik kontakter du støtte for Microsoft Office 365

Konvolusjonslag

Det første laget av en CNN er konvolusjonslaget. Det er CNNs hovedbyggestein der de fleste beregningene skjer. Den trenger færre komponenter, for eksempel inndata, et funksjonskart og et filter.

En CNN kan også ha flere konvolusjonslag. Dette gjør CNN-strukturen hierarkisk siden de påfølgende lagene kan visualisere piksler innenfor tidligere lags mottakelige felt. Deretter transformerer konvolusjonslagene det gitte bildet til numeriske verdier og lar nettverket forstå og trekke ut verdifulle mønstre.

Samle lag

Samlingslag brukes til å redusere dimensjoner og kalles nedsampling. Det reduserer parameterne som brukes i inngangen. Sammenslåingsoperasjonen kan flytte et filter over hele inngangen som konvolusjonslaget, men mangler vekter. Her bruker filteret en felles funksjon på de numeriske verdiene i det mottakelige feltet for å fylle ut resultatmatrisen.

Pooling har to typer:

  • Gjennomsnittlig pooling: Gjennomsnittsverdien beregnes i det mottakelige feltet fileren sveiper over inngangen for å sende til utgangsmatrisen.
  • Maks pooling: Den velger pikselen med maksimal verdi og sender den til utdatamatrisen mens filteret sveiper over inngangen. Maks pooling brukes mer enn gjennomsnittlig pooling.

Selv om betydelige data går tapt i sammenslåing, gir det fortsatt mange fordeler for CNN. Det bidrar til å redusere risikoen for overmontering og kompleksiteten samtidig som effektiviteten forbedres. Det forbedrer også CNNs stabilitet.

Fullt tilkoblet (FC) lag

Som navnet antyder, er alle nodene i et utgangslag direkte koblet til forrige lags node i et fullstendig tilkoblet lag. Den klassifiserer et bilde basert på de ekstraherte funksjonene via tidligere lag sammen med filtrene deres.

Videre bruker FC-lag generelt en softmax-aktiveringsfunksjon for å klassifisere innganger riktig i stedet for ReLu-funksjoner (som i tilfellet med pooling og konvolusjonslag). Dette bidrar til å produsere en sannsynlighet på enten 0 eller 1.

Hvordan fungerer CNN-er?

Et konvolusjonelt nevralt nettverk består av mange lag, til og med hundrevis av dem. Disse lagene lærer å identifisere ulike funksjoner ved et gitt bilde.

Selv om CNN-er er nevrale nettverk, skiller deres arkitektur seg fra en vanlig ANN.

Sistnevnte legger en input gjennom mange skjulte lag for å transformere den, der hvert lag er skapt med et sett med kunstige nevroner og er fullstendig koblet til hver nevron i samme lag. Endelig er det et fullstendig tilkoblet lag eller utgangslaget for å vise resultatet.

På den annen side organiserer CNN lagene i tre dimensjoner – bredde, dybde og høyde. Her kobles et lag fra nevronet bare til nevroner i en liten region i stedet for å forholde seg til hver av dem i neste lag. Til slutt er det endelige resultatet representert av en enkelt vektor med en sannsynlighetsscore og har bare dybdedimensjonen.

Nå kan du spørre hva «konvolusjon» er i en CNN.

Vel, konvolusjon refererer til en matematisk operasjon for å slå sammen to datasett. I CNN brukes konvolusjonskonseptet på inndata for å sende ut et funksjonskart ved å filtrere informasjonen.

Dette bringer oss til noen av de viktige konseptene og terminologiene som brukes i CNN.

  • Filter: Også kjent som en funksjonsdetektor eller kjerne, kan et filter ha en viss dimensjon, for eksempel 3×3. Den går over et inngangsbilde for å utføre matrisemultiplikasjon for hvert element for å bruke konvolusjon. Å bruke filtre på hvert treningsbilde med varierende oppløsning pluss utdata fra det konvolverte bildet vil fungere som input for det påfølgende laget.
  • Polstring: Den brukes til å utvide en inngangsmatrise til matrisens kantlinjer ved å sette inn falske piksler. Det er gjort for å motvirke det faktum at konvolusjon reduserer matrisestørrelsen. For eksempel kan en 9×9-matrise bli til en 3×3-matrise etter filtrering.
  • Striding: Hvis du ønsker å få en utgang som er mindre enn inputen din, kan du utføre skritt. Det lar deg hoppe over visse områder mens filteret glir over bildet. Ved å hoppe over to eller tre piksler kan du produsere et mer effektivt nettverk ved å redusere romlig oppløsning.
  • Vekter og skjevheter: CNN-er har vekter og skjevheter i nevronene. En modell kan lære disse verdiene mens de trener, og verdiene forblir de samme gjennom et gitt lag for alle nevroner. Dette innebærer at hver skjult nevron oppdager de samme funksjonene i forskjellige områder av et bilde. Som et resultat blir nettverket mer tolerant mens objekter oversettes til et gitt bilde.
  • ReLU: det står for Rectified Linear Unit (ReLu) og brukes for mer effektiv og raskere trening. Den kartlegger negative verdier til 0 og opprettholder positive verdier. Det kalles også aktivering, siden nettverket bare bærer de aktiverte bildefunksjonene inn i det påfølgende laget.
  • Reseptivt felt: I et nevralt nettverk mottar hvert nevron input fra forskjellige steder fra forrige lag. Og i konvolusjonslag mottar hvert nevron input fra kun et begrenset område av det forrige laget, kalt et mottakelig felt av nevronet. Når det gjelder FC-laget, er hele det forrige laget det mottakelige feltet.
  Hvordan sjekke 5G-bånd som støttes på telefonen

I virkelige beregningsoppgaver utføres vanligvis konvolusjon i et 3D-bilde som krever et 3D-filter.

Når vi kommer tilbake til CNN, består den av forskjellige deler eller nodelag. Hvert nodelag har en terskel og vekt og er koblet til et annet. Ved overskridelse av terskelgrensen sendes data til neste lag i dette nettverket.

Disse lagene kan utføre operasjoner for å endre dataene for å lære relevante funksjoner. Disse operasjonene gjentar også hundrevis av forskjellige lag som fortsetter å lære å oppdage andre funksjoner i et bilde.

Delene til en CNN er:

  • Et inputlag: Det er her innspillet tas, for eksempel et bilde. Det vil være et 3D-objekt med en definert høyde, bredde og dybde.
  • Ett/flere skjulte lag eller funksjonsekstraksjonsfase: disse lagene kan være et konvolusjonslag, sammenslåingslag og fullt koblet lag.
  • Et utdatalag: Her vil resultatet vises.

Å føre bildet gjennom konvolusjonslaget blir forvandlet til et funksjonskart eller aktiveringskart. Etter å ha foldet inngangen, konvolverer lagene bildet og sender resultatet til det påfølgende laget.

CNN vil utføre mange konvolusjoner og sammenslåingsteknikker for å oppdage funksjonene under uttrekksfasen. For eksempel, hvis du legger inn bildet til en katt, vil CNN gjenkjenne dens fire ben, farge, to øyne osv.

Deretter vil fullt tilkoblede lag i en CNN fungere som en klassifisering over de utpakkede funksjonene. Basert på hva dyplæringsalgoritmen har spådd om bildet, vil lagene gi resultatet.

Fordeler med CNN

Høyere nøyaktighet

CNN tilbyr høyere nøyaktighet enn vanlige nevrale nettverk som ikke bruker konvolusjon. CNN-er er nyttige, spesielt når oppgaven involverer mye data, video- og bildegjenkjenning osv. De produserer svært presise resultater og spådommer; derfor øker bruken av dem i ulike sektorer.

Beregningseffektivitet

CNN tilbyr et høyere beregningseffektivitetsnivå enn andre vanlige nevrale nettverk. Dette er på grunn av bruk av konvolusjonsprosessen. De bruker også dimensjonsreduksjon og parameterdeling for å gjøre modellene raskere og enklere å distribuere. Disse teknikkene kan også optimaliseres for å fungere på forskjellige enheter, enten det er smarttelefonen eller bærbar PC.

  Internett-streaming: Hva er det og hvordan fungerer det?

Funksjonsekstraksjon

CNN kan enkelt lære et bildes funksjoner uten å kreve manuell konstruksjon. Du kan utnytte forhåndstrente CNN-er og administrere vektene ved å mate data til dem når du jobber med en ny oppgave, og CNN vil tilpasse seg det sømløst.

Søknader fra CNN

CNN-er brukes i forskjellige bransjer for mange brukstilfeller. Noen av de virkelige applikasjonene til CNN inkluderer:

Bildeklassifisering

CNN-er brukes mye i bildeklassifisering. Disse kan gjenkjenne verdifulle funksjoner og identifisere objekter i et gitt bilde. Derfor brukes det i sektorer som helsetjenester, spesielt MR-er. I tillegg brukes denne teknologien i håndskrevet siffergjenkjenning, som er blant de tidligste brukstilfellene av CNN-er i datasyn.

Objektdeteksjon

CNN kan oppdage objekter i bilder i sanntid og også merke og klassifisere dem. Derfor brukes denne teknikken mye i automatiserte kjøretøy. Den gjør det også mulig for smarte hjem og fotgjengere å gjenkjenne kjøretøyets eiers ansikt. Den brukes også i AI-drevne overvåkingssystemer for å oppdage og merke objekter.

Audiovisuell matching

CNNs hjelp til audiovisuell matching hjelper til med å forbedre videostrømmingsplattformer som Netflix, YouTube, etc. Det hjelper også å møte brukerforespørsler som «kjærlighetssanger av Elton John».

Talegjenkjenning

I tillegg til bilder, er CNN-er nyttige i naturlig språkbehandling (NLP) og talegjenkjenning. Et virkelig eksempel på dette kan være Google som bruker CNN-er i talegjenkjenningssystemet.

Gjenoppbygging av objekter

CNN-er kan brukes i 3D-modellering av et ekte objekt i et digitalt miljø. Det er også mulig for CNN-modeller å lage en 3D-ansiktsmodell ved hjelp av et bilde. I tillegg er CNN nyttig for å konstruere digitale tvillinger innen bioteknologi, produksjon, bioteknologi og arkitektur.

CNNs bruk i forskjellige sektorer inkluderer:

  • Helsetjenester: Datasyn kan brukes i radiologi for å hjelpe leger med å oppdage kreftsvulster med bedre effektivitet hos en person.
  • Landbruk: Nettverkene kan bruke bilder fra kunstige satellitter som LSAT og utnytte disse dataene til å klassifisere fruktbare landområder. Dette bidrar også til å forutsi fruktbarhetsnivåene i landet og utvikle en effektiv strategi for å maksimere utbyttet.
  • Markedsføring: Sosiale medier-applikasjoner kan foreslå en person i et bilde som er lagt ut på noens profil. Dette hjelper deg med å merke folk i fotoalbumene dine.
  • Detaljhandel: E-handelsplattformer kan bruke visuelt søk for å hjelpe merkevarer med å anbefale relevante varer som målkundene ønsker å kjøpe.
  • Bilindustri: CNN finner bruk i biler for å forbedre passasjer- og sjåførsikkerheten. Det gjør den ved hjelp av funksjoner som fillinjedeteksjon, objektgjenkjenning, bildeklassifisering osv. Dette hjelper også verden av selvkjørende biler til å utvikle seg mer.

Ressurser for å lære CNN-er

Coursera:

Coursera har dette kurset på CNN som du kan vurdere å ta. Dette kurset vil lære deg hvordan datasyn har utviklet seg gjennom årene og noen anvendelser av CNN-er i den moderne verden.

Amazon:

Du kan lese disse bøkene og forelesningene for å lære mer om CNN:

  • Nevrale nettverk og dyp læring: Den dekker modeller, algoritmer og teorien om dyp læring og nevrale nettverk.
  • A Guide to Convolutional Neural Networks for Computer Vision: Denne boken vil lære deg applikasjonene til CNN og deres konsepter.
  • Hands-on konvolusjonelle nevrale nettverk med Tensorflow: Du kan løse ulike problemer i datasyn ved hjelp av Python og TensorFlow ved hjelp av denne boken.
  • Advanced Applied Deep Learning: Denne boken vil hjelpe deg med å forstå CNN, deep learning og deres avanserte applikasjoner, inkludert objektdeteksjon.
  • Konvolusjonelle nevrale nettverk og tilbakevendende nevrale nettverk: Denne boken vil lære deg om CNN-er og RNN-er og hvordan du bygger disse nettverkene.

Konklusjon

Konvolusjonelle nevrale nettverk er et av de nye feltene innen kunstig intelligens, maskinlæring og dyp læring. Den har forskjellige applikasjoner i dagens verden i nesten alle sektorer. Ser vi på den økende bruken, forventes den å utvide seg mer og være mer nyttig for å takle problemer i den virkelige verden.