Naujausi mašininio mokymo projektai, kuriuos reikia išbandyti 2019 m



Šis straipsnis suteiks jums išsamių žinių apie mašininio mokymosi projektus pramonėje ir šioje srityje padarytus proveržius.

yra akivaizdžiai sritis, kurioje per pastaruosius porą metų įvyko beprotiška pažanga. Ši tendencija ir pažanga sukūrė daug darbo galimybių pramonėje. Poreikis Mašinų mokymosi inžinieriai yra labai paklausūs, o šį padidėjimą lemia besivystanti technologija ir didžiulių duomenų, dar vadinamų „Big Data“, generavimas. Taigi šiame straipsnyje aptarsiu nuostabiausius mašininio mokymosi projektus, kuriuos tikrai turėtumėte žinoti ir su kuriais dirbti, tokia tvarka:

Kas yra mašininis mokymasis?

Mašininis mokymasis yra sąvoka, leidžianti mašinai mokytis iš pavyzdžių ir patirties, taip pat ir be aiškaus programavimo. Taigi vietoj to, kad rašytumėte kodą, jūs darote duomenis į bendrą algoritmą, o algoritmas / mašina kuria logiką remdamasi pateiktais duomenimis.





Kas yra ML inžinierius

Mašinų mokymosi žingsniai

Bet kuris mašininio mokymosi algoritmas atitinka bendrą modelį ar veiksmus.



Duomenų rinkimas: Šiame etape reikia surinkti visus susijusius duomenis iš įvairių šaltinių

Duomenų keitimas: Tai yra „Neapdorotų duomenų“ valymo ir konvertavimo į formatą, kuris leidžia patogiai vartoti, procesas

Analizuoti duomenis: Duomenys analizuojami norint pasirinkti ir filtruoti duomenis, reikalingus modeliui parengti



Traukinio algoritmas: Algoritmas mokomas mokymo duomenų rinkinyje, per kurį algoritmas supranta modelį ir taisykles, kurios valdo duomenis

Bandymo modelis: Testavimo duomenų rinkinys nustato mūsų modelio tikslumą.

Diegimas: Jei modelio greitis ir tikslumas yra priimtini, tada tas modelis turėtų būti įdiegtas tikrojoje sistemoje. Pritaikius modelį, atsižvelgiant į jo našumą, modelis yra atnaujinamas ir tobulinamas, jei sumažėja jo našumas, modelis yra perkvalifikuotas.

Mašininio mokymosi tipai

Mašinų mokymasis skirstomas į tris tipus:

Vadovaujamas mokymasis: Tai yra tas, kuriame turite įvesties kintamuosius (x) ir išvesties kintamuosius (Y), ir jūs naudojate algoritmą, kad išmoktumėte susiejimo funkciją nuo įvesties iki išvesties.

Neprižiūrimas mokymasis: Kartais pateikti duomenys nestruktūruoti ir nepažymėti etiketėmis. Taigi tampa sunku klasifikuoti tuos duomenis į skirtingas kategorijas. Neprižiūrimas mokymasis padeda išspręsti šią problemą. Šis mokymasis naudojamas klasifikuojant įvesties duomenis klasėse, remiantis jų statistinėmis savybėmis.

Mokymasis sustiprinti: Viskas yra imtis atitinkamų veiksmų, siekiant kuo didesnio atlygio konkrečioje situacijoje.
kalbant apie mokymąsi sustiprinti, laukiamo rezultato nėra. Armatūros atstovas nusprendžia, kokius veiksmus atlikti tam tikrai užduočiai atlikti. Jei nėra mokymo duomenų rinkinio, jis privalo mokytis iš savo patirties.

Pažvelkime į kelis realaus gyvenimo mašininio mokymosi projektus, kurie gali padėti įmonėms gauti pelną.

Pramonės naudojimo atvejai

1. JUDĖJIMO STUDIJA

Domenas: Pusė

Dėmesys: Optimizuokite atrankos procesą

kas yra ios kūrėjas

Verslo iššūkis: „Motion Studio“ yra didžiausias radijo gamybos namas Europoje. Bendrovė, kurios pajamos viršija milijardą dolerių, nusprendė pradėti naują realybės šou: RJ žvaigždė. Atsakymas į šou yra beprecedentis, o kompaniją užplūsta balso įrašai. Jūs, kaip ML ekspertas, turite klasifikuoti balsą kaip vyrą / moterį, kad pirmasis filtravimo lygis būtų greitesnis.

Pagrindinės problemos: Balso pavyzdys yra kirčiuojamas.

Verslo nauda: Nuo RJ žvaigždė yra realybės šou, laikas atrinkti kandidatus yra labai trumpas. Visa pasirodymo sėkmė, taigi ir pelnas, priklauso nuo greito ir sklandaus vykdymo

importuoti pandas kaip pd importo numerį kaip np importuoti matplotlib.pyplot kaip plt importuoti jūros gimusį kaip sns% matplotlib įterptiniai įspėjimai apie importą įspėjimai.filterwarnings ('ignoruoti' 'df = pd.read_csv (' voice-klasifikacija.csv ') df.head ()

# Patikrinkite Nr. įrašų df.info () df.describe () df.isnull (). sum ()

spausdinti ('Duomenų forma:', df.forma) spausdinti ('Bendras etikečių skaičius: {}'. formatas (df.forma [0])) spausdinti ('Vyrų skaičius: {}'. formatas (df [ df.label == 'male']. shape [0])) print ('Moterų skaičius: {}'. formatas (df [df.label == 'female']. forma [0]))

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

iš sklearn.preprocessing importo LabelEncoder y = df.iloc [:, - 1] gender_encoder = LabelEncoder () y = gender_encoder.fit_transform (y) y iš sklearn.preprocessing importuoti StandardScaler scaler = StandardScaler () scaler.fit ( scaler.transform (X) iš sklearn.model_selection importuoti traukinio_testą_split X_train, X_test, y_train, y_test = train_test_split (X, y, test_size = 0.3, random_state = 100) iš sklearn.svm importuoti SVC iš sklearn.metmet importuoti iš sklearn , confusion_matrix svc_model = SVC () svc_model.fit (X_train, y_train) y_pred = svc_model.predict (X_test) print ('Tikslumo balas:') print (metrics.accuracy_score (y_test, y_pred))

spausdinti (confusion_matrix (y_test, y_pred))

2. LIETUVOS GALIA

Domenas: Automobiliai

Dėmesys: Skatinkite tvarkykles

Verslo iššūkis: „Lithionpower“ yra didžiausia elektrinių transporto priemonių (elektroninių transporto priemonių) akumuliatorių tiekėja. Vairuotojai paprastai išsinuomoja akumuliatorių vienai dienai, tada pakeičia jį įkrauta įmonės baterija. „Lithionpower“ turi kintamą kainų modelį, pagrįstą vairuotojo vairavimo istorija. Kadangi akumuliatoriaus tarnavimo laikas priklauso nuo tokių veiksnių kaip greitis, per dieną nuvažiuotas atstumas ir kt. Jūs, kaip ML ekspertas, turite sukurti grupių modelį, kuriame vairuotojai galėtų būti sugrupuoti pagal vairavimo duomenis.

Pagrindiniai klausimai: Vairuotojai bus skatinami atsižvelgiant į grupę, todėl grupavimas turi būti tikslus.

Verslo nauda: Pelno padidėjimas, iki 15–20%, nes vairuotojai, turintys blogą istoriją, bus apmokestinti daugiau.

importuoti pandas kaip pd importo numerį kaip np importuoti matplotlib.pyplot kaip plt importuoti jūros giminę kaip sns sns.set () # už sklypo stilių% matplotlib inline importo įspėjimai warnings.filterwarnings ('ignore') importuoti matplotlib.pyplot as plt plt.rcParams [ 'figure.figsize'] = (12, 6) df = pd.read_csv ('driver-data.csv') df.head ()

df.info () df.describe ()

iš sklearn.cluster importo KMeans # 2 grupių paėmimas kmeans = KMeans (n_clusters = 2) df_analyze = df.drop ('id', ašis = 1) kmeans.fit (df_analyze)

kmeans.cluster_centers_

spausdinti (kmeans.labels_) spausdinti (len (kmeans.labels_))

spausdinti (tipas (kmeans.labels_)) unikalus, skaičius = np.unique (kmeans.labels_, return_counts = True) spausdinti (dict (zip (unikalus, skaičius)))

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, aspektas = 1, fit_reg = klaidingas)

#Dabar, patikrinkime grupes, kai n = 4 kmeans_4 = KMeans (n_clusters = 4) kmeans_4.fit (df.drop ('id', ašis = 1)) kmeans_4.fit (df.drop ('id', ašis) = 1)) print (kmeans_4.cluster_centers_) unikalus, count = np.unique (kmeans_4.labels_, return_counts = True) kmeans_4.cluster_centers_ print (dict (zip (unikalus, skaičius)))

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, aspektas = 1, fit_reg = klaidingas)

3. „BluEx“

Domenas: Logistika

jenkins vs lėlių vs virėjas

Dėmesys: Optimalus kelias

Verslo iššūkis: „BluEx“ yra pirmaujanti logistikos įmonė Indijoje. Tai žinoma dėl efektyvaus paketų pristatymo klientams. Tačiau „BluEx“ susiduria su iššūkiu, kai jos mikroautobusų vairuotojai renkasi neoptimalų pristatymo kelią. Tai sukelia vėlavimus ir didesnes degalų sąnaudas. Jūs, kaip ML ekspertas, turite sukurti ML modelį naudodamiesi „Reinforcement Learning“, kad per programą būtų galima rasti efektyvų kelią.

Pagrindiniai klausimai: Duomenys turi daug atributų, o klasifikavimas gali būti sudėtingas.

Verslo nauda: Pasirinkdami optimalų kelią, galima sutaupyti iki 15% degalų sąnaudų.

import numerį kaip np importo pylab kaip plt importo tinkląx kaip nx # taškų pradinis taškų sąrašas = [(0,1), (1,5), (5,6), (5,4), (1,2), (2 , 3), (2,7)] tikslas = 7 atvaizdavimas = {0: 'Pradėti', 1: '1', 2: '2', 3: '3', 4: '4', 5: '5 ', 6:' 6 ', 7:' 7 paskirties vieta '} G = nx.Graph () G.add_edges_from (points_list) pos = nx.spring_layout (G, k =, 5, centre = 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 # Pradinė R matrica R = np.matrica (np.ones (forma = (NO_OF_POINTS, NO_OF_POINTS))) R * = -1 taškui taškų sąraše: spausdinti (taškas), jei taškas [1] == tikslas: R [taškas] = 150 kitas: R [taškas] = 0, jei taškas [0] == tikslas: R [taškas [:: - 1]] = 150 kitas: # taško R atvirkštinis taškas [taškas [:: - 1]] = 0

R [tikslas, tikslas] = 150 R

Q = np.matrica (np.zeros ([NO_OF_POINTS, NO_OF_POINTS])) # Mokymosi parametras gama = 0,8 pradinė stotis = 1 galimi veiksmai (būsena): current_state_row = R [būsena] av_act = np.where (current_state_row & ampampampgt = 0 ) [1] return av_act available_act = available_actions (initial_state) def sample_next_action (available_actions_range): next_action = int (np.random.choice (available_act, 1)) grąžinti next_action action = sample_next_action (available_act) def atnaujinimas (current_state, action, gamma) : max_index = np.where (Q [action,] == np.max (Q [action,])) [1] if max_index.shape [0] & ampampampgt 1: max_index = int (np.random.choice (max_index, dydis = 1)) else: max_index = int (max_index) max_value = Q [action, max_index] Q [current_state, action] = R [current_state, action] + gamma * 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) atnaujinimas (pradinė stotis, veiksmas, gama)

balai = [] i diapazone (700): current_state = np.random.randint (0, int (Q.shape [0])) available_act = available_actions (current_state) action = sample_next_action (available_act) score = update (current_state, veiksmas, gama) scores.append (score) print ('Score:', str (score)) print ('Trained Q matrix:') print (Q / np.max (Q) * 100) # Testing current_state = 0 žingsnių = [current_state] o current_state! = 7: next_step_index = np.where (Q [current_state,] == np.max (Q [current_state,]))] [1] jei 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

spausdinti ('Efektyviausias kelias:') spausdinti (žingsniai) plt.plot (balai) plt.show ()

Atvirojo kodo mašininio mokymo projektai 2019 m

Detektronas : „Detectron“ yra „Facebook AI Research“ programinė įranga, įgyvendinanti pažangiausius objektų aptikimo algoritmus. Jis parašytas „Python“ ir sukurtas naudojant „Caffe2“ giluminio mokymosi sistemą.

„Detectron“ tikslas yra pateikti aukštos kokybės, didelio našumo kodų bazę objektų aptikimo tyrimams. Jis skirtas lanksčiai, kad būtų galima greitai įgyvendinti ir įvertinti naujus tyrimus. Jame yra daugiau nei 50 iš anksto paruoštų modelių.

Denspose : Tankiu žmogaus pozos įvertinimu siekiama atvaizduoti visus RGB atvaizdo žmogaus taškus prie 3D žmogaus kūno paviršiaus. „DensePose-RCNN“ yra įdiegta „Detectron“ sistemoje.

„TensorFlow.js“ : Tai biblioteka, skirta ML modeliams kurti ir mokyti bei diegti naršyklėje. Tai tapo labai populiarus leidimas, nes buvo išleistas šių metų pradžioje ir toliau stebina savo lankstumu. Su tuo galite

  • Sukurkite ML naršyklėje: Naudokite lanksčias ir intuityvias API, kad kurtumėte modelius nuo nulio, naudodami žemo lygio „JavaScript“ linijinės algebros biblioteką arba aukšto lygio sluoksnių API.
  • Paleiskite esamus modelius : Naudokite „TensorFlow.js“ modelių keitiklius, kad paleistumėte jau esančius „TensorFlow“ modelius tiesiai naršyklėje.
  • Perkvalifikuoti esamus modelius: Perkvalifikuokite jau esamus ML modelius naudodami jutiklio duomenis, prijungtus prie naršyklės, arba kitus kliento duomenis.

Waveglow: Mašininis mokymasis taip pat daro didelę pažangą garso apdorojimo srityje ir tai ne tik muzikos kūrimas ar klasifikavimas. „WaveGlow“ yra srauto pagrindu sukurtas NVIDIA kalbų sintezės tinklas. Tyrėjai taip pat išvardijo žingsnius, kuriuos galite atlikti, jei norite mokyti savo modelį nuo nulio.

Vaizdo išdažymas : Įsivaizduokite, kad turite pusiau scenos vaizdą ir norėjote viso dekoro, na, tai, ką paveikslo perdažymas gali padaryti jums. Šis projektas yra Stanfordo „Image Outpainting“ popieriaus Kerasas. Modelis buvo apmokytas 3500 atsisakyta paplūdimio duomenų su argumentais iš viso iki 10 500 vaizdai 25 epochos .

Tai nuostabus dokumentas su išsamiu žingsnis po žingsnio paaiškinimu. Būtina išbandyti pavyzdį visiems mašininio mokymo entuziastams. Asmeniškai tai yra mano mėgstamiausias mašininio mokymosi projektas.

Gilus tapybinis derinimas : Na, kalbant apie vaizdus, ​​šis yra šedevras. Tai, ką daro šis algoritmas, ima vaizdą, o tada, jei prie paveikslėlio pridedate išorinį elementą, jis sujungia tą elementą į aplinką taip, lyg jis būtų jo dalis.

Ar galite pasakyti skirtumą? Neteisingai? Na, tai mums parodo, kaip toli pasiekėme mašininio mokymosi srityje.

„DeepMimic“: Dabar atidžiai pažvelkite į čia esančius vaizdus, ​​matote lazdos figūrą, atliekančią „spin-kick“, „backflip“ ir „cartwheel“. Kad mano draugas mokosi sustiprinimo. „DeepMimic“ yra pavyzdys, kaip mokytis fizikos pagrindu atliekamų charakterio įgūdžių.

Magenta : „Magenta“ yra mokslinių tyrimų projektas, kuriame tiriamas mašininio mokymosi vaidmuo kuriant meną ir muziką. Pirmiausia tai reiškia naujų gilaus mokymosi ir sustiprinimo mokymosi algoritmų kūrimą dainoms, vaizdams, piešiniams ir kitai medžiagai generuoti.

Tai taip pat yra pažangių įrankių ir sąsajų kūrimo tyrimas, leidžiantis išplėsti menininkus ir muzikantus ( nepakeiskite! ) jų procesai naudojant šiuos modelius. Išskleisk sparnus, sukurk unikalų „Instagram“ ar „Soundcloud“ turinį ir tapk influenceriu.

Taigi, vaikinai, tuo mes baigėme šį nuostabų mašininio mokymosi projektų straipsnį. Išbandykite šiuos pavyzdžius ir praneškite mums toliau pateiktoje komentarų skiltyje. Tikiuosi, kad jūs sužinojote praktinį mašininio mokymosi diegimą pramonėje. „Edureka“ leidžia išmanyti tokias technikas kaip prižiūrimas mokymasis, neprižiūrimas mokymasis ir natūralios kalbos apdorojimas. Tai apima mokymus apie naujausius dirbtinio intelekto ir mašininio mokymosi pasiekimus ir techninius metodus, tokius kaip gilus mokymasis, grafiniai modeliai ir sustiprintas mokymasis.