ディープラーニングと機械学習を混同しないでください。

ディープラーニングと機械学習を混同しないでください。

[[313942]]

[51CTO.com クイック翻訳] ご存知のとおり、ディープラーニングは人工知能のカテゴリーに属しますが、機械学習の特殊な形式です。プロセスの観点から見ると、機械学習とディープラーニングはどちらも、テスト データを使用してモデルをトレーニングすることから始まり、一連の最適化プロセスを経て、モデルに最適なデータの重みを見つけます。明らかに、どちらの方法も数値 (回帰) 問題と非数値 (分類) 問題の両方を処理できますが、物体認識や言語翻訳などの応用分野では、機械学習モデルよりもディープラーニング モデルの方が適していることが多いです。

機械学習を詳しく見る

機械学習アルゴリズムは、一般的に、教師あり(トレーニング データにさまざまな回答のラベルが付けられる)と教師なし(可能性のあるラベルはトレーニング アルゴリズムに表示されない)の 2 つのカテゴリに分類されます。

教師あり機械学習は、さらに分類(住宅ローンの支払いが遅れる確率など、数値以外の回答を予測する)と回帰(特定の人気商品の販売量など、数値の回答を予測する)に分けられます。

教師なし学習は、さらにクラスタリング(ランニングシューズ、ウォーキングシューズ、ドレスシューズなどの類似したオブジェクトのグループを見つける)、関連付け(コーヒーとクリームなどのオブジェクト間の共通ロジックを見つける)、次元削減(投影、特徴選択、抽出を実行する)に分けられます。

分類アルゴリズム

分類問題は教師あり学習のカテゴリに分類されます。 2 つ以上のクラスから選択し、最終的に各クラスに確率を割り当てる必要があります。最も一般的なアルゴリズムには、ナイーブベイズ、決定木、ロジスティック回帰、k 近傍法、サポートベクターマシン (SVM) などがあります。また、ランダム フォレストなどの他のアンサンブル メソッド (モデルの組み合わせ) や、AdaBoost や XGBoost などのブースティング メソッドを使用することもできます。

回帰アルゴリズム

回帰問題も教師あり学習の範疇に入ります。モデルが数値を予測できることが必要です。最も単純かつ高速なアルゴリズムは線形(最小二乗)回帰です。しかし、通常は不正確な結果しか得られません。その他の一般的な機械学習回帰アルゴリズム (ニューラル ネットワーク以外) には、Naive Bayes、Decision Tree、k-Nearest Neighbor、LVQ (学習ベクトル量子化)、LARS (最小角回帰)、Lasso、Elastic Net、Random Forest、AdaBoost、XGBoost などがあります。明らかに、回帰と分類の機械学習アルゴリズムには重複する部分があります。

クラスタリングアルゴリズム

クラスタリング問題は、教師なし学習のカテゴリに分類されます。モデルに類似したデータ ポイントのグループを見つけるように要求します。最も人気のあるアルゴリズムの 1 つは K-Means クラスタリングです。その他の一般的なアルゴリズムには、平均シフト クラスタリング、DBSCAN (ノイズを含むアプリケーションの密度ベースの空間クラスタリング)、GMM (ガウス混合モデル)、HAC (階層的凝集型クラスタリング) などがあります。

次元削減アルゴリズム

次元削減問題も教師なし学習のカテゴリに分類されます。結果にほとんど影響を与えない、またはまったく影響を与えない変数をモデルで削除または組み込む必要があります。多くの場合、分類や回帰と組み合わせて使用​​されます。一般的な次元削減アルゴリズムには、欠損値の多い変数の削除、分散の低い変数の削除、決定木、ランダム フォレスト、相関の高い変数の削除またはマージ、後方特徴除去、前方特徴選択、因子分析、PCA (主成分分析) などがあります。

さまざまな最適化手法

実際の状況に最も近い値のセットを見つけるには、トレーニングと評価を通じてパラメータの重みを最適化し、最終的に教師あり学習アルゴリズムを適切なモデルに変換する必要があります。実際には、これらのアルゴリズムの最適化は、ランダムな開始点から複数の最急降下法を実行する確率的勾配降下法などの最急降下法のバリエーションに依存することがよくあります。

確率的勾配降下法の一般的な改善には、運動量に基づいて勾配の方向係数を変更することや、あるデータ (またはエポックまたはバッチ) から次のデータへの学習率の進行を調整することなどがあります。

データクリーニング

乱雑なデータを機械学習に役立てるためには、次のようなデータを包括的にフィルタリングする必要があります。

1. まずデータを確認し、欠損データが多い列を除外します。

2. データを再度確認し、予測する必要がある列を選択します(つまり、特徴選択)。これも、繰り返していくうちに変更したくなるかもしれません。

3. 残りの列にデータが欠落している行を除外します。

4. 明らかなスペルミスを修正し、対応する回答を組み込みます。たとえば、US、US、USA、America はすべて 1 つのカテゴリにまとめる必要があります。

5. 範囲外のデータを含む行を除外します。たとえば、ニューヨーク市内のタクシー移動を分析する場合、市外へ移動する地理座標を含む行を除外する必要があります。

もちろん、収集するデータの種類に応じて、必要に応じて他の手順を追加することもできます。必要に応じて変更して再利用できるように、機械学習パイプラインでいくつかのデータクリーニング手順を設定することもできます (https://www.infoworld.com/article/3198252/data-in-intelligence-out-machine-learning-pipelines-demystified.html を参照)。

データのエンコードと標準化

データを分類するには、テキスト ラベルを別の形式にエンコードする必要があります。一般的なタイプは 2 つあります。

1 つはラベル エンコーディングで、各テキスト ラベルの値を数字に置き換えます。もう 1 つはワンホット エンコーディングで、各テキスト ラベル値をバイナリ値 (1 または 0) の列に置き換えます。一般的に、ラベル エンコーディングによって機械学習アルゴリズムが、エンコードされた列がすでに連続した列であると誤って認識することがあるため、ワンホット エンコーディングが推奨されます。

数値データを機械回帰に適したものにするには、通常、データを正規化する必要があります。そうしないと、より広い範囲の数値が、固有ベクトル間のユークリッド距離(m 次元空間内の 2 点間の実際の距離)を支配する可能性があり、この影響が他のフィールドを犠牲にして増幅され、急峻な最適化が収束するのが困難になる可能性があります。現在、機械学習におけるデータの正規化と標準化には、最小値正規化、平均正規化、単位長さ拡張など、さまざまな方法があります。このプロセスは、機能スケーリング (https://en.wikipedia.org/wiki/Feature_scaling) とも呼ばれることがあります。

機能エンジニアリング

特性とは、観察される現象の測定可能な特性です。 「特徴」の概念は通常、説明変数に関連付けられます。ここでの説明変数は、線形回帰などの統計手法でよく使用されます。特徴ベクトルは、単一行のすべての特徴を数値ベクトルに結合します。

特徴選択の秘訣は、問題を説明できる独立変数の最小セットを選択することです。 2 つの変数の相関性が高い場合は、それらを 1 つの機能に結合するか、いずれか 1 つを削除します。主成分分析を実行すると、相関変数を線形独立変数のセットに変換できる場合があります。

実際のアプリケーションでは、簡単な方法で新しい特徴を構築したり、特徴ベクトルの次元を削減したりできます。たとえば、死亡年から誕生年を引くと死亡時の年齢が得られ、これが平均寿命と死亡率の分析における主要な独立変数となります。もちろん、他の場合には、機能の構築はそれほど明白ではありません。

データの分割

教師あり機械学習の一般的なアプローチは、データセットをトレーニング、検証、テスト用のサブセットに分割することです。これを実現する方法の 1 つは、データの 80% をトレーニング データセットに割り当て、残りの 10% を検証データセットとテスト データセットに割り当てることです。現在、トレーニングのほとんどはデータセットで行われています。各エポックの終わりに、検証データセットに対して予測を行います。

検証データセット内のエラーは、停止条件を識別してハイパーパラメータの調整を促進するために使用できるだけでなく、ターゲット モデルがトレーニング データに過剰適合しているかどうかを判断するのにも役立ちます。

テスト データセットの予測は通常、最終モデルで実行されます。テスト データセットがトレーニングに一度も使用されていない場合は、ホールドアウト データセットと呼ばれることがあります。

別の一般的なデータ分割スキームとして、クロス検証では、データセット全体をトレーニング データセットと検証データセットに繰り返し分割できます。

機械学習ライブラリ

Python では、Spark MLlib (https://www.infoworld.com/article/3141605/review-spark-lights-up-machine-learning.html) と Scikit-learn (https://www.infoworld.com/article/3158509/review-scikit-learn-shines-for-simpler-machine-learning.html) はどちらも機械学習ライブラリとして適しています。 R 言語では、一般的な機械学習パッケージには、CARAT、randomForest、e1071、KernLab などがあります。 Java では、Java-ML、RapidMiner、Weka を使用できます。

ディープラーニングの詳しい説明

ディープラーニングは、トレーニングされたモデルの入力と出力の間に複数の隠れ層がある機械学習のアプリケーションです。ほとんどの議論では、ディープラーニングはディープラーニング技術を使用するニューラル ネットワークを意味します。もちろん、ニューラル ネットワークに加えて、ディープラーニングでは他の種類の隠し層を実装するためにいくつかのアルゴリズムも使用されます。

「人工」ニューラル ネットワークの概念は古くからある概念です。これは、相互接続されたしきい値スイッチで構成され、動物の脳や神経系 (網膜など) のようなパターンを認識することを学習できる人工ニューロン ネットワークを形成します。

バックプロパゲーション

学習は基本的に、トレーニング中に 2 つのニューロンが同時に活性化されたときに、それらの間の接続を強化することによって行われます。現在のニューラル ネットワーク ソフトウェアでは、エラー バックプロパゲーション (またはバックプロパゲーション、BP) と呼ばれるルールを使用して、ニューロン間の接続の重みを増やすのが最も一般的な方法です。

人工ニューラルネットワークのニューロン

各ニューロンには伝播機能があります。この関数は、接続されたニューロンの出力に重みを付けて変換します。伝播関数は出力を活性化関数に渡し、活性化関数は入力がしきい値を超えたときにトリガーされます。

ニューラルネットワークにおける活性化関数

1940 年代から 1950 年代にかけて、人工ニューロンではパーセプトロンと呼ばれる 1 ステップの活性化関数が一般的に使用されていました。今日のニューラル ネットワークでは、ロジスティック関数、シグモイド関数、双曲正接関数、ReLU (正規化線形単位) などの滑らかな活性化関数が導入されています。このうち、ReLU は「学習率を高く設定しすぎると、トレーニング中にニューロンが『死んで』しまう」という問題があるものの、高速収束には依然として最適な選択肢です。

活性化関数の出力は、追加の整形のために出力関数に渡すことができます。ただし、出力関数は通常恒等関数であるため、活性化関数の出力は下流に接続されたニューロンに直接渡されます。

ニューラルネットワークトポロジー

一般的なニューラル ネットワーク トポロジは次のとおりです。

1. フィードフォワード ネットワークでは、ニューロンは入力層、n 個の隠れた処理層、および出力層に分けられます。各レイヤーの出力は次のレイヤーへの入力としてのみ使用されます。

2. ショートカット接続を持つフィードフォワード ネットワークでは、一部の接続で 1 つ以上の中間層をスキップできます。

3. 再帰型ニューラル ネットワークでは、ニューロンは直接的または間接的に次の層を介して自分自身に影響を与えることができます。

ニューラルネットワークのトレーニング

ニューラル ネットワークの教師あり学習は、他の機械学習と同様です。つまり、トレーニング データ セットを使用してネットワークを表現し、ネットワーク出力を期待される出力と比較してエラー ベクトルを生成し、エラー ベクトルに基づいてネットワークを変更します。修正が適用される前に一緒に実行されるトレーニング データのバッチは、エポックと呼ばれます。

実装の詳細では、バックプロパゲーションは、モデルの重みとバイアスの勾配に関するエラー (またはコスト) 関数を使用して、エラーを最小限に抑える正しい方向を見つけます。したがって、アプリケーションの正確さは、最適化アルゴリズムの変数と学習率に依存します。前述のように、この変数は通常、収束を確実にし、ReLU ニューロンが「死ぬ」のを回避するのに十分小さい必要があります。

ニューラルネットワークオプティマイザー

通常、ニューラル ネットワークのオプティマイザーは、何らかの形式の勾配降下法を使用してバックプロパゲーションを実行します。同時に、ランダムに選択されたミニバッチのみを最適化したり(確率的勾配降下法)、勾配に対して運動量補正を使用したりといった、局所最小値に陥ることを回避するためのメカニズムも使用します。さらに、一部の最適化アルゴリズム (AdaGrad、RMSProp、Adam など) では、勾配の履歴を参照してモデル パラメーターの学習率を調整します。

すべての機械学習と同様に、ニューラル ネットワークの予測を別の検証データセットと照合する必要があります。これを行わないと、入力情報のみを記憶し、学習して一般化された予測子になることができないニューラル ネットワークが作成される可能性があります。

ディープラーニングのさまざまなアルゴリズム

実際の問題に対するディープ ニューラル ネットワークは、12 を超える隠し層で構成され、そのトポロジは複雑になることも単純なこともあります。一般的に、ネットワークの層が多いほど、認識できる特徴も多くなりますが、計算に時間がかかり、トレーニングが難しくなるという欠点があります。

畳み込みニューラル ネットワーク (CNN) は、マシン ビジョンなどのアプリケーションでよく使用されます。ネットワークは通常、畳み込み、プーリング、ReLU、完全接続、およびドロップアウト層を使用して視覚皮質をシミュレートします。このうち、畳み込み層は主に多数の小さな重なり合う領域を統合します。プーリング層は、非線形ダウンサンプリングの形式を実行します。 ReLU 層は非飽和活性化関数 f(x) = max(0,x) を使用します。完全に接続された層では、ニューロンは前の層のすべてのアクティベーションに接続されます。損失レイヤーは、分類の場合は Softmax またはクロスエントロピー損失関数、回帰の場合はユークリッド損失関数を使用して、ネットワーク トレーニングが予測ラベルと実際のラベル間の偏差に「ペナルティを課す」方法を計算する役割を担います。

リカレント ニューラル ネットワークは、自然言語処理 (NLP)、シーケンス処理、長短期記憶 (LSTM) ネットワーク、注意ベースのニューラル ネットワークでよく使用されます。フィードフォワード ニューラル ネットワークでは、情報は隠れ層を通って入力から出力に流れます。これにより、ネットワークは事実上、一度に 1 つの状態のみを処理するように制限されます。

リカレント ニューラル ネットワーク (RNN) では、情報は繰り返しサイクルを通じて渡され、ネットワークは最新の出力のみを記憶して、シーケンスと時系列を分析できます。もちろん、RNN には、勾配爆発 (クランプによって簡単に修正可能) と勾配消失 (修正はそれほど簡単ではありません) という 2 つの一般的な問題があります。

LSTM では、ネットワークは忘却とゲーティングを使用して以前の情報の重みを変更し、それを記憶することができます。このような長期および短期の記憶を通じて、ネットワークは勾配消失の問題を解決します。同時に、LSTM は過去の数百の入力のシーケンスを処理することもできます。

注意モジュールは、入力ベクトルに重みを適用する一般的なゲートです。階層型ニューラル アテンション エンコーダーは、複数層のアテンション モジュールを使用して、過去の何千もの入力を処理します。

ニューラル ネットワークではありませんが、ランダム決定フォレスト (RDF) もさまざまな分類および回帰問題に役立ちます。複数のレベルで構成される RDF は、単一のツリーの予測統計平均 (通常は分類モードまたは回帰平均) を出力できます。ランダム側では、RDF は単一のツリーに対してガイド付き集約 (バギングとも呼ばれます) を使用し、ツリーの機能をランダムにサブセット化します。

XGBoost (eXtreme Gradient boost) もディープ ニューラル ネットワークではありませんが、スケーラブルなエンドツーエンドのツリーベースの拡張システムです。多くの機械学習の課題において最先端の結果を達成しました。 RDF とは異なり、勾配ツリー ブースティングは単一の決定木または回帰木から始まります。最適化を通じて、後続のツリーは前のツリーの残余に基づいて構築されます。

現在、業界で認められている最高の Python ディープラーニング フレームワークには、TensorFlow、Keras、PyTorch、MXNet などがあります。 Deeplearning4j は、最高の Java ディープラーニング フレームワークの 1 つです。 ONNX と TensorRT は、ディープラーニング モデル用のランタイムです。

ディープラーニングと機械学習の比較

一般的に言えば、従来の(非ディープ)機械学習アルゴリズムは、ディープラーニングアルゴリズムよりもはるかに高速にトレーニングして予測を行うことができます。クラシック モデルをトレーニングするには、1 つ以上の CPU で十分です。ディープラーニング モデルでは通常、トレーニングと大規模な展開に GPU、TPU、FPGA などのハードウェア アクセラレータが必要です。これらがなければ、このようなモデルのトレーニングには数か月かかる可能性があります。

自然言語処理はディープラーニングの分野であり、言語翻訳、自動要約、協調参照解決、談話分析、形態素セグメンテーション、固有表現認識、自然言語生成、自然言語理解、品詞タグ付け、感情分析、音声認識などが含まれます。

ディープラーニングのもう一つの主要な応用分野は画像分類です。これには、位置決めによる画像分類、ターゲット検出、ターゲット分割、画像スタイル転送、画像カラー化、画像再構成、画像超解像、画像合成などが含まれます。

さらに、ディープラーニングは分子間の相互作用を予測するために効果的に使用されており、製薬会社による新薬の設計、素粒子の探索、人間の脳の 3D 顕微鏡画像の自動分析と構築に役立っています。

原題: ディープラーニングと機械学習: 違いを理解する、著者: Martin Heller

[51CTOによる翻訳。パートナーサイトに転載する場合は、元の翻訳者と出典を51CTO.comとして明記してください]

<<:  Sogouの技術者が在宅勤務中にサーバーを誤操作し、誤って「マグニチュード12の地震警報」を発令した。

>>:  デジタルホーム: IoTとAIで家電をもっとスマートに

ブログ    
ブログ    
ブログ    

推薦する

機械学習の基礎チャート: 概念、原則、歴史、トレンド、アルゴリズム

1. 機械学習の概要1. 機械学習とは何ですか?機械は大量のデータを分析して学習します。たとえば、猫...

人工知能開発の重要な要素と気候変動への影響

人工知能は世界的な流行語となり、ほぼすべての企業のデジタル変革計画に不可欠な要素となっています。 A...

アリババのナレッジグラフが完全公開、最先端の人工知能技術が雲奇カンファレンスで輝く

現在のテクノロジーのホットスポットとして、近年、多くの国内主流テクノロジー企業が人工知能、ナレッジグ...

AIがあなたが何歳で死ぬかを予測?トランスフォーマーの「占い」がネイチャーのサブジャーナルに掲載され、事故死の予測に成功

AIは本当に科学的に占いができるんですね! ?デンマーク工科大学(DTU)の研究者らは、各人の死亡の...

一般的な MapReduce データマイニングアルゴリズム: 平均と分散

平均と分散のマップ削減一連の数値の平均と分散の式は誰にとっても明らかだと思います。マップ関数とリデュ...

...

プログラマのための基本アルゴリズム: 再帰の説明

[[346111]]序文再帰は非常に重要なアルゴリズムの考え方です。フロントエンド開発者であっても、...

金融ビジネスイノベーションを実現する自社開発グラフデータベースに基づくナレッジグラフ実装

人工知能の急速な発展に伴い、ナレッジグラフの実装と商業化の可能性は継続的に強化され、社内のデータ分析...

1 つの記事でポイント クラウドと自動車用 LiDAR の開発を理解しましょう。

01 車載レーザーレーダーのレーザー点群ポイントクラウド技術により、LIDAR イメージングは​​...

AIエンジニアの年収はわずか50万元程度で、年間100万元を稼ぐには長年の経験が必要です。

[[259190]]近年、人工知能技術のあらゆる分野への応用がますます普及し、関連する専門的・技術...

...

旅の途中を突破せよ! OpenAIが秘密裏に新プラットフォームをテスト

著者: 徐潔成校正:Yun Zhao 「使ってみて、もうMidjourneyには興味がなくなった」。...

IoTとAIはビジネスの生産性を向上させる完璧なパートナーです

今日のハイテクな世界では、何百万ものデバイスが相互作用し、データを交換し、貴重な洞察を重要な行動方針...