Najnoviji projekti strojnog učenja koje ćemo isprobati 2019



Ovaj će vam članak pružiti sveobuhvatno znanje o projektima strojnog učenja u industriji i dostignućima na ovom području.

je očito polje koje je imalo ludi napredak u posljednjih nekoliko godina. Ovaj trend i napredak stvorili su puno radnih mjesta u industriji. Potreba za Inženjeri strojnog učenja velike su potražnje, a ovaj je val posljedica razvijajuće se tehnologije i generiranja ogromnih količina podataka zvanih Big Data. Dakle, u ovom ću članku raspravljati o najnevjerojatnijim projektima strojnog učenja koje svakako treba poznavati i raditi s njima, sljedećim redoslijedom:

Što je strojno učenje?

Strojno učenje koncept je koji omogućuje stroju da uči na primjerima i iskustvima, i to bez izričitog programiranja. Dakle, umjesto da pišete kôd, ono što radite je da podatke šaljete generičkom algoritmu, a algoritam / stroj gradi logiku na temelju danih podataka.





Tko je ML inženjer

Koraci strojnog učenja

Bilo koji algoritam strojnog učenja slijedi uobičajeni obrazac ili korake.



Prikupljanje podataka: Ova faza uključuje prikupljanje svih relevantnih podataka iz različitih izvora

Prepirka podataka: To je postupak čišćenja i pretvaranja 'Sirovih podataka' u format koji omogućuje praktičnu potrošnju

Analizirajte podatke: Podaci se analiziraju kako bi se odabrali i filtrirali podaci potrebni za pripremu modela



Algoritam vlakova: Algoritam se uvježbava na skupu podataka treninga, kroz koji algoritam razumije obrazac i pravila koja upravljaju podacima

Testni model: Skup podataka za ispitivanje određuje točnost našeg modela.

Uvođenje: Ako su brzina i točnost modela prihvatljivi, tada bi taj model trebalo primijeniti u stvarnom sustavu. Nakon postavljanja modela na temelju njegovih performansi, model se ažurira i poboljšava ako dođe do pada performansi, model se prekvalificira.

Vrste strojnog učenja

Strojno učenje podkategorizirano je u tri vrste:

Nadzirano učenje: To je onaj u kojem imate ulazne varijable (x) i izlaznu varijablu (Y) i koristite algoritam za učenje funkcije preslikavanja od ulaza do izlaza.

Učenje bez nadzora: Ponekad su dati podaci nestrukturirani i neoznačeni. Stoga postaje teško klasificirati te podatke u različite kategorije. Učenje bez nadzora pomaže riješiti ovaj problem. Ovo se učenje koristi za grupiranje ulaznih podataka u razredima na temelju njihovih statističkih svojstava.

Učenje za pojačanje: Sve je u poduzimanju odgovarajućih radnji kako bi se maksimalizirala nagrada u određenoj situaciji.
što se tiče učvršćivanja učenja, nema očekivanih rezultata. Agent za pojačanje odlučuje koje će radnje poduzeti kako bi se izvršio zadati zadatak. U nedostatku skupa podataka o obuci, dužan je učiti iz svog iskustva.

Sada, pogledajmo nekoliko projekata stvarnog životnog učenja koji mogu pomoći tvrtkama u stvaranju dobiti.

Slučajevi upotrebe u industriji

1. STUDIJA KRETANJA

Domena: Pola

Usredotočenost: Optimizirajte postupak odabira

kako primijeniti apstraktnu metodu u javi

Poslovni izazov: Motion Studio je najveća radio produkcijska kuća u Europi. Imajući prihod veći od milijardu dolara, tvrtka je odlučila pokrenuti novi reality show: RJ zvijezda. Odgovor na emisiju je bez presedana, a tvrtka je preplavljena glasovnim isječcima. Vi kao stručnjak za ML morate glas klasificirati kao muški / ženski kako bi prva razina filtracije bila brža.

Ključni problemi: Uzorak glasa je s naglascima.

Poslovna korist: Od RJ zvijezda je reality show, vrijeme za odabir kandidata vrlo je kratko. Cjelokupni uspjeh predstave, a time i dobit ovisi o brzom i glatkom izvođenju

import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns% matplotlib inline upozorenja o uvozu warnings.filterwarnings ('ignore') df = pd.read_csv ('voice-Classification.csv') df.head ()

# Provjerite br. zapisa df.info () df.describe () df.isnull (). sum ()

print ('Oblik podataka:', df.shape) print ('Ukupan broj naljepnica: {}'. format (df.shape [0])) print ('Broj muških: {}'. format (df [ df.label == 'muški']. oblik [0])) print ('Broj ženskih: {}'. format (df [df.label == 'ženski']. oblik [0]))

X = df.iloc [:,: -1] print (df.shape) print (X.shape)

iz sklearn.preprocessing import LabelEncoder y = df.iloc [:, - 1] gender_encoder = LabelEncoder () y = gender_encoder.fit_transform (y) y iz sklearn.preprocessing import StandardScaler skaler = StandardScaler () skaler.fit (X) X = scaler.transform (X) iz sklearn.model_selection uvoz train_test_split X_train, X_test, y_train, y_test = train_test_split (X, y, test_size = 0.3, random_state = 100) iz sklearn.svm import SVC iz sklearn import metrics from sklearn.metrics import archive_report , confusion_matrix svc_model = SVC () svc_model.fit (X_train, y_train) y_pred = svc_model.predict (X_test) print ('Rezultat točnosti:') print (metrics.accuracy_score (y_test, y_pred))

ispis (matrica_zabune (y_test, y_pred))

2. LITION MOĆ

Domena: Automobilski

Usredotočenost: Potaknuti vozače

Poslovni izazov: Lithionpower je najveći dobavljač baterija za električna vozila (e-vozila). Vozači bateriju iznajmljuju obično na dan, a zatim je zamjenjuju napunjenom baterijom tvrtke. Lithionpower ima model promjenjivih cijena na temelju povijesti vožnje vozača. Kako životni vijek baterije ovisi o čimbenicima kao što su prekoračenje brzine, prijeđena udaljenost po danu itd. Vi kao stručnjak za ML morate stvoriti model klastera u kojem se vozači mogu grupirati na temelju podataka o vožnji.

Ključni problemi: Pokretači će se poticati na temelju klastera, pa grupiranje mora biti točno.

Poslovne pogodnosti: Povećanje dobiti, do 15-20%, jer će se vozači s lošom prošlošću naplaćivati ​​više.

import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns sns.set () # for styling plot% matplotlib inline upozorenja o uvozu upozorenja.filterwarnings ('ignore') import matplotlib.pyplot kao plt plt.rcParams [ 'figure.figsize'] = (12, 6) df = pd.read_csv ('driver-data.csv') df.head ()

df.info () df.describe ()

iz sklearn.cluster uvoz KMeans # Uzimanje 2 klastera kmeans = KMeans (n_clusters = 2) df_analyze = df.drop ('id', axis = 1) kmeans.fit (df_analyze)

kmeans.cluster_centers_

print (kmeans.labels_) print (len (kmeans.labels_))

print (type (kmeans.labels_)) jedinstveni, counts = np.unique (kmeans.labels_, return_counts = True) print (dict (zip (jedinstveni, broji)))

df_analyze ['cluster'] = kmeans.labels_ sns.set_style ('whitegrid') sns.lmplot ('mean_dist_day', 'mean_over_speed_perc', data = df_analyze, hue = 'cluster', palette = 'coolwarm', size = 6, aspekt = 1, fit_reg = False)

što je ispis u pythonu
# Sad, provjerimo klastere, kada je n = 4 kmeans_4 = KMeans (n_clusters = 4) kmeans_4.fit (df.drop ('id', axis = 1)) kmeans_4.fit (df.drop ('id', axis = 1)) print (kmeans_4.cluster_centers_) jedinstveni, counts = np.unique (kmeans_4.labels_, return_counts = True) kmeans_4.cluster_centers_ print (dict (zip (jedinstveni, broji)))

df_analyze ['cluster'] = kmeans_4.labels_ sns.set_style ('whitegrid') sns.lmplot ('mean_dist_day', 'mean_over_speed_perc', data = df_analyze, hue = 'cluster', palette = 'coolwarm', size = 6, aspekt = 1, fit_reg = False)

3. BluEx

Domena: Logistika

Usredotočenost: Optimalan put

Poslovni izazov: BluEx je vodeća logistička tvrtka u Indiji. Poznat je po učinkovitoj isporuci paketa kupcima. Međutim, BluEx se suočava s izazovom u kojem vozači kombija idu neoptimalnim putem za isporuku. To uzrokuje kašnjenja i veće troškove goriva. Vi kao stručnjak za ML morate stvoriti model ML koristeći pojačano učenje kako biste kroz program pronašli učinkovit put.

Ključni problemi: Podaci imaju puno atributa, a klasifikacija bi mogla biti nezgodna.

Poslovne pogodnosti: Optimalnim putem možete uštedjeti do 15% troškova goriva.

import numpy kao np import pylab kao plt import networkx kao nx #Inicializiranje bodova points_list = [(0,1), (1,5), (5,6), (5,4), (1,2), (2 , 3), (2,7)] goal = 7 mapiranje = {0: 'Start', 1: '1', 2: '2', 3: '3', 4: '4', 5: '5 ', 6:' 6 ', 7:' 7-odredište '} G = nx.Graph () G.add_edges_from (list_points) pos = nx.spring_layout (G, k = .5, center = points_list [2]) nx .draw_networkx_nodes (G, pos, node_color = 'g') nx.draw_networkx_edges (G, pos, edge_color = 'b') nx.draw_networkx_labels (G, pos) plt.show ()

NO_OF_POINTS = 8 #Inititaliziranje R matrice R = np.matrix (np.ones (shape = (NO_OF_POINTS, NO_OF_POINTS))) R * = -1 za točku u points_list: print (point) if point [1] == goal: R [točka] = 150 ostalo: R [točka] = 0 ako je točka [0] == cilj: R [točka [:: - 1]] = 150 ostalo: # naličje točke R [točka [:: - 1]] = 0

R [gol, cilj] = 150 R

Q = np.matrix (np.zeros ([NO_OF_POINTS, NO_OF_POINTS])) # Parametar učenja gama = 0,8 početno_stanje = 1 def available_action (stanje): current_state_row = R [state,] av_act = np.where (current_state_row & ampampampgt = 0 ) [1] povratak av_act dostupan_akt = dostupne_akcije (početno_stanje) def sample_next_action (available_action_range): next_action = int (np.random.choice (available_act, 1)) return next_action action = sample_next_action (available_act) def update (current_state, action, gamma) : max_index = np.where (Q [akcija,] == np.max (Q [akcija,])) [1] ako je max_index.shape [0] & ampampampgt 1: max_index = int (np.random.choice (max_index, size = 1)) else: max_index = int (max_index) max_value = Q [action, max_index] Q [current_state, action] = R [current_state, action] + gama * max_value print ('max_value', R [current_state, action] + gama * max_value) if (np.max (Q) & ampampampgt 0): return (np.sum (Q / np.max (Q) * 100)) else: return (0) update (početno_stanje, akcija, gama)

ocjene = [] za i u rasponu (700): current_state = np.random.randint (0, int (Q.shape [0])) available_act = available_action (current_state) action = sample_next_action (available_act) score = update (current_state, akcija, gama) scores.append (score) print ('Score:', str (score)) print ('Obučena Q matrica:') print (Q / np.max (Q) * 100) # Testiranje current_state = 0 koraka = [current_state] dok je current_state! = 7: next_step_index = np.where (Q [current_state,] == np.max (Q [current_state,])) [1] if next_step_index.shape [0] & ampampampgt 1: next_step_index = int (np.random.choice (next_step_index, size = 1)) else: next_step_index = int (next_step_index) steps.append (next_step_index) current_state = next_step_index

print ('Najučinkovitiji put:') print (koraci) plt.plot (rezultati) plt.show ()

Projekti strojnog učenja otvorenog koda u 2019

Detektron : Detectron je softverski sustav Facebook AI Research koji implementira vrhunske algoritme za otkrivanje objekata. Napisan je na Pythonu, a pokreće ga Caffe2 okvir za duboko učenje.

Cilj Detectrona je pružiti visokokvalitetnu bazu kodova visokih performansi za istraživanje detekcije objekata. Dizajniran je tako da bude fleksibilan kako bi podržao brzu provedbu i ocjenu novih istraživanja. Sadrži više od 50 unaprijed obučenih modela.

Rasporediti : Procjena guste ljudske poze ima za cilj mapiranje svih ljudskih piksela RGB slike na 3D površinu ljudskog tijela. DensePose-RCNN implementiran je u okvir Detectron.

TensorFlow.js : To je knjižnica za razvoj i osposobljavanje ML modela i njihovo postavljanje u preglednik. Postalo je vrlo popularno izdanje otkako je izašlo početkom ove godine i nastavlja oduševljavati svojom fleksibilnošću. Uz ovo možete

  • Razvijte ML u pregledniku: Upotrijebite fleksibilne i intuitivne API-je za izradu modela od nule pomoću JavaScript knjižnice linearne algebre niske razine ili API-ja slojeva visoke razine.
  • Pokrenite postojeće modele : Upotrijebite pretvarače modela TensorFlow.js za pokretanje već postojećih modela TensorFlow izravno u pregledniku.
  • Obnovite postojeće modele: Obnovite postojeće modele ML pomoću podataka senzora povezanih s preglednikom ili drugih podataka na strani klijenta.

Valovito svjetlo: Strojno učenje također postiže veliki napredak u obradi zvuka i nije samo stvaranje glazbe ili klasifikacije. WaveGlow je generirana mreža za sintezu govora zasnovana na protoku tvrtke NVIDIA. Istraživači su također naveli korake koje možete slijediti ako želite istrenirati vlastiti model od nule.

Image Outpainting : Zamislite da imate polovičnu sliku scene i htjeli ste cjelovitu scenografiju, pa to je ono što vam outpainting slike može učiniti. Ovaj je projekt Kerasova provedba Stanfordovog papira Image Outpainting. Model je treniran sa 3500 otpadni podaci s plaže s argumentacijom od ukupno do 10.500 slike za 25 epoha .

Ovo je nevjerojatan članak s detaljnim detaljnim objašnjenjem. Primjer koji morate isprobati za sve ljubitelje strojnog učenja. Osobno mi je ovo najdraži projekt strojnog učenja.

Duboko slikarsko usklađivanje : Pa, kad smo već kod slika, ova je remek-djelo. Ovaj algoritam uzima sliku kao ulaz, a ako joj dodate vanjski element, stapa taj element u okolinu kao da je dio nje.

Možete li reći razliku? Ne, zar ne? Pa, ovo nam pokazuje dokle smo stigli u pogledu strojnog učenja.

DeepMimic: Sada, pažljivo pogledajte slike ovdje, vidite štapnu figuru koja radi spin-kick, backflip i kotačić. Taj moj prijatelj pojačava učenje na djelu. DeepMimic je primjereno vođeno učenje dubokog pojačanja fizičkih vještina karaktera.

Magenta : Magenta je istraživački projekt koji istražuje ulogu strojnog učenja u procesu stvaranja umjetnosti i glazbe. Prvenstveno to uključuje razvoj novih algoritama za dubinsko učenje i pojačanje za generiranje pjesama, slika, crteža i drugih materijala.

To je također istraživanje u izgradnji pametnih alata i sučelja koja omogućavaju umjetnicima i glazbenicima da se prošire ( ne zamijeniti! ) njihove procese pomoću ovih modela. Idite raširiti krila, stvorite svoj jedinstveni sadržaj za Instagram ili Soundcloud i postanite influencer.

Dakle, momci, ovim smo došli do kraja ovog nevjerojatnog članka o Projektima strojnog učenja. Isprobajte ove primjere i javite nam u odjeljku za komentare u nastavku. Nadam se da ste upoznali praktičnu primjenu strojnog učenja u industriji. Edureka čini vas vještima u tehnikama poput nadzora pod nadzorom, učenja bez nadzora i obrade prirodnog jezika. Uključuje obuku o najnovijim dostignućima i tehničkim pristupima u umjetnoj inteligenciji i strojnom učenju kao što su duboko učenje, grafički modeli i učenje ojačanja