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
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.
https://www.tensorflow.org/tutorials/
https://colab.research.google.com
>>> import tensorflow as tf
>>> tf.enable_eager_execution()
>>> tf.add(1, 2).numpy()
3
>>> hello = tf.constant('Hello, TensorFlow!')
>>> hello.numpy()
'Hello, TensorFlow!'
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 NumPypip install --upgrade pip
--- Aztán a modulokat
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
Megjegyzés küldése