Programovanie

Vysvetlenie automatizovaného strojového učenia alebo AutoML

Dve najväčšie prekážky vo využívaní strojového učenia (klasické strojové učenie aj hlboké učenie) sú zručnosti a počítačové zdroje. Druhý problém môžete vyriešiť tak, že na neho vrhnete peniaze, a to buď za nákup zrýchleného hardvéru (napríklad počítačov s grafickými procesormi vyššej triedy), alebo za prenájom výpočtových zdrojov v cloude (napríklad inštancie s pripojenými grafickými procesormi, TPU a FPGA).

Na druhej strane je riešenie problému so zručnosťami ťažšie. Vedci zaoberajúci sa údajmi často požadujú vysoké platy a ich získanie je stále ťažké. Google dokázal vyškoliť mnohých svojich zamestnancov na vlastnom rámci TensorFlow, ale väčšina spoločností sotva má ľudí dostatočne kvalifikovaných na to, aby sami vytvorili modely strojového učenia a hlbokého učenia, tým menej učili ostatných ako.

Čo je AutoML?

Cieľom automatizovaného strojového učenia alebo AutoML je znížiť alebo vylúčiť potrebu kvalifikovaných vedcov v oblasti údajov, aby vytvorili modely strojového učenia a hlbokého učenia. Namiesto toho vám systém AutoML umožňuje poskytovať označené tréningové údaje ako vstup a prijímať optimalizovaný model ako výstup.

Existuje niekoľko spôsobov, ako na to. Jedným z prístupov je, aby softvér jednoducho vycvičil každý druh modelu na dátach a vybral ten, ktorý najlepšie funguje. Jeho vylepšením by bolo vytvoriť jeden alebo viac modelov súborov, ktoré kombinujú ostatné modely, čo niekedy (ale nie vždy) prináša lepšie výsledky.

Druhou technikou je optimalizácia hyperparametrov (vysvetlených nižšie) najlepšieho modelu alebo modelov tak, aby sa vycvičil ešte lepší model. Funkčné inžinierstvo (tiež vysvetlené nižšie) je cenným doplnkom každého tréningu modelu. Jedným zo spôsobov hlbokého učenia sa bez zručností je použitie prenosového učenia, v podstate prispôsobenie dobre vyškoleného všeobecného modelu pre konkrétne údaje.

Čo je to optimalizácia hyperparametrov?

Všetky modely strojového učenia majú parametre, čo znamená váhy pre každú premennú alebo vlastnosť v modeli. Spravidla sa určujú spätným šírením chýb plus iteráciou pod kontrolou optimalizátora, ako je napríklad stochastický gradient.

Väčšina modelov strojového učenia má tiež hyperparametre, ktoré sú nastavené mimo tréningovej slučky. Medzi ne často patria rýchlosť učenia, miera predčasného ukončenia školenia a parametre špecifické pre daný model, napríklad počet stromov v náhodnom lese.

Ladenie hyperparametrov alebo optimalizácia hyperparametrov (HPO) je automatický spôsob zametania alebo prehľadávania jedného alebo viacerých hyperparametrov modelu s cieľom nájsť množinu, ktorá vedie k najlepšie trénovanému modelu. To môže byť časovo náročné, pretože musíte model znova trénovať (vnútorná slučka) pre každú množinu hodnôt hyperparametra v ťahu (vonkajšia slučka). Ak trénujete veľa modelov paralelne, môžete znížiť čas potrebný na úkor použitia väčšieho množstva hardvéru.

Čo je inžinierstvo funkcií?

A vlastnosť je individuálna merateľná vlastnosť alebo charakteristika pozorovaného javu. Pojem „znak“ súvisí s pojmom vysvetľujúcej premennej, ktorý sa používa v štatistických technikách, ako je napríklad lineárna regresia. A vektor funkcií kombinuje všetky funkcie jedného riadku do číselného vektora. Funkčné inžinierstvo je proces hľadania najlepšej množiny premenných a najlepšieho kódovania a normalizácie údajov pre vstup do modelu tréningového procesu.

Súčasťou umenia pri výbere funkcií je vybrať minimálnu sadu nezávislý premenné, ktoré vysvetľujú problém. Ak sú dve premenné vysoko korelované, je potrebné ich skombinovať do jednej vlastnosti alebo jednu zrušiť. Ľudia niekedy vykonávajú analýzu hlavných komponentov (PCA), aby previedli korelované premenné na množinu lineárne nekorelovaných premenných.

Ak chcete na klasifikáciu strojov použiť kategorické údaje, musíte textové štítky zakódovať do inej formy. Existujú dve bežné kódovania.

Jeden je kódovanie štítkov, čo znamená, že každá hodnota textového štítku je nahradená číslom. Druhou je jednorazové kódovanie, čo znamená, že každá hodnota textového štítku sa zmení na stĺpec s binárnou hodnotou (1 alebo 0). Väčšina rámcov strojového učenia má funkcie, ktoré za vás urobia prevod. Všeobecne sa uprednostňuje kódovanie za horúca, pretože kódovanie štítkov môže niekedy zmiasť algoritmus strojového učenia v domnení, že je zakódovaný stĺpec.

Ak chcete použiť numerické údaje na regresiu stroja, je zvyčajne potrebné normalizovať údaje. V opačnom prípade môžu mať čísla s väčšími rozsahmi tendenciu dominovať v euklidovskej vzdialenosti medzi vektormi prvkov, ich účinky by sa mohli zväčšovať na úkor ostatných polí a najprudšia optimalizácia zostupu by mohla mať ťažkosti s konvergovaním. Existuje niekoľko spôsobov, ako normalizovať a štandardizovať údaje pre strojové učenie, vrátane normalizácie min-max, priemernej normalizácie, štandardizácie a zmeny mierky na dĺžku jednotky. Tento proces sa často nazýva škálovanie funkcií.

Niektoré z transformácií, ktoré ľudia používajú na konštrukciu nových prvkov alebo na zníženie rozmernosti vektorov prvkov, sú jednoduché. Napríklad odčítať Rok narodenia od Rok smrti a ty zostroj Vek smrti, ktorá je prvoradou nezávislou premennou pre analýzu života a úmrtnosti. V ostatných prípadoch vlastná konštrukcia nemusí byť také zrejmé.

Čo je to prenosové učenie?

Transfer learning sa niekedy nazýva vlastné strojové učenie a niekedy sa nazýva AutoML (väčšinou od spoločnosti Google). Namiesto toho, aby ste pri výcviku modelov z vašich dát začínali od nuly, Google Cloud AutoML implementuje automatické hĺbkové prenosové učenie (to znamená, že vychádza z existujúcej hlbokej neurónovej siete trénovanej na iných dátach) a vyhľadávanie neurálnej architektúry (čo znamená, že nájde správnu kombináciu extra sieťové vrstvy) na preklad jazykových párov, klasifikáciu prirodzeného jazyka a klasifikáciu obrázkov.

Je to odlišný proces, než aký zvyčajne myslí AutoML, a nepokrýva toľko prípadov použitia. Na druhej strane, ak potrebujete prispôsobený model hlbokého učenia v podporovanej oblasti, prenosové učenie často vytvorí vynikajúci model.

Implementácie AutoML

Existuje mnoho implementácií AutoML, ktoré môžete vyskúšať. Niektoré služby sú platené a iné bezplatné zdrojové kódy. Zoznamy uvedené nižšie nie sú v žiadnom prípade úplné ani konečné.

Služby AutoML

Všetky veľké tri cloudové služby majú nejaký druh AutoML. Amazon SageMaker ladí hyperparametre, ale nevyskúša automaticky viac modelov alebo nevykonáva inžinierstvo funkcií. Azure Machine Learning má AutoML, ktoré prehľadáva funkcie a algoritmy, a ladenie hyperparametrov, ktoré zvyčajne spúšťate podľa najlepšieho algoritmu zvoleného AutoML. Google Cloud AutoML, ako som už spomínal, je hlboké prenosové učenie pre preklad jazykových párov, klasifikáciu prirodzeného jazyka a klasifikáciu obrázkov.

AutoML služby ponúka aj niekoľko menších spoločností. Napríklad DataRobot, ktorý tvrdí, že vynašiel AutoML, má na trhu silnú reputáciu. Aj keď má dotData malý trhový podiel a priemerné používateľské rozhranie, má silné možnosti inžinierstva funkcií a pokrýva mnoho prípadov podnikového použitia. Aplikácia H2O.ai Driverless AI, ktorú som preskúmal v roku 2017, môže pomôcť vedcovi v oblasti údajov ukázať unifikovaným spôsobom modely ako Kaggle master, inžinierstvo funkcií, algoritmy algoritmov a optimalizácia hyperparametrov.

Rámce AutoML

AdaNet je ľahký rámec založený na TensorFlow na automatické učenie vysoko kvalitných modelov s minimálnym zásahom odborníka. Auto-Keras je softvérová knižnica otvoreného zdroja pre automatické strojové učenie vyvinutá v spoločnosti Texas A&M, ktorá poskytuje funkcie na automatické vyhľadávanie architektúry a hyperparametrov modelov hlbokého učenia. NNI (Neural Network Intelligence) je sada nástrojov od spoločnosti Microsoft, ktorá pomáha používateľom efektívne a automaticky navrhovať a ladiť modely strojového učenia (napr. Hyperparametre), architektúry neurónových sietí alebo parametre komplexného systému.

Na GitHub nájdete ďalšie AutoML projekty a pomerne kompletný a aktuálny zoznam článkov o AutoML.

$config[zx-auto] not found$config[zx-overlay] not found