2017年2月13日月曜日

マネー・ボール

セイバーメトリクスを用いて貧乏メジャーリーグ球団アスレティックスがヤンキースなどの金満球団と互角以上の成績を収める物語。主人公は将来を嘱望された野球選手ビリー・ビーン。「ビリー・ビーンというのはこっちに夢をみさせてくれる」ほどのプレイヤーで、成功はどのスカウトも疑わないほどの資質にめぐまれながら、失敗にうまく対処・適応できずフィールドを去っていきます。しかし、スカウトとして再起し、アスレティックスのGMとして活躍します。

セイバーメトリクスはかなり前にその手の本を読んだことがあったので、バッターの資質として大事なのは打率や打点ではなく出塁率+長打率、いわゆるOPSまでは知っていましたが、長打率よりは出塁率が4:1の割で重要であるとか、投手の成績では奪三振率、与四死球率、被本塁打率という投手がコントロールできる数字が大事であり、守備が関係する防御率は重要ではないなど、知らない知識も盛りだくさん。特に、投手の被安打率は単なる運・不運の問題で、上記の3つの数値がほぼ同じ投手でも人や年によって被安打率はバラつくとのこと。

ということで、おすすめの本です。


2017年1月29日日曜日

人工知能は人間を超えるか

大関先生の「機械学習入門」の巻末で紹介されていた人工知能に関する入門書です。

人工知能には過去3度のブームがありました。第1次ブームでは推論を行うプログラムで、迷路を解いたり、ハノイの塔をプレイしたり出来ましたが、現実的な問題は扱えませんでした。
第2次ブームは知識をいれて現実的な問題を扱えるようにしました。診断して薬の処方を行うMYCINに代表されるエキスパートシステムです。しかし、ヒトの知識をプログラムで表現することは膨大な作業であり、知識量が増えれば増えるほど大変なものとなりました。理由は、知識は言葉で表されますが、言葉は「意味」や「概念」と結びついています。この結びつきをプログラムで表すのができなかったのです。こうした問題を扱うのがオントロジーという分野で、オントロジー研究の究極の形がIBMの開発したワトソンです。ワトソンはクイズ番組で人間のチャンピオンに勝ったことで有名になり、現在は医療診断や料理のレシピの考案を行っているそうです。

一方、第3次ブーム のブレイクスルーはディープラーニングがもたらした特徴表現学習の進化です。特徴表現学習とは、データから特徴と特徴間の相関ルールを自動的に抽出する学習のことです。そのブレイクスルーをもたらしたのが2012年の世界的な画像認識のコンベンションILSVRCでカナダのジェフェリー・ヒントンの率いるトロント大学の開発したSuper Visoonです。

過去の人工知能や機械学習の最大の問題は認識や予測の精度を左右する特徴量をヒトが探して組み合わせてきたことでした。例えば競馬予想なら過去の勝率や走破タイムが大事だとヒトが予想し、それを勝率を計算する確率にインプットして、インプットの仕方だけ自動的に学習します。また、ある画像がどういった画像なのかを認識する問題でも同じで、画像のどういった特徴を捉えて分類するかをヒトが決め、それをもとにプログラムが自動的に最適な計算式を探します。すると、予想や分類の精度はヒトの特徴量を探す能力で決まることになります。

一方、ディープラーニングでは予測や認識でのキーとなる特徴量を自動的に探し、さらに特徴量と特徴量を結びつけることを多層のニューロンで行います。そうしたアイデアはニューラルネットのころからあったのですが、多層にしたときの学習がうまくいきませんでした。多層にすると局所的な最適解が増え、精度の向上がとまってしまうからです(「消滅する勾配」が原因ではない)。ディープラーニングでは自己符号化器という、入力と出力に同じ画像を用いることで特徴量やそれを組み合わせる高次の特徴量を学習し、それを用いて画像を認識することに成功したのです。

 この自己符号化器のアイデアはなかなかおもしろいです。例に挙げられているのは、全国の都道府県の天気の情報を10個の数値で他人に伝えるというゲームです。10個の数値として、北海道、東北、北陸、関東、中部、東海などと代表的な値域の天気を伝えれば、それをもとに全国の天気を再現する精度が高くなる。10個にまとめているので、完全に再現できませんが、少々天気にばらつきがあっても、ばらつきがならされて変な天気を予測することもありません。この10個の数値が日本の天気の特徴であり、ディープラーニングではこうした10個の数値や、それを組み合わせた高次の情報を自動で見つけることができるのです。

こうして人工知能はデータから特徴量や高次の特徴量を自動的に見つけるレベルに達しました。これは、概念や概念の間の関係を学習できるレベルに達したことを意味しています。すると、データとして時間変化するようなものを与えれば因果関係を学ぶことができ、学習する主体としての個が確立できるかもしれません。そうした個が他の個と情報をやりとりすることで並列化し、環境に対する高度な適応能力を獲得したとき、人工知能はヒトと同じレベルに達するのでしょう。

非常に刺激的な本で、大変勉強になりました。ディープラーニングの凄さがよく分かりました。

2017年1月25日水曜日

ゼロから作るDeep Learning

ディープ・ラーニングDeep Learningが初等計算レベルから解説されているとの情報を見たので、勉強してみた本です。
うまくいけば、大学院の講義のタネ本としても使えるかとも考えたのですが、結論から言えば、そんなに楽な本ではありません。

目標はMNISTの0から9の手書きのアラビア数字を認識するプログラムの作成です。プログラム言語は機械学習での主流となっているPythonということで、Pythonの入門から始まります。算術計算、配列、グラフのプロットを扱います。第2章からニューラルネットワークの解説で、パーセプトロン での論理回路の構成や単層のときの限界を解説します。パーセプトロンは、多数のチャンネルからのシグナルを線形変換し、しきい値を超えたら1を出力,超えなければ0を出力という単純な回路です。入力と出力の間の層が一層の場合、単純な計算しかできません。例えば、AND、OR、NANDという論理演算は出来ますが、XORはできません。しかし、 パーセプトロンの層を多く(ディープ)することでコンピュータで処理できるどんな複雑な処理でも扱えることを説明します。

第3章では入力信号がしきい値を超えたら1、超えなかったら0では扱いにくいので、この入出力を表す活性化関数をシグモイド関数にしてなめらかにするか、または、ReLU関数というしきい値未満で0、しきい値以上で入力信号そのままを使うこと、行列を用いた入力と出力の関係の表し方、出力層として、信号からある選択肢の確率に変換するソフトマックス関数(多項ロジスティックモデル)を解説し、MINSTのデータで認識精度を計算します。この時点では3層(入力層+2個の隠れ層)のニューラルネットワークで認識精度は93%です。

第4章ではデータでニューラルネットワークの膨大なパラメータを決める=学習の手法の解説です。ニューラルネットの出力と正解の差(損失関数)を交差エントロピーで測ること、また、データすべてでなく、その一部をランダムに選んで学習するミニバッチ学習、また、 損失関数を最小にするアルゴリズムである勾配法を解説し、第3章での93%の認識精度であるニューラルネットを学習で構成します。

第5章は勾配法を効率よくすすめるための誤差逆伝搬法で、計算グラフでアッフィン変換と活性化関数を表し、誤差関数の微分計算を計算グラフを用いて計算する方法を解説します。また、第6章は勾配法などの数値手法のアルゴリズムを改善する話です。5章の計算グラフもですが、この第6章の興味深い。特に、活性化関数の出力がネットワークを流れていく過程でどのように変換するのか、また、どのどうに変化するべきなのか、についての説明があります。

第7章は画像認識で用いられる畳み込みニューラルネットワークの解説です。畳み込み演算を行う畳み込み層を用意するのですが、画像の2次元的な構造をうまく抽出するためのフィルターを用意する目的のようです。ニューラルネットワークワークを多層にする理由は、単純なフィルターを何層も通すことでネットワーク全体でのパラメータ数を抑えながら情報抽出の精度をあげることにあります。そして、第8章で畳み込みニューラルネットによるMINSTデータの認識精度が99%を超え、間違った画像は人間にとっても見分けにくいものであることが示されています。

 非常に勉強になったのですが、問題はPythonという言語を使ったことがないので、5章ぐらいまではプログラムも大体理解できるのですが、それ以降はPythonをちゃんと勉強してとりかからないと消化不良になる。

ということで、Pythonの勉強をしないといけなくなりました。そのあとでもう一度勉強しようと思います。大学院の講義ではRをベースに機械学習を扱う予定なのですが、こうしてPythonで書かれた本や、GoogleがPython押しであることを考えると、RよりPythonでやったほうがいいのかもしれません。

2017年1月4日水曜日

機械学習入門

あけましておめでとうございます。2017年の最初のBlogの更新ですが半年ぶりです。今年はもうすこし更新回数を増やしていきたいと思います。

お正月に読んでいた本が、Twitterで流れてきた大関先生の「機械学習入門ーボルツマン機械学習から深層学習まで」という本です。機械学習には以前から興味があり、競馬予想にも取り組んだことがあります。といっても枯れた技術である多項・多重ロジスティック回帰で過去のデータをもとに馬の勝率を予想するものでした。機械学習としての新しさを目指したものではなく、馬券市場でのヒトの集団の予想精度はどの程度なのかを知るために、機械学習と比較したというものです。結論は、

1:ヒト集団の予想が明後日雨が降るかどうかの天気予報レベルとするなら、機械学習は明々後日の天気予報レベルである」

2:競馬新聞の記者一人の予想よりは高い精度で予測出来る。競馬市場の予測に勝つことはない

3:競馬市場の予測は競馬新聞の記者の予想を軸にオッズを微調整するものである。勝ち負けに関しては集合知が新聞記者の専門家集団に勝ることはない

というものでした。

ただ、「機械(学習)は専門家集団に勝てない」と結論するには、比較に用いたロジスティック回帰はあまりにも枯れた技術で、最新の機械学習手法ではない。ニューラルネットや最近はやりのディープラーンニング(深層学習)を使えばアルファGoのように専門家集団に勝てるかもしれないわけです。

また、競馬予想で機械がヒト(専門家集団)に勝てるのかとは別に、ヒトの自然における法則性の認識の問題は高校のときからずっと興味があり、これまた最近はやりのスパースモデリングの勉強もしたいと思っていました。ヒトが認識できる自然法則はヒトの認識にのどように縛られているのか、という問題に答えるにはデータサイエンスとしてヒトの認識をモデル化して理解する必要がある。

そんなか、Twitterのタイムラインに大関先生の「機械学習入門」の情報が流れてきたので、さっそく注文して読んでみました。内容は、しらゆき姫に登場する魔法の鏡をお后さまが機械学習で作り上げていくもの。

 最初は、年齢や目のぱっちり具合などの要素をもとに、国民アンケートのデータを使って美人度を線形回帰モデルで作りましょうから始まり、線形だとあんまりなので、シグモイド関数を用いてニューラルネットでやりましょう、でも、ニューラルネットだと計算時間が発散するので、シグモイド関数をランプ関数という計算時間が劇的に短くなるものに変えましょう、これがディープラーンニングだ、という感じで展開します。

さらに、データに穴がある場合にデータを少数のパターンで生成するスパースモデリング、パターン生成において足し算しか使わない非負値制約行列分解、お肌の状態を知るための画像認識から画素間のつながりを考慮したボルツマンマシンという磁石のモデル、そして、ヒトが顔を認識する場合、画素を認識するのではなく、目や口といったパーツをベースにしていることをもとに隠れ変数モデルと、研究の最前線まで一気にすすみます。

なかなか盛りだくさんで消化不良の部分も多いのですが、機械学習で精度を上げてもヒトの現象の理解にはつながらないので現状のどこをよくすればよいのかのアイデアにはつながらない。それよりもデータのパターンを機械学習で認識した上で、それをヒトが読み、その上で機械学習でモデル化することで現状を改善するヒントにつなげていく。

今年は機械学習の勉強に励んでみようと思います。後期の大学院の講義は機械学習チュートリアルで回帰モデルあたりからディープラーニングを扱ってみましょう。とりあえず巻末の参考文献を片っ端から注文して読んでみて、競馬や現在扱っている選挙のデータのパターン認識や予測で遊んでみたいと思います。後期までに間にあうかが問題ですが、今月10日が大学院の講義のシラバスの締め切りなので、見切り発車になりそうです。

今年の抱負でした。

ちなみに、今年の研究は、日本やアメリカの選挙のモデル、非定常多腕バンディットのナッシュ均衡の集団実験による検証、外部情報のある非線形ポリア壺の情報伝達、2ch掲示板のスレッドの効用の推定と書き込み数予測などをやっていきます。卒研生が6名、大学院2名なので、新し題材を探しながらの自転車操業になりそうですが。

2016年8月27日土曜日

オープンラボ「社会現象を物理で記述するには」II

オープンラボ「社会現象を物理で記述するには」の続きです

情 報カスケードでのヒトの選択をモデル化する方法です。多数のヒトが順番に、前のヒトの選択の情報を見ながら選択する確率法則を数式で表すのでした。 S=1,0でAが正しいと思うか、Bが正しいと思うかを、Ca,CbでA,Bを選んだ人数を表したとき、(S,Ca,Cb)の状況でAを選ぶ確率を

Pr(Aを選ぶ)=f(S,Ca,Cb)

と書きました。

選 択肢A,Bには何の情報もない場合、確率50%で正しいと仮定します。すると、このf(S,Ca,Cb)は対称性を持っていることが分かります。それは、 Aが正しいと思い、かつA,Bの選択者数が(Ca,Cb)の状況でAを選ぶ確率は、Bが正しいと思い、かつA,Bの選択者数が(Cb,Ca)の状況でBを 選ぶ確率に等しいというものです。Bを選ぶ確率はAを選ぶ確率を1から引いたものに等しいので、この対称性は

f(S=1,Ca,Cb)=1-f(S=0,Cb,Ca)

と 書くことができます。 物理では、系の持つ対称性を使って、法則の形に制限をつけますが、ここでは、A,Bの対称性からf(S,Ca,Cb)に制限をつけたわけです。A,Bの選 択肢が等価なことから来る対称性をZ2対称性と呼びます。この対称性を用いると、f(S=0,Cb,Ca)=1-f(S=1,Ca,Cb)なので、S=1 の場合のf(S,Ca,Cb)が計算できれば十分です。それでも2変数Ca,Cbの関数だと理解が難しいので、Ca+Cb=tの場合を考えてみます。つま り、すでにt人が選択を終え、t+1番目のヒトがどう選択するかです。S=1なので、Aが正しいと考えていますが、Ca=0だとt人中t人がBを選んでい るので、Aを選ぶ確率は小さいでしょう。そして、Caの増加とともにAを選ぶ確率が増加し、Ca=t/2ぐらいでほぼ1になるはずです。

で は、実験の説明です。選択肢A,Bを等価にしたいので、二つの選択肢A,Bを用意し、実験の最初にランダムに正解を決めます。つまり、A、Bが正解の確率 は50%で等しいです。そして、多数のヒトが順番に選択していきます。t+1番目の回答者はt人分の選択者数情報(Ca,Cb)を知った上で選択します が、正解に関する情報を誰も知らないままだと(Ca,Cb)に意味はなく、自分も情報がないのでランダムに選ぶことになります。正解の情報を人々に伝える 必要がありますが、情報カスケードの実験でよく使われる手法を採用します。選択肢A,Bを赤球・青玉が(2個、1個)、または(1個、2個)の合計3個 入った箱だとします。最初の正解XをA,Bからランダムに選びます。そして、実験参加者は箱Xni手をいれて玉を選び、その色を確認できるとします。も し、赤球だとすると、箱Aには2個、箱Bには1個赤球が入っていたので合計3個の赤球がありますが、Aから選ばれる確率は2/3、Bから選ばれる確率は1 /3なので、箱XはAである確率が2/3、Bである確率が1/3であることが分かります。逆に、青玉を引いた場合は箱XがAである確率が1/3,Bである 確率は2/3となります。この、3個中2個といった箱の中の玉の割り合いで回答者の情報をコントロールできるのがこの仕組みのよいところです。こうして、 実験参加者は確率2/3で正しい情報を持ち、その情報と(Ca,Cb)で選択することになります。赤玉を引いたら箱XはAだと推測してS=1、青球なら箱 XはBだと推測してS=0です。 

 箱 Xが200個あり、すでに63人が回答しています。63名は2013年の実施した実験に参加してくれた北里大生126名のうちの63名です。1人100回 回答したので、200個の箱に63人が回答するため126名に学生さんに被験者をお願いしました。実験参加の報酬は正解数に比例して謝金なので、まじめに 回答しています。この200問から100問を選んで回答することになります。実験ではタブレットを使って回答してもらったのですが。今回のオープンラボで はデータ解析まで行うので、パソコンを使います。回答画面が下図です。味もそっけもありませんが、実験を行うには十分です。

 真っ黒な画面は、Rのコンソールです。Rとはデータ解析やそのためのプログラムを開発する環境です。今回の実験ではRを使って実験を行い、データを取得・解析します。sourceコマンドでプログラムを実行します。すると、[1]の横に

[1] q=6/9, as 63-th subject you answer 100 questions

 とあり、実験状況を示しています。q=6/9とは、あなたの情報が正しい確率を表していて、q=2/3=6/9です。なぜ、q=2/3ではないかというと、他にq=5/9,7/9,8/9の情報の場合もあるからです。さらに画面を下がっていくと、

[1] Question No. 1 

と あり、問題番号1であることが分かります。その次の行があなたが引いたボールの色でblueなので「青玉」であることが分かります。その次の行があなたよ り前に回答した人々の選択の状況で、あなたが63番なので、62人のうち、10人がR,52人がBであることが分かります。箱A,箱Bの代わりに、赤球 (Red)の多い箱を箱R,青玉(Blue)の多い箱を箱Bとしてます。

最後の行で

Please choose, Red('R') or Blue('B') ? 

と表示され、 箱Rなら'R'か’r’、箱Bなら'B'か'b'をキーボードで押してリターンキーを押して回答します。全部で100問ですが、それほど難しい問題でもないので、次々回答していってください。毎回、回答後に正解か、不正解かが表示されます。

100問回答後に回答データを解析します。赤球のひとつひとつが回答を表しています。 解析では、f(S=1,Ca)の関数の形を仮定し、そのパラメータをデータで推定しています。データ解析の詳細は明日のオープンラボで解説します。

当日使ったスライドです。

 後日、このブログの内容は加筆・修正します。

オープンラボ「社会現象を物理で記述するには」


今度の日曜(2016年8月28日)に大学のオープンラボとして、「社会現象を物理で記述するには」を行います。ヒトの従う物理法則を自分を被験者として実験を自分で行い、自分で自分のデータ解析を行って確認するものです。実験とデータ解析はRというデータ解析環境で実施します。ぜひ、参加して社会物理学という物理の新たな分野の研究の雰囲気を味わってください。

社会現象は多数のヒトの集まりの示す現象であり、集団挙動と呼ばれます。ヒトは他のヒトの影響を受け、そして自身も他のヒトに影響をあたえながら選択や行動を行い、社会現象となります。そのため社会現象を物理現象として扱うには、ヒトの選択や行動の従う物理法則を明らかにし、方程式で記述する必要があります。しかし、ヒトは自由意志に基づいて選択や行動を行うと考えられています。方程式のような決まった関係式でヒトを記述できるとは思えないかもしれません。ヒトはリンゴの木から落ちるリンゴとは根本的に異なると考えるのが普通です。しかし、ヒトは自由意志に基づいて選択・行動するといっても社会的動物であることで他人から影響を受けるため、その選択・行動は単純な法則に従い、方程式で書くことができます。

話を具体的にするために、選択を考えてみます。AかBのどちらかを選ぶ状況でヒトに法則性があるかどうかです。例えば、初めて訪れた観光地で道に迷ったとき、多くの人がすすむ方向に進んだりしないでしょうか?また、何軒かレストランがあるとき、情報が全くないなら、レストランのお客さんの数か多いかどうかを調べて、多いレストランに入ったりしませんか?このように、選択において十分な情報が不足しているとき、ヒトは他のヒトの選択や行動を参考にします。このようにして情報を得て選択・行動することを社会的学習と呼び、ヒトに限らず、群れをなす動物や社会性昆虫まで、多様な動物が行っています。親の世代から子の世代への有用な情報の伝達手法でもあります。ヒトは社会的学習によって文化を世代間で継承します。法律や慣習は他の人がそうするから従うのであって、多くの場合、それらの正しさとは関係ありません。また、学問は先人の得た有用な情報を先人の苦労を再度繰り返して自力で獲得するのでなく、教科書を学ぶことで効率的に行うものなので、究極の社会的学習ともいえます。

では、社会的学習にはどのような法則性があるのでしょうか?社会的学習は非常に一般的な抗y範囲にわたるテーマなので、話を明確にするために二拓のクイズに回答する場合を考えてみます。ただし、他人の選択の情報がないと社会的学習が行えないので、多数の人が一人一人順番に回答し、その回答結果を参考にして次のヒトが回答するものとします。最初のヒトは自分の情報だけで選択するしかありませんが、2番目のヒトは最初のヒトの回答を参考にできます。最初のヒトはAを選んだけれど、自分はBが正しいと思うからBを選択することも、自分の選択に自信がないなら最初のヒトの選んだAを選ぶことも自由です。3番目のヒトは最初の二人の回答を参考にして回答します。例えば、二人ともAだけれど、自分はBと思うからBを選択しても、自分もAが正しいと思うから最初の二人と同じくAを選ぶこともいろいろあるでしょう。

 すると、一般的な状況としては、自分が正しいと思う選択肢が過去の回答者の回答の多数派と一致するかしないかの二つのパターンになります。一致するなら自分の正しいと思う選択肢を選べばよいでしょう。もちろん、自分より前の回答者が嘘をついて間違った選択肢をわざと選んでることもあるでしょうから、多数派の選択肢だからと言って正しいとは限りませんが、わざと間違えると自分の正解の数も少なくなって損をするので、通常はないと考えてよいです。レストランの選択でも、わざわざまずい店に入って他のヒトを惑わせるのは、そのお店からお金でももらわない限りやらないものです。社会的学習は他人の選択による情報のフィルタリング機能を使っているのです。

問題は、自分の正しいと思う選択肢が多数派の選択肢とバッティングする場合です。この場合、自分の選択肢に自信があるなら、それを選べば問題ないでしょう。自分より前の10人の回答が8人A,2人Bといった状況でもBが正しいと自信があるならBを選ぶべきです。8人がAを選らんでいても、その8人すべてがAに自信があるかどうかは分かりません。一方、自分の選択肢に自信がない場合は微妙です。こうした場合、つまり自分の持っている情報が不確実なとき、ヒトは多数派を選ぶ傾向が強くなることが知られています。そして、そうした傾向を情報カスケードと呼びます。

カスケードというのは、Wikipediaによると、 連なった小さな滝である。建築分野では人工的に作ったものを指す。さらにその派生として連続したもの、数珠つなぎになったものを意味する言葉として各分野で用いられる。日本語でのカスケードはこの派生用法が主である。」とあります。情報カスケードの場合、なにが連続する・数珠つなぎになるのかといえば、二拓の選択が難しく、誰も確かな情報を持っていないため、一度多数派ができてしまうと、あとのヒトは確実な情報がないことが多いので、多数派の選択肢を選び続けるので、多数派の選択肢の連鎖が起きるからです。ただ、情報カスケードは「あくまでも傾向」なので、確実にヒトは多数派を選ぶといってはいません。そのため、連鎖はいづれ止まります。みなさんの前の100人のうち90人がA,10人がBだったとしても、Bにすこし自信があればBを選択することは結構あるでしょう。このため、情報カスケードの連鎖は壊れやすい脆弱なものと考えられています。

まとめると、① 多数のヒトが不確実な情報をもとに順番に選択する場合、少数派が正しいと思っても過去の回答の多数派の選択肢を選択する傾向がある。②あくまで傾向、平均的な話なのでヒトによって異なる。③一度、多数派が出来てしまうと、その多数派の選択肢の連鎖が続くので情報カスケードと呼ばれる。④多数派の連鎖はいづれ止まる。

これが情報カスケードです。不確実な情報といっても、あるヒトは正解を知っているかもしれませんし、あるヒトは情報が全くないこともあるでしょう。そうした情報の不均一性はあっても構いません。

では、この情報カスケードという法則を方程式で表しましょう。ニュートンの方程式は、どんな物体の運動でも成立する「力」と「加速度」「質量(物体の重さ)」の関係式でした。それは、物体に働く「力」は、「質量」と「加速度」の積に等しい」というものです。この関係式は「力」と「質量×加速度」を等号で結び付ける方程式として書くことができます。

 ニュートン方程式:質量×加速度=力

 この方程式を解くことにより、物体の運動を計算することができます。現在の物体の情報(位置と速度)があれば、未来の物体の情報を計算し、物体の運動の軌跡を描くことができるわけです。

一方、情報カスケードの場合、多数のヒトの平均的な法則=傾向なので、単純な関係式では書くことはできません。このような、平均的な話、傾向の場合、確率を使って法則を式で表します。Aを選んだ人数をCaとBを選んだ人数をCbとかき、かつAを正しいと思うか、Bを正しいと思うかを変数Sで表すとします。S=1はAが正しいと思う、S=0はBが正しいと思う状態です。そして(S,Ca,Cb)の状況でAを選ぶ確率をPr(Aを選ぶ)を関数f(S,Ca,Cb)で表すことにします。

Pr(Aを選ぶ)=f(S,Ca,Cb)

Pr()は()の中に書いたことが起きる確率(probability)を表しています。確率なので、同じ状況が多数回あったとしたときの()の中のことが起きる比率しか分かりません。この確率はヒトによって異なるでしょうが、情報カスケードでは多数のヒトが回答するので、多数のヒトの平均的な確率を使います。こうした法則を「確率法則」といいます。

(Ca,Cb)=(0,0)のとき、S=1ならAが正しいと思っているのでf(1,0,0)はほぼ1になるでしょう。また、S=0ならほぼゼロになるはずです。また、S=1で、Ca>Cbでもf(S,Ca,Cb)はほぼ1になり、S=0でCa一方、情報カスケードにおけるヒトの選択は、Ca>Cbのとき、Bが正しいと思ってもAを選ぶ傾向が強いというものだったので、

 もし、CaがCbより大きいなら、f(S=0,Ca,Cb)>f(S=0,0,0)

となります。しかし、物理は数値的に現在の状態から未来の状態を予言するものなので、不等式で確率法則を記述したのでは不十分です。実験を行ってヒトの振る舞いのデータを集め、それをもとにf(S,Ca,Cb)を決定する必要があります。

まとめると、①ヒトの場合は他のヒト、動物の場合は他の個体の影響を受けながら選択・行動する状況では、選択・行動は確率法則として記述できる。②確率法則は実験で決定する必要がある。

では、情報カスケード実験を行ってヒトの選択の法則を見てみましょう。

2015年6月17日水曜日

ストレートはホップするのか?

2015年3月の社会物理学の研究会@統数研で國仲さんが「野球ボールの反発係数とホームランの確率」に関する講演をされたのに触発されて、「ピッチャーの投げたボールがホップすることはあるのか?」という疑問について調べてみました。ピッチャーがキャッチャーミットを目掛けて投げたボールが、バッターから見ると重力に逆らって上昇するように見えることを「ホップする」というのですが、そんなことがありうるのかという問題です。

「普通に」ボールを投げると、重力の効果でボールの軌道は落ちるのが当たり前なのですが、ピッチャーが投げるストレートという「変化球」では、ボールが高速にバックスピンした状態にあるため、ボールの縫い目がボールのまわりの空気をかき混ぜることによりマグヌス力が働きます。そのマグヌス力の向きは、ボールの進行方向と回転軸に垂直な向きで、ボールが地面に並行に直進する場合は真上、キャッチャーミットを目掛けて投げ下ろしている場合は若干前のめりの上向きとなります。ちなみに、縦カーブ、ドロップという変化球では、ボールがトップスピン(前転の状態)していて、ストレートとは逆の向きに、つまり重力と同じ下向きの力が働き、縦の落ちる変化が無回転のときと比べて大きくなります。もうひとつ蛇足ですが、ストレートを投げるときのボールの回転軸とボールの縫い目の関係で、ストレートはフォーシームとツーシームに分けられます。ボールが1回転するときに、縫い目が4本見えるならフォーシーム、2本ならツーシームで、フォーシームの方が縫い目の回転数が増えてボールのまわりの空気をかき混ぜる効果が強くなり、結果としてマグヌス力も大きくなると考えられます。一方、ツーシームはフォーシームよりマグヌス力が弱い。すると、同じ投げ方のストレートでもボールの握り方ひとつでマグヌス力が変化し、ボールの軌道が変化するわけです。問題は、バックスピンで働くマグヌス力の上向きの成分と重力の下向きの成分の大小関係と、それがストレートの軌道にどのような影響を与えるのかです。

マグヌス力の大きさはボールのスピンの大きさに依存します。ボールのスピンの大きさをボールの回転速度(回転数とボールの周長の積)をボールの速度の大きさで割ったスピンパラメータSで表すとします。Sの大きさはプロ野球のピッチャーなら0.25程度ですが、山本昌投手の場合毎秒50回転の高速バックスピンのストレートを投げるそうで、球速を時速140キロとすると、Sは約0.3となります。つまり、ヒトの投げられる限界が0.3です。問題はSとマグヌス力の関係ですが、どうも単純な線形の関係ではなく、また、フォーシームとツーシームの差もほとんどないという実験結果もあるようです。簡単のため、マグヌス力の大きさはSρAv*vになるとします。ρは空気の密度、Aはボールの断面積です。v*vはボールの速度の自乗なので、球速vが早くなればなるほどマグヌス力は大きくなります。ボールに働く重力の大きさは、ボールの質量m=0.145[Kg]で約1.4[N](ニュートン)。マグヌス力の大きさは、S=0.3で時速150キロとすると約2.8[N]で重力の2倍、時速160キロだと3.2[N]となります。つまり大谷投手が山本昌投手レベルのSのストレートを投げれば、マグヌス力は重力の2倍以上になり、ボールの上向きの加速の大きさはマグヌス力がゼロのボールの下向きの加速の大きさをうわまわることになります。



ボールの軌道を計算してみます。ボールには重力、マグヌス力の他に空気抵抗の力も働くので、それら3種類の力をニュートン方程式にインプットします。まず、時速160キロのボールを高さ1.8[m]から地面に水平に投げた場合の軌道です。Sの値を-0.1から0.3まで変化させてみます。まず、驚くのがS=0.3の場合です。ボールはキャッチャーミットに届いたとき高さは2.8メートルに達します。つまり1メートル以上「ホップ」しているわけです。一方、S=0の無回転のボールの場合、0.8メートルなので、1メートルほど落ちていることが分かります。こうしたボールはバッターから見ると普通のキャッチボールのボールの軌道なので予測がしやくする打つのが簡単なのだと思われます。一方、トップスピンのS=-0.1の場合、ボールは地面すれすれまで落下しています。縦カーブ、ドロップのSの値が分からないのですが、これがそうした変化球の軌道にあたるわけです。

ボールを地面に対して水平だと、ピッチャーの投げるボールの軌道としては変なので、キャッチャーミットでの高さが0.9[m]の場合の軌道を描いてきます。時速160キロのボールをS=0,0.0.25,0.3で投げたときと、山本昌投手のボールをイメージして時速140キロのボールをS=0.3で投げたときの軌道を描いたものが左の図です。驚くのが時速160キロのボールの場合、キャッチャーミットに入る時点でほぼ水平の軌道を描くことです。バッターはSがもうすこし小さい場合のすこし落ちる軌道を予測しているでしょうから、それからすると「ボールがホップしたように見える」としても不思議はありません。Sを0.3からさらに大きくするとボールの軌道は実際にホップし、キャッチャーミットに下から上に向けて飛び込んでくるのですが、そうしたボールを投げることは難しいでしょう。もうひとつ驚いたのが青の140キロのボールをS=0.3で投げたときの軌道です。それは160キロをS=0.25のボールとほとんど同じ軌道となっていて、山本昌投手のボールが大谷投手の投げる普通のバックスピンのボールとほぼ同じ軌道を描くことを意味しています。

ここまで計算してきて思うのは、「この結果はどこまで正しいのだろう?」ということです。ボールに働く力として重力、空気抵抗、マグヌス力を取り入れていますが、ボールの回転軸は動かずSの値もずっと一定としていますし、マグヌス力の大きさの見積もりも、実験データを参考にはしていますが、大雑把なものです。ストレートの真の軌道を描くには、ボールのまわりに空気の流れまで含めて計算しないといけないでしょう。上の結果はあくまでも参考のためのものです。しかし、数値計算としてはなかなか楽しめました。

ちなみに、今回の数値計算はRのパッケージdeSolveを用いています。スクリプトball1.R,ball2.Rを参考までに置いておきますでので、ご興味のある方はボールの軌道を描いてみてください。