機械学習とは何ですか?データから得られるインテリジェンス

機械学習の定義

機械学習は、データからモデルを自動的に作成するためのメソッドまたはアルゴリズムを含む人工知能のブランチです。明示的なルールに従ってタスクを実行するシステムとは異なり、機械学習システムは経験から学習します。ルールベースのシステムは毎回同じ方法でタスクを実行しますが(良くも悪くも)、アルゴリズムをより多くのデータに公開することで、トレーニングを通じて機械学習システムのパフォーマンスを向上させることができます。

機械学習アルゴリズムは、多くの場合に分けている教師(トレーニングデータが答えでタグ付けされている)と、教師なし(存在する可能性がある任意のラベルが学習アルゴリズムには表示されません)。教師あり機械学習の問題は、分類(住宅ローンの支払いを逃す確率などの非数値の回答を予測する)と回帰(マンハッタンストアで来月販売されるウィジェットの数などの数値の回答を予測する)にさらに分けられます。

教師なし学習はさらに、クラスタリング(ランニングシューズ、ウォーキングシューズ、ドレスシューズなどの類似したオブジェクトのグループの検索)、関連付け(コーヒーやクリームなどのオブジェクトの一般的なシーケンスの検索)、および次元削減(投影、特徴選択)に分けられます。、および特徴抽出)。

機械学習の応用

機械学習のアプリケーションについては日常的に耳にしますが、すべてが非合金の成功であるとは限りません。自動運転車は良い例であり、タスクは単純で成功したもの(駐車支援と高速道路の車線追跡)から複雑で複雑なもの(都市環境での完全な車両制御、これにより数人の死亡につながった)までさまざまです。

ゲームをプレイする機械学習は、チェッカー、チェス、将棋、囲碁で大成功を収め、人間の世界チャンピオンを打ち負かしました。自動言語翻訳は大部分が成功していますが、一部の言語ペアは他の言語ペアよりもうまく機能し、多くの自動翻訳は人間の翻訳者によって改善される可能性があります。

テキストへの自動音声認識は、主流のアクセントを持つ人々にはかなりうまく機能しますが、地域や国のアクセントが強い人々にはあまりうまく機能しません。パフォーマンスは、ベンダーが使用するトレーニングセットによって異なります。ソーシャルメディアの自動感情分析の成功率はかなり良好です。これは、トレーニングセット(コメントと数値スコアを組み合わせたAmazon製品の評価など)が大きく、アクセスしやすいためと考えられます。

履歴書の自動スクリーニングは物議を醸す分野です。Amazonは、トレーニングのサンプルバイアスが原因で、すべての求人応募を女性から格下げしたため、内部システムを撤回する必要がありました。

現在使用されている他のレジュメスクリーニングシステムには、法的に重要ではない方法で現在の従業員に「似ている」候補者をアップグレードさせるトレーニングバイアスがある可能性があります(たとえば、遊んだ高級英語圏の若い、白人、男性の候補者チームスポーツはスクリーニングに合格する可能性が高くなります)。マイクロソフトなどによる研究努力は、機械学習における暗黙のバイアスを排除することに焦点を当てています。

病理学および放射線科の画像の自動分類は、特定の種類の異常の検出のために病理学者および放射線科医を支援できる(ただし、置き換えることはできない)ところまで進んでいます。一方、顔識別システムは、(プライバシーを考慮して)うまく機能する場合は物議を醸し、女性や有色人種の場合は白人男性の場合ほど正確ではない傾向があります(トレーニング人口の偏りのため)。

機械学習アルゴリズム

機械学習は、データセットをモデルに変換するためのいくつかのアルゴリズムに依存しています。どのアルゴリズムが最適に機能するかは、解決している問題の種類、利用可能なコンピューティングリソース、およびデータの性質によって異なります。使用するアルゴリズムに関係なく、最初にデータをクリーンアップして調整する必要があります。

各種類の問題の最も一般的なアルゴリズムについて説明しましょう。

分類アルゴリズム

分類問題は、2つ以上のクラスからの選択を求める教師あり学習問題であり、通常は各クラスの確率を提供します。はるかに高いレベルのコンピューティングリソースを必要とするニューラルネットワークとディープラーニングを除外すると、最も一般的なアルゴリズムは、ナイーブベイズ、ディシジョンツリー、ロジスティック回帰、K最近傍法、およびサポートベクターマシン(SVM)です。ランダムフォレストなどのアンサンブル手法(モデルの組み合わせ)、他のバギング手法、およびAdaBoostやXGBoostなどのブースティング手法を使用することもできます。

回帰アルゴリズム

回帰問題は、モデルに数を予測するように求める教師あり学習問題です。最も単純で最速のアルゴリズムは線形(最小二乗)回帰ですが、それは平凡な結果をもたらすことが多いため、そこで停止するべきではありません。他の一般的な機械学習回帰アルゴリズム(ニューラルネットワークの略)には、ナイーブベイズ、ディシジョンツリー、K最近傍法、LVQ(学習ベクトル量子化)、LARSラッソ、エラスティックネット、ランダムフォレスト、AdaBoost、XGBoostが含まれます。回帰と分類の機械学習アルゴリズムには重複があることに気付くでしょう。

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

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

次元削減アルゴリズム

次元削減は、結果にほとんどまたはまったく影響を与えない変数を削除または結合するようにモデルに要求する教師なし学習の問題です。これは、分類または回帰と組み合わせて使用​​されることがよくあります。次元削減アルゴリズムには、多くの欠落値を持つ変数の削除、分散の少ない変数の削除、ディシジョンツリー、ランダムフォレスト、相関の高い変数の削除または結合、後方特徴除去、前方特徴選択、因子分析、およびPCA(主成分分析)が含まれます。

最適化手法

トレーニングと評価は、パラメーターの重みを最適化してデータのグラウンドトゥルースに最適な値のセットを見つけることにより、教師あり学習アルゴリズムをモデルに変換します。アルゴリズムは、オプティマイザーの最急降下法の変形に依存することがよくあります。たとえば、確率的勾配降下法(SGD)は、ランダム化された開始点から複数回実行される本質的に最急降下法です。

SGDの一般的な改良点は、運動量に基づいて勾配の方向を修正する要素を追加したり、データの1つのパス(エポックまたはバッチと呼ばれる)から次のパスへの進行に基づいて学習率を調整したりします。

ニューラルネットワークとディープラーニング

ニューラルネットワークは、生物学的視覚野のアーキテクチャに触発されました。ディープラーニングは、特徴を識別するために多数の「隠れた」層を含むニューラルネットワークで学習するための一連の手法です。非表示のレイヤーは、入力レイヤーと出力レイヤーの間にあります。各層は人工ニューロンで構成されており、多くの場合、シグモイドまたはReLU(Rectified Linear Unit)活性化関数を備えています。

フィードフォワードネットワークでは、ニューロンは別個の層に編成されます。1つの入力層、任意の数の非表示の処理層、および1つの出力層であり、各層からの出力は次の層にのみ送られます。

ショートカット接続のあるフィードフォワードネットワークでは、一部の接続が1つ以上の中間層を飛び越える可能性があります。リカレントニューラルネットワークでは、ニューロンは直接または次の層を介して間接的に自身に影響を与えることができます。

ニューラルネットワークの教師あり学習は、他の機械学習と同じように行われます。トレーニングデータのグループをネットワークに提示し、ネットワーク出力を目的の出力と比較し、エラーベクトルを生成し、エラーベクトルに基づいてネットワークに修正を適用します。 、通常はバックプロパゲーションアルゴリズムを使用します。修正を適用する前に一緒に実行されるトレーニングデータのバッチは、エポックと呼ばれます。

すべての機械学習と同様に、ニューラルネットワークの予測を別のテストデータセットと照合する必要があります。そうしないと、一般化された予測子になることを学ぶのではなく、入力のみを記憶するニューラルネットワークを作成するリスクがあります。

視覚のためのニューラルネットワーク分野におけるブレークスルーは、32x32ピクセル画像でデジタル化された手書き数字を認識するための7レベルの畳み込みニューラルネットワーク(CNN)であるYannLeCunの1998LeNet-5でした。より高解像度の画像を分析するには、ネットワークはより多くのニューロンとより多くの層を必要とします。

畳み込みニューラルネットワークは通常、畳み込み、プーリング、ReLU、完全に接続された損失層を使用して、視覚野をシミュレートします。畳み込み層は基本的に、多くの小さな重なり合う領域の積分を取ります。プーリング層は、ある種の非線形ダウンサンプリングを実行します。先に述べたReLUレイヤーは、非飽和活性化関数を適用しますf(x) = max(0,x)

完全に接続された層では、ニューロンは前の層のすべてのアクティベーションに完全に接続されています。損失層は、分類にSoftmaxまたはクロスエントロピー損失を使用するか、回帰にEuclidean損失を使用して、ネットワークトレーニングが予測ラベルと真のラベル間の偏差にペナルティを課す方法を計算します。

自然言語処理(NLP)は、ディープラーニングのもう1つの主要なアプリケーション領域です。Google Translateで対処される機械翻訳の問題に加えて、主要なNLPタスクには、自動要約、共参照解決、談話分析、形態学的セグメンテーション、固有表現抽出、自然言語生成、自然言語理解、音声部分のタグ付け、感情が含まれます。分析、および音声認識。

CNNに加えて、NLPタスクは、長短期記憶(LSTM)モデルを含むリカレントニューラルネットワーク(RNN)で対処されることがよくあります。

ディープニューラルネットワークに存在するレイヤーが多いほど、CPUでモデルをトレーニングするために必要な計算が多くなります。ニューラルネットワークのハードウェアアクセラレータには、GPU、TPU、FPGAが含まれます。

強化学習

強化学習は、通常は試行錯誤によって、ある価値を最大化する方法で環境に応答するようにアクターまたはエージェントをトレーニングします。これは、教師あり学習や教師なし学習とは異なりますが、多くの場合、それらと組み合わされます。

たとえば、DeepMindのAlphaGoは、囲碁(環境)のゲームのプレイ(アクション)を学ぶために、歴史的なゲームの大規模なデータセット(見習い学習)から人間の囲碁プレーヤーを模倣することを最初に学びました。次に、それ自体の独立したインスタンスに対して多数の囲碁ゲームをプレイすることにより、試行錯誤(強化学習)によってプレイを改善しました。

ロボット制御は、深層強化学習手法で攻撃されたもう1つの問題です。つまり、強化学習と深層ニューラルネットワークがあり、深層ニューラルネットワークはビデオフレームから特徴を抽出するようにトレーニングされたCNNであることがよくあります。

機械学習の使い方

機械学習モデルを作成するにはどうすればよいですか?データのクリーニングと調整から始め、機能エンジニアリングを続けてから、意味のあるすべての機械学習アルゴリズムを試します。視覚や自然言語処理などの特定のクラスの問題の場合、機能する可能性のあるアルゴリズムには深層学習が含まれます。

機械学習のためのデータクリーニング

野生のクリーンなデータのようなものはありません。機械学習に役立つようにするには、データを積極的にフィルタリングする必要があります。たとえば、次のようにします。

  1. データを確認し、欠落しているデータが多い列を除外します。
  2. データをもう一度見て、予測に使用する列(特徴選択)を選択します。これは、反復するときに変更したいものです。
  3. 残りの列にまだデータが欠落している行を除外します。
  4. 明らかなタイプミスを修正し、同等の回答をマージします。たとえば、米国、米国、米国、およびアメリカは、単一のカテゴリにマージする必要があります。
  5. 範囲外のデータを含む行を除外します。たとえば、ニューヨーク市内のタクシー旅行を分析している場合、大都市圏の境界ボックスの外側にあるピックアップまたはドロップオフの緯度と経度の行を除外する必要があります。

できることはもっとたくさんありますが、それは収集されたデータに依存します。これは面倒な場合がありますが、機械学習パイプラインでデータクリーニングの手順を設定すると、自由に変更して繰り返すことができます。

機械学習のためのデータのエンコードと正規化

マシン分類にカテゴリデータを使用するには、テキストラベルを別の形式にエンコードする必要があります。2つの一般的なエンコーディングがあります。

1つはラベルエンコーディングです。これは、各テキストラベル値が数値に置き換えられることを意味します。もう1つワンホットエンコーディングです。これは、各テキストラベル値がバイナリ値(1または0)の列に変換されることを意味します。ほとんどの機械学習フレームワークには、変換を行う関数があります。一般に、ワンホットエンコーディングが推奨されます。ラベルエンコーディングは、機械学習アルゴリズムを混乱させて、エンコードされた列が順序付けられていると見なす場合があるためです。