ロボットの確率・統計 - 製作・競技・知能研究で役立つ考え方と計算法 -

ロボットの確率・統計 - 製作・競技・知能研究で役立つ考え方と計算法 -

ロボット分野だけに限定した,様々な確率・統計の知識を学ぶことができる書籍

ジャンル
発行年月日
2024/03/21
判型
A5
ページ数
288ページ
ISBN
978-4-339-04687-8
ロボットの確率・統計 - 製作・競技・知能研究で役立つ考え方と計算法 -
在庫あり
2営業日以内に出荷致します。

定価

4,400(本体4,000円+税)

カートに入れる

購入案内

  • 内容紹介
  • まえがき
  • 目次
  • 著者紹介
  • 広告掲載情報

 ロボットの開発・研究は、この世の複雑さとの戦いです。ロボット自身が壊れないように組み上げるのも大変ですし、ロボットを歩かせようとすると、普段平らだと思っていた地面に実は起伏があることに気づきます。またカメラには無数のものが映り、しかも映り方には無限にバリエーションがあります。そんなわけのわからないところで複雑な機械を動かそうというのですから、ロボティクスというのは因果な学問です。どうかしています。

 ここ四半世紀、この難問の解決に一役買ってきたのが確率論や統計学です、と言ったら皆さんは「本当か?」と思うかもしれません。しかしこれは紛れもない事実で、最初の頃は動きやカメラでの観測の乱れの起こり方を確率で考えて対策する方法が考案され、今も活用されています。そして現在は、ロボットが大量のデータから、統計的な法則性を見つけて何かを認識、判断するという段階まできています。これは、実は動物や人間もやっていることで、確率・統計という道具を得て、ロボットが動物に近づいてきたと解釈することもできるでしょう。

 また、もっと手前の段階の話として、ロボットに限らず何か実験をしたら、結果を統計処理することになりますし、結果を適切に人に説明しないといけません。さらには、「ロボットが動かない、壊れる」という偶発的な現象についても「運が悪い」で済ませず、統計を使って分析して対処しなければなりません。このややこしい世界に立ち向かうには、確率・統計の考え方は、ロボットの作り手にも、ロボット自身にも役に立ちます。

 ということで、手前味噌も甚だしいですが、本書はロボットを扱う上で知ると役に立つ確率・統計について、基礎から哲学のような話題まで、ひととおり扱ったものです。内容については、大学1年生が最初の方を読んで確率・統計の基礎を確認できるようにしてあります。中盤からは読者対象に縛りを設けず、遠慮なく高度な内容を記述してあります。ただ、その内容については理解する必要はなく、「ロボティクスにはそういう難しい問題があるんだ」と確認してもらい、勉強する動機を持ってもらえるようにしました。数ヶ月ごと、数年ごとに読み返して、どれだけ自身の理解が進んでいるのか確認したり、随所に仕込まれている雑談だけ読んだりという使い方も考えられます。

 余談ですが、雑談では動物、人間、人生、そして筆者のギャンブル遍歴、ズルと嘘、手抜きと偏見に満ちた思考の告白など、学術書としてはどうかしている話題を盛り込みました。真面目な方も、不真面目な方も、ぜひ手にとってみてください。

☆発行前情報のため,一部変更となる場合がございます

企画の意図
本書は,ロボットを作って動かすときに必要な確率・統計の知識をまとめようということで企画されました。確率ロボティクスや機械学習の書籍に登場する各アルゴリズムを理解するためには,確率・統計の基礎知識が助けになることは当然ですから,勉強したい人も多いものと考えています。しかし,ロボティクスには広大な範囲の知識が必要とされるため,後手に回ってしまった人も多いのではないでしょうか。

学部,学科によっては,そうならないように,大学に入るとすぐに統計学の講義が用意されていることもあります。しかし,このような講義で学ぶ統計学は,確率ロボティクスや機械学習で使われるものと流儀や範囲が思いのほか異なっています。また,講義で使われる教科書は,定義などをしっかり正確に説明する役割を背負っているので,読者に強い動機を与えるものではありません。

そこで,もっとロボットや機械の話に寄せることで確率・統計を学ぶ動機を与える本,いわば教科書を読むための入門書を作ろうということになりました。ロボットを組み立てる,制御やセンサー処理をプログラミングする,性能を評価する,ロボコンで作戦を立てるなど,ロボットだけに話を限定しても,さまざまな統計の知識,確率の計算が必要になります。そこで,話題をロボットに限定して,「ロボット好き」を自認する好き者を誘い込んで,確率・統計の話に一通り触れてもらおうと考えました。

ロボットの世界には,数学が苦手でも天才的な仕事をする人がいます。筆者は,小難しい統計用語満載の怪しいプレゼン資料を作る人よりも,手が動く人たちのほうが好きなのですが,そういう職人気質の人たちにも,とりあえずは一度読んでみてもらえると幸いです。

本書の内容
ということで,なんでもロボットに話をからめていった結果,本書はつぎに挙げる9章で構成されることになりました。

1章:代表値---統計の知識がないと喧嘩になる 小学生の素朴なロボット競技での言い争いから,統計の使い方を考える。
2章:確率---機械が動くという奇跡 すぐリタイアするけど無反省なロボコンチームを題材に,確率の計算方法や使い方を考える。
3章:期待値---運を神頼みにしない 筆者のRoboCup(ロボットサッカーの世界大会)でのインチキを題材に,期待値の求め方や使い方を確認する。
4章:連続値と多変量---ロボットは空間を動く ロボットの動きの再現性に関する実験を題材に,多次元,連続な空間での確率の扱い方を理解する。
5章:試行回数と信頼性---実験で教員に叱られないために ロボットを研究している学生の「何回実験すればいいのか」という疑問から,ベイズの定理の導出方法と使い方を確認する。
6章:動く確率分布---ロボットは時空を進む ロボットの動きの予測を例題に,動く確率分布の計算原理と近似計算の方法を理解する。
7章:センシングと推定---ロボットは実世界を観察する 人間の連想ゲームをベイズの定理から解釈し,ロボットのセンサー情報処理へのベイズの定理の利用方法を考える。
8章:機械学習---ロボットはぼんやり実世界を観察する 人間や動物の認知機能に対する考察から,学習の原理およびそこでの確率・統計の役割を把握する。
9章:意思決定と制御---ロボットは自律する 確率的に不確かな将来に対して人間やロボットがどう行動を決めるか,なんのために行動するのかについて,ベルマン方程式から考察する。

1章 代表値       2章 確率         3章 期待値
・要約統計量       ・乗法/加法定理       ・意思決定への利用
・統計的探求プロセス   ・確率変数         ・計算への利用
・統計的リテラシー    ・確率分布         ・シミュレーションによる計算

4章 連続値と多変量   5章 試行回数と信頼性   6章 動く確率分布
・連続型確率変数     ・確率分布の分布      ・状態遷移
・モンテカルロ法と密度  ・ベイズの定理       ・線形/非線形性
・確率密度関数      ・共役性          ・確率分布の近似計算

7章 センシングと推定  8章 機械学習       9章 意思決定と制御
・ベイズフィルタ     ・損失関数と勾配      ・ベルマン方程式
・カルマンフィルタ    ・教師なし(ベイズ)学習  ・最適化/最適制御
・パーティクルフィルタ  ・教師あり学習       ・強化学習

図1に,各章でキーワードになる語句を書き出してみました。大雑把にいって,前半の3章くらいまでが微積分の出てこない基礎の基礎です。そして,後半の7章以降が「知能」を考える応用的な内容になり,ロボットだけではなく,人間はどうしているだろうかという考察も交えて話を進めます。それらの間の章では,具体例を用いて,基礎から応用へ,1つずつ知識をつけていきます。特に(順番と関係なく)結びつきの強い章を挙げておくと,4,6,7,9章は確率ロボティクス,5,8章は機械学習の講義で扱われる内容です。また,1,3,9章は,統計を自身の行動や世の中の理解に活かすことを考える章になっています。1章で「統計を使って他人のことを評論するのは悪趣味」というような記述があり,9章で評論してないで自分はどうするのか決めろと迫ります。9章は確率・統計では通常扱われない内容ですが,筆者が読んださまざまな教科書は客観的すぎて当事者意識が希薄なのが気になっていましたので,頭でっかちになることを防ぐために必須と考えています。ただ,バランス的にあまりページを割くわけにはいかなかったので,ちょっと急ぎ足でわかりにくいかもしれません。8章も難しいわりには駆け足です。これらの章については,「わからないぞ!」と抗議の声を上げていただければ,また別の機会にまとめます。

人間の話をするときは筆者の個人的な見解が含まれてしまうので,そういう意味で,この本は「教科書」とはいえません。本文中で突然世間話をすることもありますし,脚注で愚痴をたくさん書いています。ただ,人間の行動を眺めると,興味深いことがいろいろ見えてくるので,読者の興味を掻き立てられるのではないかと考えました。数式を追うときに世間話で気が散ったり,脚注で「嘘じゃないか?」と思ったりすることがあるかもしれません。そうならないように素直に書くこともできたのですが,それで読者が満足して終わらないよう,少し「毒」を盛ってみました。他の論文や,具体的な研究事例を紹介している書籍5)を手にとる動機に繋がれば幸いです。

本書の性質と対象となる読者,推奨する読み方
原稿を書いているときは
•工学系や情報系の学部に入学した大学1年生
•ロボット用や機械学習用のソフトウェアをカスタマイズしようと思っても原理がわからなくて踏み込めない人
•自分でソフトウェアを触っているわけではないが,確率・統計の考え方や,自ら考えて行動するロボット(自律ロボット)の動作原理を理解したい人を頭に思い浮かべて,その人たちがどう読んでいくかを考えました。また,すぐに何かに使える内容を志向するのではなく,思考の土台を整えることを心がけて執筆しました。

「土台」の一部をなす数式については,数学が苦手,あるいは学習してこなかった人に配慮して極力避けることも最初は考えたのですが,結局,容赦なく使いました。これは数学が苦手な人はお断りということではなく,むしろ逆に,数式アレルギーの人の症状を和らげようくらいに考えています。世の中の多くの人が,理不尽に学校で問題を解かされて数式アレルギーになっているわけですが,よくよく考えてみたら,受験したり,自分でいきなりコードを書いたりということでもなければ,教科書の数式は解かなくても暗記しなくてもよく,読めるだけでいいわけです。ということで,各数式に対し,(限界はありますが)その数式の読み方や意味をしっかり言葉で補足しました。

また,筆者のような人間がすらすらと数式のある教科書や論文を読めていると思うなら,それは誤解です。しつこく時間をかけて読んでいるだけです。例えば,筆者は機械学習の教科書をもう十年くらい,何かあったら開いていますが,まだたぶん3分の2くらいしか理解していません。「数式のわからない文系の人にも~」のような本は半日で読めてしまうこともありますが,それと同じと考えてはいけません。数式というのは,言葉で説明しようとすると膨大な字数がかかることを短縮して書くためのものなので,数式のある本というのは,見かけの文字数より断然内容が濃く,得られる知見も大きいわけです。読破できなくても,ちょっとでも自身の理解が進めば,数千円の価値はあったと考えたほうがよいでしょう。

ですので,本書もおそらく,何年もかけて読むたぐいの本だと考えています。ただ,1ページ目から順に何年もかけて読むのではなく,わからないところはすっ飛ばして,何度も通読する方法をおすすめします。後ろのほうは,最初はほぼ全部すっ飛ばすことになります。おそらく多くの人にとってまだ習っていない数学も出てくるので,「こういうふうに確率論や線形代数,微積分を使うんだ」と理解するだけで,今後の数学の勉強に良い影響があると思います。勉強したら本書に戻って,またわからないところを確認して,と繰り返すうちに理解できるかもしれませんし,そのように時間をかけて理解していった経験は,その後の生き方にも良い影響を与えることでしょう。

だんだん世の中が理屈っぽくなっていく中で,数式という言語が使えることの重要度は増しています。いままで数式から逃げ回ってきた人には,ここでお縄になっていただければ幸いです。また,若干後ろ向きですが,本書の中には,「数字や理屈を振りかざして『論破!』と叫びながら迫ってくる人たちをどうやってのらりくらりとかわすか」の指南もありますので,そこまで(そこだけ?)は頑張って読んでいただきたいです。

過去に筆者の著書を読んだことがある方は,「今回はコードの掲載がない」と思うかもしれません。これまでの筆者の著作は,プログラミングしながら手で理解しましょうというものばかりだったのですが,本書については布団の中や,学校,職場への行き帰りの電車で思考にふけりながら読んでいただきたいと思い,コードの掲載はやめました。一方,この手の本は自分で数式を書いたり変形したりしながら読むと理解が速くなります。手を動かせる方は,キーボードを紙と鉛筆に持ち替えて取り組んでいただければ幸いです。

謝辞
本書は,2022年の5月頃に筆者が当時のTwitterで「書きたい」とつぶやいたところを,コロナ社の編集の方に拾っていただいて実現したものです。いつもの筆者は短期決戦型なのですが,今回は「論文を書くから」と4回くらい執筆を中断して,脱稿まで1年以上かかってしまいました。たいへんご迷惑をおかけしました。

また,公式や数式の展開,その他記載内容に間違いがないかどうかの確認には,教科書のほか,ウェブサイトも参考にしました。本文中で挙げたサイトのほかには,特に「高校数学の美しい物語」(https://manabitimes.jp/math)とWikipedia(https://ja.wikipedia.org/)をよく閲覧しました。運営されている皆様に感謝申し上げます。もちろん(学生さんも本書を読むので明記しておきますが),軽い確認以上に依存してしまった際は,少し間を置いて筆者自身の解釈を経た上で,自分の言葉で改めて記述しています。Wikipediaの利用については,記載内容を信頼しつつ,一次資料(Wikipediaでいうところの「信頼できる公刊された情報源」)まで目を通して,一次資料のほうを引用しています。

査読については,たいへんお忙しいところを東北大学の田村雄介先生,軍司健太さん,奈良貴明さん,千葉工業大学の藤井浩光先生に快諾いただき,さまざまな指摘をいただきました。軍司さん,奈良さんは,東北大学の大野和則先生からご紹介いただきました。なお,筆者の個人的な主張やぼやき,与太話については,査読いただいた皆様いずれも,見て見ぬ振りをされていたものと思われます。それらも含め,本書の記述内容の責任の所在は筆者にあることをご理解ください。

また,毎度のことながら,千葉工業大学先進工学部未来ロボティクス学科の教員の皆様,学生の皆様,そして筆者が所属する研究室の皆様には,本書執筆中の筆者の反応の悪さに辛抱強くお付き合いいただき,誠にありがとうございました。家族については,全員勉強か趣味に没頭していて,筆者からは(悪態をつくわけではなく,本書の9章を踏まえて)好きにやってくれ俺は知らんという感じで,感謝したりされたりする気にはならないのですが,そのままでいいと思います。

2023年12月
上田隆一

☆発行前情報のため,一部変更となる場合がございます

1. 代表値---統計の知識がないと喧嘩になる
1.1 代表値で比較する
 1.1.1 試行と事象
 1.1.2 代表値の選択と計算
 1.1.3 判断材料にすることで代表値は意味を持つ
1.2 他の基本的な代表値とロボティクスでの利用
 1.2.1 中央値
 1.2.2 最頻値,モード
1.3 データのばらつきを表す指標
 1.3.1 分散
 1.3.2 標準偏差
1.4 データの偏りと外れ値
 1.4.1 データの偏り
 1.4.2 外れ値
1.5 まとめ

2. 確率---機械が動くという奇跡
2.1 動く可能性が掛け算で減っていくロボット
 2.1.1 確率の導入
 2.1.2 ロボットの起動率の計算
 2.1.3 乗法定理と独立
2.2 冗長化されたシステム
 2.2.1 加法定理
 2.2.2 冗長化されたA1の起動率
2.3 部品が互いに影響を与える場合の計算
 2.3.1 乗法定理による計算
 2.3.2 隠れた条件と加法定理
2.4 確率変数,確率質量関数と確率分布
 2.4.1 確率変数
 2.4.2 確率質量関数
 2.4.3 確率分布
 2.4.4 確率分布と事象の関係
 2.4.5 同時確率質量関数,同時確率分布
2.5 補遺(「確率的リテラシー」のようなもの)
 2.5.1 なぜ自動車や飛行機が大丈夫なのかを不真面目に考える
 2.5.2 信頼性の改善方法に関する考察
 2.5.3 冗長化に関する考察
2.6 まとめ

3. 期待値---運を神頼みにしない
3.1 期待値の計算で最大の成果を挙げる
 3.1.1 期待値の考え方
 3.1.2 期待値の線形性
 3.1.3 期待値の他の性質
3.2 シミュレーションによる期待値の算出
 3.2.1 シミュレーションを繰り返して平均値をとる
 3.2.2 シミュレーションと確率
3.3 期待値と確率分布の平均,分散
 3.3.1 確率分布の平均値
 3.3.2 確率分布の分散
 3.3.3 2つの確率変数の分散と共分散
 3.3.4 不偏分散と確率分布の分散の関係
3.4 まとめ

4. 連続値と多変量---ロボットは空間を動く
4.1 連続型確率変数の離散化
 4.1.1 連続型確率変数
 4.1.2 離散化による確率質量関数の導出
 4.1.3 連続型の多変量確率変数の離散化
 4.1.4 適切な解像度
4.2 モンテカルロ法と密度
 4.2.1 囲って数える
 4.2.2 密度の導入
4.3 ガウス分布
 4.3.1 確率分布へ式を当てはめる
 4.3.2 多変量ガウス分布
 4.3.3 多変量ガウス分布の演算
4.4 まとめ

5. 試行回数と信頼性---実験で教員に叱られないために
5.1 確率の確率分布を考える
 5.1.1 実験から求めた結果の不確かさ
 5.1.2 確率の確率分布の計算
 5.1.3 一般的な事前,事後分布の計算(ベイズの定理)
5.2 離散化による事後分布の近似計算と比較
 5.2.1 試行結果を反映した事後分布の計算
 5.2.2 改良前後のソフトウェアの(確率的な)完走率の比較
 5.2.3 試行回数を増やす効果と限界
5.3 共役事前分布
 5.3.1 ベルヌーイ試行とベータ分布
 5.3.2 共役性
5.4 まとめ

6. 動く確率分布---ロボットは時空を進む
6.1 動く物体と確率
 6.1.1 時間と座標系
 6.1.2 ロボットの意思と,意思どおりにならない現実
 6.1.3 ロボットの動きの確率的な表現
 6.1.4 ある時刻の位置の分布
6.2 「線形」なロボットの位置の予測
 6.2.1 問題の定式化
 6.2.2 解き方
6.3 物体が「非線形」に移動する場合の位置の予測
 6.3.1 ロボット座標系の準備と移動量の座標変換
 6.3.2 座標変換の線形化
 6.3.3 移動後の分布の算出
6.4 モンテカルロ法による予測
 6.4.1 モンテカルロ法による予測の例
 6.4.2 数式での表現
6.5 ヒストグラム状の離散化を用いた予測
6.6 まとめ

7. センシングと推定---ロボットは実世界を観察する
7.1 情報のフィルタとしてのベイズの定理
 7.1.1 ベイズの定理と尤度関数による情報の変換
 7.1.2 人間の考えの偏りに対するベイズ的な解釈
7.2 ベイズフィルタ
 7.2.1 ロボットの信念
 7.2.2 観測に関する信念分布の変形
 7.2.3 移動に関する信念分布の変形
 7.2.4 導出されたベイズフィルタ
7.3 ベイズフィルタの実装例I:カルマンフィルタ
 7.3.1 線形な場合の観測の扱い
 7.3.2 非線形な場合の観測の扱い
7.4 ベイズフィルタの実装例II:パーティクルフィルタ
 7.4.1 パーティクルの再定義
 7.4.2 パーティクルの更新
 7.4.3 応用例
7.5 補遺
7.6 まとめ

8. 機械学習---ロボットはぼんやり実世界を観察する
8.1 バラバラなデータから像を見るI:ベイズ線形回帰
 8.1.1 最小二乗法による直線の当てはめ
 8.1.2 ベイズ線形回帰
8.2 バラバラなデータから像を見るII:混合ガウス分布の推定
 8.2.1 「確率の確率」による問題の定式化
 8.2.2 変分推論による解き方
 8.2.3 混合ガウス分布の推論
8.3 関数を自在に生成する
 8.3.1 教師あり学習が扱う問題
 8.3.2 情報をとりあえず全部入力してみる
 8.3.3 訓練データ
 8.3.4 損失関数の設定
 8.3.5 深層学習と利用の例
 8.3.6 教師あり学習の「学習」についての考察
8.4 まとめ

9. 意思決定と制御---ロボットは自律する
9.1 決めるということはどういうことかI
 9.1.1 数式による表現
 9.1.2 自己位置推定チャレンジの再考
 9.1.3 最適化問題
9.2 決めるということはどういうことかII
 9.2.1 多段の意思決定
 9.2.2 状態の価値と計算方法
 9.2.3 最適性とベルマン方程式
 9.2.4 議論(損して得取れ)
9.3 ベルマン方程式と制御
 9.3.1 最適制御の導出
 9.3.2 式(9.42)の仮定の証明
 9.3.3 議論:制御と意思,そして物理の関係について
9.4 強化学習
 9.4.1 学習の原理
 9.4.2 議論:Q学習からいえること,考えると面白いこと
9.5 さらに難しい問題
 9.5.1 他者がいる系
 9.5.2 POMDP
 9.5.3 自由エネルギー原理と能動的推論
9.6 まとめ

引用・参考文献
索引

上田 隆一

上田 隆一(ウエダ リュウイチ)

千葉工業大学先進工学部未来ロボティクス学科准教授

2000年からRoboCupにて自律ロボットのプログラミングに携わる。2004年から2009年まで東京大学大学院工学系研究科精密機械工学専攻にて助手、助教を務め、その間に「Probabilistic ROBOTICS」を翻訳する。その後転職し、有限会社USP研究所にて企業システム開発に携わる。2013年、産業技術大学院大学産業技術研究科にて助教、2015年より現職。
著書、共著書に「詳解確率ロボティクス(講談社)」、「シェル・ワンライナー160本ノック(技術評論社)」など。技術評論社Software Design誌にて「魅惑の自作シェルの世界」連載中(2024年2月現在)。2020年度日本機械学会教育賞。

掲載日:2024/02/13

日刊工業新聞広告掲載予定(2024年2月28日)

関連リンク