【モデルと関数】モデルとは何か?関数とは何か?(わかりやすく)

モデルと関数 概念

対象読者(以下5人)

大学に入るにあたり、もしくは卒業研究を始めるにあたり、”モデル”という言葉が急に出てきて戸惑っている大学生

何やねん”モデル”って…写真のモデルさんとかプラモデルとかの文脈でなら聞いたことあるんだが…

現在進行形で”関数”について学んでいる学生

なんか数式とかグラフとかばかりでよく分からないけど…結局”関数”って何?

科学的な知識が必要になった社会人(データ分析、AIなど)

業務で顧客データの分析をすることになったのだが…応用にあたって”○○モデル”なるものがたくさん出てきてよく分からない。

メディアで専門家が「予測モデルでは〜」とか言っていたけど、そもそも”モデル”って何やねんって思った人

(2022年現在)コロナの感染者数を予測する”モデル”とか言っているけど、要は何かを予測するものなんでしょ?もっと分かりやすく言えばいいのに。

過去に学んだ”関数”について、そもそも何だったのアレ?と思って復習したい人、スッキリしたい人

そもそも”関数”って何だったんだっけ?数式とかをこねくり回した記憶だけあってあまり覚えていない。

本記事は、上記疑問に答えるものとなっています。

まずは、モデルとは?に関して結論から。
※”関数”とは?に関しては本記事後半で。

結論

モデルとは、
対象とする現実をそのままの形ではなく、抽象化して表現したもの
※”模写された対象”とも言える

「何?」「どういうこと?」と思われるのはもっともですので、まずは”抽象化”と呼ばれる概念について触れ、そこから順を追って解説していきます。

抽象化と科学

抽象化とは?(例を用いて)

“抽象化”という言葉の定義については、以下、Wikipediaから引用したものを参照します。

抽象化(ちゅうしょうか、英: Abstraction、独: Abstraktion)とは、思考における手法のひとつで、対象から注目すべき要素を重点的に抜き出して他は捨て去る方法である。

出典: フリー百科事典『ウィキペディア(Wikipedia)』

このままだと分かりませんので、以下で具体例を用いて説明します。


唐突ですが問題です。

Question : 以下4つの要素を持ち合わせている物体は何でしょうか?
  • かっこいい模様が書いてある
  • 手に取れるくらいの高さがある
  • 時と場合によって触ると温かかったり冷たかったりするものが中に入っている
  • 今この瞬間、取っ手が筆者の方を向いているもの

コップ“です

「え?」「何言ってんの?」と思われるのも仕方がないと思われます。
なぜなら、その物体を取ってほしいと筆者が他者に頼む際に、

<span class="fz-20px">筆者</span>
筆者

そこに置いてある、取っ手が俺の方を向いていて、かっこいい模様が書いてあって、手に取れるくらいの高さがあって、時と場合によって触ると温かかったり冷たかったりするものが中に入っている物体をちょうだい〜

とかいう言葉を使った際には、拳が飛んでくることは必至だからです。
当然、

  • うわこいつ面倒くさ…
  • 何言ってんのこいつ…?

と思うでしょう。
このような言い方をやめて欲しいと思う背景には、筆者が考えていることと他者が考えていることの認識にズレが生じるからです。
※ “高さが8cmくらい”とか”かっこいい模様が書いてあって”とか主観的すぎるし、”取っ手が筆者の方を向いている”って、じゃあ取っ手が筆者の方を向いていないものはコイツが指しているものとは違うものなのかという話になる

このような理由から、我々人間は物事を説明するために”抽象化”という作業を常日頃から無意識的に行っています。(抽象化には必ず目的が付随する点に注意)
そうしないと、まともにコミュニケーションを取り合うことなどできません。

コップの例における”抽象化”という作業を図解して説明すると、以下図1のようになります。

図1:要素の排除と抜き出し

主観などの要素の排除と、注目すべき要素の抜き出しを辿っていく形で表すと上記のようになりますが、それに筆者の思考を入れると、以下図2のようになります。

図2:筆者の思考の追加

上記作業を無意識的に行うことによって、筆者は

<span class="fz-20px">筆者</span>
筆者

そこに置いてあるコップとって〜

というように、他者との認識にズレを生じさせずに、コップを取って欲しいという目的を達成することができるようになりました。
(”抽象化”を行うことによって他者との認識が合わせやすくなることから、まともなコミュニケーションを取り合うことができるようになった。)


ここまでの話で、”抽象化”という言葉の意味とその利点などをまとめました。
ここで一度、”モデル”とは何かを振り返ります。
モデルとは、対象とする現実をそのままの形ではなく、抽象化して表現したものです。

なるほど”抽象化”については分かった。これを応用すると、世間一般的に”モデル”と呼ばれるものについても、言われてみれば納得できる。
例えば写真の”モデル”さんは同性の人にとって魅力的であると考えられる主観的な要素を排除して表現したもの(以下図3)であり、プラ”モデル”は対象の見た目という要素だけを抜き出して、サイズという部分を捨て去る、いわば縮小させて表現したもの(以下図4)と言えるね。

図3:”モデル”さんへの抽象化(魅力的だと考えられる要素を抜き出した対象)
図4:プラ”モデル”への抽象化(実物を見た目を変えずにサイズという要素を排除した対象)

となると、科学的な文脈(数学を含む)で語られる”モデル”もそんな感じのものなの?

その理解でおおむね間違いではありません。
しかし、科学の文脈で語られる”モデル”は少々ニュアンスが異なります。
※数学や統計学、経済学に心理学、工学などほぼ全ての学問を含むものとしての科学

具体的に、科学における”モデル”とは、

抽象化した対象を操作すること

に重きを置いている点に違いがあります。

したがってここからは、科学とは何なのか、そしてそこで使われる”モデル”とは何なのかについて言及します。

余談1:抽象化を繰り返し続けて最終的に得たものを使用したとしても、100%他人との認識にズレを生じさせずに済むかと問われれば、それはNoである。これは、コップの例で言えばその”コップ”という物体に対して個人個人で認識しているものが微妙に違うからである。

余談2:どんな人に対しても認識を100%合わせることができるものといえば、それは”字”である。数字という概念は実体こそ存在しないものだが、どの国に行ったとしても、1というものを思い浮かべて違うものを想像する人はいないだろう。

科学とは?科学で使われる”モデル”とは?(実験の例を用いて)

“科学”という言葉の定義は、例えば”人間の探求”、”学問全般”、”体系的な知識”など、数多く存在します。しかし簡単に言ってしまえば、

図5:科学とは

上記図5において、青い液体にピンク色の液体を混ぜた結果、赤い液体が出来上がった。これに関して、”なぜ”そうなったのか?その”なぜ”を解明する行いそのものが科学であると捉えて構いません。(そのような行いをする動機としては、我々人間が今よりももっと便利で、もっと快適な暮らしをしたいという欲求が根本にあります)

目の前の現象が”なぜ”起こったのか、どういう仕組みで起こったのかを解明するためには、その現実世界の現象を人為的に、”実際”に起こして観察する方法が最も手っ取り早いでしょう。

それこそが、いわゆる”実験“と呼ばれる方法となっています。

ではここで、実験の例をいくつか挙げてみましょう。


実験1

液体Aに液体Bを混ぜるとなぜか色が赤くなった

実験内容:なぜ赤くなったのかを解明するべく、周りの環境(例えば実験室の温度、湿度など)を変えてみたり、AとBの量を調整しあったりするなど、いろいろ条件を変えた状況下で、現実世界で”実際に”何度も液体AとBを混ぜ合わせてみる


実験2

救急車が目の前を通り過ぎた時だけ、なぜかサイレン音が低くなった

実験内容:なぜ音が低くなったのかを解明するべく、異なる環境(外気温、降水量などの違い)で観察してみたり、救急車のスピードを変えてみたりするなど、いろいろ条件を変えた状況下で、現実世界で”実際に”何度も目の前で救急車を走らせてみる


実験3

A社とB社の株を500万円ずつ買ったら、なぜかA社株では利益が発生し、B社株では損失が発生した

実験内容:なぜA社株では利益が発生し、B社株では損失が発生したのかを解明するべく、市場環境や関連するニュース記事、決算情報などの様々な条件が変わっていく状況下で、現実世界で”実際に”何度もA社とB社の株を500万円ずつ買ってみる


実験4

とある部品を使った飛行機がなぜか墜落した

実験内容:なぜ墜落したのかを解明するべく、気温や降水量、大気の状態などの条件が変わっていく状況下で、現実世界で”実際に”飛行機を飛ばしてみる


お分かりいただけただろうか…?

実験1と実験2は、液体を混ぜたり救急車を走らせたりするだけなので、現実世界で”実際に”できるか否かで言えば「できる」と言えます。

しかし、実験3と実験4は、”実際に”できることだろうか…?
実験3は、A社とB社合わせて1000万円なんて量のお金を毎回使えるのかどうか?(コストに問題あり
実験4は、飛行機を飛ばすにはパイロットが必要で、もし部品を入れ替えて墜落なんてしたらどうするのか?(倫理的に問題あり

起こった現象の”なぜ”を解明したいが、実験3はコストがバカにならず、実験4は倫理的にヤバすぎる。現実世界のその現象を人為的に、”実際”に起こせそうにない…どうすれば?

そこで考えられたのが、
現実世界で起こった現象を模したものを使って、その模したものの上で実験を行うという方法(仮想的な世界で実験する)
です。

実験3の例で見てみましょう。
今、ここ1年のA社株の株価チャートが以下にあります。(図6)

図6:A社の1年間の株価チャート

このとき、上記図6の株価チャートをなぞって書いたものとして、以下図7があります。

図7:A社の1年間の株価チャートをなぞった線 (筆者手書き)

そしてさらに、上記図7を数式で表現したものとして、以下があります。

※数式は超適当に書いているので悪しからず
(ここでは“数式で表現している”という点にだけ着目してほしい)

ここまでの話で何が言いたいのかというと、元の現実世界における現象を表している図6は、図7を通して、最終的に数式として表現することが可能であるということです。

(関数に関する知識があることを前提にしますが、)すなわち以下のように考えると、

株価の値段に影響を与える要因である \( x_1, x_2, x_3, x_4 \) に様々な数値を入れてみることによって、実際にお金をかけずとも、

この時点で \( x \) にこういう数値を入れると、株価 \( y \) はこの数値になるな。だからここで買ってここで売れば利益が出る。そしてこの要因 \( x \) は特に株価に影響を与えるな…今後の参考にしよう。

上記のような形で”実験”、言い換えれば仮想的にシミュレーションを行うことができるようになります。(”なぜ”とある時点での株価がこの数値になったのか、”なぜ”A社株を買ったときに利益が発生し、B社株を買ったときに損失が発生したのか。xとyの関係を見れば分かる

ここで、上記数式こそ、科学の文脈における”モデル”です。
(以下図8参照)

図8:現実世界での実験とモデル上での実験

現実世界で”実際に”実験を行った際には莫大なコストや倫理的な問題が発生するものの、その現実世界で起きた現象を模したもの(モデル)を使って実験する際には、そのような問題は全く発生しません。言い換えれば、モデルの上で仮想的に現実世界の現象を操作することができるようになります
ちなみに、

図9:現実世界の現象の抽象化

現実世界の現象をモデルに変換する際には、”抽象化“が行われています。確かに、上記数式(モデル)は、大枠として株価の値動きの波という注目すべき要素を抜き出してはいるものの、少しの誤差は捨て去って(許容して)います。

ここまでの流れで、現実世界の現象を人為的に、”実際”に起こさずとも、モデルの上で”実験”を行うことができるようになりました。めでたしめでたし…

いやいや、なんでそれで現実の世界の現象を表せたって言えるの?それを本当に”実験”って言っちゃっていいの?
あと、そんなにも簡単だったらいくらでもできちゃうじゃん。なんか注意点とかあるんじゃないの?

はい。それに関しては以降の”モデルと関数”の章で説明します。
ですが少し込み入った話となるということと、科学の文脈における”モデル”の話をさらに深掘りしていくことから、そこまで踏み込まなくてもいいよ、という人はここまででも問題ありません。お疲れ様でした。

下記にまとめとして、結局のところモデルとは何で、日常会話の中で登場する”モデル”と科学の文脈における”モデル”の違いを記載しておきます。


モデル・まとめ(箇条書き)
  • モデルとは、対象とする現実をそのままの形ではなく、抽象化して表現したものであり、模写された対象とも言える
  • モデルを使うことによって、現実世界の現象をモデルの上で仮想的に起こすことができるようになる(コストの面や倫理的な問題で実際に行うことができなかった実験ができる)
  • 日常会話の中で登場する”モデル”と科学の文脈における”モデルの違い
    「あの人は写真のモデルさんで…」と言う時、
    日常的な話の文脈 → モデル = あの人
    科学的な話の文脈 → モデル = 写真

以降、科学的な文脈での”モデル”についてさらに発展した説明をします。そして、”関数”とは何なのかについても説明します。

モデルと関数

科学的な文脈での”モデル”の深掘り

モデルというものに関しての基礎的な部分は前章までで説明をしたので、本章では科学における”モデル”をより深掘りして考えます

科学の文脈における”モデル”とは、以下における”入力 (input) と出力 (output) を繋げる箱を合わせた全体“です。(図10)
※現実世界における現象をモデルで表現することに関して、”モデル化”という言葉を使っています

図10:現実世界の現象のモデル化

※今回は”噴火”という、実際に起こすことなんてほぼ不可能なものでかつ、起こしてしまったらとんでもない被害が出るようなものを例にとってます。こういうときこそモデルの出番

すなわち、噴火という現象そのもの(出力)と噴火に関係しそうな要素(入力)は、それ単体ではただの事柄に過ぎませんが、それらを繋ぐ謎の箱があって初めて、その箱を含めた入力と出力を繋ぎ合わせた”モデル”というものが完成します。

急に出てきたその箱は何者なんだ!何をしているんだ!

なんで”箱”なんてものを用意するの?単に入力と出力を矢印で
繋げばいいだけじゃない?

前者に対する答えとして、
この箱は、”入力に対して何らかの操作をする”ものです。(あえて”箱”で表現しているのは、その中身が明確に分からない場合があるから)

※”操作”の例は、最後の関数のところで挙げます

後者に対する答えとして、
なぜ用意するのかというと、入力に対して行うことができる操作は無数にあるということを示すためです。


図10の例で言えば、噴火という現象に関係しそうな要素(入力)に何らかの操作をする(箱の中身)ことによって、仮想的な世界の中で噴火を起こす(出力)ことができるようになります。

何を言っているのか分からないと思ったら、出力部分の”噴火をした”という現象を数字の1に、”噴火をしなかった”という現象を数字の0に置き換え、入力部分を噴火という現象に関係しそうな要素として \(x_1\) なり \(x2\)なりがあると考えてください。(図11)

図11:入力部分と出力部分の置き換え

上記図11のように考えることで、 \( x_1, x_2, x_3, x_4 \) に何らかの操作をすることによって、\(y = 0\)、もしくは \(y = 1\) が出力されます。

これこそが”実験”であり、モデルが現実世界の現象を模写したもの、それを操作するということに重きを置いていると言った根拠です。

いやいや、ただ\(x\)とか\(y\)とかに数字を入れて、\(x\)に適当な操作を施しただけでしょ。そんなの実験って言えるの?というより、そんなので本当に現実世界を模写したって言えるの?

はい、言えます。
その理由としては、
世界的な研究者がみんなで、そのモデルは現実世界を表すことができていると認めたから
です。
身も蓋もないとか、そういうものなんだから、というのはそれこそ学校で勉強が嫌いになった理由としてあるので、これについては以下で説明します。

“モデル”を用いる際、作る際の注意点

モデルとは、対象とする現実をそのままの形ではなく、抽象化して表現したものであるということで、そもそも“抽象化”という作業には必ず主観(人間の意識)が入ります。(前章のコップの例で見ても、そこには筆者の主観が入り込んでいたはず)

もっと言ってしまえば、“モデル”とは主観の塊で、これは必然的にそうならざるを得ないのです。

とはいえそんなことを言い始めたら、じゃあ全てのモデルは主観の産物で、それをもとにした科学とか研究とかも主観の塊なのか…?
ということになりかねないので、多くの人たちに認められた、より現実世界の現象を模写できていると考えられたモデルを客観的なモデル、すなわち”良いモデル”として認めようということになりました。(図12)

図12:主観的なモデルから客観的なモデルへ

つまり、現在世に出ているモデルはほぼ全て、数多くの研究者から認められて、その多数決で勝ち上がってきたものなのです。もっと言えば、

多くの人たちの主観の集まり = 客観

となっていることから、一個人の主観だけではない、客観的なものが生まれるのです。
一人ひとりの主観が多くの人たちに支持されることによって、客観になる

したがって”モデル”を用いる際、作る際の注意点としては、対象とするモデルが
本当に現実世界の現象を表すことができているのか
に注意を払う必要性があります。

独自に作られたモデルに対して注意を払うのはもちろんそうなのですが、よくある話として、

昔からある伝統的なモデルを改良しました!

といったものがあるのですが、その改良されたモデルが”本当に現実世界の現象を模倣できているものなのか“は要チェックが必要です。
言い方は悪いですが、モデルを使うだけだったら誰でもできます。使うにせよ改良するにせよ、自分が実験したい現象にマッチしているモデルなのかどうかの確認はすべきです。

ちなみに、データの分析を行うための手法やAIもモデルの1つであり、特にAIは、入力となるデータと出力となる予測や分類との間に存在する箱の中身が不明(ブラックボックス)であることが多いことから、注意が必要です。

関数もモデルの一種

“関数”については前章でも本章でも触れているので(xとかyとか数式とか)既に気づいた人はいるかもしれないのですが、関数の構造は図10、図11のモデル化の話と実質的に等しいです。

すなわち、“入力”があって、その間に箱があり、そしてその入力に”出力”が対応しているものが関数と言えます。(以下、日本大百科全書より引用)

二つの変数\(x\)、\(y\)があって、\(x\)の値が決まれば、それに伴って\(y\)の値がただ一つ決まるとき、\(y\)は\(x\)の関数であるという。

出典:日本大百科全書(ニッポニカ)「関数」の解説

“関数”というものは入力となる\(x\)と出力となるyの間の関係性を構築、確認するための概念であり、ただ数式をいじってグラフを描くことは本質ではありません
(数式いじりは、どうせ数式を使うならもっと簡単に書いた方が分かりやすいよね〜ということ、グラフ描きは、数式がどんな形をしているか実際に目で見て確認した方が分かりやすいよね〜という副次的な結果に過ぎません)

例を挙げるとすると、以下 \(y = 2x\) の関数 (図13) は…

図13:関数の例(モデル)

以下のモデル構造と等しいです。(図14)

図14 : モデル構造(y=2x)

すなわち、関数 \(y = 2x\) は箱の中に入ってきた入力\(x\)を2倍するという操作をして、その2倍した入力xを\(y\)として出力するモデルと等しいです。
このことから、関数もモデルの一種であり、構造としてはモデルと実質的に等しい存在となっています。(1つだけ逃げるのであれば、プログラミングにおける”関数”は上記モデルとしての構造で捉えられないものがあるので、それは抜かしていることをご理解ください…いつか書きます)

※追記1: \( y= f(x) \)

\( y = f(x) \) という関数の形は、以下の構造を表しています。

よって、\( y = f(x) \) の構造を見かけた時には、 () の中が入力、それを \( f \) という箱を通して、\( y \) とイコールになっている、と考えましょう。

※追記2: プログラミングの引数と戻り値

プログラミングの関数で使用する”引数”は、関数でいうところの入力値です。
同じく、プログラミングの関数で使用する”戻り値 (return)”は、関数でいうところの出力値です。


科学におけるモデル・まとめ(箇条書き)
  • 科学におけるモデルとは、現実世界を模写した対象でそれを操作することに重きが置かれている
  • 関数もモデルの一種
  • モデルを構築する際には”抽象化”という作業が必ず挟まれ、それは主観によって変化することから、基本的にモデルは主観の塊
  • 主観が大多数の研究者なりに認められ、客観となる
タイトルとURLをコピーしました