Main Content

MATLAB の機械学習

機械学習とは

"機械学習" とは、人間にとっては自然である経験からの学習を行うようコンピューターに教えることです。機械学習アルゴリズムでは、モデルとしてあらかじめ定められている方程式に頼ることなく、コンピューター的な方法を使用してデータから直接情報を "学習" します。このアルゴリズムは、学習に使用できるサンプルの数が増えるにつれて、性能が適応的に向上します。

機械学習では、既知の入力および出力データをモデルに学習させて将来の出力を予測できるようにする教師あり学習 (分類や回帰など) と、入力データの隠されたパターンまたは内在する構造を探す教師なし学習 (クラスタリングなど) という 2 種類の手法を使用します。

Categorization of machine learning techniques

教師あり機械学習の目的は、不確定要素が存在する状況で証拠に基づいて予測を行うモデルを構築することです。教師あり学習アルゴリズムでは、既知の入力データのセットとそのデータに対する既知の応答 (出力) を使用して、新しいデータに対する応答を適切に予測するようモデルに学習をさせます。教師あり学習では、分類および回帰という手法を使用して予測モデルを構築します。

  • "分類" 手法では、電子メールが本物であるかスパムであるかや腫瘍が癌であるか良性であるかなど、カテゴリカル応答を予測します。分類モデルは、入力データをカテゴリに分類します。代表的な応用例には、医用画像、イメージと音声の認識、信用評価などがあります。

  • "回帰" 手法では、温度の変化や電力需要の変動など、連続的な応答を予測します。代表的な応用例には、電気負荷の予測やアルゴリズム トレードなどがあります。

教師なし学習では、データの隠されたパターンまたは内在する構造を探します。これは、ラベル付きの応答がない入力データから構成されるデータセットから推論を行うために使用されます。"クラスタリング" は、最も一般的な教師なし学習手法です。これは、データの隠されたパターンまたはグループを探すために探索的データ分析で使用されます。クラスタリングの応用例には、遺伝子配列分析、市場調査、物体認識などがあります。

正しいアルゴリズムの選択

教師ありおよび教師なし機械学習アルゴリズムには多くの種類があり、それぞれが異なるアプローチで学習を行うので、正しいアルゴリズムを選択することは困難に思われるかもしれません。最適な方法や汎用の方法はありません。正しいアルゴリズムを見つけることは、ある程度は試行錯誤に基づきます。非常に経験豊富なデータ サイエンティストであっても、あるアルゴリズムが適切であるかどうかは実際に試してみないと判断できません。非常に柔軟なモデルでは、ノイズであるかもしれない小さい変動をモデル化することによりデータを過適合させる傾向があります。単純なモデルは、解釈は容易ですが、精度が低くなる可能性があります。したがって、正しいアルゴリズムを選択するには、モデルの速度、精度、複雑さなど、あるメリットと別のメリットのトレードオフが必要になります。試行錯誤は機械学習の中心であり、あるアプローチまたはアルゴリズムが適切ではない場合は別のものを試します。MATLAB® には、さまざまな機械学習モデルを試して最適なものを選択するために役立つツールが用意されています。

Examples of machine learning algorithms. Classification algorithms include support vector machines, discriminant analysis, naive Bayes, nearest neighbor, and neural networks. Regression algorithms include linear regression, GLM, SVR, GPR, ensemble methods, decision trees, and neural networks. Clustering algorithms include k-means, k-medoids, fuzzy c-means, hierarchical, Gaussian mixture, hidden Markov model, and neural networks.

機械学習タスクの解決に役立つ MATLAB のアプリおよび関数については、次の表を参照してください。機械学習タスクには、アプリを使用する方が簡単になるものもあれば、コマンドライン機能を使用するものもあります。

タスクMATLAB のアプリと関数製品詳細
カテゴリカル応答を予測するための分類

分類学習器アプリを使用すると、選択したモデルに自動的に学習をさせ、最適なものを選択するために役立ちます。スクリプトで動作する MATLAB コードを生成できます。

その他のオプションについては、コマンドライン インターフェイスを使用できます。

Statistics and Machine Learning Toolbox™

分類学習器アプリにおける分類モデルの学習

分類関数

連続応答を予測するための回帰

回帰学習器アプリを使用すると、選択したモデルに自動的に学習をさせ、最適なものを選択するために役立ちます。スクリプトおよび他の関数オプションで動作する MATLAB コードを生成できます。

その他のオプションについては、コマンドライン インターフェイスを使用できます。

Statistics and Machine Learning Toolbox

回帰学習器アプリにより回帰モデルに学習をさせる

回帰関数

クラスタリングクラスター解析関数を使用します。Statistics and Machine Learning Toolboxクラスター分析と異常検出
信用評価などの金融工学タスク信用リスク分析をモデル化するためのツールを使用します。Financial Toolbox™ および Risk Management Toolbox™Credit Risk (Financial Toolbox)
分類と回帰のためのニューラル ネットワークによる深層学習事前学習済みのネットワークと関数を使用して、畳み込みニューラル ネットワークに学習をさせます。Deep Learning Toolbox™MATLAB による深層学習 (Deep Learning Toolbox)
顔認識、動き検出および物体検出イメージ処理およびコンピューター ビジョン用の深層学習ツールを使用します。Deep Learning Toolbox および Computer Vision Toolbox™認識、オブジェクト検出、およびセマンティック セグメンテーション (Computer Vision Toolbox)

次の系統的な機械学習ワークフローは、機械学習の問題に対処するために役立ちます。ワークフロー全体を MATLAB で完了させることができます。

Machine learning workflow. Step 1: Access and load the data. Step 2: Preprocess the data. Step 3: Derive features using the preprocessed data. Step 4: Train models using the features derived in step 3. Step 5: Iterate to find the best model. Step 6. Integrate the best-trained model into a production system.

最適な学習済みモデルをプロダクション システムに組み込むため、MATLAB Compiler™ を使用して Statistics and Machine Learning Toolbox の機械学習モデルを展開できます。多くのモデルについて、MATLAB Coder™ を使用して予測用の C コードを生成できます。

分類学習器アプリにおける分類モデルの学習

教師あり機械学習を使用してデータを分類するようにモデルに学習をさせるには、分類学習器アプリを使用します。このアプリでは、さまざまな分類器を使用する教師あり機械学習を対話的に調べることができます。

  • 選択したモデルに自動的に学習をさせて、最適なモデルの選択に役立てます。モデルのタイプには、決定木、判別分析、サポート ベクター マシン、ロジスティック回帰、最近傍、単純ベイズ、カーネル近似、アンサンブル、およびニューラル ネットワークの各分類器があります。

  • データの探索、検証方式の指定、特徴量の選択、および結果の可視化を行います。既定では、過適合を防ぐため交差検証が適用されます。あるいは、ホールドアウト検証を選択できます。検証結果は、データに最適なモデルを選択するために役立ちます。プロットと性能尺度には、検証したモデルの結果が反映されます。

  • 新しいデータについて予測を行うためにワークスペースにモデルをエクスポートします。このアプリでは、検証方式が指定されたモデルだけでなく、データ全体に対するモデルの学習が行われます。エクスポートするのは、完全なモデルです。

  • スクリプトを作成するための MATLAB コードをアプリから生成し、新しいデータで学習をさせ、巨大なデータセットを操作し、将来の分析用にコードを変更します。

詳細については、分類学習器アプリにおける分類モデルの学習を参照してください。

Classification Learner app

その他のオプションについては、コマンドライン インターフェイスを使用できます。分類を参照してください。

回帰学習器アプリにより回帰モデルに学習をさせる

教師あり学習を使用して連続データを予測するようにモデルに学習をさせるには、回帰学習器アプリを使用します。このアプリでは、さまざまな回帰モデルを使用する教師あり機械学習を対話的に調べることができます。

  • 選択したモデルに自動的に学習をさせて、最適なモデルの選択に役立てます。モデルのタイプには、線形回帰モデル、回帰木、ガウス過程回帰モデル、サポート ベクター マシン、カーネル近似モデル、回帰木のアンサンブル、およびニューラル ネットワークの各回帰モデルがあります。

  • データを調査し、特徴量を選択して、結果を可視化します。分類学習器と同様、回帰学習器は既定で交差検証を適用します。結果と可視化には、検証したモデルが反映されます。この結果を使用して、データに最適なモデルを選択します。

  • 新しいデータについて予測を行うためにワークスペースにモデルをエクスポートします。このアプリでは、検証方式が指定されたモデルだけでなく、データ全体に対するモデルの学習が行われます。エクスポートするのは、完全なモデルです。

  • スクリプトを作成するための MATLAB コードをアプリから生成し、新しいデータで学習をさせ、巨大なデータセットを操作し、将来の分析用にコードを変更します。

詳細については、回帰学習器アプリにより回帰モデルに学習をさせるを参照してください。

Regression Learner app

その他のオプションについては、コマンドライン インターフェイスを使用できます。回帰を参照してください。

深層学習用のニューラル ネットワークの学習

Deep Learning Toolbox を使用すると、分類、回帰、特徴抽出および転移学習について、畳み込みニューラル ネットワークによる深層学習を行えます。このツールボックスは、深層ニューラル ネットワークのレイヤーを作成および相互接続するためのシンプルな MATLAB コマンドを提供しています。高度なコンピューター ビジョン アルゴリズムやニューラル ネットワークに関する幅広い知識がない場合でも、例と事前学習済みのネットワークにより MATLAB を容易に深層学習用に使用できます。

詳細については、MATLAB による深層学習 (Deep Learning Toolbox)を参照してください。

関連するトピック

外部の Web サイト