Последние проекты машинного обучения, которые стоит попробовать в 2019 году



Эта статья предоставит вам исчерпывающие знания о проектах машинного обучения в отрасли и достижениях, сделанных в этой области.

это явно область, в которой за последние пару лет произошли сумасшедшие достижения. Эта тенденция и достижения создали множество рабочих мест в отрасли. Нужда в Инженеры по машинному обучению пользуются большим спросом, и этот всплеск связан с развитием технологий и генерацией огромных объемов данных, известных как большие данные. Итак, в этой статье я буду обсуждать самые удивительные проекты машинного обучения, которые нужно обязательно знать и с которыми нужно работать, в следующем порядке:

Что такое машинное обучение?

Машинное обучение - это концепция, которая позволяет машине учиться на примерах и опыте, причем без явного программирования. Поэтому вместо того, чтобы писать код, вы вводите данные в общий алгоритм, и алгоритм / машина строит логику на основе заданных данных.





Кто такой инженер машинного обучения

Шаги машинного обучения

Любой алгоритм машинного обучения следует общему шаблону или шагам.



Сбор данных: Этот этап включает в себя сбор всех актуальных данных из различных источников.

Преодоление данных: Это процесс очистки и преобразования «сырых данных» в формат, обеспечивающий удобное использование.

Анализировать данные: Данные анализируются для выбора и фильтрации данных, необходимых для подготовки модели.



Алгоритм обучения: Алгоритм обучается на обучающем наборе данных, благодаря которому алгоритм понимает шаблон и правила, управляющие данными.

Тестовая модель: Набор данных тестирования определяет точность нашей модели.

Развертывание: Если скорость и точность модели приемлемы, то эту модель следует развернуть в реальной системе. После того, как модель развернута на основе ее производительности, модель обновляется и улучшается, если производительность падает, модель повторно обучается.

Типы машинного обучения

Машинное обучение подразделяется на три типа:

Обучение с учителем: Это тот, где у вас есть входные переменные (x) и выходная переменная (Y), и вы используете алгоритм для изучения функции сопоставления от входа к выходу.

Обучение без учителя: Иногда данные неструктурированы и не помечены. Поэтому становится трудно классифицировать эти данные по разным категориям. Обучение без учителя помогает решить эту проблему. Это обучение используется для кластеризации входных данных в классы на основе их статистических свойств.

Обучение с подкреплением: Все дело в том, чтобы предпринять соответствующие действия, чтобы максимизировать вознаграждение в конкретной ситуации.
Когда дело доходит до обучения с подкреплением, ожидаемого результата нет. Агент подкрепления решает, какие действия предпринять для выполнения данной задачи. В отсутствие обучающего набора данных он обязательно извлечет уроки из своего опыта.

Теперь давайте посмотрим на несколько реальных проектов машинного обучения, которые могут помочь компаниям получать прибыль.

Отраслевые сценарии использования

1. MOTION STUDIO

Домен: Половина

Фокус: Оптимизировать процесс отбора

что такое чарат в Java

Бизнес-вызов: Motion Studio - крупнейшая студия радиопроизводства в Европе. Имея выручку более миллиарда долларов, компания решила запустить новое реалити-шоу: RJ Star. Реакция на шоу беспрецедентна, и компания наводнена голосовыми клипами. Вы, как эксперт по машинному обучению, должны классифицировать голос как мужской / женский, чтобы первый уровень фильтрации был быстрее.

Ключевые вопросы: Образец голоса через акценты.

Бизнес-выгода: поскольку RJ Star реалити-шоу, времени для отбора кандидатов очень мало. Весь успех шоу и, следовательно, прибыль зависят от быстрого и плавного выполнения.

import pandas 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-классификации.csv') df.head ()

# Проверить № записей df.info () df.describe () df.isnull (). sum ()

print ('Форма данных:', df.shape) print ('Общее количество этикеток: {}'. format (df.shape [0])) print ('Количество мужчин: {}'. format (df [ df.label == 'male']. shape [0])) print ('Число женщин: {}'. format (df [df.label == 'female']. shape [0]))

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

из sklearn.preprocessing import LabelEncoder y = df.iloc [:, - 1] пол_encoder = LabelEncoder () y = пол_encoder.fit_transform (y) y из sklearn.preprocessing import StandardScaler scaler = StandardScaler () scaler.fit (X) X = scaler.transform (X) из sklearn.model_selection импорт train_test_split X_train, X_test, y_train, y_test = train_test_split (X, y, test_size = 0.3, random_state = 100) из sklearn.svm импорт SVC из sklearn импорт метрик из skle_rearn.metrics импорт классификации , confusion_matrix svc_model = SVC () svc_model.fit (X_train, y_train) y_pred = svc_model.predict (X_test) print ('Оценка точности:') print (metrics.accuracy_score (y_test, y_pred))

print (confusion_matrix (y_test, y_pred))

2. СИЛА ЛИТИОНА

Домен: Автомобильная промышленность

Фокус: Стимулируйте водителей

Бизнес-вызов: Lithionpower - крупнейший поставщик аккумуляторов для электромобилей (электромобилей). Водители обычно арендуют аккумулятор на сутки, а затем заменяют его заряженным аккумулятором у компании. Lithionpower предлагает переменную модель ценообразования, основанную на истории вождения водителя. Срок службы батареи зависит от таких факторов, как превышение скорости, пройденное расстояние за день и т. Д. Вы, как эксперт по машинному обучению, должны создать кластерную модель, в которой водители могут быть сгруппированы вместе на основе данных о вождении.

Ключевые вопросы: Драйверы будут мотивированы на основе кластера, поэтому группировка должна быть точной.

Преимущества для бизнеса: Увеличение прибыли до 15-20%, так как водители с плохой историей будут платить больше.

import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns sns.set () # для стилизации графика% 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 # Взять 2 кластера 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, аспект = 1, fit_reg = ложь)

# Теперь проверим кластеры, когда 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 (unique, counts)))

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, аспект = 1, fit_reg = ложь)

3. BluEx

Домен: Логистика

Фокус: Оптимальный путь

Бизнес-вызов: BluEx - ведущая логистическая компания в Индии. Он известен своей эффективной доставкой пакетов клиентам. Тем не менее, BluEx сталкивается с проблемой, когда водители фургонов выбирают неоптимальный путь доставки. Это вызывает задержки и увеличивает стоимость топлива. Вы, как эксперт по машинному обучению, должны создать модель машинного обучения с помощью обучения с подкреплением, чтобы найти эффективный путь через программу.

Ключевые вопросы: У данных много атрибутов, и классификация может быть сложной.

Преимущества для бизнеса: Выбрав оптимальный путь, можно сэкономить до 15% стоимости топлива.

import numpy as np import pylab as plt import networkx as nx # Инициализация точек points_list = [(0,1), (1,5), (5,6), (5,4), (1,2), (2 , 3), (2,7)] goal = 7 сопоставление = {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 # Инициализация матрицы R R = np.matrix (np.ones (shape = (NO_OF_POINTS, NO_OF_POINTS)) R * = -1 для точки в points_list: print (point) if point [1] == goal: R [point] = 150 else: R [point] = 0 if point [0] == goal: R [point [:: - 1]]] = 150 else: # реверс точки R [point [:: - 1]] = 0

R [цель, цель] = 150 R

Q = np.matrix (np.zeros ([NO_OF_POINTS, NO_OF_POINTS])) # Параметр обучения 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 [действие,] == np.max (Q [действие,])) [1], если 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 [действие, 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)

scores = [] для i в диапазоне (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) scores.append (score) print ('Score:', str (score)) print ('Traced Q matrix:') print (Q / np.max (Q) * 100) # Testing current_state = 0 steps = [current_state] while current_state! = 7: next_step_index = np.where (Q [current_state,] == np.max (Q [current_state,])) [1] если 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 ('Самый эффективный путь:') print (шаги) plt.plot (оценки) plt.show ()

Проекты машинного обучения с открытым исходным кодом в 2019 г.

Детектрон : Detectron - это программная система Facebook AI Research, в которой реализованы самые современные алгоритмы обнаружения объектов. Он написан на Python и работает на платформе глубокого обучения Caffe2.

Цель Detectron - предоставить высококачественную и высокопроизводительную кодовую базу для исследования обнаружения объектов. Он разработан так, чтобы быть гибким, чтобы поддерживать быстрое выполнение и оценку новых исследований. Он содержит более 50 предварительно обученных моделей.

Denspose : Оценка плотной позы человека направлена ​​на сопоставление всех пикселей изображения RGB с трехмерной поверхностью человеческого тела. DensePose-RCNN реализован в среде Detectron.

TensorFlow.js : Это библиотека для разработки и обучения моделей машинного обучения и развертывания в браузере. Он стал очень популярным с момента его выхода в начале этого года и продолжает удивлять своей гибкостью. С этим вы можете

  • Разработка ML в браузере: Используйте гибкие и интуитивно понятные API-интерфейсы для создания моделей с нуля, используя библиотеку линейной алгебры нижнего уровня JavaScript или API-интерфейс верхнего уровня.
  • Запустить существующие модели : Используйте конвертеры моделей TensorFlow.js для запуска уже существующих моделей TensorFlow прямо в браузере.
  • Переобучить существующие модели: Повторно обучите существующие модели машинного обучения, используя данные датчиков, подключенных к браузеру, или другие данные на стороне клиента.

Волновое свечение: Машинное обучение также значительно продвинулось вперед в обработке звука, а не только в создании музыки или классификации. WaveGlow - это генерирующая сеть для синтеза речи на основе потоков от NVIDIA. Исследователи также перечислили шаги, которым вы можете следовать, если хотите обучить собственную модель с нуля.

Изображение Outpainting : Представьте, что у вас есть половинное изображение сцены, и вам нужен полный пейзаж, вот что может сделать за вас обработка изображений. Этот проект является воплощением Кераса бумаги Stanford's Image Outpainting. Модель обучалась с 3500 отбракованные данные о пляже с аргументацией на общую сумму до 10 500 изображения для 25 эпох .

Сортировка массивов целых чисел в Java

Это потрясающая статья с подробным пошаговым объяснением. Обязательно попробуйте пример для всех энтузиастов машинного обучения. Лично это мой любимый проект по машинному обучению.

Глубокая живописная гармонизация : Что ж, если говорить об изображениях, это шедевр. Этот алгоритм принимает изображение в качестве входных данных, а затем, если вы добавляете к изображению внешний элемент, он смешивает этот элемент с окружением, как если бы он был его частью.

Вы видите разницу? Без прав? Что ж, это показывает нам, как далеко мы продвинулись с точки зрения машинного обучения.

DeepMimic: Теперь внимательно посмотрите на изображения здесь, вы видите фигурку, выполняющую вращение, сальто назад и колесо телеги. Мой друг занимается обучением с подкреплением в действии. DeepMimic - это основанное на примерах глубокое обучение с подкреплением физических навыков персонажа.

Пурпурный : Magenta - это исследовательский проект, посвященный роли машинного обучения в процессе создания искусства и музыки. В первую очередь это включает разработку новых алгоритмов глубокого обучения и обучения с подкреплением для создания песен, изображений, рисунков и других материалов.

Это также исследование в области создания интеллектуальных инструментов и интерфейсов, которые позволяют артистам и музыкантам расширять ( не заменять! ) свои процессы с использованием этих моделей. Расправьте крылья, создайте свой уникальный контент для Instagram или Soundcloud и станьте влиятельным лицом.

Итак, ребята, на этом мы подошли к концу этой замечательной статьи о проектах машинного обучения. Попробуйте эти примеры и дайте нам знать в разделе комментариев ниже. Надеюсь, вы узнали о практическом применении машинного обучения в отрасли. Эдурека позволяет овладеть такими методами, как контролируемое обучение, неконтролируемое обучение и обработка естественного языка. Он включает в себя обучение последним достижениям и техническим подходам в области искусственного интеллекта и машинного обучения, таких как глубокое обучение, графические модели и обучение с подкреплением.