データサイエンス(学部学生に向けて)

柴 田 里 程

多くの諸君にとって「データサイエンス」は初めて耳にする学問分野だと思います. しかし,その意味するところはほとんど明らかでしょう.「情報」の具体的な姿が 「データ」であり,その科学がデータサイエンスです. 新明解国語辞典によれば,科学とは「一定の対象を独自の目的方法で体系的に研究 する学問.雑然たる知識の集成ではなく,同じ条件を満足するいくつかの例から 帰納した普遍妥当的な知識の積み重ねからなる」とありますから,データサイエンス とは簡単にいえば「データに関する普遍妥当的な知識の体系的な積み重ね」 を目的とする学問ということになります.

最初から少し話が固くなりましたが,この学問のおもしろさの 1 つは その幅広さにあります. 対象とするデータを限らないのがこの「データサイエンス」の真髄ですから,物理学,化学,生物学などの古典的な 自然科学から地球科学,環境科学, 宇宙科学など最近発達のめざましい諸科学, さらに遺伝子工学,画像工学,通信工学, 制御工学などの工学分野とも密接な関係に あります. いずれの分野も,複雑な背景を持った大量なデータの適切な処理と解析が 決め手となることはすぐおわかりになることでしょう. つまり具体的なデータにもとづく確固とした裏付けがない限りどんな学問 も科学としては成立しえないのです. データサイエンスは「対象分野によらない普遍的なデータに関する 知識を積み重ねる」若い学問分野です. 数学が「科学の言葉」であるなら,データサイエンスは「科学の目」です. このような新しい分野が誕生した背景には もちろん最近の計算機の高度な発達があります.計算機を駆使した大量のしかも 複雑な処理ができるようになってくるにつれ,従来のような直感的な処理と解析では 間に合わなくなり,統一的な理論にもとづいた見通しのよい処理と信頼度の高い 解析が要求されるようになってきたからです.

もう1つのおもしろさは,いわばマジックに共通するおもしろさです.そのままでは 何の意味もなさそうなデータでも適切な処理と解析を施せば意外な事実が浮かびあがって きます. もちろん,無から有を生み出すわけではありません.どんなマジックにも 種明かしがあるように,データサイエンスにも種明かしがあります.しかし その種明かしがトリッキーでなく,合理的で万人を納得させるだけの客観性を備えて いる点がマジックとは異なります. データサイエンスの種明かしはモデルが担います. 直感に頼らず,客観的で適切なモデルの適用が見通しのよい処理と解析結果の信頼性を 保証するといってもよいでしょう.

1つ例をあげましょう. 1995 年に私が滞在していたカリフォルニア大学バークレー校で話題になった サンタフェ・コンペティション( Time Series Prediction, Eds. A.S.Weigend and N.A.Gershenfeld, 1994, Addison-Wesley) です.これは複雑なシステムの研究のために各方面から基金を募って 設立された研究機構がニューメキシコ州サンタフェで行ったコンペで, 事実上ニューロ・ネットワークによる予測と統計的なモデルを 用いた予測のどちらが有効かを確かめるための計算機上での競争実験となりました.

ニューロ・ネットワークは脳の神経網を計算機の上でシミュレートしようとするもので, 学習によってその機能を変えていきます.いわば,人間の脳をモデルとしている わけですから,多くの人の注目を集めるのも当然です.これに対して,統計的なモデルは 関数解析と確率論にもとづいた数学モデルです.コンペの対象となったデータは 物理実験データ,医学データ,天文データ,ドルとスイスフランの交換 レートなどさまざまな分野に渡りました. しかし,どちらにも軍配はあがりませんでした. ニューロ・ネットワークの方は確かに与えられたデータから学習して似たような データに対してはよい予測を与えますが,少し違うデータが与えられるととんでもない 答えを出します.一方,統計的なモデルを用いた方は安定した予測を与えるものの 必ずしもニューロ・ネットワークよりもよい予測を与えるとは限らなかったのです. この2つのモデルを比較してみれば,ニューロ・ネットワークは 局所的には学習によってよく当てはまるようになるものの不安定,それに対し, 統計的なモデルのほうは安定はしているが,どうしても当てはまりの悪い部分がでて くるということになります. ただ,前者がモデルとしての記述が困難で今のところ 計算機実験を積み重ねるしかないのに,後者はモデルが数学モデルとして きちんと記述されているためなにがどのように関係しているかが明確で, 予測値の信頼度まで評価できる点が違うかもしれません.

このように,データサイエンスには次々と新たなモデルが登場してきます. 勝利を収めるのは多くの場面に適用でき,理解しやすく,しかも信頼できるモデルです. 上記の例では将来の予測が目的でしたが,他方,データから何か新しいことを 発見するためにもデータサイエンスは役立ちます. このような分野はデータサイエンスの中でも探索的データ解析とよばれる重要な分野です. 与えられたデータから何がわかり,何がわからないかを明らかにできるのはデータサイエンスだけです.

データサイエンスの対象は広いだけに汎 用な方法や理論を作り上げるのはなかなか大変です. ときにはある程度対象を絞って研究を進めることも必要になります. その場合には当然その分野固有の知識も必要です. たとえば,遺伝子工学の分野に絞るならば,DNAに関する 基本的な知識をどうしても身につける必要があります.また,その分野の研究者 との共同研究が必要になることもあります.日本ではまだあまり一般的ではありませんが, そのような場合,データサイエンスの素養を重ねた研究者はその分野でのコンサルタント としておおいに尊敬される存在となるのです. いわば,医者や弁護士の役割を果たします.実際アメリカではそれに相当する資格があります. 日本でも,最近ファイナンスの分野でこのような専門家を必要とするようになり, 年俸を1700万円近くにも上乗せしてでも確保しようという動きも報道されています (週刊朝日,1998年8月21-28日号.p.175-177). このような動きは,ファイナンスに限らずこれからさまざまな分野で盛んになるでしょう .

しかし, データサイエンスの専門家としては,常に初心を忘れることなく分野を越えて適用できるより汎用な方法や理論を作り上げていく努力を積み重ねなければ なりません. このような一般化が成功したときの喜びは経験してみないとわからないと思いますが, いわばデータサイエンスにおける1つの真理を発見したことになるわけですから きわめて大きなものがあります.しばらくはもっと一般化できないか と寝る時間を惜しんで考えたり,確かめたりして過ごすことになります. 一度,このような喜びを味わうと山登りに似て,また次の難題に挑戦することになりま す.これは一般的にどの学問分野でも共通することですが.

では,データサイエンスの専門家(研究者とは限りません,社会にでたときこの専門性を 活かせる場面はいたるところにあります)になるにはどんな勉強が必要でしょうか. まず数学の多方面にわたる基礎知識が必要です.その必要性はデータサイエンスを 勉強し始めると痛感することでしょう.実際, 諸君の先輩が一致して 言うことは「もっときちんと数学を勉強しておけばよかった」です. データサイエンスにおけるモデルはそのほとんどが数学モデル の形を取りますし,その妥当性の検証や一般化に際しては,さまざまな数学理論 が必要になります.こんなことを言うと怒られるかもしれませんが数学の勉強 は退屈なもんです.とくにその強力さがわかるまではそうだと思います. しかし,特にマスターしておいてほしいのは,線形代数と解析学です.また,微分方程式 はモデルの構築に欠かせない道具ですし,関数解析は抽象化に役立つ強力な 道具です.確率論も重要です.データの多くがランダム性を少なからず持っています. ランダムな部分をモデル化するには確率論の知識が欠かせません.

一方,数学に劣らず計算機に関してもエキスパートであってほしいと思っています. データサイエンスのほとんどすべての場面で計算機は重要な道具となります. 実際のデータを扱わないにしても,シミュレーションなど有効性を確かめるため にはどうしても計算機から逃れるわけにはいきません. しかし御安心下さい. ここでのエキスパートとは単にプログラミングがうまい人を意味しているわけで はありません. 計算機がどのような原理で動き,自分のしたいことを実現するにはどうすればよいか わかっている人という意味です.データサイエンスの勉強を始めてみれば,いかに 計算機という道具が強力で,様々な使い方ができるかわかるに違いありません. それだけでなく,計算機はデータサイエンスの知識を積み重ねるのにも必要不可欠のメディアです.

我々が,日常的に使っているソフトウエアはSという言語/環境で,データからのモデル の構築やそれにもとづく解析などに便利なように米国のベル研究所で 10 年以上 かけて開発された言語であり環境です.この開発にはバークレー,プリンストン,ハーバード, カーネギーメロン,MITなどの大学とともに慶應義塾大学の当研究室も米国以外の唯一の大学 として参加してきました.ベル研究所はご存じのとおりいろいろな分野で世界最高の 頭脳を擁する研究所ですが,UNIXやC言語を創り出した研究所としても 知られています. このソフトウエアは,データサイエンスのために必要な計算機環境はなにかを徹底的に 考え直して創り出したソフトウエアで,そのために言語の設計から始め,各種 のインターフェイス,グラフィックス機能までを独自に開発した大がかりなものです. それだけに,従来の言語やソフトウエアではとても考えられなかったような複雑な 背景を持ったデータのモデル化や,それにもとづく解析が統一的に行えるようになり, またデータサイエンスの知識を積み重ねるにも適した柔軟な環境がそろっています. そのため,米国のみならず日本でも数多くの大学,研究所,会社でデータ解析 の基本的なソフトウエアとして使われるようになってきました. このソフトウエアを用いた解析例を 1 つ示しておきましょう.

mammals.f は数種類の哺乳類(mammals)の体重( body.wt )と脳の重さ(brain.wt) を 1 つにまとめたデータ・フレームと呼ばれるもので, 1 つの関係形式 (relational scheme)の構造をもっています. データ解析の第 1 歩はデータの欠損値を処理したり,このような解析しやすい形式に組織化することから始まりますが, ここではこのステップについては特に触れないことにします. S ではこのデータ・フレームを attach という関数で検索リストに登録すれば,名前 body.wtbrain.wtで直接アクセスできるようになります. それを散布図に描いたのが 図 1 です. 体重の単位は Kg,脳の重さの単位は g です.この散布図で右上に飛び離れた 2 点が, アジア象とアフリカ象に対応します. 体重も脳の重さも極端に大きな哺乳類であることがよくわかりますが, その他の哺乳類に関しては,体重と脳の重さの関係がよくわかりません.

> attach(mammals.f)
> plot(body.wt, brain.wt) # 図 1  

図 1: 哺乳類の体重に対する脳の重さの散布図

そこで,両軸を対数軸にとって, 散布図を描き直してみたのが 図 2 です.

> plot(body.wt, brain.wt, log="xy") # 図 2 

図 2: 両対数軸での散布図

図 2 を眺めると体重と脳の重さの間には直線関係に近い関係がありそうなことが わかります. なぜ対数をとったのかはすぐ後で説明しますが,まず試す価値のあるのが対数変換であることは, いわばデータ解析の常道です.さて,このように完全な直線関係にはないが, それに近い関係がありそうなとき,このデータを「直線関係」とそれからの「ずれ」として解釈することが考えられます.つまり

log(brain.wt) = a + blog( body.wt) + e

というモデルをあてはめてみることになります. ここで,abは係数,e は「ずれ」です. このモデルを最小二乗法であてはめ,そのあてはめた直線

log(brain.wt) = a + blog( body.wt)

を重ね描きし,その信頼幅を点線で記入したのが 図 3 です.

> plot(log(body.wt), log(brain.wt))

> lm.result _ lm(log(brain.wt) ~ log(body.wt))
> abline(lm.result)
> z _ predict(lm.result, se.fit=T)
> lines(log(body.wt), z$fit + 2 * z$se, lty = 2)
> lines(log(body.wt), z$fit - 2 * z$se, lty = 2)
> identify(log(body.wt), log(brain.wt), names(brain.wt)) # 図 3 

図 3: 回帰直線と信頼区間

図 3 には,信頼幅から外へ大きくずれている哺乳類の名前も記入してあります. 人間やチンパンジーは脳の重さが重い方へ大きくずれ,アルマジロやオポッサム(ネズミの一種) は軽い方へ大きくずれています.乱暴な言い方をすればこのモデルにもとづいて「頭のいい動物」と「頭の悪い動物」 が区別できることになります. あてはめた直線の切片(intercept)と傾きを調べてみると

> lm.result
Call:
lm(formula = log(brain.wt) ~ log(body.wt))
Coefficients:
 (Intercept) log(body.wt) 
    2.450135    0.6824875
Degrees of freedom: 34 total; 32 residual
Residual standard error: 0.7683673
のようになっていますので,対数変換をもとへ戻せば「ずれ」をのぞいた

brain.wt = ( body.wt)^0.6824875 * e^2.450135

の関係が得られます. 0.6824875 は 2/3=0.6666667 にかなり近いので,「脳の重さは体重の 2/3 乗に比例する」という哺乳類全体にあてはまる法則がデータから得られた といってもよいでしょう.体重の 2/3 乗はちょうど体表面積に相当しますから, 脳の重さは体表から受ける外界からの刺激量に比例するとも解釈できます. このような単純なモデルが象のような巨大な動物からネズミのような小さな動物ま であてはまるのは 1 つの驚きです.自然の神秘すら感じさせられます. また,この結果から対数変換がこのような自然界の乗法的な法則を発見するのに いかに有効であるかもおわかりになったことと思います. もちろん,このモデルが普遍妥当的な知識となるためには,さらに入念なチェックが 必要です. そのためのさまざまな道具も用意されていますが,ここではこれ以上触れないことにします. データ解析はモデルを探索する「探索的」な段階を経て,得られたモデルの妥当性をチェックする 「確証的」な段階へ移るということは覚えておいて下さい.

春学期の「統計科学同演習」では,このSを基本的な道具として地震データ,医学データ,経済データなど具体的なデータを例に データの変容とその表現を計算機実習を通じて学んでもらいます. データ,モデル, ソフトウエアの3者の関係をよく理解してもらうのが目的です. S に関してはいくつかの参考書やテキストが出版されていますので, 一度目を通すことをお勧めします.

秋学期の「データ解析同演習」では「統計科学同演習」に引きつづき, データサイエンスでよく用いられるさまざまなモデルの利点と欠点,それがどこまで 適用できるのだろうかを S を用いて実際のデータで体験してもらいます.テキストとしては を用いますが,これはかなり高度な内容を含んでいます. 他大学では大学院のテキストとして使っているところもあるぐらいです.しかし, 春学期の「統計科学同演習」をマスターした諸君なら問題なく理解できるでしょう. このテキストの内容をマスターすれば,社会に出てもデータサイエンスの専門家として大いに 尊敬される存在となることは間違いありません.

さて,ここまではどちらかというとデータサイエンスの目的やその重要性に重点をおいて話を 進めてきましたが,この学問の数学理論についても触れておきましょう. 授業でいうと秋学期の「数理統計学第 1 同演習」の内容がこれにあたります. 中心となるのは「情報量」の概念です.データがどれだけ必要な情報を含んでいるか, モデルがその情報をどれだけ有効に取り出す能力を持っているかなどを量的に 評価するにはどうしても情報量が基本的な役割を果たします. 情報量の定義はいくつかありますが,いずれも1つの公理系から導かれる ある種の情報の測度で,お互いに密接に関連しています.この情報量にもとづいて さまざまな「情報の数学」が展開されます. また,解析結果の安定性や,信頼性も重要な関心事です.これらのテーマはおたがいに 密接な関係を持っており,それらをきれいな形で統一できる理論を創りあげることが 我々の 1 つの夢です. すでに述べましたように, データサイエンスの守備範囲は極めて広く,そのすべてをカバーする理論 の完成はまだ先ですが,それだけに諸君の活躍する余地がたくさん残っていると いってよいでしょう.

最後に,統計学との関連について述べておきましょう.統計学はもっぱらランダム性 を持つデータを扱う学問です.近代統計学の始まりは19世紀のベルギーやドイツ における官庁統計制度の確立にあるとされています. そこでは,国家の運営のために 大量のデータをいかにうまく縮約できるかが主要な関心事でした.いまでも,ニュース で「統計によれば…」といって引用される数字はこのようにして確立した 制度によって得られたものがほとんどですので,統計というとこのような 数字や図表だけを思い浮かべる人が多いのもやむをえないのかもしれません. しかし,20世紀にはいって R.A.フィッシャーが登場すると,統計学も1つの近代科学として脱皮し,その 適用範囲がすべての科学,工学分野にひろがり「統計科学」とよばれるようになりました. その鍵は,確率論をはじめとする 数学的な基礎の確立にありました.このような基礎の上に立ってはじめて「普遍妥当的 な知識の積み重ね」ができるようになったのです.現在,統計学は第2の脱皮を 体験しつつあります.第 1 の脱皮の契機が数学にあるとすれば,今回は計算機の高度な 発達が契機です.大量のデータの複雑な処理が日常的に可能になってくれば 当然,いままでの統計学の枠組みでは扱いきれない様々な問題が生じてきます. また,「大数の法則」でもわかるように,大量のデータが扱えるようになればランダム 性がそれほど重要なファクターではなくなる場合も多くなります. もうおわかりでしょう,「データサイエンス」はまさに「統計科学」 が脱皮しようとしている学問分野なのです.

もちろん, ランダムなデータの科学である統計科学からデータサイエンスが学ぶことはたくさんあります. データサイエンスは統計科学を基礎にして大きく発展しつつある若い学問分野です. 必修科目「統計科学同演習」ではこの基礎つまりデータサイエンスの核となる 部分を教授しますし, 「データ解析同演習」ではデータ解析の鍵となる「モデル」を中心に教授します. 一方,「数理統計学第 1,第 2 」ではその基礎となる数学理論を教授します. この他にも, 情報を効率的に抽出できるよう調査や実験を計画する「データ設計学」, データベースの構築や検索に欠かせない基礎知識を教授する「アルゴリズム論」や 「情報処理」 など 数理科学科の統計コースのカリキュラムは時代の流れを背景に 諸君がデータサイエンスの基本をマスターできるよう十分考えて構成されています. さらに統計コースの3年次にはユニークな科目「統計科学輪講」が設置されています. これは通常の授業のように先生が一方的に講義するのではなく, 学生が自分で勉強してきたことを持ち廻りで先生を含めた仲間に説明をする,いわゆるゼミナー ル形式です. 原則的に英語のテキストを選んで,小人数のグループに分かれて行いますから, 多くの諸君にとって英語の本や論文を読む初体験になるだけでなく,徹底的に理解 するまで勉強するよい機会にもなると思います.

また,4年次には「非線形モデル」や「時系列モデル」といった更に進んだ統計モデルに 関する講義も用意されており, 「計画数学」や「統計数学続論第1,第2」などとともに,大学院へ進学する諸君のみなら ず, 社会へ出て活躍しようとする諸君にも大いに役立つ科目が数多く用意されています. このような豊富なカリキュラムは他の大学には見あたらない慶應義塾大学理工学部独自の 貴重なものです.

現在, 統計科学がどんな段階にあるか,どのように役立っているかについて 知りたい諸君は私も編者の 1 人として参加した

を眺めてみて下さい.

データサイエンスは数学と計算科学を基盤とする奥深く,幅広い学問分野です. また,規制緩和による自由競争の時代はデータの冷徹な解析にもとづく的確な判断 が勝敗を決する時代です. このような時代にあって,データサイエンスはますますその重要度を高めています. いま,データサイエンスは諸君のチャレンジをいつでも待ち受けている 若い学問分野なのです.


柴田 里程
1999年1月7日(木)

データサイエンス研究室に戻る