Arkitekturdesign för artificiell intelligens (AI)
Artificiell intelligens (AI) är en dators förmåga att imitera intelligent mänskligt beteende. Med AI kan datorer analysera bilder, förstå tal, interagera på naturliga sätt och göra förutsägelser med hjälp av data.
AI-begrepp
Algoritm
En algoritm är en sekvens med beräkningar och regler som används för att lösa ett problem eller analysera en uppsättning data. Det är som ett flödesdiagram med stegvisa instruktioner för frågor att ställa, men skrivet i matematik- och programmeringskod. En algoritm kan beskriva hur du avgör om ett husdjur är en katt, hund, fisk, fågel eller ödla. En annan mycket mer komplicerad algoritm kan beskriva hur du identifierar ett skrivet eller talat språk, analyserar dess ord, översätter dem till ett annat språk och sedan kontrollerar översättningen för noggrannhet.
Maskininlärning
Maskininlärning är en AI-teknik som använder matematiska algoritmer för att skapa förutsägelsemodeller. En algoritm används för att parsa datafält och för att "lära sig" av dessa data med hjälp av mönster som finns i dem för att generera modeller. Dessa modeller används sedan för att göra välgrundade förutsägelser eller beslut om nya data.
Förutsägelsemodellerna verifieras mot kända data, mäts med prestandamått som valts för specifika affärsscenarier och justeras sedan efter behov. Den här inlärnings- och valideringsprocessen kallas för utbildning. Genom regelbunden omträning förbättras ML-modeller med tiden.
Djupinlärning
Djupinlärning är en typ av ML som själv kan avgöra om dess förutsägelser är korrekta. Den använder också algoritmer för att analysera data, men den gör det i större skala än ML.
Djupinlärning använder artificiella neurala nätverk, som består av flera lager av algoritmer. Varje lager tittar på inkommande data, utför en egen specialiserad analys och skapar utdata som andra lager kan förstå. Dessa utdata skickas sedan till nästa lager, där en annan algoritm gör sin egen analys och så vidare.
Med många lager i varje neuralt nätverk – och ibland med flera neurala nätverk – kan en dator lära sig genom sin egen databearbetning. Detta kräver mycket mer data och mycket mer databehandlingskraft än ML.
Robotar
En robot är ett automatiserat program som är utformat för att utföra en viss uppgift. Tänk på det som en robot utan kropp. Tidiga robotar var jämförelsevis enkla och hanterade repetitiva och omfattande uppgifter med relativt enkel algoritmisk logik. Ett exempel skulle vara webbkrypningsrobotar som används av sökmotorer för att automatiskt utforska och katalogisera webbinnehåll.
Robotar har blivit mycket mer sofistikerade och använder AI och andra tekniker för att efterlikna mänsklig aktivitet och beslutsfattande, ofta samtidigt som de interagerar direkt med människor via text eller till och med tal. Exempel är robotar som kan ta en middagsreservation, chattrobotar (eller konversations-AI) som hjälper till med kundtjänstinteraktioner och sociala robotar som publicerar senaste nytt eller vetenskapliga data på sociala medier.
Microsoft erbjuder Azure Bot Service, en hanterad tjänst som är specialbyggd för utveckling av robotar i företagsklass.
Autonoma system
Autonoma system är en del av en ny klass som utvecklas och går utöver grundläggande automatisering. I stället för att utföra en specifik uppgift upprepade gånger med liten eller ingen variation (som robotar gör), ger autonoma system intelligens till datorer så att de kan anpassa sig till föränderliga miljöer för att uppnå ett önskat mål.
Smarta byggnader använder autonoma system för att automatiskt styra åtgärder som belysning, ventilation, luftkonditionering och säkerhet. Ett mer sofistikerat exempel skulle vara en självstyrd robot som utforskar en kollapsad gruvschakt för att noggrant kartlägga dess inre, avgöra vilka delar som är strukturellt sunda, analysera luften för andningsförmåga och upptäcka tecken på fångade gruvarbetare som behöver rädda alla utan mänsklig övervakning i realtid på fjärrslutet.
Allmän information om Microsoft AI
Läs mer om Microsoft AI och håll dig uppdaterad med relaterade nyheter:
Arkitekturtyper på hög nivå
Fördefinierad AI
Fördefinierade AI är precis vad det låter som färdiga AI-modeller, tjänster och API:er som är redo att användas. Dessa hjälper dig att lägga till intelligens i appar, webbplatser och flöden utan att behöva samla in data och sedan skapa, träna och publicera dina egna modeller.
Ett exempel på fördefinierad AI kan vara en förtränad modell som kan införlivas som den är eller användas för att tillhandahålla en baslinje för ytterligare anpassad träning. Ett annat exempel skulle vara en molnbaserad API-tjänst som kan anropas efter behov för att bearbeta naturligt språk på önskat sätt.
Azure AI-tjänster
Cognitive Services ger utvecklare möjlighet att använda fördefinierade API:er och integrationsverktyg för att skapa program som kan se, höra, tala, förstå och till och med börja resonera. Katalogen med tjänster inom Azure AI-tjänster kan kategoriseras i fem huvudpelare: Vision, Speech, Language, Web Search och Decision/Recommendation.
Fördefinierade AI-modeller i AI Builder
AI Builder är en ny funktion i Microsoft Power Platform som tillhandahåller ett punkt-och-klicka-gränssnitt för att lägga till AI i dina appar, även om du inte har några kunskaper om kodning eller datavetenskap. (Vissa funktioner i AI Builder har ännu inte släppts för allmän tillgänglighet och förblir i förhandsversionsstatus. Mer information finns på sidan Funktionstillgänglighet per region .)
Du kan skapa och träna dina egna modeller, men AI Builder tillhandahåller även utvalda fördefinierade AI-modeller som är redo att användas direkt. Du kan till exempel lägga till en komponent i Microsoft Power Apps baserat på en fördefinierad modell som identifierar kontaktinformation från visitkort.
Anpassad AI
Även om inbyggd AI är användbar (och alltmer flexibel) är det bästa sättet att få det du behöver från AI förmodligen att skapa ett system själv. Detta är uppenbarligen ett mycket djupt och komplext ämne, men låt oss titta på några grundläggande begrepp utöver vad vi just har gått igenom.
Kodspråk
Huvudkonceptet med AI är användningen av algoritmer för att analysera data och generera modeller för att beskriva (eller poängsätta) dem på sätt som är användbara. Algoritmer skrivs av utvecklare och dataforskare (och ibland av andra algoritmer) med hjälp av programmeringskod. Två av de mest populära programmeringsspråken för AI-utveckling är för närvarande Python och R.
Python är ett allmänt programmeringsspråk på hög nivå. Den har en enkel, lättlärd syntax som betonar läsbarhet. Det finns inget kompileringssteg. Python har ett stort standardbibliotek, men det stöder också möjligheten att lägga till moduler och paket. Detta uppmuntrar modularitet och gör att du kan utöka funktionerna när det behövs. Det finns ett stort och växande ekosystem med AI- och ML-bibliotek för Python, inklusive många som är lättillgängliga i Azure.
Introduktion till maskininlärning med Python och Azure Notebooks
scikit-learn
. Ett ML-bibliotek med öppen källkod för PythonPyTorch. Ett Python-bibliotek med öppen källkod med ett omfattande ekosystem som kan användas för djupinlärning, visuellt innehåll, bearbetning av naturligt språk med mera
Tensorflow. Ett symboliskt matematiskt bibliotek med öppen källkod som också används för ML-program och neurala nätverk
Självstudie: Använda maskininlärningsmodeller i Azure Functions med Python och TensorFlow
R är ett språk och en miljö för statistisk databehandling och grafik. Det kan användas för allt från att mappa breda sociala trender och marknadsföringstrender online till att utveckla finansiella modeller och klimatmodeller.
Microsoft har helt anammat R-programmeringsspråket och erbjuder många olika alternativ för R-utvecklare att köra sin kod i Azure.
Utbildning
Utbildning är kärnan i maskininlärning. Det är den iterativa processen att "lära" en algoritm att skapa modeller, som används för att analysera data och sedan göra korrekta förutsägelser från den. I praktiken har den här processen tre allmänna faser: träning, validering och testning.
Under träningsfasen taggas en kvalitetsuppsättning med kända data så att enskilda fält kan identifieras. Taggade data matas till en algoritm som konfigurerats för att göra en viss förutsägelse. När den är klar matar algoritmen ut en modell som beskriver de mönster som den hittade som en uppsättning parametrar. Under valideringen taggas nya data och används för att testa modellen. Algoritmen justeras efter behov och kan genomgå mer träning. Slutligen använder testfasen verkliga data utan taggar eller förvalda mål. Förutsatt att modellens resultat är korrekta anses den vara redo att användas och kan distribueras.
Finjustering av hyperparametrar
Hyperparametrar är datavariabler som styr själva träningsprocessen. Det är konfigurationsvariabler som styr hur algoritmen fungerar. Hyperparametrar ställs därför vanligtvis in innan modellträningen börjar och ändras inte i träningsprocessen på det sätt som parametrarna är. Hyperparameterjustering innebär att du kör utvärderingsversioner i träningsuppgiften, utvärderar hur bra de får jobbet gjort och sedan justerar efter behov. Den här processen genererar flera modeller som var och en tränas med olika hyperparametrar.
Modellval
Träningsprocessen och justeringen av hyperparametrar ger många kandidatmodeller. Dessa kan ha många olika varianser, inklusive den ansträngning som krävs för att förbereda data, modellens flexibilitet, mängden bearbetningstid och naturligtvis graden av noggrannhet i dess resultat. Att välja den bäst tränade modellen för dina behov och begränsningar kallas modellval, men det handlar lika mycket om förplanering före träning som om att välja den som fungerar bäst.
Automatiserad maskininlärning (AutoML)
Automatiserad maskininlärning, även kallat AutoML, är processen att automatisera de tidskrävande, iterativa uppgifterna för utveckling av maskininlärningsmodeller. Det kan avsevärt minska den tid det tar att hämta produktionsklara ML-modeller. Automatiserad ML kan hjälpa till med modellval, justering av hyperparametrar, modellträning och andra uppgifter, utan att kräva omfattande programmering eller domänkunskaper.
Resultat
Bedömning kallas också förutsägelse och är processen att generera värden baserat på en tränad maskininlärningsmodell, med tanke på några nya indata. De värden, eller poäng, som skapas kan representera förutsägelser för framtida värden, men de kan också representera en sannolik kategori eller ett resultat. Bedömningsprocessen kan generera många olika typer av värden:
En lista över rekommenderade objekt och en likhetspoäng
Numeriska värden för tidsseriemodeller och regressionsmodeller
Ett sannolikhetsvärde som anger sannolikheten för att en ny indata tillhör någon befintlig kategori
Namnet på en kategori eller ett kluster som ett nytt objekt är mest likt
En förutsagd klass eller ett utfall för klassificeringsmodeller
Batchbedömning är när data samlas in under en viss fast tidsperiod och sedan bearbetas i en batch. Det kan vara att generera affärsrapporter eller analysera kundlojalitet.
Realtidsbedömning är exakt den poängsättningen som pågår och utförs så snabbt som möjligt. Det klassiska exemplet är identifiering av kreditkortsbedrägerier, men realtidsbedömning kan också användas i taligenkänning, medicinska diagnoser, marknadsanalyser och många andra tillämpningar.
Allmän information om anpassad AI i Azure
Microsoft AI på GitHub: Exempel, referensarkitekturer och metodtips
Azure Machine Learning Python SDK-notebook-filer. En GitHub-lagringsplats med exempelanteckningsböcker som visar Azure Machine Learning Python SDK.
Azure AI-plattformserbjudanden
Följande är en uppdelning av Azure-tekniker, plattformar och tjänster som du kan använda för att utveckla AI-lösningar för dina behov.
Azure Machine Learning
Det här är en maskininlärningstjänst i företagsklass för att skapa och distribuera modeller snabbare. Azure Machine Learning erbjuder webbgränssnitt och SDK:er så att du snabbt kan träna och distribuera dina maskininlärningsmodeller och pipelines i stor skala. Använd dessa funktioner med Python-ramverk med öppen källkod, till exempel PyTorch, TensorFlow och scikit-learn.
Vad är Azure Machine Learning? Allmän orientering med länkar till många utbildningsresurser, SDK:er, dokumentation med mera
Referensarkitekturer för maskininlärning för Azure
Automatiserad maskininlärning i Azure
Azure har omfattande stöd för automatiserad ML. Utvecklare kan skapa modeller med hjälp av ett användargränssnitt utan kod eller genom en kod-första notebook-upplevelse.
Självstudie: Skapa en klassificeringsmodell med automatiserad ML i Azure Machine Learning
Automatisera maskininlärningsaktiviteter med Azure Machine Learning CLI
Azure AI-tjänster
Det här är en omfattande familj av AI-tjänster och kognitiva API:er som hjälper dig att skapa intelligenta appar. Dessa domänspecifika, förträrade AI-modeller kan anpassas med dina data.
Azure Cognitive Search
Det här är en AI-baserad molnsökningstjänst för utveckling av mobil- och webbappar. Tjänsten kan söka efter privat heterogent innehåll, med alternativ för AI-berikning om ditt innehåll är ostrukturerat eller osökbart i råform.
Azure Bot Service
Det här är en specialbyggd robotutvecklingsmiljö med färdiga mallar för att komma igång snabbt.
Apache Spark på Azure
Apache Spark är ett ramverk för parallellbearbetning som stöder minnesintern bearbetning för att öka prestanda i program för stordataanalys. Spark tillhandahåller primitiver för klusterbearbetning i minnet. Ett Spark-jobb kan läsa in och cachelagera data i minnet och köra frågor mot dem upprepade gånger, vilket är mycket snabbare än diskbaserade program, till exempel Hadoop.
Apache Spark i Azure HDInsight är Microsofts implementering av Apache Spark i molnet. Spark-kluster i HDInsight är kompatibla med Azure Storage och Azure Data Lake Storage, så du kan använda HDInsight Spark-kluster för att bearbeta dina data som lagras i Azure.
Microsofts maskininlärningsbibliotek för Apache Spark är SynapseML (tidigare kallat MMLSpark). Det här biblioteket med öppen källkod lägger till många verktyg för djupinlärning och datavetenskap, nätverksfunktioner och prestanda i produktionsklass i Spark-ekosystemet. Läs mer om SynapseML-funktioner.
Översikt över Azure HDInsight. Grundläggande information om funktioner, klusterarkitektur och användningsfall, med pekare till snabbstarter och självstudier.
Självstudie: Skapa ett Apache Spark-maskininlärningsprogram i Azure HDInsight
GitHub-lagringsplats för SynapseML: Microsofts maskininlärningsbibliotek för Apache Spark
Azure Databricks Runtime för Machine Learning
Azure Databricks är en Apache Spark-baserad analysplattform med enkel installation, effektiva arbetsflöden och en interaktiv arbetsyta för samarbete mellan dataforskare, tekniker och affärsanalytiker.
Med Databricks Runtime for Machine Learning (Databricks Runtime ML) kan du starta ett Databricks-kluster med alla bibliotek som krävs för distribuerad träning. Det ger en färdig miljö för maskininlärning och datavetenskap. Dessutom innehåller den flera populära bibliotek, inklusive TensorFlow, PyTorch, Keras och XGBoost. Distribuerad träning med Horovod stöds.
Kundcase
Olika branscher tillämpar AI på innovativa och inspirerande sätt. Här följer ett antal kundfallsstudier och framgångsberättelser:
ASOS: Onlineåterförsäljaren löser utmaningar med Azure Machine Learning-tjänsten
KPMG hjälper finansinstitut att spara miljoner i efterlevnadskostnader med Azure Cognitive Services
Volkswagen: Maskinöversättning talar Volkswagen – på 40 språk
Buncee: NYC-skolan ger läsare i alla åldrar och förmågor med Azure AI
Wix distribuerar smart och skalbar sökning på 150 miljoner webbplatser med Azure Cognitive Search
Asklepios Klinik Altona: Precisionsoperationer med Microsoft HoloLens 2- och 3D-visualisering
Bläddra bland fler AI-kundberättelser
Nästa steg
Mer information om de produkter för utveckling av artificiell intelligens som är tillgängliga från Microsoft finns på microsofts AI-plattformssida .
Information om hur du utvecklar AI-lösningar finns i Microsoft AI School.
Microsoft AI på GitHub: Exempel, referensarkitekturer och metodtips organiserar Microsoft öppen källkod AI-baserade lagringsplatser med självstudier och utbildningsmaterial.