Help us understand the problem. What is going on with this article?

「機械学習」まとめ連載(其の1・機械学習とは)

More than 3 years have passed since last update.

機械学習とは

こんにちは、mucunです。

この連載では、私なりに勉強してきた「機械学習」の知識について、
なるべく綺麗にまとめて、紹介していきたいと思います。

「AI」「人工知能」「機械学習」「ディープラーニング」、、、
これらのワードが一気呵成にバズり始め、
真剣に導入を考える企業が少なくない昨今。
非常にHOTな技術領域と言えます。

言葉の整理

先ず、言葉の整理です。
「AI」「人工知能」「機械学習」「ディープラーニング」、、、
これらは違う領域を指しています。
違いについては、下記画像引用元記事に詳しく書いてありました。

(画像引用元:【NVIDIA】人工知能、機械学習、ディープラーニングの違いとは

分かりやすい!!
「AI・人工知能」がより抽象的な概念、広義な意味合い。
「機会学習」がそれを実現する手法の1流派。
「ディープラーニング」が、「機会学習」の内の1手法という関係です。

機械学習の意味するところ

次に、「機械学習」の意味を掘り下げていきます。
wikiによれば、

機械学習(きかいがくしゅう、英: machine learning)とは、
人工知能における研究課題の一つで、
人間が自然に行っている学習能力と同様の機能を
コンピュータで実現しようとする技術・手法のことである。

とのこと。
また、統計解析で有名なSASによれば、

機械学習とは、データから反復的に学習し、
そこに潜むパターンを見つけ出すことです。
そして学習した結果を新たなデータにあてはめることで、
パターンにしたがって将来を予測することができます。

とのこと。
まとめると、

  • 人間の学習をコンピューターで再現する手法
  • データの法則性を抽出し、そこから将来予測をする手法

ということですね。
つまり、行動科学の解明であり、パターン識別であるという訳です。

具体例から説明

例えば、男女の判断を見た目から識別してみます。

分かりやすく、以下の項目で判断することにします。

  1. 身長の高さ
  2. 髪の長さ
  3. 髭の濃さ

サンプルデータを以下5件とします。

名前 身長 髪の長さ 髭の濃さ 性別
Aさん 170 濃い
Bさん 180 少し
Cさん 160 まあまあ濃い
Dさん 150 ほんの少し
Eさん 170 無し

これらの与えられたデータから、
「男性/女性」を識別する決め手を抽出するのが機械学習です。

学習の前には、データの数値化とスケール合わせをします。
データの値域は、「-1~1」か「0~1」に調整することが多いです。
値の意味合いによって、調整の仕方は考える必要があります。
特に、ZEROの意味をしっかり考慮しなくてはなりません。
(※この辺りについては、いずれ掘り下げたいと思います)

実際にやってみると、こんな感じです。

名前 身長 髪の長さ 髭の濃さ 性別
Aさん 0.70 0.20 1.00 1
Bさん 0.80 0.60 0.30 1
Cさん 0.60 0.40 0.50 1
Dさん 0.50 0.60 0.10 0
Eさん 0.70 0.90 0.00 0

このデータを使って、機械学習を行います。
具体的に行うことは、データ項目ごとに統計的な決め手度合の計算です。
その度合のことを、一般的に「重み」と言います。
例えば、

  1. 身長の高さ ⇒ 重み:0.5
  2. 髪の長さ  ⇒ 重み:-0.9
  3. 髭の濃さ  ⇒ 重み:0.7

という具合に計算します。
実際の計算方法については、次回以降で掘り下げます。

この重みをサンプルデータに対して掛けて、その総和を取ります。

名前 身長 × 0.5 髪の長さ × -0.9 髭の濃さ × 0.7 総和
Aさん 0.35 -0.18 0.70 0.87
Bさん 0.40 -0.54 0.21 0.07
Cさん 0.30 -0.36 0.35 0.29
Dさん 0.25 -0.54 0.07 -0.22
Eさん 0.35 -0.81 0.00 -0.46

すると、男性がプラスの値、女性がマイナスの値が出るように、
「重み」が調整されていることが確認できます。
つまり、総和の値が ZEROより上か下かで識別ができています。
この時の境界値のことを「閾値」と呼びます。
「閾値」は、ZEROでも、ZEROでなくても構いません。
今回は、ZEROが「閾値」になるように調整がされています。

一度、「重み」が算出できれば、未知のデータでの予測ができます。
例えば、以下のような未知のデータがあったとします。

名前 身長 髪の長さ 髭の濃さ 性別
Fさん 170 少し
Gさん 160 ほんの少し

予測の際にも、データの数値化とスケール合わせをします。

名前 身長 髪の長さ 髭の濃さ 性別
Fさん 0.70 0.40 0.30
Gさん 0.60 0.90 0.10

そして、「重み」を掛け合わせます。

名前 身長 × 0.5 髪の長さ × -0.9 髭の濃さ × 0.7 総和
Fさん 0.35 -0.36 0.21 0.10
Gさん 0.30 -0.81 0.07 -0.44

よって、予測は以下となります。

名前 性別予測
Fさん 男性
Gさん 女性

以上、機械学習のイメージを掴んでもらうために、
具体例でもっての説明でした。

要するに、、、

まとめると、

  • 識別のための「重み」を算出するのが「機会学習」
  • 「重み」を算出すれば、未知のデータで予測ができる

です。

今回の記事はここまでとなります。
読んで下さった方、ありがとうございました。<(_ _)>

mucunwuxian
少しでも分かりづらいところがあれば、気軽にコメントいただけると、有り難いです!!
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした