今回は、コンピューターに機械学習をさせてAI(人工知能)を作る方法をご紹介します。
AI(人工知能)を作るというと、難しいプログラミングや専門知識、ハイスペックなPCが必要になってくる感じがしますが、実際はプログラミングの知識や機械学習の専門的な知識がなくてもAI(人工知能)を作ることができます!
今回ご紹介するのは、AI(人工知能)入門セミナーでも利用しているAzure ML(Azure Machine Learning)を使って機械学習させて作成する方法です!
Azure MLとは、Microsoft社が提供している「Microsoft Azure」の中の一つのサービスで、機械学習をWebブラウザ上で簡単に行うことができるプラットフォームです。
クラウドで動作するシステムなのでTensorflowなどと違い、自身のパソコンスペックに関係なく機械学習が可能です。
そのためハイスペックなパソコンが必要ありません!
Azure MLの登録方法は、以前の記事「Azure MLに無料登録してみよう」ご参照ください。
無料で簡単に登録することができます!
Azure MLの公式サイト:https://studio.azureml.net/
今回は、数字の画像を判別できるAI(人工知能)のモデルを機械学習させて作ってみたいと思います。
大まかな作成の流れはこんな感じです。
一つ一つオペレーションをとっていけば誰でも作成できますのでご安心ください。
1. 機械学習に使うデータを配置する
2. 配置したデータをトレーニング用とテスト用に分ける
3. 学習方法を決める
4. 評価用のモデルを配置する
5. 学習させる
実験を開始する
Aure MLにログインできたら、まずは機械学習させるための新しい実験(ファイル)を作成します。
左端のワークバーの「EXPERIMENTS」をクリックし、「+NEW」をクリックします。
続いて、「Blank Experiment」をクリックすると実験キャンバスが表示されます。
トレーニングデータとテストデータを用意する
モジュールパレットの[Saved Datasets]の中の[Samples]の中の「MINST Test 10k 28×28 dense」を実験キャンバスにドラッグします。
[Samples]の中にはあらかじめ用意されている学習用のデータが格納されています。
「MINST Test 10k 28×28 dense」の中には0〜9までの数字の画像を数値化したデータが10,000個入っています。
先ほど配置した数字の画像データをトレーニング用とテスト用のデータに分割します。
テスト用のデータは、機械学習した後に人工知能の精度を評価するために必要となります。
Azure MLのモジュールパレットの中から[Data TransFormation]の中の[Sample and Split]の中の「Sprit Date」を実験キャンバスにドラッグします。
「MINST Test 10k 28×28 dense」と「Sprit Date」をドラッグしてつなぎます。
「Sprit Date」をクリックして「Fraction of rows in the firs….」に「0.9」と入力します。
先ほど配置したデータの90%をトレーニング用として使用し、残りのテスト用データを10%残しておきます。
Azure MLのオペレーションは基本的にモジュールを配置した後にモジュール同士をつなぎあわせ、パラメーターを設定していきます。
機械学習の方法を決める
続いて学習する前のAI(人工知能)のモデルを配置します。
モジュールパレットの中から[Machine Learning]の中の[Train]の中の「Train Model」を実験キャンバスにドラッグし、「Train Model」と「Sprit Date」をつなぎます。
トレーニングデータの「Label」が正解だと教えます。
このように正解を教えてあげる機械学習の方法を「教師あり学習」と呼びます。
正解を教えてあげることで、人工知能が画像の数字を理解することができます。
「教師あり学習」以外にも「教師なし学習」という学習方法もあり、主にクラスタリングに利用されます。
クラスタリングとは、未知の集合を、いくつかの集まりに分類させる機械学習です。
キャンバス内の「Train Model」をクリックして、画面右端のプロパティの中の「Launch column selector」をクリックしドロップダウンからLabelを選択します。
続いて、機械学習の手法を選びます。今回はニューラルネットワークで訓練するように指示します。
ニューラルネットワークとは人間の脳の神経細胞(ニューロン)の情報伝達を模して造られた数学モデルのことで、パーセプトロンを複数組み合わせ層にして構築します。
ニューラルネットワークの層を増やすことで深層学習(ディープラーニング)させることができます。
Azure MLのモジュールパレットの中から[Machine Learning]の中の[Initialize Model]の中の[Classification]の中の「Multiclass Neural Network」を実験キャンバスにドラッグし、「Multiclass Neural Network」と「Train Model」をつなぎます。
「Multiclass Neural Network」をクリックして以下の画像のようにパラメータを設定します。
機械学習させたAIの精度を評価するためにテストデータを用いてスコアを出します。
モジュールパレットの中から[Machine Learning]の中の[Score]の中の「Score Model」を実験キャンバスにドラッグし、「Score Model」と「Train Model」、「Sprit Date」をつなぎます。
機械学習を実行する
画面下の「RUN」をクリックして機械学習を開始します。
RUNをクリックするだけで機械学習を開始してくれます。学習が完了すると、各モジュールの左端に緑のチェックーマークが表示されます。
学習の精度をチェックする
学習が完了したら、学習精度がどうだったのかスコアを評価します。
モジュールパレットの中から[Machine Learning]の中の[Evaluate]の中の「Evaluate Model」を実験キャンバスにドラッグし、「Evaluate Model」と「Score Model」をつなぎ「RUN」をクリックします。
「Evaluate Model」の下の白い丸(○)をクリックし「Visualize」をクリックします。
表示された表をみると、精度の高い数字の判別ができるAI(人工知能)のモデルが作成できたことがわかります。
Azure MLで作成したAI(人工知能)のモデルは、APIとして利用することができます。
APIを使ってAI(人工知能)のモデルをアプリなどに組み込めば、AIを使ったサービスを簡単に作ることができます。
今回は数字を判別できる人工知能を例に作成してみましたが、
数字以外に人の顔や指紋の画像を機械学習させ、AI(人工知能)のモデルを作成することで、
顔認証や指紋認証といったAI(人工知能)を使ったサービスを簡単に作成することができます!
もっと、人工知能について学びたいという方は、AI研究所が主催するセミナーに是非ご参加ください!
AI入門セミナーでは今回の記事で紹介しきれなかった、機械学習の仕組みやパラメーター、DeepLearning(深層学習)の方法なども学ぶことができます!
AI入門セミナー(人工知能の作り方が学べるセミナー):https://ai-kenkyujo.com/
もし、今回の記事を読んでみて、いまいち人工知能の仕組みがピンとこないというかともセミナーを受講していただくと手に取りようにわかっていただけるかもしれません!!