Vähetuntud keeled tehisintellekti loomiseks. Tehisintellekt: kuidas ja kus õppida - vastavad eksperdid

Robootika kujutab endast vastandite kombinatsiooni. Spetsialistidena on nad kursis oma eriala keerukusega. Üldistena suudavad nad probleemi tervikuna katta niivõrd, kuivõrd olemasolev ulatuslik teadmistebaas seda võimaldab. Juhime teie tähelepanu huvitav materjal teemal oskused ja võimed, mis on vajalikud tõelisele robootikule.

Ja peale materjali enda on siin ka ühe meie robo-eksperdi, Jekaterinburgi kuraatori Oleg Evsegnejevi kommentaarid.

Robootikainsenerid kipuvad jagunema kahte kategooriasse: mõtlejad (teoreetikud) ja tegijad (praktikud). See tähendab, et robootika peab olema teistsugune hea kombinatsioon kaks vastandlikku stiili. "Uurimisvõimelistele" inimestele meeldib üldiselt probleeme lahendada mõeldes, lugedes ja õppides. Teisalt meeldib praktikutele probleeme lahendada ainult nii-öelda käed määrides.

Robootika nõuab delikaatset tasakaalu intensiivse uurimistöö ja pingevaba pausi vahel, st töötamist tõelise probleemiga. Esitatud loetelus on 25 kutseoskust, mis on rühmitatud 10 robootika jaoks oluliseks oskuseks.

1. Süsteemne mõtlemine

Üks projektijuht märkis kord, et paljud robootikaga seotud inimesed lõpetavad projektijuhtide või süsteemiinseneridega. Sellel on eriline tähendus, kuna robotid on väga keerulised süsteemid. Robotidega tegelev spetsialist peab olema hea mehaanik, elektroonikainsener, elektrik, programmeerija ning omama isegi teadmisi psühholoogias ja kognitiivses tegevuses.

Hea robootik suudab mõista ja teoreetiliselt põhjendada, kuidas kõik need eripalgelised süsteemid koos ja sidusalt töötavad. Kui mehaanikainsener võib mõistlikult öelda: "See pole minu töö, selleks on vaja programmeerijat või elektrikut", siis peab robotik olema kõigis nendes distsipliinides hästi kursis.

Üldiselt on süsteemne mõtlemine kõigi inseneride jaoks oluline oskus. Meie maailm on üks suur superkompleksne süsteem. Süsteemitehnilised oskused aitavad õigesti mõista, mis ja kuidas on siin maailmas seotud. Seda teades saate luua tõhusad süsteemid kontroll reaalse maailma üle.

2. Mõeldes programmeerijale

Programmeerimine on robootiku jaoks üsna oluline oskus. Pole tähtis, kas teile meeldivad madalatasemelised juhtimissüsteemid (kasutades kontrollerite kujundamiseks ainult MATLAB-i) või arvutiteadlane, kes kujundab kõrgetasemelisi kognitiivseid süsteeme. Robootikainsenerid võivad olla seotud programmeerimisega igal abstraktsioonitasemel. Peamine erinevus tavapärase programmeerimise ja robotite programmeerimise vahel seisneb selles, et robootik suhtleb reaalse maailma riistvara, elektroonika ja segadusega.

Tänapäeval kasutatakse enam kui 1500 programmeerimiskeelt. Kuigi ilmselgelt ei pea te neid kõiki õppima, on heal robootikul programmeerija mõttelaad. Ja nad tunnevad end mugavalt iga uue keele õppimisel, kui nad seda vajavad. Ja siis liigume sujuvalt järgmise oskuse juurde.

Oleg Evsegnejevi kommentaar: Lisan selle loomiseks kaasaegsed robotid nõutav on madala, kõrge ja isegi ülikõrge keeleoskus. Mikrokontrollerid peavad olema väga kiired ja tõhusad. Selle saavutamiseks peate süvenema arhitektuuri arvutusseade, tunneb mälu ja madala taseme protokollidega töötamise funktsioone. Roboti süda võib olla raske operatsioonisüsteem, näiteks ROS. Siin võib juba vaja minna OOP-i teadmisi, tõsiste pakettide kasutamise oskust masinnägemine, navigeerimine ja masinõpe. Lõpetuseks, roboti liidese veebi kirjutamiseks ja selle Internetiga ühendamiseks oleks tore õppida skriptikeeli, sedasama pythonit.

3. Iseõppimisvõime

Robootikast on võimatu kõike teada, alati on midagi teadmata, mida tuleb uurida, kui tekib vajadus järgmise projekti elluviimiseks. Isegi pärast kättesaamist kõrgharidus Robootika erialal ja paar aastat kraadiõppurina on paljud alles hakanud robootika põhitõdesid tõeliselt mõistma.

Pühendunud pidev õppimine millegi uue tegemine on teie karjääri jooksul oluline oskus. Seetõttu aitab enda jaoks tõhusate õppemeetodite kasutamine ja hea loetu mõistmine sul vajaduse tekkides kiiresti ja lihtsalt uusi teadmisi omandada.

Oleg Evsegnejevi kommentaar: See on iga loomingulise ettevõtmise võtmeoskus. Sellega saab muid oskusi omandada

4. Matemaatika

Robootikas pole palju põhioskusi. Üks neist põhioskustest on matemaatika. Tõenäoliselt on teil raske robootikas edu saavutada, kui te ei tunne vähemalt algebrat, matemaatiline analüüs ja geomeetria. See on tingitud asjaolust, et edasi algtase Robootika tugineb võimele mõista abstraktseid mõisteid ja nendega töötada, mida sageli kujutatakse funktsioonide või võrranditena. Geomeetria on eriti oluline selliste teemade mõistmiseks nagu kinemaatika ja tehnilised joonised (mida teete oma karjääri jooksul ilmselt palju, sealhulgas salvrätikul tehtuid).

Oleg Evsegnejevi kommentaar: Roboti käitumine, reaktsioon keskkonna stiimulitele, õppimisvõime – see kõik on matemaatika. Lihtne näide. Kaasaegsed droonid lendavad hästi tänu Kalmani filtrile, mis on võimas matemaatiline tööriist roboti asukoha kohta kosmoses andmete täpsustamiseks. Asimo robot suudab tänu närvivõrkudele objekte eristada. Isegi robottolmuimeja kasutab ruumis õige marsruudi leidmiseks keerulist matemaatikat.

5. Füüsika ja rakendusmatemaatika

On inimesi (näiteks puhtad matemaatikud), kes kalduvad opereerima matemaatiliste kontseptsioonidega, viitamata tegelikule maailmale. Robotiehitajad ei ole seda tüüpi inimesed. Füüsika ja rakendusmatemaatika teadmised on robootikas olulised, sest tegelik maailm pole kunagi nii täpne kui matemaatika. Robootikainseneri võtmeoskus on võime otsustada, millal on arvutustulemus piisavalt hea, et tegelikult töötada. Mis viib meid sujuvalt järgmise punktini.

Oleg Evsegnejevi kommentaar: Sööma hea näideautomaatsed jaamad reisida teistele planeetidele. Füüsikateadmised võimaldavad nende lennutrajektoori nii täpselt välja arvutada, et aastate ja miljonite kilomeetrite pärast kukub seade täpselt määratud asendisse.

6. Analüüs ja lahenduse valik

Hea robootikuks olemine tähendab pidevat insenertehniliste otsuste tegemist. Mida valida programmeerimiseks - ROS või mõni muu süsteem? Mitu sõrme peaks disainitud robotil olema? Milliseid andureid kasutada? Robootikas kasutatakse palju lahendusi ja nende hulgas pole peaaegu ühtegi õiget.

Tänu robootikas kasutatavale suurele teadmistebaasile leiad teatud probleemidele parema lahenduse kui kitsamate erialade spetsialistid. Analüüs ja otsuste tegemine on oma otsusest maksimumi võtmiseks hädavajalikud. Analüütilise mõtlemise oskused võimaldavad teil analüüsida probleemi mitmest vaatenurgast, samas kui kriitilise mõtlemise oskused aitavad teil kasutada loogikat ja arutluskäiku tugevuste ja tugevuste tasakaalustamiseks. nõrgad küljed iga otsus.

Sel nädalal võis lugeda ülimalt motiveerivat juhtumit ühelt eriala õppinud GeekBrainsi tudengilt, kus ta rääkis ühest oma eesmärgist, mis teda selle erialani viis – soovist õppida selgeks tööpõhimõte ja õppida ise mängubotte looma.

Kuid tegelikult on see soov luua täiuslik tehisintellekt, kas mängu mudel või mobiiliprogramm, inspireeris paljusid meist programmeerija teele. Probleem on selles, et tonnide õppematerjalide ja klientide karmi reaalsuse taga asendus just see soov lihtsa enesearendamise sooviga. Neile, kes pole veel oma lapsepõlveunistust täitma hakanud, on siin lühike juhend tõelise tehisintellekti loomiseks.

1. etapp. Pettumus

Kui räägime vähemalt lihtsate robotite loomisest, täituvad silmad säraga ja peas virvendab sadu ideid, mida ta peaks suutma. Kui aga rääkida rakendamisest, siis selgub, et tegeliku käitumise võti on matemaatika. Jah, tehisintellekt on palju keerulisem kui rakendusprogrammide kirjutamine – ainult tarkvaradisaini teadmistest sulle ei piisa.

Matemaatika on teaduslik baas, millele teie edasine programmeerimine rajatakse. Ilma selle teooria tundmise ja mõistmiseta lagunevad kõik ideed inimesega suhtlemisel kiiresti, sest tehisintellekt tegelikult pole muud kui valemite komplekt.

2. etapp. Aktsepteerimine

Kui üliõpilaskirjandus on ülbuse pisut maha löönud, võite hakata harjutama. Ei tasu end veel LISP-i ega teiste kallale heita – esmalt tuleks AI-disaini põhimõtetega end mugavalt tunda. Nagu kiire õppimine, ja edasiarendus sobib suurepäraselt Pythoni jaoks - seda keelt kasutatakse kõige sagedamini teaduslikel eesmärkidel, selle jaoks leiate palju teeke, mis muudavad teie töö lihtsamaks.

3. etapp. Areng

Nüüd pöördume otse AI teooria poole. Need võib tinglikult jagada kolme kategooriasse:

  • Nõrk AI – robotid, milles me näeme Arvutimängud või lihtsad abilised nagu Siri. Nad täidavad kas väga spetsiifilisi ülesandeid või on nende tähtsusetu kompleks ning igasugune suhtluse ettearvamatus paneb nad ummikusse.
  • Tugev AI on masinad, mille intelligentsus on võrreldav inimese aju. Praeguseks pole selle klassi tõelisi esindajaid, kuid sellised arvutid nagu Watson on selle eesmärgi saavutamisele väga lähedal.
  • Täiuslik tehisintellekt on tulevik, masinaaju, mis ületab meie võimalused. Just selliste arengute ohust hoiatavad Stephen Hawking, Elon Musk ja Terminaatori filmifrantsiis.

Loomulikult peaksite alustama kõige lihtsamatest robotitest. Selleks pidage 3x3 välja kasutamisel meeles vana head tic-tac-toe mängu ja proovige ise selgeks teha toimingute põhialgoritmid: võidutõenäosus veavabade tegevustega, edukaimad kohad väljakul. nupu asetamine, vajadus viia mäng viigini jne.

Mitukümmend mängu ja oma tegevusi analüüsides saate kindlasti kõik esile tõsta olulisi aspekte ja kirjutage need ümber masina kood. Kui ei, siis mõtle edasi ja see link on igaks juhuks siin.

Muide, kui sa ikka üles võtsid Pythoni keel, siis saate sellele üksikasjalikule juhendile viidates luua üsna lihtsa roboti. Teiste keelte (nt C++ või Java) jaoks leiate hõlpsalt ka samm-sammulisi materjale. Tundes, et AI loomise taga pole midagi üleloomulikku, võib julgelt brauseri sulgeda ja isiklikke katseid alustada.

Etapp 4. Põnevus

Nüüd, kui asjad on surnud kohast edasi liikunud, tahad ilmselt luua midagi tõsisemat. Järgmised ressursid aitavad teid selles.

Nagu isegi nimedest aru saate, on need API-d, mis võimaldavad teil aega raiskamata luua mingi tõsise tehisintellekti.

5. etapp. Töö

Nüüd, kui olete juba üsna selgelt aru saanud, kuidas AI luua ja kuidas seda kasutada, on aeg viia oma teadmised uus tase. Esiteks nõuab see distsipliini uurimist, mida nimetatakse masinõppeks. Teiseks peate õppima, kuidas töötada valitud programmeerimiskeele sobivate raamatukogudega. Pythoni puhul, mida me kaalume, on need Scikit-learn, NLTK, SciPy, PyBrain ja Numpy. Kolmandaks, arenduses ei saa te kõrvale hoida. Ja mis kõige tähtsam, saate nüüd lugeda AI-kirjandust asja täieliku mõistmisega:

  • Tehisintellekt mängude jaoks, Ian Millington;
  • Mängu programmeerimismustrid, Robert Nystorm;
  • AI algoritmid, andmestruktuurid ja idioomid Prologis, Lispis ja Javas, George Luger, William Stubalfield;
  • Computational Cognitive Neuroscience, Randall O'Reilly, Yuko Munakata;
  • Tehisintellekt: kaasaegne lähenemine, Stuart Russell, Peter Norvig.

Ja jah, kogu või peaaegu kogu selleteemaline kirjandus on esitatud võõrkeel, nii et kui soovite luua AI professionaalselt, peate parandama oma inglise keelt tehniline tase. Kuid see kehtib iga programmeerimise valdkonna kohta, kas pole?

"Ma tahan teha AI-d. Mida tasub õppida? Milliseid keeli kasutada? Millistes organisatsioonides õppida ja töötada?

Pöördusime selgituste saamiseks oma ekspertide poole ja tutvustame saadud vastused teie tähelepanu.

See sõltub teie põhikoolitusest. Eelkõige on vaja matemaatilist kultuuri (teadmised statistikast, tõenäosusteooriast, diskreetsest matemaatikast, lineaaralgebrast, analüüsist jne) ja valmisolekut kiiresti palju õppida. AI meetodite rakendamine nõuab programmeerimist (algoritmid, andmestruktuurid, OOP jne).

Erinevad projektid nõuavad erinevate programmeerimiskeelte tundmist. Soovitaksin osata vähemalt Pythonit, Java-d ja mis tahes funktsionaalne keel. Koostöökogemus erinevad alused andmed ja hajutatud süsteemid. Selle valdkonna parimate tavade kiireks õppimiseks on vajalik inglise keele oskus.

Soovitan õppida heades Venemaa ülikoolides! Näiteks Moskva Füüsika ja Tehnoloogia Instituudis, Moskva Riiklikus Ülikoolis, Kõrgemas Majanduskoolis on vastavad osakonnad. Coursera, edX, Udacity, Udemy ja muudel MOOC platvormidel on saadaval lai valik temaatilisi kursusi. Mõned juhtivad organisatsioonid on enda programmid AI valdkonna koolitus (näiteks Yandexi andmeanalüüsi kool).

AI-meetoditega lahendatud rakendusprobleeme võib leida väga erinevatest kohtadest. Pangad, finantssektor, nõustamine, jaemüük, e-kaubandus, otsingumootorid, postiteenused, mängutööstus, turvasüsteemide tööstus ja loomulikult Avito – kõik vajavad erineva kvalifikatsiooniga spetsialiste.

Täiendus Alanda

Meil on fintech projekt, mis on seotud masinõppega ja arvuti nägemine, milles selle esimene arendaja kirjutas kõik C ++ keeles, siis tuli arendaja, kes kirjutas kõik Pythonis ümber. Nii et keel pole siin kõige tähtsam, kuna keel on ennekõike tööriist ja kuidas seda kasutate, sõltub teist. Lihtsalt mõnes keeles on probleemide lahendamine kiirem, teistes aga aeglasem.

Raske öelda, kus õppida - kõik meie poisid õppisid omal käel, kuna seal on Internet ja Google.

Täiendus Alanda

Võin soovitada algusest peale valmistuda selleks, et peate palju õppima. Olenemata sellest, mida mõeldakse "AI tegemise" all – suurandmete või närvivõrkudega töötamine; tehnoloogia arendamine või teatud juba väljatöötatud süsteemi tugi ja koolitus.

Võtame konkreetsuse huvides trendika Andmeteadlase elukutse. Mida see inimene teeb? Üldiselt kogub, analüüsib ja valmistab kasutamiseks ette suurandmeid. Täpselt need, millel AI kasvab ja treenib. Mida peaks andmeteadlane teadma ja oskama? Staatiline analüüs ja matemaatika modelleerimine- vaikimisi ja vaba valduse tasemel. Keeled – ütleme, R, SAS, Python. Samuti oleks tore omada mõningast arenduskogemust. Üldiselt peaks hea andmeteadlane tundma end andmebaasis, algoritmides ja andmete visualiseerimises kindlalt.

Rääkimata sellest, et sellise teadmistepagasi võiks saada igas teises tehnikaülikoolis riigis. Suured ettevõtted, kes eelistavad tehisintellekti arendamist, mõistavad seda ja arendavad asjakohast õppeprogrammid- seal on näiteks Yandexi andmeanalüüsi kool. Kuid peaksite teadma, et see ei ole see mastaap, kus te tulete kursustele "tänavalt", vaid jätate need valmis juunioriks. Kiht on suur ja erialale on mõtet õppima minna siis, kui baas (matemaatika, statistika) on vähemalt ülikooli programmi raames juba läbitud.

Jah, see võtab aega. Mäng on aga küünalt väärt, sest head andmed Teadlane on väga paljulubav. Ja väga kallis. On ka teine ​​punkt. Tehisintellekt ei ole ühest küljest enam lihtsalt haibi objekt, vaid tootlikkuse tasemele jõudnud tehnoloogia. Teisest küljest areneb tehisintellekt endiselt. See arendus nõuab palju ressursse, palju oskusi ja palju raha. Seni on selline kõrgliigade tase. Räägin nüüd ilmselgest, aga kui soovite olla rünnaku esirinnas ja oma kätega edusamme juhtida, võtke sihikule selline ettevõte nagu Facebook või Amazon.

Samal ajal kasutatakse seda tehnoloogiat juba mitmes valdkonnas: pangandus, telekommunikatsioonis, tööstushiiglastes, jaemüügis. Ja juba on vaja inimesi, kes seda toetavad. Gartner ennustab, et aastaks 2020 palkab 20% kõigist arenenud riikide ettevõtetest spetsiaalseid töötajaid, kes koolitavad nendes ettevõtetes kasutatavaid närvivõrke. Seega on veel veidi aega iseseisvaks õppimiseks.

Täiendus Alanda

AI areneb praegu aktiivselt ja kümme aastat ette on raske ennustada. Järgmise kahe kuni kolme aasta jooksul domineerivad närvivõrkudel ja GPU-põhisel andmetöötlusel põhinevad lähenemisviisid. Selle valdkonna liider on Python koos Jupyteri interaktiivse keskkonna ja numpy, scipy, tensorflow raamatukogudega.

On palju veebikursusi, mis annavad põhiteadmised nendest tehnoloogiatest ja üldised põhimõtted AI, näiteks Andrew Ng kursus. Ja selle teema õpetamise osas on see nüüd Venemaal kõige tõhusam eneseharimine või sisse kohalik rühm huvide järgi (näiteks Moskvas tean vähemalt paari grupi olemasolust, kus inimesed oma kogemusi ja teadmisi jagavad).

Täiendus Alanda

Täiendus Alanda

Praeguseks on tehisintellekti kõige kiiremini arenev osa ehk närvivõrgud.
Närvivõrkude ja tehisintellekti uurimine peaks algama matemaatika kahe osa – lineaaralgebra ja tõenäosusteooria – arendamisega. See on tehisintellekti kohustuslik miinimum, kõigutamatu tugisammas. Taotlejad, kes soovivad õppida tehisintellekti põhitõdesid, peaksid minu arvates ülikooli valikul pöörama tähelepanu tugeva matemaatilise koolkonnaga teaduskondadele.

Järgmine samm on probleemi problemaatika uurimine. Kirjandust, nii õpetlikku kui ka erialast, on tohutult. Enamik tehisintellekti ja närvivõrkude teemalisi publikatsioone on kirjutatud sisse inglise keel, aga avaldatakse ka venekeelseid materjale. Kasulikku kirjandust leiab näiteks avalikust digiraamatukogust arxiv.org.

Kui rääkida tegevusvaldkondadest, siis siin saab eristada rakenduslike närvivõrkude koolitust ja täiesti uute närvivõrkude variantide väljatöötamist. Ilmekas näide: praegu on selline väga populaarne eriala - "Data Scientist" (Data Scientist). Need on arendajad, kes reeglina tegelevad teatud andmekogumite uurimise ja ettevalmistamisega närvivõrkude koolitamiseks konkreetsetes, rakendusalad. Kokkuvõtvalt tahan rõhutada, et iga eriala eeldab eraldi koolitusteed.

Täiendus Alanda

Enne kitsa profiiliga kursuste alustamist peate õppima lineaaralgebrat ja statistikat. Sukelduge tehisintellekti, soovitaksin teil alustada õpikust " Masinõpe. Andmetest teadmisi ammutavate algoritmide koostamise teadus ja kunst on hea juhend algajatele. Courseras tasub kuulata K. Vorontsovi sissejuhatavaid loenguid (rõhutan, et need nõuavad head lineaaralgebra tundmist) ja Stanfordi ülikooli masinõppe kursust, mida õpetab Andrew Ng, professor ja Baidu AI Groupi juht. /Google Brain.

Suurem osa on kirjutatud Pythonis, millele järgneb R, Lua.

Kui me räägime sellest õppeasutused, on parem registreeruda rakendusmatemaatika ja informaatika osakondade kursustele, sobivad haridusprogrammid Seal on. Oma võimete proovile panemiseks saab osaleda Kaggle’i võistlustel, kus suuremad ülemaailmsed kaubamärgid pakuvad oma kohvreid.

Täiendus Alanda

Igal juhul oleks hea enne projektide kallale asumist saada teoreetiline baas. Seal on palju kohti, kus saate sellel alal ametlikku magistrikraadi omandada või oma oskusi täiendada. Näiteks Skoltech pakub arvutusteaduse ja tehnika ning andmeteaduse magistriprogramme, mis hõlmavad masinõppe ja loomuliku keele töötlemise kursusi. Veel võib mainida riikliku teadusuuringute tuumaülikooli MEPhI intelligentsete küberneetiliste süsteemide instituuti, Moskva Riikliku Ülikooli arvutusmatemaatika ja küberneetika teaduskonda ning Moskva Füüsika- ja Tehnoloogiainstituudi intelligentsete süsteemide osakonda.

Kui formaalne haridus on juba saadaval, on selleks mitmeid kursusi erinevad platvormid MOOC. Näiteks EDx.org pakub Microsofti ja Columbia ülikooli tehisintellekti kursusi, millest viimane pakub mikro-magistriprogrammi mõõdukate kuludega. Tahaksin rõhutada, et tavaliselt saab teadmised ise tasuta, tasu on ainult tunnistuse eest, kui seda on CV jaoks vaja.

Kui soovite teemasse "sügavalt sukelduda", pakuvad mitmed Moskva ettevõtted iganädalasi intensiivkursusi praktilised harjutused, ja isegi pakkuda katseteks seadmeid (näiteks newprolab.com), kuid selliste kursuste hind on mitmekümnest tuhandest rublast.

Tehisintellekti arendavatest ettevõtetest teate ilmselt Yandexi ja Sberbanki, kuid on ka palju teisi erinevad suurused. Näiteks sel nädalal avas kaitseministeerium Anapas ERA Military Innovation Technopolise, mille üheks teemaks on tehisintellekti arendamine sõjalisteks vajadusteks.

Täiendus Alanda

Enne tehisintellekti õppimist on vaja lahendada põhimõtteline küsimus: võtke punane või sinine pill.
Punane pill on saada arendajaks ja sukelduda statistiliste meetodite, algoritmide ja pideva tundmatuse mõistmise julmasse maailma. Teisalt pole vaja kohe "jäneseauku" tormata: projektijuhiks võib saada juhiks ja luua AI-d näiteks. Need on kaks põhimõtteliselt erinevat teed.

Esimene on suurepärane, kui olete juba otsustanud, et kirjutate tehisintellekti algoritme. Seejärel tuleb alustada tänapäeval kõige populaarsemast suunast – masinõppega. Selleks peate tundma klassikat statistilised meetodid klassifikatsioon, rühmitamine ja regressioon. Samuti on kasulik tutvuda peamiste lahenduste kvaliteedi hindamise meetmetega, nende omadustega ... ja kõigega, mis teele ette tuleb.

Alles pärast aluse valdamist tasub uurida erilisemaid meetodeid: otsustuspuid ja nende ansambleid. Selles etapis peate sukelduma sügavale mudelite loomise ja treenimise põhiviisidesse – need on peidetud vaevu korralike sõnade kottimine, hoogustamine, virnastamine või segamine taha.

Samuti tasub teada mudelite ümberõppe kontrollimise meetodeid (teine ​​“ming” on overfitting).

Ja lõpuks väga Jedi tase - väga spetsiifiliste teadmiste omandamine. Näiteks selleks sügav õppimine peate valdama põhilisi arhitektuure ja algoritme gradient laskumine. Kui olete huvitatud tööülesannete töötlemisest loomulik keel, siis soovitan uurida korduvaid närvivõrke. Ja tulevased piltide ja videote töötlemise algoritmide loojad peaksid minema sügavale konvolutsiooninärvivõrkudesse.

Viimased kaks mainitud struktuuri on tänapäeva populaarsete arhitektuuride ehitusplokid: võistlevad võrgud (GAN), relatsioonivõrgud, kombineeritud võrgud. Seetõttu on kasulik neid uurida, isegi kui te ei kavatse õpetada arvutit nägema või kuulma.

Väga erinev lähenemine tehisintellekti tundmaõppimisele – ehk "sinine pill" - algab iseenda leidmisest. Tehisintellekt toob kaasa hulga ülesandeid ja terveid elukutseid: tehisintellekti projektijuhtidest andmeinsenerideni, kes on võimelised andmeid ette valmistama, neid puhastama ning skaleeritavaid, suure koormusega ja tõrketaluvusega süsteeme ehitama.

Seega tuleks “juhitava” lähenemisega esmalt hinnata oma võimeid ja tausta ning alles seejärel valida, kus ja mida õppida. Näiteks saate isegi ilma matemaatilise mõtteviisita kujundada nutikate algoritmide jaoks AI-liideseid ja visualiseerimisi. Kuid olge valmis: 5 aasta pärast hakkab tehisintellekt teid trollima ja "humanistiks" kutsuma.

Peamised ML-meetodid on rakendatud ühendamiseks saadaval olevate valmis teekide kujul erinevaid keeli. Tänapäeval on ML-i kõige populaarsemad keeled: C++, Python ja R.

Nii vene kui ka inglise keeles on palju kursusi, näiteks Yandex School of Data Analysis, SkillFactory ja OTUS kursused. Kuid enne erikoolitustesse aja ja raha investeerimist tasub minu arvates "teemasse süveneda": vaadake YouTube'is viimaste aastate avatud loenguid DataFesti konverentsidelt, osalege Coursera ja Habrahabra tasuta kursustel.

Ja kui kõik kirjeldatud teadmised on õpitud, ootame noori padawaneid meie Naviconi meeskonda, kus aitame ja õpetame, kuidas päriselus "tehisintellektidega" sõbruneda.

Täiendus Alanda

AI ja masinõppe teema on muutunud palju demokraatlikumaks kui paar aastat tagasi.
Internetist leiab selleteemalisi tasulisi ja tasuta kursusi, tööriistad muutuvad üha lihtsamaks ja vähenõudlikumaks nii teadmiste kui riistvara osas.

Nii kogenud kui ka algajatele programmeerijatele soovitan alustada veebikursustega MOOCi saitidel. Näiteks on Courseral suurepärane spetsialiseerumine Yandexi ja Kõrgema Majanduskooli masinõppele ja andmeanalüüsile. Kui inglisekeelsete loengute mõistmisega probleeme pole, saab seal läbida ka Andrew Yni kursuse "Masinõpe".

Peamised programmeerimiskeeled AI ja masinõppe valdkonnas töötamiseks on R ja Python. Pikka aega neid keeli on kasutatud akadeemilistes ringkondades ja nende jaoks on loodud suur hulk raamatukogusid. Nüüd töötatakse välja tööriistu, mis võimaldavad teil projekti kiiresti käivitada: Keras, TensorFlow, Theano, Caffe, scikit-learn. Hiljuti Microsoft hakkas aktiivselt arendama oma tööriistu: CNTK, ML.NET. Need võimaldavad teil luua nutikaid lahendusi C# keeles.

Otsige tööd ilma praktiline kogemus andmeanalüüsi ja masinõppe vallas on see praegu päris keeruline. Kuid saate õppida iseseisvalt veebikursustel, osaleda võistlustel Kaggle jms platvormidel. See võimaldab teil arendada portfelli, millest saab teie konkurentsieelis töö otsimisel.

Täiendus Alanda

Eksperdid ja kui see huvitavaks osutub, kogume sellele vastused. Küsimused, mis on juba esitatud, leiate probleemide loendist. Kui soovid liituda ekspertide ridadega ja saata vastust oma ettevõttelt või isiklikult sinult, siis kirjuta aadressile , me räägime sulle, kuidas seda teha.

Kuidas juhtub, et tehisintellekt areneb edukalt, kuid selle jaoks pole endiselt "õiget" määratlust? Miks neuroarvutitele pandud lootused ei täitunud ja millised on kolm peamist ülesannet, millega tehisintellekti looja seisab?

Nendele ja teistele küsimustele leiate vastuse lõike all olevast artiklist, mis on kirjutatud riigi ühe tehisintellekti valdkonna juhtiva eksperdi, ABBYY tehnoloogiaarenduse osakonna direktori Konstantin Anisimovitši kõne põhjal.
Kui see isiklik osalus loodi dokumentide tuvastamise tehnoloogiad, mida kasutatakse toodetes ABBYY FineReader ja ABBYY FormReader. Konstantin rääkis tehisintellekti arendamise ajaloost ja põhitõdedest ühel Technopark Mail.Ru õpilastele mõeldud meistriklassis. Meistriklassi materjal sai aluseks artiklisarjale.

Kokku tuleb kolm postitust:

Teadmiste rakendamine: ruumiseisundite otsimise algoritmid
Teadmiste omandamine: intelligentsete süsteemide projekteerimine ja masinõpe

AI lähenemiste tõusud ja mõõnad

Alates 1950. aastatest on tehisintellekti vallas esile kerkinud kaks lähenemist – sümboolne andmetöötlus ja konneksionism. Sümboolne andmetöötlus on inimmõtlemise modelleerimisel põhinev suund ja konneksionism aju struktuuri modelleerimisel.

Esimesed edusammud sümboolse andmetöötluse vallas olid 1950. aastatel loodud Lispi keel ja J. Robinsoni töö järelduste alal. Konnekcionismis oli selleks pertseptroni loomine, iseõppiv lineaarne klassifikaator, mis simuleerib neuroni tööd. Edasised silmapaistvad saavutused olid peamiselt kooskõlas sümboolse paradigmaga. Eelkõige on need Seymour Piperti ja Robert Anton Winsoni tööd tajupsühholoogia vallas ning loomulikult Marvin Minsky raamid.

1970. aastatel esimene rakendatud süsteemid tehisintellekti elementide kasutamine – ekspertsüsteemid. Siis toimus konneksionismi teatav renessanss koos mitmekihiliste närvivõrkude ja nende meetodil õppimise algoritmi tulekuga. tagasipaljundamine. 80ndatel hullus närvivõrgud see oli lihtsalt ülivõimas. Selle lähenemisviisi pooldajad lubasid luua neuroarvuteid, mis töötaksid peaaegu nagu inimese aju.


Aga midagi erilist sellest ei tulnud, sest päris neuronid on palju keerulisemad kui formaalsed, millel mitmekihilised närvivõrgud põhinevad. Ja ka neuronite arv inimese ajus on palju suurem, kui närvivõrgus saaks endale lubada. Peamine, mille jaoks mitmekihilised närvivõrgud sobivaks osutusid, on klassifitseerimisülesande lahendus.

Järgmine populaarne paradigma tehisintellekti vallas oli masinõpe. Lähenemisviis hakkas kiiresti arenema alates 80ndate lõpust ja pole tänaseni populaarsust kaotanud. Olulise tõuke masinõppe arengule andis interneti tulek ja suur hulk mitmesuguseid kergesti kättesaadavaid andmeid, mida saab kasutada algoritmide treenimiseks.

Peamised ülesanded tehisintellekti kujundamisel

Saab analüüsida, mis ühendab neid tehisintellektiga seotud ülesandeid. On lihtne näha, et neil on ühist – hästituntud, täpselt määratletud lahendusprotseduuri puudumine. Selle poolest erinevad tehisintellektiga seotud probleemid kompileerimise teooria või arvutusmatemaatika probleemidest. Intelligentsed süsteemid otsivad probleemile ebaoptimaalseid lahendusi. Seda, et tehisintellekti poolt leitud lahendus oleks rangelt optimaalne, on võimatu tõestada ega garanteerida. Siiski enamikus praktilisi ülesandeid mitteoptimaalsed lahendused sobivad kõigile. Pealegi tuleb meeles pidada, et inimene ei lahenda peaaegu kunagi probleemi optimaalselt. Pigem vastupidi.

Tekib väga oluline küsimus: kuidas saab tehisintellekt lahendada probleemi, millele pole lahendusalgoritmi? Asi on selles, et teha seda samamoodi nagu inimene – esitada ja kontrollida usutavaid hüpoteese. Loomulikult on hüpoteeside püstitamiseks ja kontrollimiseks vaja teadmisi.

Teadmised on kirjeldus ainevaldkond milles intelligentne süsteem töötab. Kui meil on loomuliku keele märgituvastussüsteem, siis teadmised hõlmavad sümbolite seadmestiku, teksti struktuuri ja keele teatud omaduste kirjeldusi. Kui tegemist on kliendi krediidiskoori süsteemiga, peavad sellel olema teadmised klientide tüüpidest ja sellest, kuidas kliendi profiil on seotud nende võimaliku maksejõuetusega. Teadmisi on kahte tüüpi – ainevaldkonna kohta ja lahenduste leidmise kohta (meta-teadmised).

Peamised projekteerimisülesanded intelligentne süsteem taandatakse teadmiste esitamise viiside, teadmiste saamise viiside ja teadmiste rakendamise viiside valikule.

Teadmiste esitus

Teadmiste esitamiseks on kaks peamist viisi – deklaratiivne ja protseduuriline. Deklaratiivsed teadmised võib esitada struktureeritud või struktureerimata kujul. Struktureeritud vaated on üht- või teist tüüpi raamilähenemine. Nimelt raamid ehk formaalsed grammatikad, mida võib samuti pidada raamide sortideks. Teadmised nendes formalismides esitatakse objektide ja nendevaheliste suhete kogumina.



Struktureerimata esitusi kasutatakse tavaliselt nendes valdkondades, mis on seotud klassifitseerimisprobleemide lahendamisega. Tavaliselt on need kaaluhinnangute, tõenäosuste jms vektorid.

Peaaegu kõik teadmiste struktureeritud kujutamise meetodid põhinevad raamide formalismil, mille Marvin Minsky MIT-ist 1970. aastatel tutvustas, et näidata ruumiliste stseenide tajumise teadmiste struktuuri. Nagu selgus, sobib see lähenemine peaaegu iga ülesande jaoks.

Raam koosneb nimest ja üksikutest üksustest, mida nimetatakse pesadeks. Pilu väärtus võib omakorda olla viide teisele kaadrile... Kaader võib olla teise kaadri alam, pärides selle pesa väärtused. Sel juhul saab järeltulija esivanemate pesade väärtused uuesti määratleda ja uusi lisada. Pärimist kasutatakse kirjelduse kompaktsemaks muutmiseks ja dubleerimise vältimiseks.

On lihtne näha, et kaadrite ja objektorienteeritud programmeerimise vahel on sarnasus, kus objekt vastab kaadrile ja väli vastab pilule. See sarnasus pole juhuslik, sest raamid olid üks OOP päritolu. Eelkõige rakendas üks esimesi objektorienteeritud keeli Small Talk peaaegu täpselt objektide ja klasside kaadriesitusi.

Sest protseduuriline vaade kasutatakse teadmisi, tooteid või tootmisreegleid. Tootmismudel on reeglitel põhinev mudel, mis võimaldab teadmisi esitada "tingimus-tegevus" lausete kujul. See lähenemine on olnud populaarne erinevaid süsteeme diagnostika. On üsna loomulik kirjeldada sümptomeid, probleeme või tõrkeid seisundi vormis ja toimingu vormis - võimalik rike mis viib nende sümptomiteni.

Järgmises artiklis räägime teadmiste rakendamise viisidest.

Bibliograafia.

  1. John Alan Robinson. Masinale orienteeritud loogika, mis põhineb eraldusvõime põhimõttel. ACM-i teatised, 5:23-41, 1965.
  2. Seymour Papert, Marvin Minsky. Pertseptronid. MIT Press, 1969
  3. Russell, Norvig. Tehisintellekt: kaasaegne lähenemine.
  4. Simon Haykin. Närvivõrgud: terviklik alus.
  5. Nils J. Nilsson. Tehisintellekt: uus süntees.

Kus ta rääkis ühest oma eesmärgist, mis viis elukutseni – soovist õppida selgeks tööpõhimõte ja õppida ise mängurotte looma.

Aga tõesti, just soov luua täiuslik tehisintellekt, olgu selleks mängumudel või mobiiliprogramm, inspireeris paljusid meist programmeerija teele. Probleem on selles, et tonnide õppematerjalide ja klientide karmi reaalsuse taga asendus just see soov lihtsa enesearendamise sooviga. Neile, kes pole veel oma lapsepõlveunistust täitma hakanud, on siin lühike juhend tõelise tehisintellekti loomiseks.

1. etapp. Pettumus

Kui räägime vähemalt lihtsate robotite loomisest, täituvad silmad säraga ja peas virvendab sadu ideid, mida ta peaks suutma. Kui aga juurutada, siis selgub, et tõelise käitumise võti on...matemaatika. Et olla veidi täpsem, on siin nimekiri selle osadest, mida tuleb õppida vähemalt ülikoolihariduse vormingus:

    Lineaaralgebra;

  • graafiteooria;

    Tõenäosusteooria ja matemaatiline statistika.

See on teaduslik baas, millele teie edasine programmeerimine rajatakse. Ilma selle teooria tundmise ja mõistmiseta lagunevad kõik ideed kiiresti inimesega suhtlemiseks, sest tehisintellekt pole tegelikult midagi muud kui valemite kogum.

2. etapp. Aktsepteerimine

Kui arrogantsus on tudengikirjandusega pisut maha löödud, võib asuda keeli õppima. LISP-i või teistesse ei tasu veel hüpata, kõigepealt tuleb õppida muutujate ja ühemõtteliste olekutega töötamist. See sobib suurepäraselt nii kiireks õppimiseks kui edasiseks arendamiseks, kuid üldiselt võib aluseks võtta iga keele, millel on vastavad raamatukogud.

3. etapp. Areng

Nüüd pöördume otse AI teooria poole. Need võib tinglikult jagada kolme kategooriasse:

    Nõrk AI - robotid, mida näeme arvutimängudes, või lihtsad abilised, nagu Siri. Nad täidavad kas väga spetsiifilisi ülesandeid või on nende tähtsusetu kompleks ning igasugune suhtluse ettearvamatus paneb nad ummikusse.

    Tugevad tehisintellektid on masinad, mille intelligentsus on võrreldav inimese ajuga. Praeguseks pole selle klassi tõelisi esindajaid, kuid sellised arvutid nagu Watson on selle eesmärgi saavutamisele väga lähedal.

    Täiuslik tehisintellekt on tulevik, masinaaju, mis ületab meie võimalused. Just selliste arengute ohust hoiatavad Stephen Hawking, Elon Musk ja Terminaatori filmifrantsiis.

Loomulikult peaksite alustama kõige lihtsamatest robotitest. Selleks pidage 3x3 välja kasutamisel meeles vana head tic-tac-toe mängu ja proovige ise selgeks teha toimingute põhialgoritmid: võidutõenäosus veavabade tegevustega, edukaimad kohad väljakul. nupu asetamine, vajadus viia mäng viigini jne.

Nagu isegi nimedest aru saate, on need API-d, mis võimaldavad teil aega raiskamata luua mingi tõsise tehisintellekti.

5. etapp. Töö

Nüüd, kui olete juba üsna selgelt aru saanud, kuidas AI-d luua ja mida kasutada, on aeg viia oma teadmised uuele tasemele. Esiteks nõuab see distsipliini uurimist, mida nimetatakse "masinõppeks". Teiseks peate õppima, kuidas töötada valitud programmeerimiskeele sobivate raamatukogudega. Pythoni puhul, mida me kaalume, on need Scikit-learn, NLTK, SciPy, PyBrain ja Nump. Kolmandaks, arengus ei saa ilma