jest wyraźnie dziedziną, w której w ciągu ostatnich kilku lat nastąpił szalony postęp. Ten trend i postęp stworzyły wiele możliwości zatrudnienia w branży. Potrzeba Inżynierowie uczenia maszynowego jest duży popyt, a ten wzrost jest spowodowany ewolucją technologii i generowaniem ogromnych ilości danych zwanych Big Data. Dlatego w tym artykule omówię najbardziej niesamowite projekty uczenia maszynowego, które zdecydowanie warto znać iz którymi warto pracować, w następującej kolejności:
- Co to jest uczenie maszynowe?
- Kroki uczenia maszynowego
- Rodzaje uczenia maszynowego
- Przemysłowe przypadki użycia
- Projekty uczenia maszynowego typu Open Source na rok 2019
Co to jest uczenie maszynowe?
Uczenie maszynowe to koncepcja, która pozwala maszynie uczyć się na przykładach i doświadczeniach, a także bez konieczności bezpośredniego programowania. Więc zamiast pisać kod, robisz to, co robisz, to przekazujesz dane do ogólnego algorytmu, a algorytm / maszyna buduje logikę na podstawie podanych danych.
Kroki uczenia maszynowego
Każdy algorytm uczenia maszynowego działa według wspólnego wzorca lub kroków.
Zbieranie danych: Ten etap obejmuje zebranie wszystkich istotnych danych z różnych źródeł
Przekształcanie danych: Jest to proces czyszczenia i konwertowania „surowych danych” do formatu, który umożliwia wygodne użytkowanie
Analizować dane: Dane są analizowane w celu wybrania i przefiltrowania danych wymaganych do przygotowania modelu
Algorytm pociągu: Algorytm jest szkolony na zbiorze danych uczących, dzięki czemu algorytm rozumie wzorzec i reguły rządzące danymi
Model testowy: Zestaw danych testowych określa dokładność naszego modelu.
Rozlokowanie: Jeśli szybkość i dokładność modelu są akceptowalne, model ten powinien zostać wdrożony w rzeczywistym systemie. Po wdrożeniu modelu na podstawie jego wydajności model jest aktualizowany i ulepszany, jeśli następuje spadek wydajności, model jest ponownie trenowany.
Rodzaje uczenia maszynowego
Uczenie maszynowe jest podzielone na trzy kategorie podrzędne:
Nadzorowana nauka: Jest to ten, w którym masz zmienne wejściowe (x) i zmienną wyjściową (Y) i używasz algorytmu, aby nauczyć się funkcji odwzorowania z wejścia na wyjście.
Uczenie się bez nadzoru: Czasami podane dane są nieustrukturyzowane i nieoznaczone. Dlatego trudno jest sklasyfikować te dane w różnych kategoriach. Uczenie się bez nadzoru pomaga rozwiązać ten problem. Ta nauka służy do grupowania danych wejściowych w klasach na podstawie ich właściwości statystycznych.
Uczenie się ze wzmocnieniem: Chodzi o podjęcie odpowiednich działań, aby zmaksymalizować nagrodę w określonej sytuacji.
jeśli chodzi o uczenie się ze wzmocnieniem, nie ma oczekiwanych rezultatów. Agent wzmacniający decyduje, jakie działania podjąć, aby wykonać dane zadanie. W przypadku braku zbioru danych szkoleniowych musi uczyć się na własnych doświadczeniach.
Przyjrzyjmy się teraz kilku projektom uczenia maszynowego w prawdziwym życiu, które mogą pomóc firmom w generowaniu zysków.
Przemysłowe przypadki użycia
1. MOTION STUDIO
Domena: Pół
Skupiać: Zoptymalizuj proces selekcji
do czego służy programowanie SAS
Wyzwanie biznesowe: Motion Studio to największy dom produkcyjny Radio w Europie. Mając przychody przekraczające miliard dolarów, firma zdecydowała się uruchomić nowy reality show: RJ Star. Reakcja na program jest bezprecedensowa, a firma jest zalewana nagraniami głosowymi. Jako ekspert ML musisz sklasyfikować głos jako męski / żeński, aby pierwszy poziom filtracji był szybszy.
Kluczowe zagadnienia: Próbka głosu jest w poprzek akcentów.
Korzyści biznesowe: Od RJ Star to reality show, czas na selekcję kandydatów jest bardzo krótki. Cały sukces serialu, a co za tym idzie zyski, zależy od szybkiego i sprawnego wykonania
import pandy as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns% matplotlib inline import warnings warnings.filterwarnings ('ignore') df = pd.read_csv ('voice-klasyfikacja.csv') df.head ()
# Sprawdź nr. rekordów df.info () df.describe () df.isnull (). sum ()
print ('Shape of Data:', df.shape) print ('Całkowita liczba etykiet: {}'. format (df.shape [0])) print ('Number of male: {}'. format (df [ df.label == 'mężczyzna']. kształt [0])) print ('Liczba kobiet: {}'. format (df [df.label == 'kobieta']. kształt [0]))
X = df.iloc [:,: -1] print (df.shape) print (X.shape)
from sklearn.preprocessing import LabelEncoder y = df.iloc [:, - 1] gender_encoder = LabelEncoder () y = gender_encoder.fit_transform (y) y from sklearn.preprocessing import StandardScaler scaler = StandardScaler () scaler.fit (X) X = scaler.transform (X) from sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split (X, y, test_size = 0.3, random_state = 100) from sklearn.svm import SVC from sklearn import klasyfikacja sklearn.metrics , confusion_matrix svc_model = SVC () svc_model.fit (X_train, y_train) y_pred = svc_model.predict (X_test) print ('Accuracy Score:') print (metrics.accuracy_score (y_test, y_pred))
print (confusion_matrix (y_test, y_pred))
2. MOC LITOWA
Domena: Automobilowy
Skupiać: Zachęcaj kierowców
Wyzwanie biznesowe: Lithionpower jest największym dostawcą akumulatorów do pojazdów elektrycznych (e-pojazdów). Kierowcy wypożyczają baterię zazwyczaj na jeden dzień, a następnie wymieniają ją na naładowaną w firmie. Lithionpower ma zmienny model cenowy oparty na historii jazdy kierowcy. Ponieważ żywotność akumulatora zależy od takich czynników, jak przekroczenie prędkości, przejechany dystans dziennie itp. Jako ekspert ML musisz stworzyć model klastra, w którym kierowcy mogą być grupowani na podstawie danych dotyczących jazdy.
Kluczowe zagadnienia: Kierowcy będą motywowani na podstawie klastra, więc grupowanie musi być dokładne.
Korzyści biznesowe: Wzrost zysków, nawet o 15-20%, ponieważ kierowcy ze złą historią będą płacić więcej.
import pandy as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns sns.set () # do stylizacji wydruku% matplotlib inline import warnings warnings.filterwarnings ('ignore') import matplotlib.pyplot as plt plt.rcParams [ 'figure.figsize'] = (12, 6) df = pd.read_csv ('driver-data.csv') df.head ()
df.info () df.describe ()
from sklearn.cluster import KMeans #Taking 2 clusters 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_)) unique, counts = np.unique (kmeans.labels_, return_counts = True) print (dict (zip (unique, counts)))
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 = fałsz)
# Teraz sprawdźmy klastry, gdy 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_) unique, counts = np.unique (kmeans_4.labels_, return_counts = True) kmeans_4.cluster_centers_ print (dict (zip (unikalne, liczniki)))
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 = fałsz)
3. BluEx
Domena: Logistyka
Skupiać: Optymalna ścieżka
Wyzwanie biznesowe: BluEx to wiodąca firma logistyczna w Indiach. Jest znany z efektywnego dostarczania paczek do klientów. Jednak BluEx stoi przed wyzwaniem polegającym na tym, że kierowcy samochodów dostawczych wybierają nieoptymalną ścieżkę dostaw. Powoduje to opóźnienia i wyższe koszty paliwa. Ty, jako ekspert ML, musisz stworzyć model ML przy użyciu uczenia ze wzmocnieniem, aby znaleźć efektywną ścieżkę w programie.
Kluczowe zagadnienia: Dane mają wiele atrybutów, a klasyfikacja może być trudna.
Korzyści biznesowe: Obierając optymalną ścieżkę, można zaoszczędzić do 15% kosztów paliwa.
import numpy as np import pylab as plt import networkx as nx #Inicjalizacja punktów points_list = [(0,1), (1,5), (5,6), (5,4), (1,2), (2 , 3), (2,7)] goal = 7 mapping = {0: 'Start', 1: '1', 2: '2', 3: '3', 4: '4', 5: '5 ', 6:' 6 ', 7:' 7-Destination '} G = nx.Graph () G.add_edges_from (points_list) 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 #Initlaizing R Macierz R = np.matrix (np.ones (shape = (NO_OF_POINTS, NO_OF_POINTS))) R * = -1 dla punktu w points_list: print (point) if point [1] == goal: R [punkt] = 150 else: R [punkt] = 0 jeśli punkt [0] == cel: R [punkt [:: - 1]] = 150 else: # odwrotność punktu R [punkt [:: - 1]] = 0
R [gol, gol] = 150 R
Q = np.matrix (np.zeros ([NO_OF_POINTS, NO_OF_POINTS])) # Parametr uczenia gamma = 0.8 initial_state = 1 def available_actions (state): current_state_row = R [state,] 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)) return next_action action = sample_next_action (available_act) def update (current_state, action, gamma) : max_index = np.where (Q [akcja,] == np.max (Q [akcja,])) [1] if 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] + gamma * max_value print ('max_value', R [current_state, action] + gamma * max_value) if (np.max (Q) & ampampampgt 0): return (np.sum (Q / np.max (Q) * 100)) else: return (0) update (initial_state, action, gamma)
score = [] for i in range (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, action, gamma) score.append (score) print ('Score:', str (score)) print ('Trained Q matrix:') print (Q / np.max (Q) * 100) # Testowanie current_state = 0 kroków = [current_state] while 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 ('Najbardziej wydajna ścieżka:') print (steps) plt.plot (score) plt.show ()
Projekty uczenia maszynowego typu open source w 2019 r
Detectron : Detectron to system oprogramowania Facebook AI Research, który wdraża najnowocześniejsze algorytmy wykrywania obiektów. Jest napisany w Pythonie i oparty na frameworku głębokiego uczenia Caffe2.
Celem Detectron jest zapewnienie wysokiej jakości, wydajnej bazy kodów do badań nad wykrywaniem obiektów. Został zaprojektowany tak, aby był elastyczny, aby wspierać szybkie wdrażanie i ocenę nowatorskich badań. Zawiera ponad 50 wstępnie wyszkolonych modeli.
Denspose : Szacowanie gęstej ludzkiej pozy ma na celu odwzorowanie wszystkich ludzkich pikseli obrazu RGB na trójwymiarową powierzchnię ludzkiego ciała. DensePose-RCNN jest zaimplementowany w ramach Detectron.
TensorFlow.js : Jest to biblioteka służąca do opracowywania i szkolenia modeli ML oraz wdrażania w przeglądarce. Wydanie stało się bardzo popularne od czasu wydania na początku tego roku i nadal zadziwia swoją elastycznością. Dzięki temu możesz
- Twórz ML w przeglądarce: Korzystaj z elastycznych i intuicyjnych interfejsów API, aby tworzyć modele od podstaw, korzystając z niskopoziomowej biblioteki algebry liniowej JavaScript lub interfejsu API warstw wysokiego poziomu.
- Uruchom istniejące modele : Użyj konwerterów modeli TensorFlow.js, aby uruchomić istniejące modele TensorFlow bezpośrednio w przeglądarce.
- Przekształć istniejące modele: Ponownie przećwicz istniejące wcześniej modele ML przy użyciu danych z czujników podłączonych do przeglądarki lub innych danych po stronie klienta.
Waveglow: Uczenie maszynowe również robi duże postępy w przetwarzaniu dźwięku i nie polega jedynie na generowaniu muzyki czy klasyfikacji. WaveGlow to oparta na przepływie sieć generacyjna do syntezy mowy firmy NVIDIA. Naukowcy wymienili również kroki, które można wykonać, jeśli chcesz wytrenować własny model od zera.
Malowanie obrazu : Wyobraź sobie, że masz połowę obrazu sceny i chciałeś pełnej scenerii, cóż, właśnie to może zrobić za Ciebie malowanie obrazu. Ten projekt jest implementacją Keras'a papieru Stanford's Image Outpainting. Model został przeszkolony z 3500 odrzucono dane plaży z argumentacją wynoszącą do 10,500 obrazy dla 25 epok .
To niesamowity artykuł ze szczegółowym wyjaśnieniem krok po kroku. Musi wypróbować przykład dla wszystkich entuzjastów uczenia maszynowego. Osobiście to mój ulubiony projekt Machine Learning.
podnieść coś do potęgi w Javie
Głęboka harmonizacja malarska : Mówiąc o obrazach, ten jest arcydziełem. Algorytm ten pobiera obraz jako dane wejściowe, a następnie, jeśli dodasz element zewnętrzny do obrazu, wtapia ten element w otoczenie, jakby był jego częścią.
Czy dostrzegasz różnicę? Bez prawa? Cóż, to pokazuje nam, jak daleko zaszliśmy w zakresie uczenia maszynowego.
DeepMimic: Teraz przyjrzyj się bliżej obrazom tutaj, zobaczysz postać kija wykonującego kopnięcie obrotowe, salto w tył i koło wozu. Że mój przyjaciel to uczenie się przez wzmacnianie w działaniu. DeepMimic to przykładowa nauka o głębokim wzmocnieniu umiejętności postaci opartych na fizyce.
Magenta : Magenta to projekt badawczy badający rolę uczenia maszynowego w procesie tworzenia sztuki i muzyki. Przede wszystkim wiąże się to z opracowaniem nowych algorytmów uczenia głębokiego i uczenia ze wzmocnieniem do generowania piosenek, obrazów, rysunków i innych materiałów.
To także eksploracja w tworzeniu inteligentnych narzędzi i interfejsów, które umożliwiają artystom i muzykom rozszerzenie ( nie wymieniać! ) swoje procesy przy użyciu tych modeli. Rozwiń skrzydła, twórz unikalne treści na Instagram lub Soundcloud i zostań influencer.
Więc chłopaki, tym razem kończymy ten niesamowity artykuł o projektach uczenia maszynowego. Wypróbuj te przykłady i daj nam znać w sekcji komentarzy poniżej. Mam nadzieję, że poznałeś praktyczne zastosowanie uczenia maszynowego w branży. Edureka's sprawia, że jesteś biegły w technikach takich jak uczenie nadzorowane, uczenie się bez nadzoru i przetwarzanie języka naturalnego. Obejmuje szkolenia dotyczące najnowszych osiągnięć i podejść technicznych w dziedzinie sztucznej inteligencji i uczenia maszynowego, takich jak uczenie głębokie, modele graficzne i uczenie się ze wzmocnieniem