アドバンストビジョン

第1回: ガイダンス・イントロダクション

千葉工業大学 上田 隆一


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

アドバンストビジョン 第1回

今日やること

  • 急に講義をやることになったことの説明
  • 講義でやることの説明
アドバンストビジョン 第1回

人間の視覚や認知能力

  • 右の図は何に見えますか
  • なんで◯◯に見えるんでしょう?
    (話し合ってみましょう)
アドバンストビジョン 第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の信号に単純化できる
なんでバラバラなのに形がわかるの?
アドバンストビジョン 第1回

さらなる疑問1(形や大きさに関して)

  • 別の場所に見えても形がわかる
  • 回転していても形が分かる
  • 大きさが違っても形が分かる

  • 何匹いるかも分かる
スイッチのON/OFFで考えると全然違う信号なのになんで?
アドバンストビジョン 第1回

さらなる疑問2(ものの識別や名前に関して)

  • そもそも点々を実物の◯◯とみなすのはなぜ?
    • p.4の議論では、(私みたいによほどひねくれてない限り)誰もなにも疑問に思ってなかったはず
  • ネズミは絵に描いた猫を嫌がるだろうか?
    • 絵や鏡に写ったものは実物ではない
  • 視覚と言語はどう連携している?
    • 見ているものから物の名前を連想
    • 文から風景を連想
アドバンストビジョン 第1回

いまの話のまとめ

  • 脳は刺激をたくさんのスイッチで受け取ってるらしい
    • 目のほか、耳や鼻や舌なども
    • おもいのほかデジタル
  • 脳はデジタル信号になんらかの解釈を加えているらしい
    • バラバラな刺激の信号から法則性を見つける
    • 法則性のあるものを識別する(言葉にする)
      • 解釈ができるから、食べる、逃げる、他の人と話すなど
        自分に利益のある行動ができる
  • 疑問
    • どうやってこのような「能力」を獲得したんだろう?
    • どうやってコンピュータで同等の能力を実現しましょう?
アドバンストビジョン 第1回

過去の試み

  • あるものを認識させるために、そのものの特徴や定義を考える
    • 色の範囲は?
    • 特徴量はなにか
      • 猫の例: 顔の大きさ、耳の形・・・
  • 問題: キリがない
    • 例: 猫の色はいろいろだし、光の具合で変わる
      • 色の他にも毛の長さや姿勢など、特徴量の項目も多い
アドバンストビジョン 第1回

良い道具1: 統計学

  • 統計学はとりあえず原因は横に置いて、出てきたデータを扱う
    • 例: 右の写真を見せたら100人中99人が「餃子」、
      1人が「群れで飛ぶ鳥」と回答
      →99%の確率で餃子
      • 「なにが餃子なのか」は、あとから考える
アドバンストビジョン 第1回

良い道具2: 機械学習

  • 道具
    • 2-1: 人工ニューラルネットワーク
    • 2-2: ベイズ推論
  • 何が良いのか
    • みんなが餃子というものの特徴量を勝手に解釈してくれる
    • 理屈から考えていくのではなく、統計から法則性を自動で発見
アドバンストビジョン 第1回

良い道具3: 最適化

  • 機械学習の理論的背景
  • 方法、原理が単純
    • を解くだけ(大変だけど)
      • : 損失関数
        • 実際の出力が欲しい出力からどれだけずれているか数値化する関数
      • : パラメータ
      • : データ
    • パラメータ
      • 直線の傾きと切片(最小二乗法)
      • 人工ニューラルネットの重み
      • 確率分布のパラメータ(ベイズ推定)
アドバンストビジョン 第1回

ということで

  • 本講義では機械学習に基づいた画像処理を扱います
  • 途中言語も扱います
  • 内容
    • 第1回: イントロダクションと人工ニューラルネットワークのおさらい
    • 第2回: 人工ニューラルネットワークの学習
    • 第3回: 画像の識別と生成の基礎I
    • 第4回: 画像の識別と生成の基礎II
    • 第5回: 埋め込みと文脈の付加
    • 第6回: Transformerの構造
    • 第7回: Transformerの応用
    • 以後: NeRF / 3D Gaussian Splattingなど(未定)
アドバンストビジョン 第1回

人工ニューラルネットのおさらい

アドバンストビジョン 第1回

人工ニューラルネットワークってなに?

  • あらためて最初に提示した問題
    • なんで犬とか猫とか我々は認識できるのか?
      • 脳がやっているということは知っている
      • 脳に神経があることも知っている
    • 脳や神経は具体的にどういう構造なのか?
アドバンストビジョン 第1回

神経細胞

  • 信号を伝える細胞
  • 信号を伝える仕組み
    1. 樹状突起に化学物質をある量受けると電圧が発生
      発火
      • 視細胞のように他の刺激で発火するものも
    2. 電圧が軸索を伝って、その先のシナプスから化学物質を放出
    3. 他の細胞が発火
(図: public domain)
アドバンストビジョン 第1回

(人工でない)ニューラルネットワーク

  • 脳: 神経細胞が集まって回路を形成
    • 計算をしている(後述)
    • ニューラルネットワークというのはこれのこと
  • 脊髄: 神経が背骨を伝わり体の隅々へ
    • もともと脳ではなくこちらが本体
    • 反射などの計算はここで
  • 末端: 回路の先端が筋肉につながっていてスイッチに
(右図:CC BY-NC-SA 4.0, 脳科学辞典から)
アドバンストビジョン 第1回

神経細胞の「計算」

  • スイッチの役割
    • 複数の細胞から信号を受信
    • 信号の総量がある一定値を超えると電圧が発生
    • 電圧: 軸索シナプス
      別の複数の細胞
  • どうやってこんな仕組みで計算できるんでしょう?
    • 身近に似たものはないか?
    • 議論してみましょう
アドバンストビジョン 第1回

神経細胞を単純化したモデル

  • 右図のような構造に簡略化(人工ニューロン)
    • 他の個の細胞から信号を受け取る
      • : 他の細胞からの信号の強さ
      • : 信号を受け取った値にかける「重み」
    • ひとつの値だけ信号を出す

      • なら
        • : 閾値(バイアスとも)
      • 接続先は複数だが同じ値を送信
  • 他の細胞も同様にモデル化するとになってディジタル回路に
アドバンストビジョン 第1回

人工ニューロンで回路を組んでみる

  • 問題: 2つの数字の符号が同じかどうかを調べる
    • 値が0の場合は正としましょう
    • 答え
アドバンストビジョン 第1回

(人工)ニューラルネットワーク

  • 神経細胞は前ページのように組み合わせてプログラムできる
    • NAND回路が作れるとコンピュータと等価に(作れる)
  • 人の脳には860億個の神経細胞
    • 860億個が組み合わさってさまざまな計算をしているのでいろいろできる
      • 目から入った光で猫がいたら「猫!」と叫ぶ(目→脳→口の筋肉)
      • 手を動かして目の前のお菓子をとる(目→脳→腕や手の筋肉)
      • カレーの匂いがしたらよだれが出る(鼻→脳→よだれを出す器官)
      • 講義中にゲームをする(?)
  • コンピュータでも人工ニューロンで計算すれば or 人工ニューロンを実現するようなコンピュータを作れば、脳の計算が可能人工ニューラルネットワーク
アドバンストビジョン 第1回

人工ニューラルネットワークの正体

  • やってることは単なる行列の演算
  • 先ほどの例の一番左の「層」
    • 入力: と表現
    • 重み:
      • 上、下のニューロンがそれぞれしか使わないという意味
    • 出力の計算:
      • は閾値:
      • は閾値処理(活性化関数
アドバンストビジョン 第1回

あとは繰り返し

  • 1層目の出力:
    • 入力:
  • 2層目の出力:
  • 3層目の出力:
アドバンストビジョン 第1回

レイヤー(層)での表現

  • 入出力を線でつなぎ、演算を箱で表現
  • これまで使ってきた例だと1層分が2層に
    • 重みの反映(と閾値の引き算)で1層
      • アフィンレイヤー(全結合層)
    • 閾値処理で1層
      • 活性化関数層
  • 注意: 右の図ではあまり入出力の数が変わってないが、実際はアフィンレイヤーの前後で変わる
アドバンストビジョン 第1回

人工ニューラルネットワークが表現しているもの

  • 前のページの例: に対して次のような関数になっている

  • 一般的な表記
      • : 層目のアフィンレイヤと活性化関数層のペアに対応する関数
        • 注意: アフィンレイヤが別のものに変わることも
  • これで任意の関数を表現可能
    • 活性化関数がないと行列の掛け算だけに非線形の関数が表現できない
アドバンストビジョン 第1回

活性化関数層のバリエーション

  • 先ほどの簡単な例ならはステップ関数で十分
  • 学習が必要なもの、複雑なものになると不十分
    • しか出力できない(表現力が乏しい)
    • 微分できない
  • として使われる基本的なもの
    • シグモイド関数(右図青線)
    • ReLU(Rectified Liner Unit。右図赤線)
        • での微分値はなど適当に近似
アドバンストビジョン 第1回

残った問題: どう学習するか?

  • 動物は生まれたときにある程度プログラミングされた状態だが・・・
    • そのあと成長しても神経細胞は基本的に増えない
    • 猫を識別するにはニューラルネットワークに変更を加えないといけない
    • 頭を開けて配線するわけにはいかない
どうやるの?みなさんは普段どうしてます?(話し合ってみましょう)
アドバンストビジョン 第1回

まとめ

  • 人工ニューロンと人工ニューラルネットワーク
    • プログラミングできる
    • 簡単な線形代数の式と活性化関数で任意の関数を表現する試み
    • どうやってパラメータを学習するの?(次回)
アドバンストビジョン 第1回