AIまいもこ

~理系学生が人工知能を用いて面白いことをやってみたい!!~

ノルムの計算方法まとめてみた

この記事は、こんな人におすすめです。

Target
  • 教科書にノルムって出てきたけどいまいちわからない、、、
  • 正則化の時に出てくるけど、どんな意味だっけ?
  • ノルムとは

    大学の数学の授業になると、見慣れない記号が多く出てきますよね。\|・\|もそんな記号の一つじゃないでしょうか。良く知ってる絶対値記号|・|に似てるけど縦線多すぎ!、と思った人も多いでしょう。

    まずノルムについてざっくり説明をすると、ベクトル空間で「長さ」を与える関数です。
    絶対値が実数の「大きさ」を表していた記号なので、「ベクトル空間版絶対値」とイメージしてもそこまで間違ってはないと思います。
    それでは以下でノルムについて詳しく見ていきましょう。

    ノルムの定義

    ノルム(norm)の定義は次のように定められています。

    関数\|・\|が次の三つの条件を満たすとき、\|・\|をノルムと呼ぶ。
    [条件①](斉次性)
    任意の実数kd次元ベクトル \boldsymbol{x} に対して、
    \|k\boldsymbol{x}\| = |k|\cdot\| \boldsymbol{x} \|


    [条件②](正値性)
    d次元ベクトル \boldsymbol{x} と零ベクトル \boldsymbol{O} に対して、
    \| \boldsymbol{x} \| =0  \Leftrightarrow \boldsymbol{x}=\boldsymbol{O}


    [条件③](三角不等式)
    d次元ベクトル \boldsymbol{x},\boldsymbol{y} に対して、
    \| \boldsymbol{x}+\boldsymbol{y} \| \leq \| \boldsymbol{x} \|+\| \boldsymbol{y} \|


    定義だけ見ても詳しい計算はあまりわかりませんね。それもそのはずで、ノルムにはたくさんの種類があるのです。次にたくさんあるノルムの中でも良く使われるL1ノルム・L2ノルムの二種類をみていきましょう。
    もし、添え字の無い\|・\|のことだけ知りたい人はL2ノルムの項目をお読みください。

    よく使われるノルム:L1ノルム・L2ノルム

    それではL1ノルム・L2ノルムの二種類についてみていきます。ノルムの種類が明確に表記される時には\|・\|の右下に添え字がつけられます。

    L1ノルム

    L1ノルムは\|・\|_1と表され、ベクトルの要素の絶対値の総和で計算されます。
    式では次のように表されます。

    d次元ベクトル \boldsymbol{x} = (x_1, x_2, ..., x_d)とした時、
    \displaystyle \| \boldsymbol{x} \|_{1} =\sum_{i=1}^{d} |x_{i}|

    具体例をみていきましょう。
    例1)2次元ベクトル \boldsymbol{v} = (3,-4)のL1ノルムを求めよ。
    \| \boldsymbol{v} \|_{1} =|3|+|-4|=3+4=7

    例2)4次元ベクトル \boldsymbol{w} = (-2,0,-6,8)のL1ノルムを求めよ。
    \| \boldsymbol{w} \|_{1} =|-2|+|0|+|-6|+|8|=2+0+6+8=16

    L1ノルムの値はL1距離もしくはマンハッタン距離と呼ばれます。この値を変化させるとL1ノルムでは以下のような頂点が軸上にある正方形の等高線が描かれます。
    L1ノルムの等高線。

    L2ノルム

    L2ノルムは\|・\|_{2}と表され、ベクトルの要素の、絶対値の自乗の総和の平方根で計算されます。添え字の無い\|・\|もほとんどの場合、このL2ノルムを意味します。 式では次のように表されます。

    d次元ベクトル \boldsymbol{x} = (x_1, x_2, ..., x_d)とした時、
    \displaystyle \| \boldsymbol{x} \| _{2} = \sqrt{ \sum _{i=1}^{d} | x_{i} |^{2}}

    この式は2次元の場合、ピタゴラスの定理三平方の定理c^{2}=a^{2}+b^{2}と同等の式になります。 また、標準内積\displaystyle \langle \boldsymbol{x} , \boldsymbol{y} \rangle=\boldsymbol{x} \cdot \boldsymbol{y}を用いると \| \boldsymbol{x} \|_{2} =\sqrt{\langle\boldsymbol{x},\boldsymbol{x}\rangle}と表すこともできます。 具体例をみていきましょう。
    例1)2次元ベクトル \boldsymbol{v} = (3,-4)のL2ノルムを求めよ。
    \| \boldsymbol{v} \|_{2} =\sqrt{|3|^{2}+|-4|^{2}}=\sqrt{9+16}=5

    例2)4次元ベクトル \boldsymbol{w} = (-2,0,-6,8)のL2ノルムを求めよ。
    \begin{align}
             \|\boldsymbol{w} \|_{2} &=\sqrt{|-2|^{2}+|0|^{2}+|-6|^{2}+|8|^{2}} \\
                                                &=\sqrt{4+0+36+64}=2\sqrt{26}
             \end{align}

    L2ノルムの値はL2距離もしくはユークリッド距離と呼ばれ、私たちが直感的に理解している2点間の直線距離を表します。この値を変化させるとL2ノルムでは以下のような原点中心の円形の等高線が描かれます。
    L2ノルムの等高線。

    L1・L2以外のノルム:Lp・L∞・L0

    次にL1ノルム・L2ノルム以外のノルムについてみていきましょう。一般化されたノルムは1\leq p \lt \inftyを用いてLpノルムと表されます。また特有のL\inftyノルムとL0ノルムというものも存在します。

    Lpノルム

    上記でも述べたようにLpノルムは一般化されたノルムを表しています。p1\leq p \lt \inftyという制限がありますので注意してください。
    Lpノルムの計算はベクトルの要素の、絶対値のp乗の総和のp乗根で計算されます。式では次のように表されます。

    d次元ベクトル \boldsymbol{x} = (x_1, x_2, ..., x_d)とした時、
    \displaystyle \| \boldsymbol{x} \| _{p} = \sqrt[p]{ \sum _{i=1}^{d} | x_{i} |^{p}}

    具体例をみていきましょう。
    例1)2次元ベクトル \boldsymbol{\alpha} = (2,-2)のL3ノルムを求めよ。
    \| \boldsymbol{\alpha} \|_{3} =\sqrt[3]{|3|^{3}+|-3|^{3}}=\sqrt[3]{8+8}=2\sqrt[3]{2}

    例2)4次元ベクトル \boldsymbol{\beta} = (-1,0,0,1)のL100ノルムを求めよ。
    \begin{align}
             \|\boldsymbol{\beta} \|_{100} &=\sqrt[100]{|-1|^{100}+|0|^{100}+|0|^{100}+|1|^{100}} \\
                                                &=\sqrt[100]{1+0+0+1}=\sqrt[100]{2}
             \end{align}

    例3)2次元ベクトル \boldsymbol{\alpha} = (2,-2)のL1.5ノルムを求めよ。
    \| \boldsymbol{\alpha} \|_{1.5} =\sqrt[1.5]{|2|^{1.5}+|-2|^{1.5}}=\sqrt[1.5]{2\sqrt{2}+2\sqrt{2}}=\sqrt[1.5]{4\sqrt{2}}

    このようにpが1以上の実数であればそれに対応するLpノルムは計算できるので無数の種類のLpノルムが存在します。

    L∞ノルム

    L\inftyノルムは最大値ノルム一様ノルムとも呼ばれ、\|・\|_{\infty}と表されます。L\inftyノルムはLpノルムのp p\to \inftyとした極限の値で、ベクトルの要素の絶対値の中での最大値を表します。式では次のように表されます。

    d次元ベクトル \boldsymbol{x} =(x_1, x_2, ..., x_d)とした時、
    \displaystyle \| \boldsymbol{x} \|_{\infty} =\max_{i=1,2,...,d} |x_{i}|

    具体例をみていきましょう。
    例1)2次元ベクトル \boldsymbol{v} = (3,-4)のL\inftyノルムを求めよ。
    \| \boldsymbol{v} \|_{\infty} =\max(|3|,|-4|)=\max(3,4)=4

    例2)4次元ベクトル \boldsymbol{w} = (-2,0,-6,8)のL\inftyノルムを求めよ。
    \begin{align}
             \|\boldsymbol{w} \|_{\infty} &=\max(|-2|,|0|,|-6|,|8|) \\
                                                &=\max(2,0,6,8)=8
             \end{align}

    ノルムの値をを変化させるとL\inftyノルムでは以下のような各辺の中点が軸上にある正方形の等高線が描かれます。
    L\inftyとL\inftyノルムの等高線。
    pによる等高線の変化
    またここでpによって等高線がどのように変化するのかを整理しましょう。以下の図にp=1,1.5,2,10,\inftyそれぞれで\| \boldsymbol{x} \|_{p} =1となる2次元ベクトル\boldsymbol{x}がどのような点にあるのかをしましました。
    L\inftyノルムの比較。
    L1ノルムは頂点が軸上にある正方形で、L2ノルムは単位円になっています。L1.5ノルムはL1ノルムとL2ノルムの間で丸っぽい図形をしています。
    またL\inftyノルムは各辺の中点が軸上にある正方形になっており、L10ノルムはL2ノルムとL\inftyの間で角の丸まった正方形となっています。
    つまりpが大きくなるにつれて頂点が軸上にある正方形(p=1)→原点中心の円(p=2)→各辺の中点が軸上にある正方形( p\to \infty)というように徐々に変化していきます。

    L0ノルム

    L0ノルムは\|・\|_{0}と表され、ベクトルの要素のうちで0ではないものの個数を意味します。 式では次のように表されます。

    d次元ベクトル \boldsymbol{x} = (x_1, x_2, ..., x_d)とした時、
     \| \boldsymbol{x} \| _{0} =[{\rm supp} (\boldsymbol{x}) の要素数]

    上の式での{\rm supp} (\boldsymbol{x}) \boldsymbol{x} の非ゼロの集合を表しており、式では{\rm supp} (\boldsymbol{x})=\{x_{i} \mid i\in\{1,2,...,d\},x_{i}\neq0\} )と書かれます。
    具体例をみていきましょう。
    例1)2次元ベクトル \boldsymbol{\alpha} = (2,-2)のL0ノルムを求めよ。
    \| \boldsymbol{\alpha} \|_{0} =2

    例2)4次元ベクトル \boldsymbol{\beta} = (-1,0,0,1)のL100ノルムを求めよ。
    \|\boldsymbol{\beta} \|_{0} =2

    他のノルムに比べると0じゃないものを数えるだけなのでとても簡単ですね。しかしL0ノルムには一点注意しないといけないことがあります。 というのもL0ノルムは数学的なノルムの定義を満たしません。上のノルムの定義の条件①の斉次性について考えてみましょう。あるベクトル \boldsymbol{x}の非ゼロの個数と \boldsymbol{x}を0以外の実数倍したものの非ゼロの個数は同じになります。そのためL0ノルムでは斉次性が成立せず厳密にはノルムではありません。(条件②の正値性と条件③の三角不等式は成り立ちます。)
    例)4次元ベクトル \boldsymbol{\beta} = (-1,0,0,1)の時
    \| \boldsymbol{\beta} \|_{0} =2であり、
    2\| \boldsymbol{\beta} \|_{0} =2\cdot2=4となる
    また 2\boldsymbol{\beta} =2 (-1,0,0,1)=(-2,0,0,2)なので \| 2\boldsymbol{\beta} \|_{0} =2
    よって\| \boldsymbol{\beta} \|_{0} =\| 2\boldsymbol{\beta} \|_{0}\neq  2\| \boldsymbol{\beta} \|_{0} となり斉次性が成り立たない。

    このことからL0ノルムはノルムとは呼ばずL0擬ノルム濃度と呼ばれるともあります。

    Summary
  • ノルムにはLpノルムやL0ノルムなどたくさんの種類がある
  •  \| \boldsymbol{x} \| _{p} = \sqrt[p]{ \sum _{i=1}^{d} | x_{i} |^{p}}
  • pが大きくなるにつれて頂点が軸上にある正方形(p=1)→原点中心の円(p=2)→各辺の中点が軸上にある正方形( p\to \infty)と変化
  • L0ノルムでは斉次性は常には成り立たない
  • 参考文献
    ・スパースモデリング 基礎から動的システムへの応用:永原正章
    ・スパース性に基づく機械学習:冨岡亮太

    ベクトル・行列を含む微分の計算方法まとめてみた

    f:id:AI_maimoko:20210901233312p:plain

    この記事は、こんな人におすすめです。

    Target
  • ベクトルで微分する方法がわからない
  • ヤコブ行列(ヤコビアン

    まず準備としてヤコビ(Jacobi)行列の定義を確認します。ヤコビ行列はヤコビアン(Jacobian)とも呼ばれる微分係数を多変数関数へ一般化したものです。
    2変数のC^1級関数y_{1}(x_1,x_2)y_{2}(x_1,x_2)を用いて、2次元ベクトル \boldsymbol{y}(x_1,x_2)

     \boldsymbol{y}(x_1,x_2)= \begin{bmatrix} y_{1}(x_1,x_2)\\y_{2}(x_1,x_2)\end{bmatrix}
    としておきます。
    y_{1}(x_1,x_2)y_{2}(x_1,x_2)をそれぞれ全微分すると、
    \begin{align}
\Delta y_{1}&=\frac{\partial y_1}{\partial x_1}\Delta x_1 +\frac{\partial y_1}{\partial x_2}\Delta x_2\\
\Delta y_{2}&=\frac{\partial y_2}{\partial x_1}\Delta x_1 +\frac{\partial y_2}{\partial x_2}\Delta x_2
\end{align}
    となります。これらをまとめて表記すると以下のように書くことができます。
     \begin{bmatrix} \Delta y_{1}\\\Delta y_{2}\end{bmatrix}= \begin{bmatrix} \frac{\partial y_1}{\partial x_1} &\frac{\partial y_1}{\partial x_2}\\ \frac{\partial y_2}{\partial x_1}&\frac{\partial y_2}{\partial x_2}\end{bmatrix} \begin{bmatrix} \Delta x_{1}\\\Delta x_{2}\end{bmatrix}
    ここに出てくる
    \begin{bmatrix} \frac{\partial y_1}{\partial x_1} &\frac{\partial y_1}{\partial x_2}\\ \frac{\partial y_2}{\partial x_1}&\frac{\partial y_2}{\partial x_2}\end{bmatrix}
    がヤコビ行列となります。

    これを一般化すると,
    n変数のC^1級関数y_{1}(x_1,\cdots,x_n),\cdots,y_{m}(x_1,\cdots,x_n)を用いて、
    m次元のベクトル \boldsymbol{y}(x_1,\cdots,x_n)
     \boldsymbol{y}(x_1,\cdots,x_n)= \begin{bmatrix} y_{1}(x_1,\cdots,x_n)\\ \vdots \\y_{m}(x_1,\cdots,x_n)\end{bmatrix}
    とした時、 \boldsymbol{y}(x_1,\cdots,x_n)の各要素を全微分すると,
     \begin{bmatrix} \Delta y_{1}\\ \vdots \\ \Delta y_{m}\end{bmatrix}= \begin{bmatrix} \frac{\partial y_1}{\partial x_1} &\cdots&\frac{\partial y_1}{\partial x_n}\\ \vdots&\ddots&\vdots \\ \frac{\partial y_m}{\partial x_1}&\cdots&\frac{\partial y_m}{\partial x_n}\end{bmatrix} \begin{bmatrix} \Delta x_{1}\\ \vdots \\ \Delta x_{n}\end{bmatrix}
    となります。
    よって,この場合のヤコビ行列は以下のようになります。
    \begin{bmatrix} \frac{\partial y_1}{\partial x_1} &\cdots&\frac{\partial y_1}{\partial x_n}\\ \vdots&\ddots&\vdots \\ \frac{\partial y_m}{\partial x_1}&\cdots&\frac{\partial y_m}{\partial x_n}\end{bmatrix}
    それでは具体例をみていきましょう。
    例)2次元ベクトル\begin{bmatrix} r\cos \theta \\ r \sin \theta \end{bmatrix}のヤコビ行列を求めよ。

    \begin{bmatrix} \frac{\partial ( r\cos \theta)}{\partial r} &\frac{\partial  (r\cos \theta)}{\partial \theta}\\ \frac{\partial (r \sin \theta)}{\partial r}&\frac{\partial (r \sin \theta)}{\partial \theta}\end{bmatrix}=\begin{bmatrix} \cos \theta & -r\sin \theta \\  \sin \theta & r \cos \theta\end{bmatrix}

    ベクトルと微分

    それではベクトルを含んだ微分の一般式をみていきましょう。以下の3種類に分けて説明していきます。

  • ベクトルをスカラー微分
  • スカラーをベクトルで微分
  • ベクトルをベクトルで微分
  • ここではx,yスカラー値、\boldsymbol{x}=\begin{bmatrix}x_1\\ \vdots \\ x_n \end{bmatrix}\boldsymbol{y}=\begin{bmatrix}y_1\\ \vdots \\ y_m \end{bmatrix}をそれぞれn,m次元のベクトルとして扱います。

    ベクトルをスカラー微分

    m次元ベクトル\boldsymbol{y}スカラーx微分すると次のようになります。

    \frac{d \boldsymbol{y}}{dx}=\begin{bmatrix} \frac{d y_1}{dx}\\ \vdots \\ \frac{d y_m}{dx} \end{bmatrix}
    それでは具体例をみていきましょう。
    例)3次元ベクトル\boldsymbol{y}=\begin{bmatrix} x^{3} \\ 2x^{2} \\ 1 \end{bmatrix}x微分せよ。

    \frac{d \boldsymbol{y}}{dx}=\begin{bmatrix} \frac{dx^{3}}{dx} \\ \frac{d(2x^{2})}{dx} \\ \frac{d(1)}{dx} \end{bmatrix}=\begin{bmatrix} 3x^{2}  \\4x\\0\end{bmatrix}

    スカラーをベクトルで微分

    スカラーyn次元ベクトル\boldsymbol{x}微分すると次のようになります。

    \frac{d y}{d \boldsymbol{x}}=\begin{bmatrix} \frac{\partial  y}{\partial x_1}\\ \vdots \\ \frac{\partial y}{\partial x_n} \end{bmatrix}
    それでは具体例をみていきましょう。
    例)y=2x_{1}+x_{2}-x_{3} \boldsymbol{x}=\begin{bmatrix} x_{1} \\ x_{2} \\ x_{3} \end{bmatrix}微分せよ。

    \frac{d y}{d \boldsymbol{x}}=\begin{bmatrix} \frac{\partial(2x_{1}+x_{2}-x_{3})}{\partial x_{1}} \\ \frac{\partial (2x_{1}+x_{2}-x_{3})}{\partial x_{2}} \\ \frac{\partial (2x_{1}+x_{2}-x_{3})}{\partial x_{3}} \end{bmatrix}=\begin{bmatrix} 2 \\1\\-1\end{bmatrix}

    ベクトルをベクトルで微分

    m次元ベクトル\boldsymbol{y}n次元ベクトル\boldsymbol{x}微分すると次のようになります。

    \frac{d \boldsymbol{y}}{d \boldsymbol{x}}=\begin{bmatrix} \frac{\partial y_1}{\partial x_1} &\cdots&\frac{\partial y_1}{\partial x_n}\\ \vdots&\ddots&\vdots \\ \frac{\partial y_m}{\partial x_1}&\cdots&\frac{\partial y_m}{\partial x_n}\end{bmatrix}

    これはお気づきの通りヤコビ行列となります。ベクトル同士の微分の方法を忘れてしまった場合はヤコビ行列の定義を思い出すとよいと思います。イメージとしては、\Delta \boldsymbol{y}=\frac{d \boldsymbol{y}}{d \boldsymbol{x}} \Delta \boldsymbol{x}が成り立つ\frac{d \boldsymbol{y}}{d \boldsymbol{x}}を、\boldsymbol{y}の全微分から考えるです。

    行列と微分

    続いて行列を含んだ微分の一般式をみていきましょう。以下の2種類に分けて説明していきます。

  • 行列をスカラー微分
  • スカラーを行列で微分
  • ここではx,yスカラー値、\boldsymbol{X}=\begin{bmatrix}x_{11} & \cdots & x_{1n_{x}} \\ \vdots&\ddots&\vdots \\ x_{m_{x}1} & \cdots & x_{m_{x}n_{x}} \end{bmatrix}m_{x}\times n_{x}の行列、\boldsymbol{Y}=\begin{bmatrix}y_{11} & \cdots & y_{1n_{y}} \\ \vdots&\ddots&\vdots \\ y_{m_{y}1} & \cdots & y_{m_{y}n_{y}} \end{bmatrix}m_{y}\times n_{y}の行列として扱います。

    行列をスカラー微分

    m_{y}\times n_{y}の行列\boldsymbol{Y}スカラーx微分すると次のようになります。

    \frac{d \boldsymbol{Y}}{dx}=\begin{bmatrix} \frac{dy_{11}}{dx} & \cdots &\frac{ dy_{1n_{y}}}{dx} \\ \vdots&\ddots&\vdots \\ \frac{dy_{m_{y}1}}{dx} & \cdots & \frac{dy_{m_{y}n_{y}}}{dx} \end{bmatrix}
    それでは具体例をみていきましょう。
    例)2\times3の行列\boldsymbol{Y}=\begin{bmatrix} x^{3} & x^{2}&x \\ 4x^{4}&2x^{2} & 1 \end{bmatrix}x微分せよ。

    \frac{d \boldsymbol{Y}}{dx}=\begin{bmatrix} \frac{dx^{3}}{dx} & \frac{dx^{2}}{dx}&\frac{dx}{dx} \\ \frac{d(4x^{4})}{dx}&\frac{d(2x^{2})}{dx} & \frac{d(1)}{dx} \end{bmatrix}=\begin{bmatrix} 3x^{2} & 2x&1 \\ 16x^{3}&4x & 0 \end{bmatrix}

    スカラーを行列で微分

    スカラーym_{x}\times n_{x}の行列\boldsymbol{X}微分すると次のようになります。

    \frac{dy}{d \boldsymbol{X}}=\begin{bmatrix} \frac{\partial y}{\partial x_{11}} & \cdots &\frac{\partial y}{\partial y_{1n_{x}}} \\ \vdots&\ddots&\vdots \\ \frac{\partial y}{\partial x_{m_{x}1}} & \cdots & \frac{\partial y}{\partial x_{m_{x}n_{x}}} \end{bmatrix}
    それでは具体例をみていきましょう。
    例)y=4x_{1}^{2}-6x_{1}x_{2}2\times2の行列\boldsymbol{X}=\begin{bmatrix} x_{1} & x_{2}\\ 2x_{1}&x_{3} \end{bmatrix}微分せよ。

    \frac{dy}{d \boldsymbol{X}}=\begin{bmatrix} \frac{\partial (4x_{1}^{2}-6x_{1}x_{2})}{\partial x_{1}} & \frac{\partial (4x_{1}^{2}-6x_{1}x_{2})}{\partial x_{2}}\\ \frac{\partial (4x_{1}^{2}-6x_{1}x_{2})}{\partial (2x_{1})}&\frac{\partial (4x_{1}^{2}-6x_{1}x_{2})}{\partial x_{3}} \end{bmatrix}=\begin{bmatrix} 8x_{1}-6x_{2} & -6x_{1}\\ 4x_{1}-3x_{2}&0 \end{bmatrix}

    人工知能(AI)と機械学習って何がちがうの?

    f:id:AI_maimoko:20210812164023p:plain

    この記事は、こんな人におすすめです。

    Target
  • 人工知能機械学習って同じなの?
  • そもそも人工知能って何?
  • これから人工知能について学びたい!
  • 人工知能とは

    人工知能と聞いて皆さんは何を思い浮かべるでしょうか?SFに出てくる、何でも自ら判断して行動するドラえもんのようなロボットを想像する人もいるかもしれません。実際にこのようなものは人工知能の一種ではあります。しかしそれだけが人工知能ではありません。それでは、初めに人工知能という言葉についてみていきましょう。

    人工知能の定義

    人工知能(Artificial Intelligence:AI)という言葉は、1956年の夏にアメリカで開催されたダートマス会議で初めて登場しました。人工知能の定義は明確には定められておらず、人により多少のばらつきがありますが、広辞苑では以下のように述べられています。

    推論・判断などの知的な機能を人工的に実現するための研究。また、これらの機能を備えたコンピューター‐システム。1956年に、アメリカのマッカーシー(J. McCarthy1927〜)が命名。知識を蓄積するデータベース部、集めた知識から結論をひきだす推論部が不可欠である。データベースを自動的に構築したり誤った知識を訂正したりする学習機能を持つものもある。

    -広辞苑第六版

    与えられたプログラムを従順に実行していくだけのシステムとは異なり、自ら判断を行うシステムが人工知能と呼ばれています。つまり何でも判断ができなくても、何かしら判断ができれば人工知能に含まれるのです。

    強いAIと弱いAI

    ここで何でも判断できるAIと限られたものだけ判断できるAIは同じ扱いなのかという疑問が生まれてきます。この2つのAIは哲学者のジョン-サールによりそれぞれ「強いAI」と「弱いAI」というグループに分類されています。

    強いAI

    強いAIは汎用人工知能(Artificial General Intelligence:AGI)とも呼ばれ、上で述べている何でも判断できるAIに当てはまります。このAIは生物(特に人間)の知能を再現した、ある意味心を持った人工知能であり、ドラえもんターミネーターといった例に挙げられます。例からお気づきの方も多いと思いますが、強いAIはまだ実現できていません。「強いAI」という言葉を生み出したジョン-サールは強いAIは実現不可能だと述べました。しかし現在多くの研究者がこの強いAIの実現を目標に研究をしているおり、実現される日もそう遠くはないかもしれません。

    弱いAI

    弱いAIは特化型人工知能(applied AI、narrow AI)とも呼ばれ、上で述べている限られたものだけ判断できるAIに当てはまります。画像処理や文章の処理、ゲームの人工知能などが分類され、具体的には自動運転のシステムや将棋ソフトウェアのPonanzaなどが挙げられます。残念ながらPepper君も心を持って人と接しているとは到底言えず、弱いAIに分類されます。私たちの生活の多くの場面でAIが取り入れられています。つまり、それだけたくさんの種類の弱いAIが存在しているということになります。

    人工知能機械学習の違い

    人工知能についてだいたいわかったところで本題に入りましょう。
    人工知能と同時に機械学習という言葉も使われることが多く、同じものなの?と思っている人も多いでしょう、私もその一人でした。
    結論から述べると機械学習人工知能の分野の一つになります。
    人工知能には様々な分野があります。

    分野 内容
    機械学習 データを用いた学習を行うことによりアルゴリズムが自動で改変されます。
    遺伝的アルゴリズム データを生物の遺伝子にみたてたもの。適応度の高いデータ同士を交差させたり、突然変異を起こすことで最適なものを探します。
    群知能 データを生物の群れにみたてたもの。簡単なアルゴリズムを持つデータを複数集めることで複雑な振る舞いを実現します。

    上の表は人工知能の種類の一部で他にもファジィ制御エキスパートシステムなどがあります。人工知能といっても偏に同じものではなく、様々な分類、種類に分けられています。

    Summary
  • 人工知能は自ら推論、判断を行うシステム
  • 人工知能には強いAIと弱いAIという分類がある
  • 機械学習人工知能の一分野