確率ロボティクス第8回: 機械学習(その1)

千葉工業大学 上田 隆一


This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. Creative Commons License

確率ロボティクス第8回

今回の内容

  • 最小二乗法・損失関数
  • 最小二乗法が解析的に解けない場合について
  • ベイズ線形回帰
確率ロボティクス第8回

その前に(アドバンストビジョンの第1回から)

  • 神経細胞のおさらい
    https://commons.wikimedia.org/wiki/File:Retina-diagram.svg, by S. R. Y. Cajal and Chrkl, CC-BY-SA 3.0)
    • 左から光が入って右側の視細胞(2種類、1.3億個)で受け止め電気信号に
    • 電気信号は右に向かって処理されて図の下向きの赤い線から脳へ
      • 網膜の各部分の赤い線が「視神経(100万個)」の束になって脳に
  • こんな構造なので
    • 何か見ると1.3億のバラバラな信号として入る
      • 白黒の絵の場合は1.3億のスイッチのON/OFFの信号に単純化できる
なんでバラバラなのに形がわかるの?
確率ロボティクス第8回

基本的な考え方

  • データはなにか原因があって発生している
    • 目の前にピンクの服を着た夫妻がいるので視細胞にピンク色の信号が多く入るなど
  • 原因を数理モデルにすると、そこから観測されるデータが発生すると考えられる
    • 例1: 原因が関数
      • データが観測される
    • 例2: 原因が確率分布
      • データが観測される(なんらかの特徴ある分布を作る)

原因をデータから逆算する問題回帰問題(自己位置推定もその一種)

確率ロボティクス第8回

回帰問題の解き方

  • 最小二乗法から人工ニューラルネットワーク(ANN)まで様々
  • とりあえず基本の最小二乗法から見ていきましょう
    • 話の流れ: 最小二乗法は確率的ではないので限界がある確率を導入
確率ロボティクス第8回

最小二乗法

  • 横軸の値()に対して、縦軸の値の傾向を求める
    • 例(日本病院薬剤師会のデータ)
      • 知りたいこと
        • 身長に対して体重はどんな法則性があるか?
        • 血圧に対して中性脂肪の濃度はどんな法則性があるか?
      • 縦の分布が大きいが、とりあえず中心となる法則性を見つけたい
        (例として出しただけで解きませんが)
確率ロボティクス第8回

回帰を使う場面

右のデータなら確率分布を当てはめてもよさそう

  • 横軸の分布を考える意味がない/興味がない
    • 意味がない場合: 時系列データなど
      (例: 株価、人口の推移)
      • 時間を分布で扱う必要はない
確率ロボティクス第8回

最小二乗法による一次方程式のあてはめ

  • に対し、直線が真ん中を通るを求める
    • が傾き、が切片
    • おそらくどこかで勉強した、一番基本的な回帰

どうやって「真ん中」を決めるか?
確率ロボティクス第8回

どうやって「真ん中」を決めるか

  • 線とそれぞれの点の軸方向の距離を損失と考えて、距離の2乗を足して最小化
    • 損失関数


      の値を最小化
    • なんで2乗?: 必然性はないが分散を最小にしたいと解釈すれば自然
  • 損失関数はANNでも重要
    • やっていることはあまり変わらない
確率ロボティクス第8回

損失関数を最小化するパラメータの導出

  • 損失関数をパラメータで偏微分して、になるパラメータを求める
      • をどうずらしてもそれ以上の値が変わらない
        ほかにそういう点がなければそのときの値がの最小値
  • 前ページの式を解いてみましょう
      • それぞれで微分したもので連立方程式をたてる
確率ロボティクス第8回

答え

としています


  • は平均値)
  • 問題が数式の変形で解けてしまうのでANNを使う必要がない
確率ロボティクス第8回

計算してみましょう

  • に対して最小二乗法を適用
  • 式(さっき求めたもの):
確率ロボティクス第8回

答え

  • に対して最小二乗法を適用
    • 各種平均値を計算

確率ロボティクス第8回

(偏)微分方程式で解けない場合の最適化

  • 個のパラメータで構成される損失関数の最適化を考えてみましょう
      • どうやってをいじっての値を減らすか
  • ためしにだけずらしてみる
      • 後者の値が小さくなったらに変更すると
        「よりよく」なる
    • 問題: いろいろを試すとよいんだけどパラメータが多いと組み合わせが多くて大変
      計算で一番よいを求められないだろうか?
確率ロボティクス第8回

ふたたび偏微分


  • は、それぞれを少しずらしたときのの変化量
  • 変化量の計算
  • わかること
    • という制限がある場合、最も減るのは内積が最小になるのとき
      • : 勾配ベクトル
    • 上記の赤字の式にしたがってパラメータを更新すればよい
      • これがANNのやっていること
確率ロボティクス第8回

最小二乗法と損失関数に関するまとめ

  • 損失関数を偏微分して連立方程式を解ければ、任意の式に最小二乗法(と、その他さまざまな最適化手法)を適用可能
  • 連立方程式が解けない場合は勾配ベクトルにしたがって少しずつパラメータを変更していけば良いパラメータが見つかる
    • 具体例はアドバンストビジョンに
  • しかし、なにか足りないんじゃないでしょうか?
    • 前回(ベイズの定理)の話を踏まえるとなにか抜けてないか?
確率ロボティクス第8回

残った問題

  • 最小二乗法は1つの答えしか出さない
    • 「自信のなさ」が表現できない
    • データ4つで右上図のように当てはめしてよい?
    • の大小で当てはまりの良さは比較できるが、どれだけ自信がないかは分からない
  • パラメータの数が多いと「過学習」
    • データを曲線でつないだグラフができる
      正しいこともあるが、単にデータが少ないだけかもしれない
    • 人間でもよくある
確率ロボティクス第8回

ベイズ線形回帰

  • の分布を考える
    • 関数の分布ってなに? パラメータの分布
  • 例: の場合
    • の確率分布を考える
    • 右図: それぞれをガウス分布で分布すると考えてサンプリング
      • どちらも平均値、標準偏差
      • データ(丸印)に合うように、ベイズの定理での分布を変更していく
データ数が少ないときに解を曖昧にしておける
確率ロボティクス第8回

ベイズ線形回帰のための数式

ややこしいので意味だけ考えましょう

  • 例: 当てはめる式: 多項式
  • いくつか仮定を置きましょう
    • 仮定1: に対して、は多項式の値を中心に、分散でばらつく
      • と表記
      • : 精度
確率ロボティクス第8回

回帰のための数式(続き)

  • 仮定2: も多次元のガウス分布で、最初は大きくばらついている
    • 分布これが推定対象
      • の平均値)
      • の行列
        • : 「精度行列」と呼ばれるもの
確率ロボティクス第8回

回帰のための数式(続き)

  • 仮定3: の値も分からないので確率分布で表現(最初は大きくばらつく)
    • こういう分布: (ガンマ分布)
      • 下図(a): ガンマ分布の確率分布
      • 下図(b): (a)の横軸をlog尺にしたもの
    • のばらつきの標準偏差が
確率ロボティクス第8回

回帰の方法

  • の事前分布
      • は分布の形を決めるパラメータ
        (=事前分布のパラメータ)
    • 「ガウス-ガンマ分布」と呼ばれる分布
確率ロボティクス第8回

回帰の方法(続き)

  • データをひとつだけ情報として入れた事後分布
    • ベイズの定理を使う


      • の分布は一様分布と考える)
        (仮定1から)
確率ロボティクス第8回

回帰の方法(続き)

  • 左辺の事後分布が同じ形だとすると、こういう等式ができる

      • ガウス分布の積が第4回で出てきた式: と同じ形
確率ロボティクス第8回

回帰の方法(計算結果)

  • 左辺はガウス-ガンマ分布となり、事後分布のパラメータはこうなる
    • (ここで
確率ロボティクス第8回

ポイント

  • 事前確率と事後確率の分布が同じ形
    • 事前確率:
    • 事後確率:
  • は既存の数値で計算可能事後分布が計算可能
    • 講義だとどうしても原理の話になり、それは重要なのだけど、使うときは前ページの下の4つの式に事前分布のパラメータとデータの値を入力するだけ
    • まず大事なことは、使いどころがどこなのかおさえておくこと
確率ロボティクス第8回

データが複数の場合

  • 最小二乗法のように一気に計算可能
  • データに対する事後分布:
      • (データが増えて精度向上)
        • ここで
      • (パラメータの平均値の調整)
      • (データが増えて分布が鋭く)
        • の式の意味はよくわかりませんがの平均値は
これもデータと事前分布のパラメータを当てはめるだけ
確率ロボティクス第8回

さらに以外の曲線を当てはめることを考えてみる

  • いろんな関数に係数をかけて足したもの
  • でも難しいのに大丈夫か?大丈夫
    • 実は前ページの式がそのまま使える
確率ロボティクス第8回

例:

  • 少しずつデータを入力して、事後分布から関数(多項式)をサンプリング
    • データが増えるにしたがって関数のばらつきが減る
    • データ(2次関数からサンプリング)にしたがい、高次のパラメータが
確率ロボティクス第8回

まとめ

  • ベイズの定理で回帰がより一般的に
    • 関数の分布=パラメータの分布と考える
    • データの不足によるあいまいさをも考慮可能に
  • ベイズ線形回帰の導出
    • 難しいが結果は機械的に使用可能
    • 使いどころを間違えなければ誰にでも便利な道具に
確率ロボティクス第8回