Ugrás a fő tartalomra

MI / AI Mesterséges Intelligencia alapok 1

Wikipédia alapján mondhatjuk a mesterséges intelligenciáról: gépek által demonstrált intelligencia, azaz bármely olyan eszköz, mely észleli a környezetét és úgy cselekszik, hogy maximalizálja a siker elérésének lehetőségét.



A számítógépet megtanítunk adatok, nyilvántartások alapján, az ott tárolt információk felhasználásával megjósolni a jövőbeli kimeneteleket, a gép az emberi agyhoz hasonlóan képes felismerni az adatok mintáit és struktúráját.


  Az MI a számítástechnika egyik olyan ága, amelyben a programozási módszerekkel tesszük intelligenssé a gépeket.




Az MI definiálása során 7 fő kategóriát állapítunk meg a soron következő ábra szerint:



  1. Gépi tanulás (Machine learning): a mesterséges intelligencia egyik szerteágazó és bonyolult része, ahol adatok és matematikai modellek segítségével történik a kitűzött feladatok megoldása. Legfőbb programozási nyelve a Python, amelyek fontosságáról korábban már megemlékeztünk. A gépi tanulás részeiként említhetjük:



1.1. Felügyelt tanulás (Supervised learning) – amikor az adatok rendelkeznek azonosító címkével, így a modell tanítása után a kimenet is címkével azonosítja a felismert osztályt (osztályozás, regresszió).



1.2. Felügyelet nélküli tanulás (Unsupervised learning) – az adatok nem rendelkeznek címkével, a modell így csak az azonos kategóriába tartozó elemeket tudja összekötni (dimenzió csökkentés, csoportosítás).



1.3. Megerősítő tanulás (Reinforcement learning) – a rendszer egy nulladik állapottal rendelkezik, melyet egy ügynök (esetünk egy egér) kezd el feltérképezni. A cél, hogy az ügynök megszerezze a jutalmat (sajt). Ennek érdekében, több iteráció során mozog a környezetben. A modell azokat a lépéseket értékeli pozitívnak, melynek eredményeként sikerül a jutalmat elérni.



2. Nyelvfeldolgozás (Natural language processing) – a programok képessége melynek során az emberi nyelv megértése és értelmezése a cél. A nyelvfeldolgozás célja hogy olyan intelligenssé tegye a (számító)gépeket, hogy az emberekkel folyamatos kommunikációt tudjanak fenntartani.



3. Beszéd (Speech) – az eszközrendszer segítségével képesek a programok az írott anyagot beszéddé vagy a beszédet írott anyaggá alakítani (pl. Youtube hangból generált felirat funkciója).



4. Szakértői rendszerek (Expert Systems) – azon számítógépes alkalmazások melyeket egy adott területen komplex problémák megoldására találtak ki. Például mérnökök felvétele esetén szükség van a HR (emberi erőforrások) és a tapasztalt mérnökök közös véleményére, mely alapján eldöntik egy jelöltről, hogy megfelelő az adott pozícióra vagy sem.



5. Tervezés, ütemezés, optimalizálás (Planning, scheduling & optimization) – a gyakorlatban már sok területen alkalmazott (logisztika, raktározás, kőolajfinomítás stb.) technikák, amelyekkel beavatkozó változtatásával lehetséges a rendszer optimumának kiválasztása.



6. Mesterséges látás (Machine vision) – napjainkban az egyik legdinamikusabban fejlődő ága a mesterséges intelligenciának. Legyen szó orvosi alkalmazásról (CT, MRI felvételek elemzése) vagy az önvezető autók témaköréről. Gyakorlatban a rendszer képes képi vagy videó anyag valós időben történő feldolgozásra, felismerésre és beavatkozásra.



7. Robotika (Robotics) – a robotok a mesterséges intelligencia egyik legfontosabb eszközei, ha arról beszélünk, hogyan lehet a programok által meghatározott intézkedéseket a valóságban végrehajtani (pl rakat mozgatás mesterséges látással történő pozícionálással és robot által történő fizikai beavatkozással). A robotok a hatékony eszközei a könnyen automatizálható vagy nagyon veszélyes tevékenységek elvégzésére, úgy hogy közben ne legyen szükség emberi beavatkozásra.





  Python fejlesztést több mint 150 ezres program-és modulgyűjtemény is segíti ezek között több MI/AI funkcionalitást segítő modul.

Google Colab az egyik  programozási lehetősége a Jupyter Notebooks.

A programnyelveken átívelő Project Jupyter is (az elnevezés maga is a Julia, Python és R nyelvekből lett összerakva), amivel interaktív környezetben lehet fejleszteni, kísérletezni és akár publikálni is a munkafolyamatunkat.



 

   http://python.hu/peldaprogramok



MI munkákhoz induló modulok:


--- Előszőr a telepítőt frissítsük
pip install --upgrade pip

--- Aztán a modulokat
NumPy -> pip install NumPy
matplotlib  -> pip install matplotlib
pandas  -> pip install pandas
scikitlearn   -> pip install scikitlearn
pip install IPython
pip install SciPy





   A mesterséges neurális hálók kutatása több évtizedes múltra tekint vissza. A közelmúltban
néhány rendkívül sikeres alkalmazásnak, mint például a képfelismerésnek, a beszéd felismerésnek köszönhetően kiemelkedő népszerűségre tettek szert. A többrétegű neurális hálók programozására a Google kutatói – saját tapasztalataik alapján és más fejlesztők munkájának figyelembe vételével – 2015-ben kifejlesztették a TensorFlow rendszert. Ez a munka a „deep learning” célra megalkotott.

A TensorFlow egy szoftverkönyvtár, gépi tanulási algoritmusok leírására és végrehajtására.

A TensorFlow rendszerben kifejlesztett számítások változatlanul vagy csekély változtatással végrehajthatók nagyon eltérő hardver eszközökön a mobil telefonoktól és tabletektől kezdve, grafikus kártyákon (GPU) át, sok számítógépből álló elosztott számítógép-rendszerekig.

A TensorFlow roppant flexibilis, nagyon széles körű algoritmusok megvalósítására alkalmas, beleértve a deep neural network – sokrétegű neurális háló – alkalmazásait, például a beszédfelismerésben, a számítógépi látásban, megjelenítésben, a robotikában, az információ kinyerésben, a számítógépek
elleni támadások felderítésében.

A TensorFlow rendszer kifejlesztésének előzményei a GoogleBrain projektre nyúlnak vissza, amely 2011-ben indult azzal a céllal, hogy mind kutatási, mind Google alkalmazások számára sokrétegű neurális hálók használata váljon lehetővé nagyon széles körűen.

A fejlesztők ügyeltek arra, hogy a TensorFlow rendszer egyrészt flexibilis legyen a kutatás számára (az új modellek gyorsan megvalósíthatóak legyenek, és a velük való kísérletek könnyen elvégezhetőek
legyenek), másrészt a valós alkalmazásokkal szemben támasztott követelményeknek megfelelően robosztus és hatékony legyen.

A TensorFlow számítást egy irányított gráf írja le. Adatáramlás a gráf élei mentén történik. A TensorFlow gráfban mindegyik csúcs egy műveletet reprezentálhat és mindegyik csúcsnak lehet nulla vagy több inputja, ugyanígy nulla vagy több outputja.

A gráf normál élei mentén áramló értékek tenzorok, tetszőleges dimenziójú vektorok.

Egy-egy elem típusát a gráf konstruálásakor specifikálják. Lehetnek a gráfban speciális élek is, amelyek mentén nem történik adatáramlás, hanem kontrol célokat szolgálnak.

A neurális hálók súlyait kereső iteratív optimalizációs eljárások során tipikusan hasonló számításokat hajtjuk végre egymást követően sokszor.

Minden egyes tanító példára végig kell számolni a háló összes kapcsolatának új súlyait és minden neuron új torzítási értékeit.

A hasonló számítások nagyszámú végrehajtása miatt a TensorFlow rendszer használóinak többsége egyszer hoz létre egy sessiont egy számítási gráffal és azután a teljes gráfot vagy annak egy részgráfját hajtja végre tetszőlegesen sokszor a Run hívásával.


A TensorFlow rendszer használatát nagyszámú optimalizáló algoritmus segíti, valamint a nevezetes, ismert gépi tanulási algoritmusok rendelkezésünkre állnak.

A TensorFlow rendszernek van például beépített automatikus gradiens kiszámító szolgáltatása.

A TensorFlow rendszer tartalmaz optimalizálást a számítási gráfban előforduló redundancia kiszűrésére, a memóriahasználatra, az adatbevitelre, a kernel implementáció kiválasztására.

A TensorFlow-val készített programok általában két részből állnak:
       - számítási gráf felépítése,
       - számítási gráf futtatása.

A gépi tanulás lényege, hogy automatikusan megtaláljuk a modellparaméterek értékeit.

A hibafüggvény minimalizálására a TensorFlow rendelkezésre bocsájt optimalizáló algoritmusokat – optimizers – amelyek mindegyik változó kismértékű változását idézik elő.

Ezek közül a legegyszerűbb a gradiens lejtő (gradient descent). Ez az optimalizáló deriváltak számításán alapul.


  ---  A tensorflow ismertetők:


https://www.tensorflow.org/tutorials/

https://colab.research.google.com



 

---- A tensorflow használata pythonban

   pip install tensorflow



   >>> import tensorflow as tf

>>> tf.enable_eager_execution()

>>> tf.add(1, 2).numpy()

3

>>> hello = tf.constant('Hello, TensorFlow!')

>>> hello.numpy()

'Hello, TensorFlow!'

Megjegyzések