44

2. 確率−−−機械が動くという奇跡

2.4.3 確 率 分 布
確率質量関数は，「確率変数の数直線上で，合計 1 の確率がどう分配されるか（＝分布するか）」という情報を持っています。そこで，確率の分布具合に注目して，確率質量関数のことを確率分布と呼ぶことがあります。
「あります」というより，本書では，以後ほぼそう呼ぶことになります。ある確率質量関数 P について，分布の情報が重要なときには「確率分布 P 」，関数としての性質に注目する場合は「確率質量関数 P 」と呼び分けることになります。また「確率分布」
は，4 章で導入する確率密度関数を指すこともあります。
「分布」というものが何を表すか，例として，図 2.3 に 4 種類の確率質量関数，つまり確率分布をグラフにしたものを示します。図 (a) は式 (2.54) をグラフにしたものです。横軸が確率変数 x，縦軸が確率となります。これだと，あまり「分布」という感じはしないかもしれません。ただ，このような 2 通りの確率

確率0.9160.60.30x100123456x(b) サイコロの出目(a) 部品 A の起動率
確率

確率0.50.20.10.1001234567(c) 1 章の A さんの記録
図 2.3x012345(d) イカサマ師 X のサイコロの出目

確率質量関数をグラフにしたもの

6x4.1 連続型確率変数の離散化

75

図 4.2 に，表 4.1 の θ の値をそのように扱った例を示します。図は横軸が 5◦刻みの棒グラフであり，図 (a) を見ると，例えば −10◦ と −5◦ の間（正確には−10◦ 以上 −5◦ 未満）に表 4.1 の θ の値が 2 個存在することがわかります。
頻度

確率60.3540.2320.110−10 −50510152025θ

(a) θ 軸を区切り，区間内の θ の個数を数える

図 4.20−10 −50510152025θ

(b) 試行数で割って確率と見なす

軸を区切って確率質量関数を作る

図 (b) のほうは，図 (a) を試行回数 20 回で割って確率と見なしたものです。

θ は連続型確率変数ですが，横軸の各区間を左から 1 番，2 番 …，と番号をつけていくと，この番号は離散型確率変数と見なすことができ，図 (b) のグラフの値から，P (1) = 0.1, P (2) = 0.15, · · · , P (7) = 0.3 と，確率質量関数 P が定義できます。ただし，定義というよりは仮置きのようなもので，もっと試行を重ねると，P の分布は変化します。
いまの話で重要なのは，P の値よりも，連続型確率変数を区切ると離散型にできるということです。特にロボットや機械の制御，コンピュータによる数値計算のために連続な変数を図 4.2 のように区切ることは，離散化と呼ばれます。
また，図 4.2 (a) は，区間を区切って頻度を描いたグラフ，つまりヒストグラムになっています。ヒストグラムや，そのもととなる表である度数分布表は，統計の教科書で最初に扱われるものです。ただ，本書では数ある種類のグラフや表の一種くらいの扱いなので，それらのきちっとした作り方や描き方については，他の教科書（ 21) など）を参考にしていただくことでご容赦ください。

4.3 ガ ウ ス 分 布

85

らって，試行回数を 100 にしましょう。図 4.7 に結果を示します。図 4.2 (b)よりも少し凸凹が減りました。
確率0.20.1

0−15 −10 −5 0

図 4.75 10 15 20 25 30 35 40 45

θ

100 回試行したあとの θ の確率分布( 1 ) ガウス分布（正規分布）

この確率分布にどんな数式を当てはめるとよいのかは，本来は議論が必要ですが†1 ，とりあえずつぎのような確率密度関数

p(x) = √(x − µ)2
exp −2σ 22πσ 21(4.15)を当てはめてみましょう†2 。この式の x は，いま扱っている (x, y, θ) 座標の xではなく，任意の連続型確率変数を表します。µ は平均値，σ は標準偏差を表します。
当てはめは，θ の平均値 µθ と標準偏差 σθ を求め，式 (4.15) の x, µ, σ に，それぞれ θ, µθ , σθ を代入するだけでできます。100 回の試行結果の具体的な値は掲載していませんが，θ の平均値は 13.2◦ ，（不偏）標準偏差は 12.8◦ です。
この数値を用いて確率密度関数†1†2

詳しい人向けの補足：分布が左右非対称なので，ガウス分布が適切なのかは疑問が残りますが，「とりあえず」ということでガウス分布を当てはめています。ロボットのシミュレータは，指数分布に従う時間間隔でロボットが小石を踏み，そのときにガウス分布に従う雑音を θ に加えるというアルゴリズムになっています。
exp{z} というのは ez （e の z 乗）という意味で，e というのはネイピア数 e =2.718 281 828 4 · · · のことです。なぜ exp{z} と書くのかというと，z が複雑な式の場合，ez の形式で書くとごちゃごちゃするからです。

86

4. 連続値と多変量−−−ロボットは空間を動く

p(θ) = √(θ − 13.2)2exp −2 · 12.82
2π12.821(4.16)のグラフを描き，図 4.7 に当てはめると，図 4.8 (a) のようになります。密度の値は図の右側の軸に書きました。一般に確率と密度の値は単位が異なるので，注意が必要です。単位を合わせて比較するために，この確率密度関数から各区間の確率を計算して棒グラフにし，試行結果の上に重ねたものを図 (b) に示します。各棒の数値（確率）は，式 (4.11) で計算できます†1 。ちょっと当てはまりが悪いですが，とりあえずこれで良しとしましょう。
いま当てはめた確率密度関数は，ガウス分布あるいは正規分布と呼ばれる確率分布を表します。ガウス分布は，複数の細かい原因が絡み合って†2 何かの値
密度

確率0.2

0.04

0.1

0.02

0−15 −10 −5 0

5 10 15 20 25 30 35 40 45

θ(a) 試行結果と確率密度関数（単位の違いに注意）
確率0.2

0.1

0−15 −10 −5 0

5 10 15 20 25 30 35 40 45

θ(b) 確率密度関数から計算される確率との比較
図 4.8
†1†2

ガウス分布の当てはめといってもこのままでは解けないので，近似や数値計算法に頼ることになります。
本来はこの意味を説明すべきかもしれませんが，「中心極限定理」というキーワードで調査をお願いします。

第6章

動く確率分布ロボットは時空を進む

日常生活では，「動くものの位置の予測」は役に立ちます。交差点を右折するときに，対向車とぶつかるかどうかを考えたり，図 6.1 のような「台風の進路予想図」を見て，台風に備えるべきかどうか，どれだけ警戒すべきかを判断したりします。

図 6.1

台風の進路予想図（気象庁作成）

これらの問題に共通することは，「未来のことなので何が起こるかわからないけど，だいたいはわかる」ということです。本章では，この「だいたいわかる」ということについて，原理から考えてみましょう。具体的には，つぎのような例を考えます。

6.4 モンテカルロ法による予測

6.4

143

モンテカルロ法による予測

そこで，これも近似ではあるのですが，モンテカルロ法で予測する手段も考えてみましょう。この手段のヒントは，4 章の冒頭で M 君がやった実験にあります。また，この方法は，線形でも非線形でも使えます。

M 君の実験では，実際にロボットを何回も走らせることで，図 4.1 (b) のよ
うな結果が得られました。これを，実際のロボットではなく，「実際の動きを忠実に再現したシミュレーションのロボット」に置き換えると，実験し放題になります。実際のロボットだと何度も実験を繰り返すには時間がかかりますが，コンピュータの中で何百，何千回と繰り返すことは，そんなに手間ではありません。

6.4.1 モンテカルロ法による予測の例
図 6.9 は，この方法でロボットの座標を予測した例です。100 台のロボットの動きをシミュレートしています† 。このような方法で，ある時点でのロボットの座標の分布を求めると，4.2 節で学んだ方法で統計的に扱うことができます。
30 秒後の分布yy

10 秒後の分布
スタートxO(a) シミュレートされたロボット
100 台の動き（矢印）
図 6.9
†障害物

Ox(b) 障害物の存在の反映

モンテカルロ法によるロボットの姿勢の予測念のためですが，100 回の別々の試行を同時に行っているだけなので，ロボットが互いに衝突することはありません。

170

7. センシングと推定−−−ロボットは実世界を観察する

7.4.3 応用例

パーティクルフィルタの基本的かつ古典的な実装方法については前著で詳しく説明したので，本書では応用例として，2 次元レーザースキャナ（測域センサーあるいは LiDAR†1 と呼ばれるもの）用の実装について説明します。扱う
実例は，筆者がコードを書いて https://github.com/ryuichiueda/emcl2 に置いた「emcl2」という ROS（robot operating system）用のソフトウェアです。
筆者や筆者の研究室だけではなく，他の研究グループのロボットでも使用例があるので42) ，おそらく汎用性はあります。移動の際の処理はどのタイプのロボッ
トでもあまり違いはないので†2 ，特に観測の際に用いる尤度関数について，実例を説明します。

2 次元レーザースキャナは，レーザー†3 を水平方向に照射して反射光を観測することで，数十度から全周囲の障害物への距離を計測できる装置です。図 7.6図 7.6†1†2†3測域センサーを搭載した移動ロボット

light detection and ranging
この表現は乱暴で，車輪型ロボットのように車輪の回転量から移動量を測れるものと，脚ロボットのように移動量が直接計測できないもので変わります。また，最近では，LiDAR の計測値から移動量を推定する方法（ライダーオドメトリ）も注目されていますが，これはどちらかというと，本章よりも前章の移動量の推定に組み込む方法といえます。
もちろん安全な強さの出力に抑えられているので，目が焼けたり，レーザー光線で壁に穴が開くことはありません。その程度の強度でも，数十メートル先の障害物への距離を計測できます。

7.4 ベイズフィルタの実装例 II：パーティクルフィルタ

171

は，フロントバンパー上に 2 次元レーザースキャナを搭載した自律移動ロボットです。矢印の根本にある装置が 2 次元レーザースキャナで，矢印のように（実際はもっと細かい角度で）等間隔にレーザーを照射します。
図 7.7 (a) は，このロボットが emcl2 †1 で自己位置推定している様子です。図(b) は，ロボットが自己位置推定用に持っている地図で，地図上にレーザーが反射した位置が描かれています。ロボット左前方にあるプランターの角や，脇道 1 と脇道 2 の間の縁石などにレーザーが当たっている様子がわかります。
プランター
脇道 2

プランター
脇道 2

脇道 1

脇道 1

ロボット
レーザーが当たった地点 パーティクル（推定姿勢を基準に描画） の集まり(a) 実世界
図 7.7(b) 地図とロボットの認識

パーティクルフィルタで自己位置推定している屋外自律移動ロボットと，ロボットが持っている地図

emcl2 の尤度関数は，この地図に書いてある障害物の位置と，レーザーの反射位置がより多く重なると，値が大きくなるように実装されています。図 7.8 はその模式図です。ロボットが持っている地図（図 7.7 (b)）は，拡大すると，この図のように障害物の位置が黒く塗られています†2 。ここにパーティクルの姿
勢を基準に，レーザーで計測した距離の長さの線分を重ねると，パーティクルの姿勢が真値に近いほど，黒い区画に線分の端点が乗ります。この図では，黒†1†2

実際は，その前のバージョンの emcl です。なお，ROS 2 に対応した emcl2 ros2 が現行のバージョンになります。
占有格子地図と呼ばれます。

7. センシングと推定−−−ロボットは実世界を観察する

172レーザー＊パーティクル(a) 尤度 14（黒 6 個，黒の隣 2 個）
図 7.8(b) 尤度 5（黒 2 個，黒の隣 1 個）

2 次元レーザースキャナ用の尤度計算（＊印については本文参照）

い部分に端点が乗ると 2 点，その 1 つ隣（斜め方向も含む）に乗ると 1 点と点数をつけて，それらの合計を尤度としています。

emcl2 も，これとほぼ同じ方法で尤度を計算しています。違うのは，「隣」を1 つ隣から「M 個隣」まで拡張し，黒い区画からの区画数に比例して，点数を下げていけることです。この方式は，尤度場と呼ばれる方法の最も簡単な実装です。
この方法，単純で統計的な知見もなく大丈夫なのか，と思うかもしれません
が，実際には良く機能します。自己位置推定が難しい環境では，推定が破綻†1 してロボットが走行不能になることはありますが，この尤度関数の計算方法が直接の原因で失敗することは，まずありません。「動けばよい」の最たるものです†2 。

1 つこの方法の良い点を挙げるとすると，「人がまばらに歩いている環境に強い」ことです。図 7.8 (a) には「∗」と印をつけた，ロボットから端点までの距離が極端に短いレーザーの線分が 1 本ありますが，これは，歩行者にレーザーが当たったことを想定したものです。もしこの人がいなくて，この線分が正し†1†2

ロボットの姿勢のまわりにパーティクルがいなくなることを指します。
もっとシェアが大きい ROS パッケージ「amcl」（http://wiki.ros.org/amcl）のコードにも，尤度場のところに試行錯誤の痕跡と，「なんでかわからないけど，これで機能する」というような意味の英語のコメントがありました。いまはないかもしれませんが，探してみてください。

8.1 バラバラなデータから像を見る I：ベイズ線形回帰

191ます。式 (8.11) の方式で表し，n = 4 の項まで考えると，w = (1, 2, 1, 0, 0)，ϕ(x) = (x0 , x1 , x2 , x3 , x4 ) です。
事前分布のパラメータを µ = (0, 0, 0, 0, 0)，Λ = 10−6 I ，a0 = 1，b0 = 100として曲線を当てはめたものを図 8.5 に示します。各図では，生成されたデータを点で示し，分布 N (µ, λ−1 Λ−1 ) からドローした 10 個の関数を曲線で描きました。データ数が少ない図 (a) では，点の上をまんべんなく通るように，3 次の項が大きい曲線がドローされやすいようです。一方，N = 50 を超えると，2次以下の項が目立つ形の曲線が選ばれる頻度が高くなっています。
yyy505050202020−10−606x(a) N = 5−10−6y0x6(b) N = 10y−10−6505020202006(d) N = 100
図 8.5x−10−66x(c) N = 50

y50−10−600(e) N = 5006x−10−606x(f) N = 1000関数の推定結果（図 (a) には，データが見にくいので矢印をつけています）

表 8.1 は，図 8.5 の各段階における w0:4 の期待値（当てはめる多項式の係数の期待値）と，λ−1/2 の期待値（y1:N のばらつきの標準偏差の期待値）の推移を示したものです。w0:4（= w ）の期待値は，事後分布の µN の値のことです。
表を見ると多少揺らぎがあるものの，データの数 N が増えるに従って，µN の8. 機械学習−−−ロボットはぼんやり実世界を観察する

194

1 つのクラスタとして検出→ ボルトの先端部として検出

ボルト

ラカメ 線視の図 8.7ボルトの先端部の検出（株式会社三協リールとの共同研究。高見俊介氏提供）

ですが，最終的には本節の方法で，先端部の座標の集まりが 1 つのクラスタとして検出されています。

8.2.1 「確率の確率」による問題の定式化( 1 ) 現象のモデル化問題を数式にしましょう。まず，1 つの地雷を観測すると

x ∼ N (µk , Λ−1k )(8.36)という法則で計測値が得られるとします。x は平面上の座標 (x, y) でも 3 次元の座標 (x, y, z) でもかまいません。k は，かりにつけたこの地雷の番号です。
地雷の数はわかりませんが，かりに K 個ということにしておきましょう。
実際に x がどの地雷を観測したものかわからないので，つぎのようなプロセスを経て観測されたと考えます（δk という変数を使った両式の最右辺は，とりあえず無視してください）。

k ∼ P (k|π) = πk =KYπkδk(8.37)

k=1−1x ∼ p(x|k, µk , Λ−1k ) = N (x|µk , Λk ) =KYδk
N (x|µk , Λ−1k )(8.38)k=1

ここで，π = (π1 , π2 , · · · , πK ) は各地雷が観測される割合（以後，確率とも見なします）です。つまり，N 個の座標 x1:N が観測されたとすると，割合 πk で，8.2 バラバラなデータから像を見る II：混合ガウス分布の推定195

k 番目の地雷に由来する座標が混ざっているということです。この π も未知です。また，データには座標だけではなく，各座標が由来する地雷の番号 k1:N も，わからないけど隠れていることになります。このように，データを構成する変数のうち，隠れているものは潜在変数と呼ばれます† 。
説明をあと回しにした δk は，k 番目の地雷が選ばれたら 1，そうでなければ0 という二値をとる変数です。δk を使った式は，あとで計算の際に使います。
いまのうちに，等式が成立していることを確認お願いします。
図 8.8 (a) に，このようにして生成されたデータの例を示します。図 (b) のほうは，データの生成源のガウス分布も描いたものです。× 印が，いまのたとえだと「地雷」の位置になります。図 (a) を見ると，2 つの分布から生成されたデータの分布が繋がっていたり，共分散行列が大きい分布から生成されたデータの分布がぼやけたりしています。また，図からはわかりませんが，各ガウス分布から生成されたデータの数も違っています。そのようなデータの分布から × の位置がわかるでしょうか，というのがこれから解く問題となります。
yy55O5(a) 生成されたデータ
図 8.8†xO5x(b) もとになったガウス分布
例題となるデータの分布

ただ，πk や µk , Λk も，隠れていたものをモデル化の際に明記した変数と考えれば，潜在変数と考えることもできます。

204

8. 機械学習−−−ロボットはぼんやり実世界を観察するで更新する処理になっています。式 (8.64) の計算は解釈が難しいですが，大雑把にいって，この計算で Wk−1 はガウス分布 N (x|µk , Λ−1k ) の共分散行列を Nk倍した値になります。これにより，ウィシャート分布からドローされる Λk の値が小さくなります。これだと各クラスタのガウス分布が巨大化しそうですが，その分 βk が増えるので，巨大化することはありません。前節の bN と ΛN の関係に似ています。
ここで実際に負担率を初期化して，変分事後分布のパラメータを求めてみましょう。図 8.8 のデータの座標を x の値の小さい順に並べ，10 個のグループに分けて，それぞれ分布 k = 1, 2, · · · , 10 から（かりに）生成されたように負担率を初期化します。例えば，xi を k 番目の分布から生成されたと仮定して初期化した場合，ri,k = 1 として，他を 0 とします。
つぎに，事前分布のパラメータを設定します。分布の数は上記のように K = 10と仮定し，αk′ = βk′ = νk′ = 1，m′k = x1:N ，Wk′ = I（単位行列）としました† 。
これで式 (8.60)〜(8.64) から事後分布のパラメータを求めて，事後分布のパラメータから描けるガウス分布の誤差楕円を描くと，図 8.9 のようになりました。x 軸に沿ってデータを分けて負担率を設定したので，y 軸方向に長いガウス分布が横に並びます。また，描画されているガウス分布は，事後分布のガウス−ウィシャート分布の期待値から求めたものです。具体的には，Λk の期待値

図 8.9 初期の負担率から計算した
ガウス分布（以後，座標は省略します）†

特に理由はありませんが，m′k はどの分布でも同じにしました。コードを書いたばかりのときは m′k = 0 としていましたが，これだとうまく分布の数が推定できませんでした。

8.2 バラバラなデータから像を見る II：混合ガウス分布の推定(5) 繰り返し

207

以後は，事後分布のパラメータ計算（式 (8.60)〜(8.64)）と負担率の計算（式 (8.66), (8.68)）を繰り返すことで，事後分布をだんだん収束させることができます。パラメータも負担率も変化しなくなったら計算を打ち切り，答えとします。図 8.8 の例に対して筆者がコードを書いて計算した結果を図 8.10 に示します。図 (a), (c) は図 8.8 で示したものと同じで，図 (b) が推定結果です。Nk < 1 となったガウス分布は描画されていません。誤差楕円の向きや大きさに少し違いはありますが†1 ，10 個あったガウス分布は 6 個に減り，また，各ガウス分布の中心は，ほぼ正解に一致しています†2 。
図 8.11 に，繰り返し計算中のガウス分布の推移を示します。互いに近いガ(a) もとのデータ(b) 推定結果（30 回反復）
図 8.104510367,8(a) 負担率初期値†1†23495725,67,812

図 8.11推定結果

2391(c) 正 解164(b) 負担率更新 10 回目(c) 20 回目

推定の経過（ガウス分布につけた番号は数えるためのもので，ガウス分布自体の固有番号ではありません）

これはあくまでガウス−ウィシャート分布の期待値から得られる分布なので，このガウス分布の形状が決まったわけではありません。
もちろん，分布が近すぎると間違えることもありますが，データ数が多いと，近い分布でも区別できる可能性が上がります。例が前著にあります。

208

8. 機械学習−−−ロボットはぼんやり実世界を観察する

ウス分布が周囲のデータの負担率を奪い合うことで，互いに収まりの良い位置に移動していきます。また，同じ位置付近に重なった分布については，負担率を多く奪った分布のほうが勝ち，他方が消えていきます。

8.3

関数を自在に生成する

前節ではデータ生成の背景となる確率分布を準備して，ばらばらになったデータをそこに当てはめました。この当てはめの方法は教師なし学習と呼ばれる方法の一種です†1 。
一方，「なし」があれば「あり」があるわけで，教師あり学習もあります。教師あり学習では，アルゴリズムに陽に統計・確率が出てこないもののほうが多いのですが，統計的な面から見ると面白い性質があるので，少しだけ触れておきます。

8.3.1 教師あり学習が扱う問題
教師あり学習が何を扱うものなのかを考えるために，図 8.12 の犬と猫†2 を，画像処理でどうやって区別するとよいかという問題を考えてみましょう。この

図 8.12†1†2

どうやって見分けていますか？

筆者はこの呼び方の「学習」という部分に違和感があり，「統計処理」だよなあと思うことがあります。ただ，生物が情報を取り込み，脳や神経細胞の入出力を変えていくプ
ロセスは，まさに「学習」と呼んでよさそうです。しかし，これを「人工知能」と呼ばれると，話を聞くフリをしながら「知能ってなんだろう …」と考えごとを始めます。
犬のほうは筆者の実家の裏に住んでいるゴンちゃんです。飼い主に掲載の許可をいただきました。

8.3 関数を自在に生成する211

ると学習と表現するのがよいでしょう。中立的に訓練ということもあります。
上記の説明における x と y ∗ のペアは，訓練データと呼ばれます。上記の手順では，訓練データが 1 つのペアだけでしたが，f がさまざまな入力に対応できるようになるためには，訓練データは一般的に多種多様である必要があります。したがって，(x1 , y ∗1 ), (x2 , y ∗2 ), · · · と，複数（たいていの場合は数百から数万など大量）のペアが必要になります。これらの訓練データのペアの集合を，訓練データセットと呼びましょう。また，訓練データセットは，Dtrain と表しましょう。つまりDtrain = {(xi , y ∗i )|i = 1, 2, · · · , N }(8.73)とします。また，y ∗ を本書では正解と呼びましょう†1 。
表 8.2 に，式 (8.70), (8.71) の形式の関数を学習させるための，訓練データセットの例を示します†2 。それぞれの写真に対し，正解を式 (8.71) にある仕様のベクトルで表してペアにし，訓練データとしています。
表 8.2i12

訓練データセットの例

34

5

6···

xiy ∗i···(1,0,0)(0,0,1)(1,0,0)(0,0,1)(0,1,0)(1,0,0)···8.3.4 損失関数の設定
さて，1 つの訓練データ (x, y ∗ ) に対し，現状の出力 y = f (x) を y ∗ に近づけるには，「違う！」「それ！」だけではなく，「どれだけ違うか」を教えるとよさそうです。これを数値化することで，f が学習している最中に，「こうすると†1†2「猫」などの名前や名前に対応する変数を y ∗ とするときは，ラベルと呼ばれます。
i = 1 の猫は千葉工業大学の津田沼校舎でたまに見かける野良猫です。2016 年撮影。
2022 年頃にも見かけているので野良猫としては長寿ですね。i = 5 のミープ君（犬）の写真は池邉龍宏氏提供です。

214

8. 機械学習−−−ロボットはぼんやり実世界を観察する
違いが減るようにパラメータを変更

正解（訓練データ）

変換器
入力（訓練データ・CG）

出力(a) 訓 練変換器
入力（実カラー画像）

出力(b) 利 用
図 8.13 画像からの葉と茎の抽出（CG 画像と，そのもととなる 3 次元モデルは石川弘也氏の作成。他の画像は三上泰史氏による）もう 1 つ，pix2pix 58) と呼ばれる少し複雑な手法を用いた例を図 8.14 に示します。同じ茎と葉の検出を，1 章でも出てきた深度カメラの画像を入力として可能にする方法の例です59) 。この例でやっていることは DeepLab v3+と同じで（すごいけど）少々地味ですが，pix2pix やその先祖，子孫の手法は，線画に色をつけたり架空の顔や絵を生成したりと，マスコミや SNS を賑わせています。

pix2pix は，「生成器」「識別器」と呼ばれる 2 つの人工ニューラルネットワークを用います。筆者の研究室の事例では，図 8.14 (a) のように，生成器は深度カメラの画像を白黒画像にした画像 x を受け入れ，白い部分（深度カメラから近い物体の領域）を葉と茎に分類した画像 y を出力します。ただ，最初はデタラメな画像を出力します。生成器の入出力関係を y = g(x) と表しましょう。
一方，図 (b-1), (b-2) の識別器のほうは，入力された訓練データのペアが「本8.3 関数を自在に生成する

215

識別器の正答率が減り，さらに本物との違いが減るようにパラメータを変更

識別器の成績生成器

本物（訓練データ）

入力（訓練データ）

偽物(a) 訓練データと生成器
正答率が増すようにパラメータを変更（正解は偽物）

識別器

正答率が増すようにパラメータを変更（正解は本物）

本物

識別器

or 偽物

(b-1) 識別器に偽物を入力(b-2) 識別器に本物を入力

2 値化

実深度画像
（閾値処理済み）

本物

or 偽物

生成器

入力

出力(c) 生成器の利用
図 8.14

茎と葉の識別（画像の作成は金子直樹氏による）物」か「偽物」かを判断しようとします。ここでいう「本物」は，訓練データのペア (x, y ∗ ) のことで† ，「偽物」は生成器の入出力の画像のペア (x, y) のことです。出力は式 (8.71) のように (P本物 , P偽物 ) という形になりますが，ここでは識別器の入出力を，関数 d を使って P本物 = d(x, z) と表しましょう。z に†訓練データについては，DeepLab v3+のときのようなリアルなものは必要ありません
が，同じ 3 次元モデルから作っています。