「モデル」は現実の多様性を削ぎ落とす
どうも、エンジニアのgamiです。
何年もエンジニアの端くれとして仕事をしていると、昔よくわかっていなかった概念でも自然と腹落ちしていることがあります。
「モデル」という言葉もその1つです。たとえば、最近読んだブロックチェーンに関する本でも次のような文章が出てきました。
「モデル」とか「モデル化」は、IT関連の様々な分野の文章で登場する割に、抽象的で理解が難しい言葉です。他方、「モデル」という言葉がもつニュアンスを理解することは、そもそも現実の事物をデジタル技術を使って扱うというのはどういうことか、その本質の一端を理解することにもつながります。
今回は、「モデル」という言葉の意味について考えます。
日常的な「モデル」の意味
まずは辞書を引いてみましょう。デジタル大辞泉によると、モデルには次のような意味があるようです。
現代の日常会話の中で「モデル」といえば、普通は「ファッションモデル」の意味で解釈されます。しかし、たとえば機械学習の「モデル」と「ファッションモデル」とはかなり意味が違う印象があります。このnoteでは、これら2つの「モデル」に共通するニュアンスを掴むことを目指しましょう。
「モデル」には、「対象の重要な共通点だけに着目して表現したもの」という含意があります。逆から見れば、「現実に在る対象の多様性を削ぎ落としたもの」とも言えます。
たとえば「カラス」の絵を書くとき、普通は「黒い鳥の絵」を書きます。一方で、世の中には白いカラスもいます。しかし実際には「黒くも白くもある鳥の絵」を書くことはできないので、白いカラスのことは無視して単に「黒い鳥の絵」を書くことになります。この「黒い鳥の絵」は、「カラスの重要な共通点だけに着目して表現したもの」であり、カラスの「モデル」と言えます。
「モデル」の代表的な意味は、辞書によれば「模型」と「模範」でした。たとえば「飛行機の模型」とは、「飛行機の重要な共通点だけに着目して似せて作った物」です。たとえば「模範囚」は、「現実に在る囚人の多様性を削ぎ落として考えられた理想像」です。どちらも「モデル」の原義から派生した意味といえます。
ここで、迷子にならないために「モデル」の特徴を整理しておきましょう。
「ファッションモデル」も、「模範」とか「見本」に近い言葉です。「ファッションモデル」が見本となる対象は、「人間の身体」です。ファッション雑誌を読む数万人の人間の身体は、それぞれ身長や体型が異なります。しかし、その現実の身体を全て掲載するには、雑誌の紙幅はとても足りません。そこで、「ファッションモデル」が読者の身体を代表して洋服を着て見せてくれるわけです。こう考えると、「ファッションモデル」も「モデル」の特徴に合致しています。
ちなみに、「ファッションモデル」が「現実の読者の身体の共通点を表現」しているのかどうかについては疑問をもつ人も多いと思います。いわゆる「モデル体型」とは高身長で痩せ型の体型を指します。もちろんチンパンジーよりは人間の身体の平均に近いでしょうが、モデル体型が読者の平均的な身体に合致しているとはとても思えません。「モデル」が1つの表現である以上、そこには表現者の意図や恣意性が入り込んできます。とはいえ、過度に痩せすぎのモデルに読者の身体を代表させることについては議論もあるようです。
3DCGと「モデリング」
前置きが長くなりましたが、ここまでで「モデル」という言葉のもつニュアンスがだいぶ把握できました。ここからは、デジタル技術に関する様々な文脈で使われる「モデル」という言葉を見ていきましょう。
まずイメージしやすいのは、3DCGにおける「モデリング」です。CGの文脈における「モデリング」の意味を辞書で引いてみます。
たとえばコーヒーカップを3Dのデータとして表現できるようにする作業を「モデリング」と呼びます。現実世界のコーヒーカップは、全く同じ製品だとしても、ミクロに見れば表面のザラつきなど微妙に違います。しかし、コンピュータ上の3DCGとして表現するためには、こうしたミクロな違いを削ぎ落として、なるべく簡潔な数式で表現できる曲面の集合体として捉える必要があります。
コーヒーカップの「モデリング」とは、まさに現実のコーヒーカップの多様性を削ぎ落として共通点を表現する行為であり、「モデル」を作ることであると言えます。
システム開発と「モデル」
システム開発の現場でも、「モデル」とか「データモデル」といった言葉が使われます。
ある業務をシステムで表現する場合、まずはその業務に関わるヒトやモノを洗い出し、それぞれに対してどんな情報をデータベース上のデータとして保持すればいいかを考えます。そうしないと、現実の物事をコンピュータ上で扱うことができないからです。
システムで扱いたいヒトやモノのことを、IT分野の言葉でエンティティと呼びます。
たとえば次の図は、システムで扱うそれぞれのエンティティの属性情報とエンティティ間の関係性を表したER図(entity-relationship Diagram)と呼ばれる図です。
このER図は、典型的な商品販売管理業務に関するものです。たとえば「商品」というエンティティを見ると、現実の商品の色や形や使用感などの情報は削ぎ落とされ、商品番号や商品名などシステムに必要な5つの属性情報だけで表現されていることがわかります。また、システム化する前は「取引先」と「受注」の対応関係は店主の頭の中で暗黙的に行われていたかもしれません。それでも、システム上で関係性を扱うには「取引先コード」によって両者を機械的に紐付けられるように表現する必要があります。
このように、現実の業務をシステム上で扱うためには、関係するモノの属性や関係における多様性を削ぎ落として、より抽象的でシンプルな形に表現しなおすことが求められます。そこで初めて、データベース上のテーブルに「商品」のデータを入れたり、機械的に受注処理を実行したりできるようになるわけです。まさに、システム開発における「モデル化」です。
機械学習と「モデル」
最後に、何かと話題の機械学習についても触れておきます。機械学習の文脈では、学習の結果として得られるものを「モデル」と呼びます。
「モデル」には、それが表現する「対象」があるのでした。では「機械学習モデル」の対象とは何でしょうか?
僕が好きな機械学習の活用事例に、「きゅうり選別AI」があります。きゅうり選別AIは、その名の通りきゅうりの等級を選別するための機械学習モデルです。記事時点では、約3万枚の画像を教師データに使い、約80%の精度でプロと同じ選別ができるそうです。
この「きゅうり選別AI」という機械学習モデルがモデリングしている対象は、「プロの農家がきゅうりを選別するときの熟練の判断プロセス」です。きゅうり農家は、きゅうりの見た目から熟練の判断プロセスによって等級を判断します。しかし、この「熟練の判断プロセス」をコンピュータ上でそのまま再現することはできません。そこで、きゅうり農家の見るきゅうりの画像データときゅうり農家が実際に判断した等級データを手がかりに、その「熟練の判断プロセス」に近い何かを生成します。この機械学習の結果生まれた「何か」というのが、まさに「熟練の判断プロセス」を何らかの計算式で表現したものであり、「機械学習モデル」です。
現実をコンピュータで扱うには「モデル化」が必要
ここまで、3DCG、システム開発、機械学習における「モデル」という言葉の使われ方を見てきました。これらデジタル分野で使われる「モデル」という言葉の背景には、「現実世界をコンピュータでそのまま表現したいがそれには限界がある」という共通の状況があります。
もちろん、コンピュータの処理性能向上や通信環境の改善によって、コンピュータ上の「モデル」は現実にかなり近付きつつあります。一方で、現実世界をそっくりそのままコンピュータ上で扱うことはできない以上、現実の多様性を削ぎ落とす「モデル化」という作業が事前に必要になります。
別の視点で言えば、DXとかデジタル化とかが叫ばれる昨今、現実をうまく「モデル化」しコンピュータ上で適切に扱えるようにした結果、全く新しい価値や体験が生まれることもあります。たとえばFacebookは人間のリアルな関係性をモデル化してシステム上で表現したことで大成功しました。
今回のnoteでは、最初はよくわからなかった「モデル」という言葉が現実をコンピュータで扱うための非常に重要な考え方につながっているということを紹介しました。みなさんも日常生活で「モデル」という言葉を見たら、ぜひそれが何を表現し何を削ぎ落としているのかを考えてみてください。
ここから先は
仕事を楽しくするデジタルリテラシー読本
【初月無料】デジタル時代の歩き方について考えたことを発信します。ソフトウェアの時代とは何か。エンジニアの頭の中はどうなっているのか。NoC…
サポートをいただけると、喜びドリブンで発信量が増えます!初月無料のマガジン『仕事を楽しくするデジタルリテラシー読本』もおすすめです!