夜風のMixedReality

xRと出会って変わった人生と出会った技術を書き残すためのGeekなHoloRangerの居場所

Azure Machine Learningについて勉強した!その① Machine Learningとは何か?

 先日、品川のMicrosoftでAzure Machine Learningに関するセミナーに参加してきました。    勉強したことを、書き残します。

〇Machine Learningとは?

 Machine Learningは日本語では機械学習とよばれる技術で、多くの場合MLと略されます。

 コンピュータで既存のデータを使って将来の動き、結果、傾向を予測できるデータサイエンスの手法のことを指します。

 かみ砕けばコンピュータを用いて、これまでのデータの特徴を分析してその法則から新たなデータに対して傾向を導き出すことのようです。

 MLを用いることでデータごとに毎回プログラムをすることはなく、コンピュータが学習した結果を処理に用いることができます。

〇主な機械学習の手順

 大雑把に機械学習では次の手順を踏みます。  

  1. データを得る 

2.データを準備する

3.モデルをtrainingする

4.スコアし評価する

5.予測に利用する   

 ここで2.のデータを準備するとは取得したデータを人の手で確認し、クリーンにすることです。    この手順がないと、同じデータとして扱うことができません。

 具体的には、「生年月日」を表す手法として  

 ・H9 9月9日  

 ・1997年9月9日

 ・1997.09.09

 ・平成9年9月9日 

 ・1997/09/09

 のように、同じ日付でもデータの表し方には多くの表現があります。    人の目では5つのデータはすべて同じ日付であることがわかりますが、学習前の機械には5つの別々のデータとして扱われます。

 これを人の手で(もしくは人の書いたプログラムで)修正する必要があります。

 例として月を見ていきます。

 1年は12か月ですが、ここに次のようなデータがあったとします。

f:id:Holomoto-Sumire:20191122094731j:plain

 これではコンピュータでは月のデータとして14つのデータを持ってしまうため、人の処理によってデータを頭文字3つで区切ることで12か月のデータにクリーンすることができます。

機械学習と深層学習

 機械学習と似た言葉として深層学習(Deep Learning)があります。

 それぞれ手段に違いはありますが、データから答えを導き出すという目的は同じです。

 二つは次のように区別されます(学術的には複雑になるのでここでは大雑把にです)。

機械学習

    与えるデータに対して人が前もってクリーンな状態に処理をして学習させるもの

・深層学習

   人間が行っていた作業を省き、元となるデータをそのまま与え、ニューラルネットワークを駆使するもの

機械学習と深層学習の使い分け

 深層学習に関してはデータの量が膨大になる場合がほとんどで、膨大な計算を行う必要があるため計算能力の高いGPUなどのハードウェアが必要になります。  反面、処理の内容がニューラルネットワークブラックボックス化されている場合もあり、機械学習は使用者が望む答え(「こうなってほしい!」)を盛り込みやすいという点もあります。

 使用する環境やデータの量によって使い分けられることが一般的なようです。

機械学習を行うために開発者がやること

1.データの準備

2.モデルの実験とトレーニン

3.トレーニングされたモデルのデプロイ

4.デプロイされたモデルの管理

 が必要となります。 これらのことをフェーズと呼びます。

ここでモデルの管理とはどのようなことを行うのかの例として「言語」で見てみます。

 辞書を見てみるとわかりやすいのですが、流行語や事件、歴史的発見によって私たちが使用する言葉は日々変化しています。

 これらの翻訳に機械学習を用いた場合、定期的に言葉というデータを更新しなければよい翻訳結果が得られません。

 機械学習の場合、データによってはこれらのモデル管理する必要があります。

〇開発プラットフォームおよびツール

 次のような環境があります。

f:id:Holomoto-Sumire:20191122201354j:plain
機械学習に関連するMicrosoftのサービス

 

f:id:Holomoto-Sumire:20191122204546j:plain
開発プラットフォームとツール

〇Azure Cognitive Servicesとは?

Microsoft Azure

 Microsoftが開発者・企業向けに提供するクラウドサービスです。

azure.microsoft.com

 今回学んだAzure Machine Learningだけでなく、非常に多くのサービスが提供されており、PCだけではなくスマートスピーカーなどIoT全般に利用されています。

・Azure Cognitive Servicesとは?

 自然なコミュニケーション方法を使用するアプリを構築できるようにする一連のAPI群です。    数行のコードを書くだけで、見る、聞く、話す、理解する、ユーザーのニーズを解決することができるアプリを作成可能です。

〇まとめ

 機械学習→事前にデータを与え特徴や傾向等を判別することで、新しいデータに対して何かしらの答えを導き出す。

 深層学習→機械学習と目的は同じだが、ニューラルネットワークを用いることで人の手でデータをクリーンにせずに何かしらの答えを導き出す。