2019年に試す最新の機械学習プロジェクト



この記事では、業界の機械学習プロジェクトとこの分野でのブレークスルーに関する包括的な知識を提供します。

明らかに、過去数年間でクレイジーな進歩が見られた分野です。この傾向と進歩は、業界に多くの雇用機会を生み出しました。の必要性 機械学習エンジニア 需要が高く、この急増は、テクノロジーの進化とビッグデータとして知られる大量のデータの生成によるものです。そのため、この記事では、間違いなく知って作業する必要のある最もすばらしい機械学習プロジェクトについて、次の順序で説明します。

機械学習とは何ですか?

機械学習は、機械が例や経験から学習できるようにする概念であり、それも明示的にプログラムする必要はありません。したがって、コードを記述する代わりに、一般的なアルゴリズムにデータをフィードし、アルゴリズム/マシンが指定されたデータに基づいてロジックを構築します。





MLエンジニアは誰ですか

機械学習の手順

機械学習アルゴリズムはすべて、一般的なパターンまたは手順に従います。



データの収集: この段階では、さまざまなソースからすべての関連データを収集します

データラングリング: これは、「生データ」をクリーンアップして、便利な消費が可能な形式に変換するプロセスです。

データの分析: データを分析して、モデルの準備に必要なデータを選択およびフィルタリングします



トレーニングアルゴリズム: アルゴリズムはトレーニングデータセットでトレーニングされます。これにより、アルゴリズムはデータを管理するパターンとルールを理解します。

テストモデル: テストデータセットは、モデルの精度を決定します。

展開: モデルの速度と精度が許容できる場合は、そのモデルを実際のシステムに展開する必要があります。モデルがそのパフォーマンスに基づいて展開された後、パフォーマンスが低下した場合、モデルは更新および改善され、モデルは再トレーニングされます。

機械学習の種類

機械学習は、次の3つのタイプに分類されます。

教師あり学習: これは、入力変数(x)と出力変数(Y)があり、アルゴリズムを使用して入力から出力へのマッピング関数を学習するものです。

教師なし学習: 特定のデータが構造化されておらず、ラベルが付いていない場合があります。そのため、そのデータをさまざまなカテゴリに分類することが困難になります。教師なし学習は、この問題の解決に役立ちます。この学習は、統計的特性に基づいてクラス内の入力データをクラスター化するために使用されます。

強化学習: 特定の状況で報酬を最大化するために適切な行動を取ることがすべてです。
強化学習に関しては、期待される成果はありません。強化エージェントは、特定のタスクを実行するために実行するアクションを決定します。トレーニングデータセットがない場合は、その経験から学ぶ必要があります。

それでは、企業が利益を生み出すのに役立ついくつかの実際の機械学習プロジェクトを見てみましょう。

業界での使用-ケース

1.モーションスタジオ

ドメイン: ハーフ

フォーカス: 選択プロセスの最適化

ハッシュテーブルとハッシュマップの違い

ビジネス上の課題: Motion Studioは、ヨーロッパ最大のラジオ制作会社です。 10億ドル以上の収益を上げている同社は、新しいリアリティ番組を開始することを決定しました。 RJスター。 ショーへの反応は前例のないものであり、会社はボイスクリップで溢れています。 MLの専門家であるあなたは、最初のレベルのフィルタリングがより速くなるように、声を男性/女性のいずれかに分類する必要があります。

主要な問題: 音声サンプルはアクセント全体にあります。

ビジネス上のメリット: 以来 RJスター リアリティ番組ですが、候補者を選ぶ時間は非常に短いです。ショーの全体的な成功、したがって利益は迅速かつスムーズな実行に依存します

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-classification.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( 'Number of female:{}'。format(df [df.label == 'female']。shape [0]))

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

from sklearn.preprocessing import LabelEncoder y = df.iloc [:、-1]わずかgender_encoder = LabelEncoder()y = sex_encoder.fit_transform(y)y fromsklearn.preprocessingインポートStandardScalerscaler = 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 importmetrics from sklearn.metrics import Classification_report 、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))

印刷(confusion_matrix(y_test、y_pred))

2.LITHIONPOWER

ドメイン: 自動車

フォーカス: ドライバーにインセンティブを与える

ビジネス上の課題: Lithionpowerは、電気自動車(e-vehicle)バッテリーの最大のプロバイダーです。ドライバーは通常、バッテリーを1日レンタルしてから、会社の充電済みバッテリーと交換します。 Lithionpowerには、ドライバーの運転履歴に基づいた変動価格モデルがあります。バッテリーの寿命は、速度超過、1日あたりの走行距離などの要因に依存するため、MLの専門家は、運転データに基づいてドライバーをグループ化できるクラスターモデルを作成する必要があります。

主要な問題: ドライバーはクラスターに基づいてインセンティブが与えられるため、グループ化は正確である必要があります。

ビジネス上のメリット: 歴史の乏しいドライバーがより多く請求されるため、利益が最大15〜20%増加します。

import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns sns.set()#プロットスタイリング用%matplotlibインラインインポート警告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 cluster 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'、palet = 'coolwarm'、size = 6、アスペクト= 1、fit_reg = False)

#ここで、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'、palet = 'coolwarm'、size = 6、アスペクト= 1、fit_reg = False)

3. BluEx

ドメイン: ロジスティクス

フォーカス: 最適なパス

ビジネス上の課題: BluExはインドの大手ロジスティクス企業です。顧客へのパケットの効率的な配信で知られています。しかし、BluExは、バンの運転手が配達のために次善の道を進んでいるという課題に直面しています。これは遅延とより高い燃料費を引き起こしています。 MLの専門家であるあなたは、プログラムを通じて効率的なパスが見つかるように、強化学習を使用してMLモデルを作成する必要があります。

主要な問題: データには多くの属性があり、分類には注意が必要です。

ビジネス上のメリット: 最適な経路をとることで、燃料費を最大15%節約できます。

import numpy as np import pylab as plt import networkx as nx #Initializing points points_list = [(0,1)、(1,5)、(5,6)、(5,4)、(1,2)、(2 、3)、(2,7)]ゴール= 7マッピング= {0: '開始'、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 #Inititlaizing R Matrix R = np.matrix(np.ones(shape =(NO_OF_POINTS、NO_OF_POINTS)))R * = -1 for point in points_list:print(point)if point [1] ==ゴール:R [point] = 150 else:R [point] = 0 if point [0] ==ゴール:R [point [::-1]] = 150 else:#ポイントの逆R [point [::-1]] = 0

Javaで最小ヒープを実装する
R [goal、goal] = 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 [action、] == np.max(Q [action、]))[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] +ガンマ* max_value)if(np.max(Q)&ampampampgt 0):return(np.sum(Q / np.max(Q)* 100))else:return(0)update(initial_state、action、gamma)

スコア= [] 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)scores.append(score)print( 'Score:'、str(score))print( 'Trained Q matrix:')print(Q / np.max(Q)* 100)#current_state = 0ステップのテスト= [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( '最も効率的なパス:')print(steps)plt.plot(scores)plt.show()

2019年のオープンソース機械学習プロジェクト

Detectron Detectronは、最先端のオブジェクト検出アルゴリズムを実装するFacebook AIResearchのソフトウェアシステムです。 Pythonで記述されており、Caffe2ディープラーニングフレームワークを利用しています。

Detectronの目標は、オブジェクト検出研究のための高品質で高性能なコードベースを提供することです。新規研究の迅速な実施と評価をサポートするために柔軟に設計されています。 50以上の事前トレーニング済みモデルが含まれています。

Denspose 高密度の人間の姿勢の推定は、RGB画像のすべての人間のピクセルを人体の3D表面にマッピングすることを目的としています。 DensePose-RCNNはDetectronフレームワークに実装されています。

TensorFlow.js これは、MLモデルを開発およびトレーニングし、ブラウザーにデプロイするためのライブラリです。今年初めにリリースされて以来、非常に人気のあるリリースになり、その柔軟性に驚かされ続けています。これであなたはできます

  • ブラウザでMLを開発する: 柔軟で直感的なAPIを使用して、低レベルのJavaScript線形代数ライブラリまたは高レベルのレイヤーAPIを使用してモデルを最初から構築します。
  • 既存のモデルを実行する :TensorFlow.jsモデルコンバーターを使用して、既存のTensorFlowモデルをブラウザーで直接実行します。
  • 既存のモデルを再トレーニングします。 ブラウザに接続されたセンサーデータまたは他のクライアント側データを使用して、既存のMLモデルを再トレーニングします。

ウェーブグロー: 機械学習はオーディオ処理においても大きな進歩を遂げており、音楽や分類を生成するだけではありません。 WaveGlowは、NVIDIAによる音声合成のためのフローベースの生成ネットワークです。研究者は、独自のモデルを最初からトレーニングしたい場合に実行できる手順もリストアップしています。

画像の塗りつぶし シーンの半分の画像があり、完全な風景が必要だと想像してみてください。それが、画像のアウトペインティングで実現できることです。このプロジェクトは、スタンフォード大学のImageOutpainting紙のKeras実装です。モデルはで訓練されました 3500 合計で最大の議論を伴う廃棄されたビーチデータ 10,500 の画像 25エポック

これは、詳細なステップバイステップの説明が付いた素晴らしい論文です。すべての機械学習愛好家のための必見の例。個人的には、これは私のお気に入りの機械学習プロジェクトです。

深い絵画の調和 さて、画像といえば、これは傑作です。このアルゴリズムは、画像を入力として受け取り、外部要素を画像に追加すると、その要素をその一部であるかのように周囲にブレンドします。

違いがわかりますか?権利はありません?さて、これは私たちが機械学習の観点からどれだけ進んだかを示しています。

DeepMimic: ここで画像をよく見てください。スピンキック、バク転、側転をしている棒人間が見えます。私の友人が強化学習を実践していること。 DeepMimicは、物理ベースのキャラクタースキルの例に基づく深層強化学習です。

赤紫色 マゼンタは、芸術と音楽を生み出す過程での機械学習の役割を探求する研究プロジェクトです。主に、これには、歌、画像、描画、およびその他の資料を生成するための新しい深層学習および強化学習アルゴリズムの開発が含まれます。

また、アーティストやミュージシャンが拡張できるスマートなツールやインターフェースを構築するための探求でもあります( 交換しないでください! )これらのモデルを使用したプロセス。翼を広げて、InstagramやSoundcloud向けの独自のコンテンツを作成し、インフルエンサーになりましょう。

これで、この驚くべき機械学習プロジェクトの記事は終わりです。これらの例を試して、下のコメントセクションでお知らせください。業界での機械学習の実用的な実装について知っていただければ幸いです。エドゥレカの 教師あり学習、教師なし学習、自然言語処理などのテクニックに習熟します。ディープラーニング、グラフィカルモデル、強化学習など、人工知能と機械学習の最新の進歩と技術的アプローチに関するトレーニングが含まれています。