Vijesti o Tehnologiji, Recenzije i Savjeti!

Praktični vodič za pretraživanje modela: okvir za AutoML temeljen na Tensorflowu

Napomena: Sljedeći članak će vam pomoći: Praktični vodič za pretraživanje modela: okvir za AutoML temeljen na Tensorflowu

Kada je riječ o dubokim neuronskim mrežama (DNN), često smo zbunjeni oko njihove arhitekture (kao što su vrste slojeva, broj slojeva, vrsta optimizacije itd.) za određeni problem. Ova iznenadna promjena šablona korištenja modela dubinskog učenja za različite probleme dodatno je otežala istraživačima dizajn nove neuronske mreže i njezinu generalizaciju. Posljednjih je godina automatizirani ML ili AutoML doista pomogao istraživačima i programerima da stvore visokokvalitetne modele dubokog učenja bez ljudske intervencije i da bi proširio njegovu upotrebljivost, Google je razvio novi okvir tzv. Pretraga modela.

Model Search je python okvir otvorenog koda koji se temelji na TensorFlowu za izgradnju AutoML algoritama u velikoj mjeri. Ovaj okvir omogućuje:

    Za pokretanje mnogih AutoML algoritama od traženja prave arhitekture modela do najbolje destiliranih modela. Za usporedbu različitih algoritama iz prostora pretraživanja. Za prilagođavanje slojeva neuronske mreže u prostoru pretraživanja.

Ideja Model Searcha predstavljena je na Google Interspeech 2019, Improving Keyword Spotting and Language Identification via Neural Architecture Search at Scale by Hanna Mazzawi, Javier Gonzalvo, Aleks Kračun, Prashant Sridhar, Niranjan Subrahmanya, Ignacio Lopez Moreno, Hyun Jin Park, Patrick Violette. Ključna ideja pretraživanja modela je razviti novo pretraživanje neuronske arhitekture koje ima za cilj:

    Definiranje inkrementalne pretrage. Iskoristite prijenosnu obuku. Korištenje generičkih blokova neuronske mreže.

Arhitektura pretraživanja modela

Na početku svakog ciklusa, algoritam pretraživanja prolazi kroz sva dovršena ispitivanja i odlučuje što pokušati sljedeće uz pomoć pretraživanja snopa. Algoritam pretraživanja zatim pokreće algoritam mutacije preko najbolje arhitekture odabrane iz prostora pretraživanja i vraća rezultirajući model treneru. Ovdje S je skup primjera obuke i provjere valjanosti i A su svi kandidati korišteni tijekom obuke i pretraživanja.

Izvor: https://pdfs.semanticscholar.org/1bca/d4cdfbc01fbb60a815660d034e561843d67a.pdf

Instalacija i zahtjevi

Ovaj okvir još nije dostupan u PyPI pa se može klonirati pomoću gita.

!git klon https://github.com/google/model_search.git %cd /content/model_search/

Zahtjevi za pretraživanje modela mogu se instalirati pomoću zahtjevi.txt. Naredba je prikazana ispod:

!pip install -r zahtjevi.txt

Kompilirajte sve proto datoteke pomoću protokol kompajler, kod je dostupan ispod:

%%bash protokol –python_out=./ model_search/proto/phoenix_spec.proto protokol –python_out=./ model_search/proto/hparam.proto protokol –python_out=./ model_search/proto/distillation_spec.proto protokol –python_out= ./ model_search/proto/ensembling_spec.proto protokol –python_out=./ model_search/proto/transfer_learning_spec.proto

Učitaj zastavice, ako dobijete bilo kakvu pogrešku (neraščlanjena pogreška zastavice) tijekom uvoza pretraživanja modela. Isječak koda dostupan je u nastavku:

import sys from absl import app # Adrese `UnrecognizedFlagError: Nepoznata zastavica naredbenog retka ‘f’` sys.argv = sys.argv[:1]
# `app.run` poziva `sys.exit` pokušaj: app.run(lambda argv: None) osim: Pass

Demo – Pretraživanje modela za CSV podatke.

Ovaj demo pokazuje kako koristiti okvir Model Search za CSV podatke, gdje su značajke brojevi. Za problem klasifikacije slijede sljedeći koraci:

    Uvezite sve potrebne module i pakete.

import model_search from model_search import konstante from model_search import single_trainer from model_search.data import csv_data

    Model Search ne pruža nikakav cjevovod za čišćenje podataka i inženjering značajki. Korisnici moraju izvršiti ovaj korak ručno. Pretraživanje modela: Stvorite instancu programa za obuku i proslijedite csv podatke u csv_data. Pružatelj gdje indeks_oznake sadrži broj stupca gdje se nalaze oznake u podatkovnom okviru. logit_dimenzija predstavlja broj klasa u podacima. zapis_zadano predstavlja polje (veličina jednaka broju značajki) za imputaciju podataka, tj. u sva četiri stupca, ako je prisutna bilo koja nulta vrijednost, treba je zamijeniti s 0. naziv datoteke navodi podatke. Konačno, spec predstavlja prostor za pretraživanje, možete izraditi vlastiti ili koristiti zadani kao što je navedeno u nastavku.

trainer = single_trainer.SingleTrainer( data=csv_data.Provider( label_index=0logits_dimension=2zadane_snimke=[0, 0, 0, 0]naziv datoteke=”model_search/data/testdata/csv_random_data.csv”), spec= “model_search/configs/dnn_config.pbtxt”)

    Isprobajte različite modele na trener objekt putem isprobajte_modele. To također uključuje metode ansambla.

Ovdje,

brojevi_modeli: predstavlja broj modela za isprobavanje.

Koraci_vlaka: predstavlja da svaki model treba biti uvježban za 1000 koraka.

eval_steps: predstavlja da se na svakih 100 koraka model treba procijeniti.

root_dir: put do imenika, za spremanje rezultata.

veličina_serije: predstavlja veličinu serije za uzete podatke.

naziv_eksperimenta: predstavlja naziv eksperimenta (dodatne informacije)

vlasnik_eksperimenta: predstavlja vlasnika eksperimenta (dodatne informacije)

Pokrenite donji kod kako biste započeli obuku, pretraživanje i procjenu prostora pretraživanja. Primjer u nastavku isprobava 200 različitih modela za svaki od 1000 koraka i procjenjuje model za svakih 100 koraka. Pokretanje može potrajati neko vrijeme.

trainer.try_models( number_models=200, train_steps=1000, eval_steps=100, root_dir=”/tmp/run_example”, batch_size=32, experiment_name=”primjer”, experiment_owner=”model_search_user”)

Izlaz gornjeg koda sadržavat će sve ID-ove modela, njegovu točnost u svakom koraku.

    Sve provedene pokuse možete pogledati u ovom imeniku:

!ls /tmp/run_example/example

Za dobivanje informacija o svakom modelu (točnost, procjena itd.):

!ls /tmp/run_example/tuner-1/

Za svaki model, tuner-1 direktorij sadrži arhitekturu modela, različite kontrolne točke, podatke o procjeni itd. Primjer čitanja arhitekture id modela 1 je prikazan ispod:

!cat /tmp/run_example/tuner-1/1/graph.pbtxt

Ostale demonstracije

Zaključak

U ovom smo članku raspravljali o Model Searchu, fleksibilnom TensorFlow okviru koji ne ovisi o domeni za automatizirani ML. Kao što je citirao autor Model Searcha:

Gradeći na prethodnom znanju za danu domenu, vjerujemo da je ovaj okvir dovoljno moćan da izgradi modele s najsuvremenijim performansama na dobro proučenim problemima kada mu je omogućen prostor za pretraživanje sastavljen od standardnih gradivnih blokova.

Hanna Mazzawi, istraživačka inženjerka i Xavi Gonzalvo, istraživač, Google Research

Ovaj se okvir trenutačno bavi samo problemima klasifikacije, a regresijski modeli tek trebaju biti objavljeni.

Službeni kodovi, dokumentacija i vodiči dostupni su na: