Microsoft Azure

Machine Learning Studio の概要

James McCaffrey

コード サンプルのダウンロード

「機械学習」(ML) という用語の意味については、明確な統一定義はありません。個人的には、データを使用して予測を支援するシステムだと考えています。たとえば、スーパーボウルでどのチームが勝利するかを予測したり、新しい顧客がどのグループ (群) の人々と最も類似性を持つかを予測することもあります。

C# または別のプログラミング言語を使用して、ゼロから ML システムを作成するのも魅力的ですが、時間がかかり、専門知識が必要となり、多くの場合は困難を伴います。新しい Microsoft Azure ML Studio (2014 年 7 月リリース) により、ML システムをより簡単、迅速、および効率的に作成することができるようになります。今回は、ML Studio を入手して実行する過程を詳しい例を使って紹介します。

今回の目標を理解するため、図 1 のスクリーンショットをご覧ください。この画像は、ML Studio で行った実験の完成形です。この実験の目標は、米国議会下院議員がどちらの政党 (民主党または共和党) に所属するかをそれまでの投票傾向に基づいて予測することです。

 完成した Azure ML Studio の実験
図 1 完成した Azure ML Studio の実験

画像上部の情報から、ML Studio は Internet Explorer で実行する Web ベースのアプリケーションであることが分かります。より厳密に言えば、ML Studio は Microsoft Azure Machine Learning サービスのフロント エンドです。説明が簡単になるように、今回はクライアント フロント エンドにも Azure バックエンドにも「ML Studio」という言葉を使用します。アドレス バーから、内部 URL "passau.cloupapp.net" を使用しているのが分かります。ML Studio プロジェクトは開発中 "Passau" というコードネームが付けられていたので、ドキュメントには "Passau" という言葉が頻繁に使用されているのを目にします。今回の記事が公開されるころには、ML Studio のパブリック URL を azure.microsoft.com で利用できるようになる予定です。

ML Studio を使用して ML システムを作成することと、Visual Studio を使用して実行可能プログラムを作成することには似ている部分もありますが、ここではあまり同じように考えないことをお勧めします。Visual Studio を使用する場合、Visual Studio を購入しても、無料試用版を使用してもかまいません。ML Studio を使用する場合、このサービスを利用するのに料金がかかります。ただし、無料試用版の提供も予定されています。サービスの細部は頻繁に変更されることは間違いありません。個人的には、こうした絶え間ない変更が、クラウドベースのシステムで作業する場合の大きな問題点だと感じています。製品をデスクトップにインストールして、どの変更を適用するかを自分で判断することが重要です。クラウド コンピューティングという素晴らしい新世界では、作業環境に対する変更を完全に制御することは、もはやできないことを覚悟しなければなりません。

ML Studio には 3 つの主要作業領域があります。左側には、[Saved Datasets] (保存済みのデータセット)、[Data Input and Output] (データ入力と出力)、および [Machine Learning] (機械学) という項目があるのが分かります。これらはカテゴリです。このカテゴリを展開すると特定の項目が表示され、中央のデザイン サーフェイスにドラッグして配置することができます。これは、UI コントロールをデザイン サーフェイスにドラッグして配置する Visual Studio ツールボックスに似ている部分があります。ただし、ML Studio のモジュールは、通常はメソッドとして考えられるもの (ある種の ML タスクを実行する事前に記述したコード) を表します。

ML Studio の中央の領域は[experiment] (実験) と呼ばれ、Visual Studio エディターと同様に、作業の大部分をここで行います。今回の実験には「Voting Experiment」というタイトルを付けました (図 1 参照)。実験のタイトルは、Visual Studio ソリューションの名前とほぼ同じです。長方形のボックスは、デザイン サーフェイスにドラッグして配置したモジュールです。たとえば、"Voting data" (投票データ) というラベルのモジュールはデータ ソースそのものを指し、文字の一部が途切れている "Logistic Regression Binary Classification Model" (ロジスティック回帰バイナリ分類モデル) というラベルのモジュールは、使用する ML アルゴリズムの中核となります。

曲線はモジュールどうしの入出力の流れを示します。正直に言うと、開発者としての最初の印象は「曲線はすばらしいが、好きではない。実際のプログラミングにはなじまない」と感じ、全面的に支持できませんでした。しかし、ML Studio のビジュアル スタイルを使用したシステムの作成にすぐに慣れ、今では ML Studio の大いなる支持者になりました。

ML Studio の右側には、中央の作業領域で現在選択しているモジュールの詳細が表示されます。図 1 では、[Logistic Regression Binary Classification Model] (ロジスティック回帰バイナリ分類モデル) モジュールが選択され (太枠表示)、右側の領域の情報は、値 1.0E-07 が設定された [Optimization tolerance] (最適化の公差) など、選択されているモジュールの詳細を表します。右側領域の情報は、選択されているモジュール (メソッド) のパラメーター値 (引数の値) と考えてかまいません。

実験を実行するには、ツール下部の [Run] (実行) アイコンをクリックします。これは、Visual Studio で F5 キーを押して、デバッガーでプログラムを実行するのとほぼ同じです。ML Studio は、各モジュールの処理完了時に、緑色のチェックマークをモジュール内部に表示します。[Save] (保存) アイコンもありますが、ML Studio の既定の設定では、開発中の実験は数秒ごとに自動的に保存されます。これは、クラウドでの作業はネットワーク接続が切れるといった問題が発生するおそれがあるためです。

ここからは、図 1 に示す実験の作成過程を紹介しながら、読者がこの実験を再現できるようにします。これにより、ML Studio を独自に調査したり、初期リリースのドキュメントを参照するための基礎固めを行います。今回は、ML Studio と Visual Studio の類似点や専門用語を理解するために、初級以上のプログラミング スキルがあることが前提になりますが、ML Studio や機械学習の知識は問いません。

結果の出力

ML Studio を使用したことがないと、おそらく、実験の出力場所がどこになるかを疑問に思うでしょう。通常の ML Studio の実験では、多くの場合、複数の出力が得られることになります。今回の最終出力を図 2 に示します。画像が見やすくなるように、中央の部分を少し省略しています。

Azure ML Studio の実験結果
図 2 Azure ML Studio の実験結果

このような結果を表示するには、最も右側の [Score Model] (採点モデル) 実験モジュールを右クリックして、コンテキスト メニューの [Visualize] (表示) オプションをクリックします。これにより、上記のように結果を含む別ウィンドウが開きます。この画像の下部には、以下のような出力が表示されています。

unknown-party  y  n  y  n . . y  n  democrat    0.0013
unknown-party  y  y  y  y . . n  n  republican  0.7028

この出力は、予測モデル作成後に、2 つの新しいデータ項目が指定されたことを示しています。[unknown party] (不明な政党) という最初のデータ項目は、障碍者に関係する法案に "yes" (賛成) と投票し (注意深く見ると列に見出しがあります)、水道事業に関係する法案に "no" (反対) と投票し (以下略)、最後に南アフリカ関係の法案に "no" (反対) と投票した仮想議員のデータです。ML Studio によって作成されたモデルは、この仮想議員を [Democrat] (民主党) と予測しています。2 つ目のデータ項目は、最初の 8 つの法案に "yes" (賛成) と投票し、次の 8 つの法案に "no" (反対) と投票した仮想議員のデータで、モデルはこの仮想議員を Republican (共和党) と予測しています。

データのセットアップ

デモの実験目標を理解すると、実験の作成方法の理解も容易になります。ML Studio のすべての実験は、いくつかのデータを用意するところから始まり、1 つ以上の質問に対する回答を得ることであると言ってもかまいません。今回のデモ データは、「Congressional Voting Records Data Set」と呼ばれる有名な (少なくとも ML コミュニティではよく知られている) 一連のベンチマーク データです。このファイルの主な保存場所がカリフォルニア大学アーバイン校によって運営されているサーバーなので、「UCI Voting Data Set」と呼ばれることもあります。手を加えないデータそのものは、「house-votes-84.data」というシンプルなテキスト ファイルで、インターネットを検索すれば見つかります。

手を加えていないデータの先頭 4 行を次に示します。

republican,n,y,n,y,y,y,n,n,n,y,?,y,y,y,n,y
republican,n,y,n,y,y,y,n,n,n,n,n,y,y,y,n,?
democrat,?,y,y,?,y,y,n,n,n,n,y,n,y,y,n,n
democrat,n,y,y,n,?,y,n,n,n,n,y,n,y,n,n,y
...

コンマ区切りのデータ行は合計 435 行あり、1 行は 1984 年の米国下院議員 435 人それぞれを表します。最初の列/フィールドは政党で、民主党または共和党です (当時、無所属または他の政党に所属する議員はいませんでした)。政党名に続く 16 項目は、賛成 (y)、反対 (n)、または不明 (?) という投票結果を表します。

ML Studio は、Web (Azure ストレージ) からデータを直接読み取ることができますが、個人的には独自のデータ ストアを作成することをお勧めします。そこで、今回はテキスト ファイルをローカル コンピューターのメモ帳にコピーし、UCI Web サイトのファイルの説明に基づいて次のように列見出しを付け加えました。

political-party,handicapped-infants, . . ,south-africa
republican,n,y,n,y,y,y,n,n,n,y,?,y,y,y,n,y
republican,n,y,n,y,y,y,n,n,n,n,n,y,y,y,n,?
democrat,?,y,y,?,y,y,n,n,n,n,y,n,y,y,n,n
...

ゼロから ML コードを作成する場合、列見出しの操作は面倒になることが多いので、データ ファイルには見出しを含めないのが一般的です。しかし、ML Studio を使用する場合は、列見出しを含めた方が簡単になり、データが分かりやすくなります。ローカル ファイルの名前を VotingRawWithHeader.txt に変更し、コンピューターに保存します。ここで使用した見出しと同じものを使用する場合は、付属のコード ダウンロード (msdn.microsoft.com/magazine/msdnmag0914、英語) からデータ ファイルを入手できます。

ML Studio のホームページに移動後、左側ペインの [Datasets] (データセット) カテゴリをクリックします。すると、ML Studio は、[Iris Two Class Data] (アイリス 2 つのクラス データ) や [Telescope Data] (テレスコープ データ) など、組み込みのデータセットを中央の作業領域に表示します。最初に目にするこのようなデータ セットの大半は、ML Studio の調査に使用できる、多かれ少なかれよく知られたベンチマークのセットです (多くは UCI リポジトリにあります)。今回は、ML Studio の左下隅にある [新規] (New) アイコンに移動してクリックします。

ここでは、データセットまたは実験のいずれかを新しく作成できるので、[Dataset] (データセット) をクリックし、[From Local File] (ローカル ファイルから) アイコンをクリックします。これにより、図 3 に示すダイアログ ボックスが表示されます。[Browse] (参照) ボタンを使用して「Voting data」というローカル ファイルをターゲットに指定し、[Generic CSV file with a header (.csv)] (見出し付きのジェネリック CSV ファイル) を選択して、このデータ セットに関する簡単な説明を入力します。

 データセットの新規作成
図 3 データセットの新規作成

[OK] チェックマークをクリックすると、ML Studio によってこのローカル ファイルが Azure ストレージにアップロードされ、保存されます。ML Studio の [Datasets] (データセット) のビューに戻ってページの更新を行うと、投票データが一連のデモ データと一緒に表示されるようになります。今回使用した ML Studio のプレリリース版では、データセットを削除できませんでした。そのため、ML Studio を調査する場合は、Dummy Data のような汎用の名前を付けた 1 つのデータ セットを作成することを強くお勧めします。異なるデータ セットが必要な場合は、ML Studio 作業空間が古くなっても削除できないダミー データ セットで埋もれないように、[This is a new version of an existing dataset] (これは既存のデータセットの新しいバージョンです) オプションを使用することができます。

実験の作成

実験を作成するため、ML Studio の左下隅にある [新規] (New) アイコンをクリック後に、[Experiment] (実験) オプションをクリックします。次に左側のペインで、[Saved Datasets] (保存済みデータセット) カテゴリをクリックし、先ほど作成した [Voting Data] 項目に移動して、これをデザイン領域にドラッグします。デザイン サーフェスの上部に、タイトルとして「Voting Experiment」と入力します。この時点で、Voting Data モジュールの下部の出力ノードを右クリックし、[Visualize] (表示) オプションを選択して、データ セットが正しいかどうかを検証します。

私を含め、初めて ML に取り組む多くの開発者は、ML アルゴリズムを適用する前に、ソース データの操作に関連する作業がどれだけあるかについて極めて過小評価しています。通常、データ列の並べ替え、不要な列の削除、不明な値の処理、数値以外のデータのエンコード、トレーニング セットやテスト セットへのデータの分割などの作業があります。投票データ実験を開発する場合、次のようなコード形式でこのような作業に対処します。

 

string[][] rawData = LoadData("VotingRawWithHeader.txt");
rawData = ProcessMissing(rawData, '?', 'n');
rawData = SwapColumns(rawData, 0, 16);
double[][] data = Encode(rawData);
double[][] trainData;
double[][] testData;
MakeTrainTest(data, 0.80, out trainData, out testData);

図 4 に、これらの作業を実行する最初の 4 つの ML Studio モジュールのクローズアップ図を示します。多くの ML シナリオで、不明な値を処理する最も一般的なアプローチは、1 つでも不明な値があればそのデータ項目行をすべて単純に削除することなので、ML Studio にはこれを実行するオプションがあります。ただし、今回の投票データの場合、不明な値は実際には "no" (反対) 票を意味していると仮定します。そのため、右側のペインの [Missing Values Scrubber] (不明な値の除去) モジュールで、不明な値 ("?") をすべて "n" 値に置き換えることを指定します。

データの処理
図 4 データの処理

Project Columns (プロジェクトの列) モジュールでは、省略するすべての列を指定できるようにします。今回の場合は、[Select all columns] (すべての列を選択) オプションをクリックします。ML Studio によってデータが調べられ、列の値が文字列のカテゴリ データか、数値データかがインテリジェントに推測されます。Metadata Editor (メタデータ エディター) モジュールでは、ML の推測をオーバーライドしたり、ラベル列 (予測する変数) を指定することができます。"political-party" (政党) 列を選択し、ラベル列に指定します (ここで列見出しが大いに役立ちます)。残りの 16 個はフィーチャー (予測) 列のままにします。

Split (分割) モジュールはその名のとおり、データを (ML モデルの作成に使用する) トレーニング セットと、(モデルの正確性の推定に使用する) テスト セットに分割します。ここでは、モジュールのパラメーター ペインで 0.8 を指定しているので、トレーニング データは 435 項目のうちの 80% (348 項目)、テスト セットは残りの 20% (87 項目) になります。Split (分割) モジュールには "Stratified split" (階層分割) というブール値のパラメーターもあります。ML Studio に取り組む場合、意味が分からないパラメーターに必ず出くわします。右下にある疑問符マークのアイコンをクリックすると、ML Studio のヘルプにアクセスすることができます。

モデルのトレーニング

ML モデルは情報のコレクションと考えることができます。通常、数値を重みと呼び、出力や予測を生成するために使用します。モデルのトレーニングは一連の重みの値を見つけるプロセスです。つまり、トレーニング セットからの入力データ (この場合は 16 個の yes 投票と no 投票) を指定したときに計算される出力 (democrat または republican) を、トレーニング データの既知の結果に正確に一致させるプロセスです。このような重みが決まると、結果として得られたモデルをテスト データに指定できるようになります。テスト データでのモデルの正確性 (正確な予測の比率) によって、正解となる結果がわからない状況で新しいデータを指定した場合に、モデルがどの程度うまく予測できるかをおおまかに把握することができます。

今回の投票デモの場合、トレーニングに対するコード ベースのアプローチは次のようになります。

 

int numFeatures = 16;
LogisticModel lm = new LogisticModel(numFeatures);
int maxEpochs = 10000;
lm.Train(trainData, maxEpochs);

図 5 に、ML Studio のトレーニング関連のモジュールに相当する部分のクローズアップ図を示します。今回のデモの場合、Train Model (トレーニング モデル) モジュールは、入力として Logistic Regression Binary Classification Model (ロジスティック回帰バイナリ分類モデル) モジュールを受け取ります。他の関連図とは違い、これは実際のデータ フローではありません。実際には使用する ML モデルの種類を指定しています。Logistic Regression Binary Classification (ロジスティック回帰バイナリ分類) の代わりとなるモジュールには、Averaged Perceptron Binary (平均化パーセプトロン バイナリ)、Boosted Decision Tree Binary (ブースト デシジョン ツリー バイナリ)、Neural Network Binary Classifiers (ニューラル ネットワーク バイナリ分類) などがあります。

モデルのトレーニング
図 5 モデルのトレーニング

では、使用するモデルはどのように判断すればよいでしょう。予測の出力は democrat または republican の 2 値のいずれかになるため、バイナリ モデルが必要です。しかし、ML にはたくさんのアプローチがあります。ML Studio を使用するうえで最も困難になる可能性のある作業は、さまざまな ML 分類手法のメリットとデメリットを調べる段階です。開発者にとって Visual Studio と似ていると感じられる点があるとすれば、Microsoft .NET Framework にジェネリック辞書、HashSet、ジェネリック キューなどの多数のデータ構造がある点で、各データ構造が何を意味するかを正確に理解するかどうかは開発者次第です。同様に、ML の分類手法を理解するかどうかも開発者次第です。

Logistic Regression (ロジスティック回帰) モジュールには、[Optimization tolerance] (最適化の公差)、[L1 regularization weight] (L1 正規化の重み)、[Memory size for L-BFGS] (L-BFGS 用メモリ サイズ) など、分かりにくいパラメーターがあります。繰り返しになりますが、このようなパラメーターの意味を理解するかどうかは開発者次第です。さいわい、ML Studio は、モジュールの多くのパラメーターに適切な既定値を用意しています。[Random number seed] (乱数シード) を 0 を設定することを除いて、既定パラメーター値をすべて受け入れます。

Train Model (トレーニング モデル) モジュールでは、トレーニング データのどの列がラベル列であるか (どの列が予測変数か) を ML Studio に指示する必要があります。Train Model (トレーニング モデル) モジュールを選択した状態で、モジュールのパラメーター ペインで [Launch column selector] (列セレクターの起動) ボタンをクリックし、ドロップダウン コントロールの [pick-by-name] (名前で選択) オプションを選択して、政党を入力します。政党は 1 列目にあるため、列インデックス 1 を使用してもかまいません (ML Studio のインデックスは、開発者が使い慣れた 0 から始まるインデックスではなく、1 から始まります)。Metadata Editor (メタデータ エディター) モジュールでラベル列を指定していても、Train Model (トレーニング モデル) モジュール用にラベル列を指定する必要があることに注意してください。

モデルの評価

デモ モデルをトレーニングしたら、次にトレーニング データとテスト データをモデルにフィードし、計算後の出力を採点し、計算後の出力の (既知の出力と比べた) 正確性を評価します。これをコードで表すと、次のようになります。

 

lm.ComputeOutputs(trainData); // Score
double trainAccuracy = lm.Accuracy(trainData); // Evaluate
lm.ComputeOutputs(testData); // Score
double testAccuracy = lm.Accuracy(testData); // Evaluate

図 6 に、モジュールの採点と評価に関連するモジュールのクローズアップ図を示します。2 つの Score Model (採点モデル) モジュールは、2 つの入力の流れを受け取ります。1 つ目の入力はトレーニング済みのモデル (出力を計算するために必要な情報)、2 つ目の入力はトレーニング セットまたはテスト セット (必須のデータ入力) です。この 2 つの採点モデルの出力が、正確性を計算する Evaluate Model (評価モデル) モジュールに送られます。

モデルの採点および評価
図 6 モデルの採点および評価

図 7 に、Evaluate Model (評価モデル) モジュールの結果を示します。右上で、2 つのデータセット項目のうち 2 つ目のデータセット項目が選択されている (強調表示されている) ことが分かります。つまり、これはテスト データの結果です。結果で最も重要な部分は、0.989 という [Accuracy] (正確性) の値です。テスト セットは、435 個ある元のデータ項目の 20%、つまり 87 項目だったことを思い出してください。Logistic Regression (ロジスティック回帰) モデルは、87 個のテスト項目のうち 86 個のテスト項目の政党を正確に予測しました。Evaluate Model (評価モデル) モジュールの結果には、他にも多くの情報が含まれています。たとえば、受信者操作特性 (ROC) というグラフがあります。このグラフは、y 座標に "真陽性" (適切な予測) のパーセンテージをプロットし、x 座標に "偽陽性" (不適切な予測) のパーセンテージをプロットします。

 テスト データでのモデルの正確性
図 7 テスト データでのモデルの正確性

単なるツールにとどまらない

Azure ML Studio アプリケーションをバックエンド エンジンの Microsoft Azure Machine Learning (ML) サービスと組み合わせて使用すると、今回の短い記事で説明したクライアント ツールとしての機能よりも多くの機能を利用できるようになります。開発者の観点からは、ML Studio によって予測システムの作成が大幅に簡略化されます。しかし、それほど明白ではありませんが、新たな価値も提供されます。

今回取り上げていない重要なトピックの 1 つは、ドラッグ アンド ドロップと数回のクリックで、Web サービスの作成と発行を行える Azure ML の機能です。Azure ML は、配置、キャパシティのプロビジョニング、負荷分散、自動スケーリング、および正常性の監視を自動的に処理します。プレリリース版を使用したあるユーザーは、Azure ML を使用することで、商用の分析ソフトウェアを使用した場合にかかるコストに比べてほんのわずかなコストでビジネス ソリューション (不正検出システム) を作成することができると見積もっています。

Azure ML は、人気のあるデータ科学プログラミング言語の R をサポートします。既に存在する何百ものオープン ソースの R 言語モジュールを、Azure ML システムに直接コピーすることができます。

ML Studio では簡単にコラボレーションが可能です。実験を、複数の開発者と簡単に共有できます。この機能を使用してみたところ、通常のメールをやり取りする方法よりもはるかに効率的でした。

Azure ML は、開発者やデータ科学者にとってメリットがあるだけではありません。情報管理と機械学習を担当するマイクロソフト コーポレートのバイス プレジデント、Joseph Sirosh は次のように話しています。「高度な分析を配置するのは困難を伴います。企業は高額な費用、高報酬の人材雇用、結果が出るまでの数か月の待ち時間にうんざりしています。このようなボトルネックなしで、すぐに分析モデルを開発して配置できる機能があれば、状況は一変します。Azure ML により、データから新たな価値を見つけ出し、コストの削減、収益の向上、エンド カスタマー サービスの向上を目的とするシステムをビルドするビジネスを実現できるようになります」

予測の作成

ML Studio モデルを作成して評価したら、そのモデルを結果がわからないデータの予測に使用することができます。16 の法案に "yes"、"no"、"yes"、"no"... と投票した仮想議員と、最初の 8 つの法案に "yes" と投票し、残りの 8 つの法案に "no" と投票した仮想議員の 2 人の政党を予測してみます。

アプローチの 1 つは、新しい ML Studio データセットを作成してアップロードした後、トレーニングとテストのデータ セットと同じ方法で採点することです。もう少し対話型のアプローチでは、データ量に制限がありますが、データを手動で入力できる Enter Data (データ入力) モジュールを使用します (図 8 参照)。

予測するための新しいデータの入力
図 8 予測するための新しいデータの入力

このモジュールのデータ形式は、モデルのトレーニングに使用したデータ形式と正確に一致する必要があるため、列見出しが必要です。Enter Data (データ入力) モジュールの出力を、Train Model (トレーニング モデル) モジュールの出力と組み合わせます。実験の実行後、Score Model (採点モデル) モジュールの [Visualize] (表示) オプションをクリックして結果を表示することができます (先ほどの図 2 参照)。

手続き型のプログラミング言語を使用して予測を作成すると、次のようなコードになります。

string[] unknown = new string[] { "party", "y", "n", "y", . . "n" };
double result = lm.ComputeOutput(unknown);
if (result < 0.5)
  Console.WriteLine("Predicted party is democrat");
else
  Console.WriteLine("Predicted party is republican");

繰り返しになりますが、ML Studio の情報には少し不可解なものも含まれている可能性があります。予測には 2 つのトレーニング数値が含まれていたことを思い出してください。

unknown-party  y  n  y . . y  n  democrat    0.0013
unknown-party  y  y  y . . n  n  republican  0.7028

Logistic Regression Binary Classification (ロジスティック回帰バイナリ分類) の場合、0.5 未満の出力値は最初のクラス (この例では democrat) を表し、0.5 以上の出力値は 2 つ目のクラス (republican) を表します。Visual Studio と同様、ML Studio には多くの機能があり、膨大な情報が生成されます。ドキュメントを熟読して、一度にすべて理解しようとしないようにします。システムを使用ながら、一度に 1 つずつ新しい情報を調べることで、時間をかけてさまざまな情報の意味を学んでいきます。

コーディング不要?!

今回は ML Studio のほんの一部を紹介しただけです。しかし、この投票実験を再現して ML Studio を試せるだけの情報は示しました。ここでは一切コーディングが含まれていなかったことに、気付かれたでしょうか。コーディングは不要なのでしょうか。そんなことはありません。ML Studio の最も優れている点は、C# を使用して独自のカスタム モジュールを作成できることです。このトピックについては、今後取り上げる予定です。私個人としては。ML Studio によってエコシステムが生み出され、開発者がこのエコシステム内で洗練された専用のモジュールを作成するようになり、このように作成されたモジュールが商用に利用され、オープン ソースやブログといったさまざまなチャネルを通じて利用できるようになると予想しています。


Dr. James McCaffreyは、ワシントン州レドモンドにある Microsoft Research に勤務しています。これまでに、Internet Explorer、Bing などの複数のマイクロソフト製品にも携わってきました。連絡先は jammc@microsoft.com (英語のみ) です。

この記事のレビューに協力してくれた、マイクロソフト技術スタッフの Roger Barga (機械学習) と Michael Jones (グローバル製品エンジニアリング) に心より感謝いたします。