G検定合格への道の学習5日目は「機械学習の実装」です。
機械学習でどのようなことができるのか、ということは前回までで学んできました。
今回は、機械学習のモデルをどのように実装していくのか学んでいきます。
機械学習の実装をする前には、事前にきちんとした準備をしておくことが必要です。
この準備段階でもフローがありますので、覚えていきます。
このブログは、底辺フリーランスがG検定を取得して人生を好転させていこうとする日記です。
目次
機械学習実装の全体的な流れと事前準備
はじめに機械学習の実装と全体的な流れを把握して、事前準備に何が必要なのか確認しましょう。
機械学習を実装するための全体像は4つのステップに分かれています。
4つのステップは以下の通りです。
事前準備(今回はここ)
前処理(今回はここ)
モデルの学習
モデルの評価
そして、このステップを納得のいくモデルになるまで思考錯誤をしてくり返すことで、機械学習の精度は最適化されていきます。
ここからはそれぞれのステップについて詳しく解説していきましょう。
今回は「事前準備」の部分と「前処理」について解説し、次回は「モデルの学習」と「モデルの評価」をします。
事前準備
機械学習を実装するための事前準備として「データの準備」と「手法の選択」があります。
事前準備をしておかなければ、機械学習を開発や実装することは不可能です。
機械学習も最初に入力すべきデータを集めなければいけないからです。
また、前回までに解説してきたように、機械学習の手法にはさまざまなものがります。
利用する方の用途や目的に合わせて最適な手法を選ばなければいけません。
それでは、事前準備の際に大事な「データの準備」と「手法の選択」について詳しく解説していきましょう。
データの準備
機械学習に入力するデータは、何を選んでも良いという訳ではありません。
用途や目的に応じてデータを選択しなければいけません。
たとえば、自社のサービスが服の販売だった場合に、魚や野菜などの食べ物の情報を入力しても意味を成しません。
日本で販売をするなら日本人の身長や体重のデータ、売れている服の形や色のデータが必要です。
また、データの範囲は広い方が好ましいと言われています。
データ自身に偏りが無く、網羅的に収集しましょう。
これは極端な例なのですが、とにかく機械学習に入力するために最適なデータを準備しなければいけません。
データの収集方法ですが、自分でデータを収集することも可能ですが、現在ではネット公開されているデータセットを使用することもできます。
例えば、犬や猫の画像ならKaggle、手書きの文字データであればMINISTのデータセットを利用しましょう。
手法の選択
データの収集と準備が終わったら、最適な学習方法やアルゴリズムの選定、モデルの設計が必要になります。
自身の用途や目的に合った手法を選択します。
ディープラーニングを利用するのかそれ以外を利用するのか、自身のサービスの目的に合わせて選択しましょう。
機械学習に関してはこれまでに解説してきましたが、ディープラーニングの手法に関しては、コチラの記事で解説します。
手法をきちんと選択しなければ、サービスに対して最適なモデルは設計できません。
データの前処理
データの事前準備が終わったら「データの前処理」の段階にうつります。
データの収集や大まかなデータの選択は必要ですが、収集したデータをそのまま使用せずに加工して使用する事がほとんどです。
データの前処理には大きく分けて3つの方法があります。
- データの選別とデータクレンジング
- 特性スケーリング(Feature Scaling)
- アノテーション
横文字で知らない言葉も多いでしょう。
それぞれについて具体的などのような作業なのか解説します。
きちんとしたデータの前処理をして、データを有効にしましょう。
データの選別とデータクレンジング
データの選別は、収集したデータから不要なモノを取り除くことを意味し、データクレンジングは、収集したデータの一つひとつを整える処理をおこないます。
収集したデータの中には、機械学習に適さないデータも含まれています。
不要なデータを入力してしまうと、機械学習も上手く動きません。
きちんとしたデータの選別をおこないましょう。
そして、データはフォーマットを整えるなどの処理をおこなう必要がります。
データセットを使用するにしても、フォーマットが揃っていない場合もあります。
例えば、「身長と体重」のデータでもそれぞれのデータの位置が逆になっていると上手く入力できません。
「身長・体重」「体重・身長」となっている場合は、どちらかのフォーマットに合わせましょう。
特性スケーリング(Feature Scaling)
特性スケーリング(Feature Scaling)とは、特徴量が取り得る値の範囲(スケール)を変える事です。
特性スケーリング(Feature Scaling)をおこなうことによって、機械学習の学習時間を短縮する事やモデルの性能を向上させることが可能です。
主なスケーリングには「正規化」と「標準化」があります。
データの正規化
データの正規化は、データの値が0~1などの指定した範囲に収まるように値を加工します。
例えば、画像処理をする場合は、色の濃さによって0~1に調整する処理をします。
白を0として、黒を1とすれば細かく0.1、0.9などに値を細かくすれば同一の値で「色」を学習させることが可能です。
データの標準化
データの標準化は、データの平均が0、分散が1になるように値を加工する方法です。
データの標準化は、データの最大値や最小値が決まっていない場合に頻繁に使用されます。
アノテーション
アノテーションは、データに対して言葉によって意味づけを与える事です。
タグ付けとも呼ばれます。
例えば、人の顔画像に対して、「目・口・鼻」などの位置をポイントしたり、人が描いた口コミに対して、「良い評価なのか悪い評価なのか」のラベルを与えます。
データに対してアノテーションによって、正しいタグ付けをおこなうとデータから正確に情報を読み取ることが可能になります。
アノテーションは、モデルの学習精度の向上に直結するのです。
データの拡張も可能
学習データの量が足りない場合は、データを増やすことも可能です。
その方法が「データの拡張」です。
収集したデータは、拡大や縮小、反転することで少ないデータから数倍の量のデータに直せます。
収集したデータが少ない場合は、データの拡張をおこなって、データの量を増やしましょう。
機械学習実装のテスト結果は次回公開
今回は機械学習実装の最初の2ステップである「事前準備」と「データの前処理」について解説しています。
機械学習を自身のサービスの実装するにしても、入力すべき事前準備が大事です。
次回は後半のステップである「モデルの学習」と「モデルの評価」を解説して、テスト結果も公開します。
過去に学習した内容に興味がある方は以下の記事も参考にしてください。