機械学習とは何か?文系でも知っとくべき基礎の話

最近はAIとか機械学習とかいう言葉が世の中の至るところで飛び交っていて、もはや理系だから文系だからでは済まない時代に入ろうとしています。

そこで今回は文系の方でもざっくりと押さえておきたいという以下の2点について書きます。

ここで知ってほしいこと
  • 機械学習とは?大きく分けて二種類ある!
  • どうやって機械学習をするのか?ざっくりとした流れを説明します

機械学習とは何か

機械学習とはAI(人工知能)の技術の一つです。コンピュータにデータを学習させて隠れたパターンを引き出すことを可能とします。

普通の機械と大きく異なるのは完成された判断基準(マニュアル)ではなく、データと判断の仕方を与えることによって自ら判断基準を作る点です。

自動運転を例に挙げると、走り方を全て記憶させるのではなく機械学習を使って「今まで走ってきたコースから考えるとこの道はこういう風に進んだ方がいい」と機械に自動で判断させることで自動運転を実現させようとしています。

つまり機械学習とはAIが物事を学習する体系であると言えます。

機械学習自体は昔から研究が進められてきましたが近年の技術発展によって膨大な量のデータが手に入るようになり大量のデータからパターンを学習する機械学習の本領を発揮できるようになったという背景があります。

機械学習にはいくつかの種類がある

機械学習の手法は大きく分けて「教師あり学習」と「教師なし学習」(と「強化学習」)という手法が存在します。

よく耳にする深層学習(ディープラーニング)は機械学習を発展させた手法であり、機械学習を前提としているため今回は省略します。

教師あり学習

教師あり学習は「入力」と「正しい出力(正解)」がセットになっているデータを学習して未知のデータや将来のデータを予測する手法です。教師というのは人間がコンピュータに正解を与えているという意味です。

教師あり学習では予測するデータの種類によって回帰分類というタスクに分けられます。

回帰では例えばA社の昨日までの株価データをコンピュータに学習させて明日の株価がいくらになるかを予測させるという、連続値を予測するタスクです。

一方分類は私たちのメールボックス内のメールの内容や送り主などを学習させてこれから送られてくるメールの内容的にスパムメールか否かを判断させます。スパムメール(1)かそうでない(0)かという離散値(飛び飛びの値)を予測するタスクです。

教師なし学習

教師なし学習では正解が与えられてないデータから意味のある情報を取り出す手法です。主に現在手元にあるデータの法則性を解釈するために用いられます。

正解が与えられていないので学習結果の解釈を人間が行う必要があるというのも大きな違いです。

イメージが掴みづらいと思うので、教師なし学習の代表的な手法であるクラスタリングという手法を例に説明します。

例えば皆さんはデパートを経営していて売上分析をしているとします。

クラスタリングとは大量の特徴量(性別、年齢、来店手段など)からデータが偏ったグループを見つける手法です。

クラスタリングを手元の購買データについて行うと店舗からの距離と購入単価でプロットしたグラフ上に2つのグループが存在していることがわかりました。

教師なし学習ではこれが何を意味しているかは人間が解釈しなくてはいけません。今回は簡単でこれらのグループでは来店する客の客層が下の2つに分かれているということがわかりました。

  • 遠方から来る客は購入単価が高い
  • 近場から来る客は購入単価が低い

教師なし学習を使って手元のデータのパターンを把握することで、自分の店舗ではどのような戦略を取ろうかと考える材料にするのです。

この二つが機械学習の大雑把な手法になります。ではもう少し具体的に機械学習がどんな工程で実行されるかということを紹介します。

機械学習のプロセス

機械学習は一般的には以下の流れで学習を行います。

課題・データの理解

まずは機械学習を行うにあたって分析者自身が解決したい課題を正確に理解している必要があります。機械学習は分析の一手法でしかないということを忘れないようにしましょう。

機械学習によって何をしたいのか?そもそも機械学習が最適なのか?といったことを考える必要があります。「とりあえずAI」が問題になっているのは使用者自身が何を目的として機械学習を使うかを理解していないためです。

前処理

課題やデータを理解したらデータをコンピュータの学習モデルに入力できるような形に整形する必要があります。これを前処理といいます。

例えば学校で行われた試験のデータを分析する場合を考えてみましょう。

私たちがまず手に入るデータ(生データ)は上の表のようなものになると思います。ここで生データのままでは下のような問題が生じてしまいます。

  • 受験番号を入力し忘れてしまっている(欠損値
  • コンピュータは”男”,”女”という文字列の意味を認識できない

そのためコンピュータが理解できる形にデータを整形する処理が必要となるのです。現実の機械学習の問題では前処理がタスクの8割を占めるとも言われています。

モデル構築

機械学習では課題を解決するために様々なアルゴリズムが開発されています。例えば先ほどのスパムメールの分類問題といっても「分類の仕方」は様々考えられます。

  • 送り主が同じような文字列の人はスパム(最近傍法)
  • 本文に子音が10文字連続で続いているか否かで分ける(決定木)
  • スパムと正常なメールの中間に判断の境界線を引いとく(SVM)

解きたい問題によってモデルの得意・不得意があるので課題に対して適切なモデルを選択する必要があります。

予測

ベストなモデルを構築することができたら、未知のデータを入力することで予測結果を得ることができます。

機械学習を使って何ができるか考えよう

以上が一般的な機械学習の流れです。機械学習やAIのニュースをなんとかわかりそうというレベルにはなるのではないでしょうか。

機械学習なんて全くわからないという人でもこれらのことを踏まえてどんなことができそうかなというアイディアを出してみることが大切です。

また、今回学習モデルや実際の分析はここには示しませんでしたが、実際にコードを書いて勉強したいという方はscikit-learnというpythonのライブラリを使って実装することができます。

このブログでもscikit-learnを使って勉強をしているので興味を持った人は一緒に挑戦していきましょう!

コメント

タイトルとURLをコピーしました