⾔言語処理の為の機械学習⼊入⾨門
        ・・・の前に
概要

•  ⽬目的

   •    数学記号,数学公式を思い出す

   •    最初の⼀一歩でつまずかない

•  内容

   •    数学記号

   •    公式(指数・対数,微分・積分)

   •    偏微分(∇・Δ)

   •    ⾏行行列
記号編
ギリシャ⽂文字

               慣習的に特定の意味で
               良く使われる⽂文字もある


                     ! :ラグランジュの未定乗数法など
                     ! :フーリエ変換した関数の変数
          !, " , #

                     ! :標準偏差
                     ! :カイ2乗分布
固有名詞として使われる記号

•  N :⾃自然数全体 = {0, 1, 2, …} (0を含むかは流派による)

•  Z :整数全体 = {…, -2, -1, 0, 1, 2, …}

•  R:実数全体

•  C:複素数全体

•  ( Q:有理数全体)

   •  n ! N => 「nは⾃自然数です」

   •  x ! Z   => 「xは整数ではありません」
集合に対する記号

•  ∈(集合に属する)と ⊂(部分集合である)の違いに注意

  •    x ∈ A:xは集合Aの元である

       •    1 ∈ {1, 2, 3}, {3, 4, 5} ∈ { {1, 2}, {3, 4, 5}, {6, 7} }

  •    B ⊂ A:BはAの部分集合である

       •    {1, 2} ⊂ {1, 2, 3}, { {3, 4, 5} } ⊂ { {1, 2}, {3, 4, 5}, {6, 7} }

             N!Z!Q!R!C

       •    集合が等しい場合を含めるかは流派がある

                             (1)          (2)           (3)
            真部分集合 A⊂B                 A⊆B           A⊆B
            部分集合        A⊆B           A⊂B           A⊆B
集合の記法

•  ⼤大雑把に2通りの記法がある

  •    1. 元を全て書きくだす
          S = {1, 3, 5, 7, 9}

  •    2. 元の満たす条件を挙げる
          S = {x ! N | x % 2 = 1, x ! 10}

          S = {x | x ! N, x is odd and is less than or equal to 10}

•  リストの内包表記に対応する

  •    Haskell:

  •    Python:
公式編
指数,対数関連公式

•  定義

  •    a, bを正の実数として                       a x = b ! x = log a b

  •    ⾃自然対数の底: e = 2.728!

        •            を log x や ln x と書く事も
             log e x

•  公式

  •    真数のかけ算                 log(x ! y) = log x + log y

        •    特に,     log x n = n log x

  •    真数の割り算                 log(x / y) = log x ! log y

  •    指数法則                   e( x+y) = e x ! e y
微分,積分関連公式
                                    d n
•  多項式の微分              (x n )! =       (x ) = nx n"1
                                    dx
•  積の微分の公式                    ( f ! g)" = f " ! g + f ! g"

•  合成関数の微分                    ( f (g(x)))! = f !(g(x))" g!(x)

  •    公式そのものより使い⽅方を習得してください

  •    例:   d                "d     % "d % 1
               (log x 3 )! = $ logt ' ( $ x 3 ' = ( (3x 2 ) =
                                                              3
            dx               # dt   & # dx & t                x
                         ↑
             t=x3とおいて合成関数の微分
                 f(t)=log t, g(x)=x3



                                         1 n+1
•  多項式の積分               !   x n dx =        x + C (n " #1)        ← n=­1では分⺟母が0になる
                                       n +1
                             !1
                        "x        dx = log x + C
ベクトル解析の記号
多変数を表す記号

•  1個の実数を表す記号は細字,複数の実数の組を表す記号は太字を⽤用い
   る事が多い

  •    例: x = ( x1, x2 , x3, x4 )
               f (x) = x 3
              g(x) = x1 + x2 + x3 + x4
              h(x) = (x, x 2 + x, x 3 ! x)

•  以降もこの記法に従っていきます

•  定義域,値域を明⽰示することでも分かりやすくなります
  •    上の例の場合                   f :R!R
                                g : R4 ! R
                                h : R ! R3
偏微分(定義)

•  多変数関数(変数が2つ以上の関数)で1つ以外のすべての変数を定数
   だと思って微分する操作

  •    例: f (x, y, z) = x 3 + y 2 + z 5

            !f                                    !f
               (x, y, z) = f x (x, y, z) = 3x 2      (x, y, z) = f y (x, y, z) = 2y
            !x                                    !y


            !f
               (x, y, z) = fz (x, y, z) = 5z 4
            !z
偏微分同⼠士の関係

•  f が⼗十分滑らか(= x, yについて何回でも微分可能)ならば

  f xy (x, y, z) = f yx (x, y, z)
       ↑                    ↑
    まずxで微分し              まずyで微分し
できた関数をさらにyで微分する      できた関数をさらにxで微分する




•  これを繰り返し⽤用いると,

  f xyzyyxwzxxzy (x, y, z) = f xxxxxyyyyzzzw (x, y, z)

  → 偏微分する順序は好きなように決めてよい
∇(ナブラ)

•  多変数関数の1階偏微分を並べて,ベクトルにする操作

•  例:   f (x, y, z) = x 3 + y 2 + z 5

        !f (x, y, z) = (3x 2 , 2y, 5z 4 )   (⾏行行ベクトルの場合)
                       "         %
                       $ 3x 2 '
        !f (x, y, z) = $ 2y '               (列ベクトルの場合)
                       $         '
                       # 5z 4 &
  •    列/⾏行行ベクトルどちらで⽤用いるかは⽂文脈/筆者による

•  (x, y, z) をまとめて x と書いて,↓のように書く事もある

          !f
             (x) = (3x 2 , 2y, 5z 4 )
          !x
Δ(ラプラシアン)

•  多変数関数の2階偏微分をすべて⾜足し合わせたもの

                 "2    "2     "2
  !f (x, y, z) = 2 f + 2 f + 2 f                   f : R 3 ! R なら
                "x    "y     "z
                # "2                               !f はベクトル
                      "2   "2 &
               =% 2 + 2 + 2 ( f                    !f はスカラー(実数)
                $ "x "y "z '
                = f xx + f yy + fzz .
•  例:   f (x, y, z) = x 3 + y 2 + z 5    のとき,

         !2            !2        !2
           2
             f = 6x         f =2      f = 20z 3   だから,
        !x             !y 2      !z 2
        "f (x, y, z) = 20z 3 + 6x + 2.
⾏行行列
⾏行行列の表し⽅方

•  数字を⻑⾧長⽅方形上に並べたもの

•  ⾏行行列は⼤大⽂文字アルファベットで表す事が多い

•  横が⾏行行,縦が列(ほとんど統⼀一されている)

  •    n ⾏行行 m 列の⾏行行列を n×m ⾏行行列と略することも(⾏行行が先)

  •    A = (aij ) と書いたら,i ⾏行行 j 列⽬目がaij(やっぱり⾏行行が先)

                            列(column)
                        !         a12 ! a1m $
                        #
                            a11
                                            &   ⾏行行(row)
                        #   a21   a22 ! a1m &
                        #                   &
                        #    "     " # " &
                        #   an1   an2 ! anm &
                        "                   %
⾏行行列の積

•  A:p×q ⾏行行列,B:サイズ q×r ⾏行行列

   •    Aの列とBの⾏行行が⼀一致しているときABは定義可能

   •    ABは p×r ⾏行行列

   •    BAは定義できるとは限らない

•  ⾏行行列の積の成分表⽰示
                                                       q!
   •     A = (aij ), B = (bij ) とおくと,ABの i ⾏行行 j 成分は   "a    ik   ! bkj
                                                       k=1
⾏行行列の操作(⾏行行列式)

•  ⾏行行列式 (determinant): det A =| A |

    •    例えば逆⾏行行列が存在するかの判定に⽤用いる

    •    例:  (正⽅方⾏行行列にしかdetは定義できないことに注意)
                  ! a b $
          •                なら det A = ad ! bc
               A =#     &
                  " c d %
                  !        $
                  # a b c &
          •                  なら
               A =# d e f &          det A = aei + bfg + cdh ! afh ! bdi ! ceg
                  # g h i &
                  "        %

    •    ⾏行行列n×nの⾏行行列A, Bに対して
                            det AB = det A ! det B
⾏行行列の操作(転置)

•  転置(transpose): A t = AT = t A = T A

   •    どれも同じ意味,ここでは最初の記号を使います

   •    ⾏行行と列を⼊入れ替える操作

   •    Aの i ⾏行行 j 列⽬目とAの j ⾏行行 i 列⽬目は等しい

   •    例:                            ! 1 $
                                      #    &
         •     A = (1 2 3) のとき, A t = # 2 &
                                      # 3 &
                                      "    %
                  ! a b $
                  #        &             ! a c e $
         •                のとき, A t = #
               A =# c d &                        &
                  # e f &                # b d f &
                  "        %             "       %
⾏行行列の内積(形だけ)

•  ⾏行行列のかけ算の例:

  •    x, y :n×1の列ベクトル, A :n×n⾏行行列のとき
                     x t Ay
       はただの実数

•  正定値(今回は説明省略)のn×n⾏行行列Aがあると,そこから2つのベク
   トルの(Aから決まる)間の内積         を(     とも書く)
                    < x, y >  x!y
                < x, y >= x t Ay
    と定義できる

Math tutorial public

  • 1.
  • 2.
    概要 •  ⽬目的 •  数学記号,数学公式を思い出す •  最初の⼀一歩でつまずかない •  内容 •  数学記号 •  公式(指数・対数,微分・積分) •  偏微分(∇・Δ) •  ⾏行行列
  • 3.
  • 4.
    ギリシャ⽂文字 慣習的に特定の意味で 良く使われる⽂文字もある ! :ラグランジュの未定乗数法など ! :フーリエ変換した関数の変数 !, " , # ! :標準偏差 ! :カイ2乗分布
  • 5.
    固有名詞として使われる記号 •  N :⾃自然数全体= {0, 1, 2, …} (0を含むかは流派による) •  Z :整数全体 = {…, -2, -1, 0, 1, 2, …} •  R:実数全体 •  C:複素数全体 •  ( Q:有理数全体) •  n ! N => 「nは⾃自然数です」 •  x ! Z => 「xは整数ではありません」
  • 6.
    集合に対する記号 •  ∈(集合に属する)と ⊂(部分集合である)の違いに注意 •  x ∈ A:xは集合Aの元である •  1 ∈ {1, 2, 3}, {3, 4, 5} ∈ { {1, 2}, {3, 4, 5}, {6, 7} } •  B ⊂ A:BはAの部分集合である •  {1, 2} ⊂ {1, 2, 3}, { {3, 4, 5} } ⊂ { {1, 2}, {3, 4, 5}, {6, 7} } N!Z!Q!R!C •  集合が等しい場合を含めるかは流派がある (1) (2) (3) 真部分集合 A⊂B A⊆B A⊆B 部分集合 A⊆B A⊂B A⊆B
  • 7.
    集合の記法 •  ⼤大雑把に2通りの記法がある •  1. 元を全て書きくだす S = {1, 3, 5, 7, 9} •  2. 元の満たす条件を挙げる S = {x ! N | x % 2 = 1, x ! 10} S = {x | x ! N, x is odd and is less than or equal to 10} •  リストの内包表記に対応する •  Haskell: •  Python:
  • 8.
  • 9.
    指数,対数関連公式 •  定義 •  a, bを正の実数として a x = b ! x = log a b •  ⾃自然対数の底: e = 2.728! •    を log x や ln x と書く事も log e x •  公式 •  真数のかけ算 log(x ! y) = log x + log y •  特に, log x n = n log x •  真数の割り算 log(x / y) = log x ! log y •  指数法則 e( x+y) = e x ! e y
  • 10.
    微分,積分関連公式 d n •  多項式の微分 (x n )! = (x ) = nx n"1 dx •  積の微分の公式 ( f ! g)" = f " ! g + f ! g" •  合成関数の微分 ( f (g(x)))! = f !(g(x))" g!(x) •  公式そのものより使い⽅方を習得してください •  例: d "d % "d % 1 (log x 3 )! = $ logt ' ( $ x 3 ' = ( (3x 2 ) = 3 dx # dt & # dx & t x ↑ t=x3とおいて合成関数の微分 f(t)=log t, g(x)=x3 1 n+1 •  多項式の積分 ! x n dx = x + C (n " #1) ← n=­1では分⺟母が0になる n +1 !1 "x dx = log x + C
  • 11.
  • 12.
    多変数を表す記号 •  1個の実数を表す記号は細字,複数の実数の組を表す記号は太字を⽤用い る事が多い •  例: x = ( x1, x2 , x3, x4 ) f (x) = x 3 g(x) = x1 + x2 + x3 + x4 h(x) = (x, x 2 + x, x 3 ! x) •  以降もこの記法に従っていきます •  定義域,値域を明⽰示することでも分かりやすくなります •  上の例の場合 f :R!R g : R4 ! R h : R ! R3
  • 13.
    偏微分(定義) •  多変数関数(変数が2つ以上の関数)で1つ以外のすべての変数を定数 だと思って微分する操作 •  例: f (x, y, z) = x 3 + y 2 + z 5 !f !f (x, y, z) = f x (x, y, z) = 3x 2 (x, y, z) = f y (x, y, z) = 2y !x !y !f (x, y, z) = fz (x, y, z) = 5z 4 !z
  • 14.
    偏微分同⼠士の関係 •  f が⼗十分滑らか(=x, yについて何回でも微分可能)ならば f xy (x, y, z) = f yx (x, y, z) ↑ ↑ まずxで微分し まずyで微分し できた関数をさらにyで微分する できた関数をさらにxで微分する •  これを繰り返し⽤用いると, f xyzyyxwzxxzy (x, y, z) = f xxxxxyyyyzzzw (x, y, z) → 偏微分する順序は好きなように決めてよい
  • 15.
    ∇(ナブラ) •  多変数関数の1階偏微分を並べて,ベクトルにする操作 •  例: f (x, y, z) = x 3 + y 2 + z 5 !f (x, y, z) = (3x 2 , 2y, 5z 4 ) (⾏行行ベクトルの場合) " % $ 3x 2 ' !f (x, y, z) = $ 2y ' (列ベクトルの場合) $ ' # 5z 4 & •  列/⾏行行ベクトルどちらで⽤用いるかは⽂文脈/筆者による •  (x, y, z) をまとめて x と書いて,↓のように書く事もある !f (x) = (3x 2 , 2y, 5z 4 ) !x
  • 16.
    Δ(ラプラシアン) •  多変数関数の2階偏微分をすべて⾜足し合わせたもの "2 "2 "2 !f (x, y, z) = 2 f + 2 f + 2 f f : R 3 ! R なら "x "y "z # "2 !f はベクトル "2 "2 & =% 2 + 2 + 2 ( f !f はスカラー(実数) $ "x "y "z ' = f xx + f yy + fzz . •  例: f (x, y, z) = x 3 + y 2 + z 5 のとき, !2 !2 !2 2 f = 6x f =2 f = 20z 3 だから, !x !y 2 !z 2 "f (x, y, z) = 20z 3 + 6x + 2.
  • 17.
  • 18.
    ⾏行行列の表し⽅方 •  数字を⻑⾧長⽅方形上に並べたもの •  ⾏行行列は⼤大⽂文字アルファベットで表す事が多い • 横が⾏行行,縦が列(ほとんど統⼀一されている) •  n ⾏行行 m 列の⾏行行列を n×m ⾏行行列と略することも(⾏行行が先) •  A = (aij ) と書いたら,i ⾏行行 j 列⽬目がaij(やっぱり⾏行行が先) 列(column) ! a12 ! a1m $ # a11 & ⾏行行(row) # a21 a22 ! a1m & # & # " " # " & # an1 an2 ! anm & " %
  • 19.
    ⾏行行列の積 •  A:p×q ⾏行行列,B:サイズq×r ⾏行行列 •  Aの列とBの⾏行行が⼀一致しているときABは定義可能 •  ABは p×r ⾏行行列 •  BAは定義できるとは限らない •  ⾏行行列の積の成分表⽰示 q! •  A = (aij ), B = (bij ) とおくと,ABの i ⾏行行 j 成分は "a ik ! bkj k=1
  • 20.
    ⾏行行列の操作(⾏行行列式) •  ⾏行行列式 (determinant):det A =| A | •  例えば逆⾏行行列が存在するかの判定に⽤用いる •  例:  (正⽅方⾏行行列にしかdetは定義できないことに注意) ! a b $ •              なら det A = ad ! bc A =# & " c d % ! $ # a b c & •                なら A =# d e f & det A = aei + bfg + cdh ! afh ! bdi ! ceg # g h i & " % •  ⾏行行列n×nの⾏行行列A, Bに対して det AB = det A ! det B
  • 21.
    ⾏行行列の操作(転置) •  転置(transpose): At = AT = t A = T A •  どれも同じ意味,ここでは最初の記号を使います •  ⾏行行と列を⼊入れ替える操作 •  Aの i ⾏行行 j 列⽬目とAの j ⾏行行 i 列⽬目は等しい •  例: ! 1 $ # & •  A = (1 2 3) のとき, A t = # 2 & # 3 & " % ! a b $ # & ! a c e $ •              のとき, A t = # A =# c d & & # e f & # b d f & " % " %
  • 22.
    ⾏行行列の内積(形だけ) •  ⾏行行列のかけ算の例: •  x, y :n×1の列ベクトル, A :n×n⾏行行列のとき x t Ay はただの実数 •  正定値(今回は説明省略)のn×n⾏行行列Aがあると,そこから2つのベク トルの(Aから決まる)間の内積         を(     とも書く) < x, y > x!y < x, y >= x t Ay     と定義できる