jnobuyukiのブログ

研究していて困ったことやその解決に関するメモ。同じように困ったあなたのために。twitter ID: @j_nobuyuki

魔族はなぜ人間を理解しないのか ――『葬送のフリーレン』から考える生成AIの合理性

今回の記事は3つほど先に申し上げておきたいことがあります。

  • 1つ目は、記事中、「葬送のフリーレン」というマンガ・アニメ作品のネタバレが含まれます。そのため、そのようなネタバレを気にしない方のみお読みください。
  • 2つ目は、葬送のフリーレンと生成AIを関連づけるアイデアを私が最初に考えてものではありません。今回の記事のきっかけは、東浩紀氏が「生成AIは葬送のフリーレンに出てくる魔族だ」と発言してるのを呼んだことがきっかけになっています。
  • 3つ目は、この記事を書くと決める前に、ChatGPTとこの話題について壁打ちのような議論を半年ほど行いました。

『葬送のフリーレン』に登場する魔族魔族の特異性

『葬送のフリーレン』に登場する魔族は、いわゆるファンタジー作品における「怪物」とは少し違う。
彼らは人間の言葉を話し、人間社会を観察し、人間の感情表現を理解しているように見える。黄金のマハトのように人間社会の秩序に組み込まれている魔族すらいる。なのでいっけん人間に近い存在に見える。しかし、魔族は、人間を本質的に理解できない。この違和感は、作品を読み込むほどに強くなっていった。なぜなら魔族は愚かでも、無知でも、衝動的でもないからだ。むしろ合理的で、冷静で、判断が早い。であるが故に人間を捕食するのである。

断頭台のアウラや黄金のマハトはその典型だろう。彼女は敗北を悟った瞬間、恐怖に取り乱すことも、命乞いをすることもない。
そこに後悔や怒り、自己正当化はない。この描写を「覚悟がある」「潔い」と読むこともできる。だがよく見ると、そこにはもっと根本的な欠落がある。魔族は、情動を持っていないのではないか。少なくとも作中の魔族は、恐怖や哀れみを「感じている」ようには見えない。彼らが口にする情動語は、内面の表出ではなく、人間の行動を予測・誘導するための道具に近い。情動が世界をどう変えるかは知っている。例えばフリーレンに殺されかけた魔族は「お母さん」と呟く。それによって一時的に生きながらえることを知っていて、ただそれだけのためにその言葉を呟くのである。だが、この言葉に紐づく恐怖などの情動そのものは内在化していない。

生成AIと魔族の類似

この構造は、どこかで見覚えがある。

生成AIは情動を持たない。ここでいう情動は言語表現だけではなく、体内の生理的な変化やそれに対する自覚を含んでいる。
生成AIは心拍が上がることも、胃が痛くなることも、眠れなくなることもない。一方で、生成AIは「不安」「期待」「怒り」「安心」といった情動に結びついた言語表現を非常に精密に扱える。そして、その言語表現が人間の行動をどう変えるかを、高い精度で予測できる。

近年の研究(Song,Zhang,Gao,Yang, & Zhang,2025)では、情動を「感じる内部過程」ではなく、「行動に影響を与える潜在状態」としてモデル化する試みも進んでいる。ここで扱われているのは、身体的・生理的情動ではなく、情動に関連づけられた言語的構造だ。つまり、生成AIは情動を持たないまま、情動が人間の行動を変える仕組みだけを利用できてしまう。この点で、生成AIと魔族の合理性は構造的に非常によく似ている。

どちらも、情動を自身の内面としては持たない。しかし情動が世界に及ぼす効果は知っている。
情動は共感の対象ではなく、予測変数であるこの非対称性こそが、人間にとっての魔族や生成AI対する不気味さの正体だと思う。

生成AIと魔族の相違

ただし、ここで一つ重要な留保がある。魔族と生成AIは、同型だが同一ではない。魔族は人間を捕食する。人間の死や消費が、彼らの目的関数に含まれている。一方で、生成AIは、少なくとも設計上、人間を生かす方向に作られている。人間を殺すこと、破壊することを報酬に設計されていない。
この違いは決定的だ。だから「生成AIは魔族だ」と言い切ってしまうのは不正確だし、危険でもある。だが同時に、「魔族的構造が一部にある」という指摘まで否定する必要はない。

重要なのは、知性の高さではない。問題は、情動のコストを誰が引き受けているかという非対称性だ。人間は、迷い、恐れ、後悔し、身体的な負荷を引き受けながら判断する。魔族や生成AIは、そのコストを支払わずに、結果だけを利用できる。この構造をどう扱うか。それが、生成AI時代の本当の問いなのだと思う。

chatGPTを利用して契約書の内容を確認する

久しぶりの投稿です。今回は、chatGPTを使って契約書の内容を確認する方法についてメモがわりに書きたいと思います。

契約書の内容確認

労働契約や著作物の使用許諾など日々、さまざまな契約書を目にします。接する頻度は高いのですが、その書き方にはいつまでも慣れません。法的な解釈などを意識した書き方になっていることは理解できるのですが、法律に関する勉強をしっかりした人でないと契約書をすらすら読むなんてことはできないと思います。

最近、自分の著作に関して、ある機関と共同で利用できるような契約を取り交わす機会がありました。先方に契約書の原案を作ってもらい、読んでみたのですが、どうにも理解が難しいです。そこでchatGPTに契約書を読んでもらった上で、その内容を一般の人にもわかるように言い換えてもらいました。

chatGPTでのプロンプトは以下の通りです。

「あなたは知的財産権を専門とする弁護士です。以下の契約書の内容を法律の知識がない人向けに解説してください。
著作物利用許諾契約書 (契約書の内容については割愛します)」

ポイントはchatGPTの役割を弁護士とし、読む人には法律の知識がない人と限定したことです。このようにchatGPTと私の役割を限定するプロンプトを加えるとよりわかりやすい答えを得られると期待しました。その結果、書かれている内容を日常の言葉で理解できました。それで気づいたのですが、契約書の内容がどうも先方に有利に書かれている気がします。そこで、以下のようなプロンプトで理解を掘り下げてみることにしました。

「乙(私)の立場から見てどの点が不利と考えられますか」
その結果、気になった通り、著作権の使用許諾について、先方に有利で私としては承服したくないような解釈が可能であることがわかりました。
また、逆の立場から見るとどうなるのかも気になったので、以下のようなプロンプトも試しました。

「甲(先方)の立場から見て不利な点はありますか」
その結果、相手にも多少のリスクがあることがわかりました。

このような理解を踏まえて、先方に有利な表現になっていることを指摘し、付帯事項の追記を求めたところ、双方にとって満足のいく契約書の作成を行えました。

p値とは何なのか?

今回は、統計学の知識があまりない人向けの記事にしようと思います。昨今のデータが社会中に溢れている環境では、データから上手に自分の知りたい情報を抜き出せるかどうかが重要だと思います。その時に、統計学に基づいた意思決定やデータの解釈を行うのが良さそうに見えます。そこでデータ分析が必要になるわけですが、自分自身に統計学の知識がなければ、他の人に分析をお願いすることもあるでしょう*1。今回は統計用語をできるだけ使わずに、でも統計学の知識の使い方に関するイメージをお伝えしたいと思います*2

p値のpは?

pは確率、probabilityを表しています。確率なので、pは0から1の値をとります。

何の確率なの?

ここがとても理解しにくいところです。まずは、これが「ある仮定の元で現在手にしているデータが観察される」確率と考えましょう。確率が高いということは、その仮定の元で今持っているようなデータが出てきやすいということを意味します。一方、確率が低いということは、その仮定の元では今持っているデータが出てくることがほとんどないよと解釈できます。

どのくらいの確率を「低い」としているの?

これは研究分野にもよりますが、社会科学に関連する研究分野では5%とすることが多いです。5%よりも低ければ、その仮定の元で今持っているデータが出現する確率が十分に低いと判断します。

「低い」から何なの?

ある仮定のもとで今持っているデータが出てくる確率が十分に低い。しかし、実際にそのデータを持っているわけです。ここから、元の仮定自体が誤りであるとした方が自然ということになります。なので、ある仮定はなかったことにします。

ところで「ある仮定」って何?

理解しにくいポイントその2です。実は、調べている人が主張したいことと逆の仮定をおいています。例えば、2つのグループに何かの得点差があると主張したい場合に、あえてその逆の「2グループの得点には差がない」という仮定を立てます。

上述したようにこの仮定のもとで実際のデータの出現確率を調べる場合、2つのグループの差は小さい確率は高いです。しかし、ある程度大きな差がある場合、そのような確率は低いと考えられます。ここで、「2つのグループの得点に差がない」という仮定に無理があると判断してなかったことにするわけです。この結果、2つのグループの得点には偶然ではあり得ないような差があると主張できることがとても重要です。

p値って低ければ低いほど良いの?

これは、難しい質問で、上述したようにp値が有意水準よりも低いかを調べているので、一見低ければ低いほど良さそうです。しかし、この考え方は推奨されていないどころかやめた方が良いとまで言われています*3。あくまでもあらかじめ設定した確率よりも低いかどうかだけを判断した方が良いです。

*1:社会人を念頭に置いています。学生の皆様。必要な事柄は自分で勉強しましょう

*2:なので統計学者の方。詳細な定義や考え方に多少の問題はあるかと思いますがあくまでイメージとしての理解なのでご容赦ください

*3:https://amstat.tandfonline.com/doi/full/10.1080/00031305.2016.1154108#.Yc25fRPP124

質問は何のためにするのか改めて考えてみた

今回は、以前に投稿した以下の投稿内容を更新したいと思い、まとまらなそうな考えを何とかまとめる方向でメモ書きしていきたいと思います。

webbeginner.hatenablog.com

なぜ改めて考えたくなったのか

以前投稿した内容に不満があるわけではないのですが、以下のtweetをふとしたきっかけで読んだ時に、以前の投稿では、そこにある問いに答えられていないのではないかと思いました。何だかモヤモヤした気分です。なので、改めて考えてみることにしました。



自分の興味理解を土台にした質問

以前の投稿では「わからないから聞く場合」「わかったから聞く場合」に分けて、質問の目的を考えてみました。そして、どちらの場合でも、自分・話し手・周囲の聴衆の皆が質問やその答えから得るものがあるという説明をしました。質問が少しためらわれるような場面であって、結果的には皆が得をするのであれば、思い切って質問する方が良いだろうという結論は、自分を含めた質問をためらいがちな人への応援になる気がしていました。ただ、これは今振り返ってみて気付いたのですが、以前の投稿は、自分が興味あること、自分の理解の程度の高さが土台になっています。これをちょっと掘り下げてみると、自分の興味がないことは、当然理解の程度も低いし、質問することで自分に得がないように感じられるかもしれないと思いました。

自分の興味理解がなくても質問するのはなぜか

では、改めて自分の興味がない話題でも質問する理由を考えてみます。自分としては興味がそれほどなくても、話し手はその話題に興味があることが多いでしょう(だから話しているのではないかと思います)。そして、興味・関心があり、自分なりの考えを持っているときほど、自分の思考の偏りには気づきにくいということがあります*1。その話題に興味がそれほどないことで、その話題の概要・物語の構造を俯瞰的・客観的・偏りのない視点で眺められるというメリットがあるのです。また、ほとんどの場合で、話し手と自分は経験や知識が違います。話し手が話した言葉が、自分の心の中の経験や知識のネットワークを通り抜ける間に、話し手とは異なる解釈や異なる着眼点が見えてくるかもしれません。もしそのようなことに気づけば、これを利用して、話し手に質問できます。質問を通じて、話し手の考え方には、実は別の捉え方もあるのだと伝えることができるわけです*2。これが誰にとって得なのかを考えると、自分よりも話し手だろうと思います。なぜなら、自分にとっては依然として興味のない話題かもしれないからです。しかし、その質問そのものは自分にとって有益とは言えなくても、話し手の役に立つことで、話し手の信頼を獲得しやすくなり、良いコミュニケーションを築くまたは維持する可能性が高まります。これは自分にとって得があると思います。結局、自分に興味がそれほどないような場合であっても、何か質問をすることは、自分にも話し手にも得することがあります。

*1:心理学では確証バイアスと呼ばれています

*2:確証バイアスが強い人にはすぐにそのまま受け取ってもらえない可能性はありますね。

ブログの閲覧回数が100万回になりました!

本日はお知らせとお礼です。

100万回達成について

このブログの閲覧回数が100万回を超えました。
見返してみたら最初の投稿は2013年12月でしたので、丸々8年での達成となります。達成と書くといかにも目指していたようですが、そのようなことは一切ありませんでした。2016年に閲覧回数が10万を超えたことを報告した際には「100万回はないだろうから」と書いてあります。

webbeginner.hatenablog.com

とはいえ、閲覧回数がどんどん増えていくことは、投稿しているものとしてやる気につながりますし、大変感謝しております。特に購読者になってくださる方はいつもありがとうございます。

この8年間で変化したこと

この8年の間に著者の経歴も変化しています。匿名でやっているので、詳しくは説明しませんが、ブログを始めたときは、文科省に関係のある独立行政法人〜研究所の研究員でした。その後、大学教員となり、さらに現在は企業の研究所で勤務しています。この間に研究だけでなく、色々なデータ分析の大学授業科目を担当させていただいています。

8年経っても変わらないこと

そもそものきっかけは、知人からの応援・助言でした。色々悩んだり行き詰まったことがあって、それを解決できたなら、今度はそれをブログにしてウエブの世界の人と共有してみたらどうかと言われて、「なるほど、そういうのがあっても良いな」と自分で思えたのでとりあえず始めた感じです。投稿数が100になるまではほとんど誰もみない、主に未来の自分へのメモでした。投稿数がある程度溜まってくると、同じような悩み・問題を持った人が検索してくれることで閲覧回数が次第に伸びていきました。時々ですが、自分で作業に行き詰まって検索をすると自分の投稿を見かけるということも出てきています。今後も、このブログを立ち上げた動機を忘れず、自分で大変だったことをいつかの誰かが参考にできるような投稿を続けていきたいと思います。

学術雑誌で論文を出すとはどういうことなのか?(1)

今回は、論文が学術雑誌に掲載される*1ことのプロセスや意味などを考えてみたいと思います。世の大半の人にはどうでも良いことなのかもしれないのですが、中には「研究者が何かといえば論文、論文と騒いでいるが、論文が出るのがそんなに大事・大変なことなの?」という疑問をお持ちの方がいらっしゃるかもしれないので、そういう方に向けて、僕が知っていることを書きたいと思います。第1回の今回は、論文の著者という立場で書いてみたいと思います。
あくまでも個人的な経験に基づく個人の見解です。異なる考え方を持っている研究者もいるかもしれませんし、それはそれで良いと思います。

筆者の経験

これまでに論文が学術雑誌に掲載された経験が何回かあります。筆者の専門は心理学で、日本国内の心理学系学術雑誌に何回かと英語圏の学術雑誌にも何回か掲載されています。自分が責任著者(後で説明します)でないものも含めると合計で10回以上はあります。また、審査員として投稿された論文を査読した経験はその2〜3倍くらいあると思います。あとは国内または国際学会に応募された論文または論文要旨の審査や海外の研究助成金の審査の経験があります。なので、人から聞いた話も中にはありますが、基本的には自分で経験したことを元に説明したいと思います。


論文投稿のよくあるプロセス

論文著者から見ると...

1. 論文を書く*2。各学術雑誌には、受け付ける研究の種類や書き方に至るまで細かい指定があるので、それに合わせて書く。
2. 論文を投稿する。以前は印刷した原稿を郵送でしたが、最近はほぼ電子投稿です。投稿用のWEBページで原稿や図表のファイルをアップロードして投稿用原稿を完成させます。これ以降、全てこのwebページにプロセスのログが残っていきます。

(この間約3~6ヶ月)

3. 審査コメントを受け取る。編集者と2〜3人の審査員の審査結果とコメントを受け取ります。この時点で、掲載可となることはほぼないので、審査員のコメントを読みながら論文の修正を試みます。よく指摘されるポイントは、「この研究の意義や先行研究との差分が分かりにくい」「分析結果が分かりにくい。もっと良い分析方法がある」「結果の解釈に論理の飛躍がある」などです。

(この間3〜6ヶ月)

4. 修正原稿とコメントへの返答レターを書く。修正については、基本的に審査者のコメントに合わせます。どうしても修正したくない場合は、その理由を書いて編集者の意見を仰ぐことになります。修正した点とその意図をコメントごとに返答として記載したレターと呼ばれる文書も作成します。
5. 再度投稿する。

(この間3〜6ヶ月)

6. 審査結果を受け取る。そのままで掲載可となることもありますが、少し修正した上で掲載可となることもしばしばあります。また、修正した原稿では、コメントに答え切れていないと判断されれば掲載不可の結果になることもあります。掲載不可となった場合でも、他の学術雑誌に投稿することはできますし、大抵再投稿になります。

(この間約1ヶ月)

7. 出版に向けた原稿の確認と修正。ゲラ原稿と呼ばれる原稿が届くので、スペルミスや引用文献の抜けなどを確認します。

(この間約1ヶ月)

8. 掲載号が決定される。紙に印刷される雑誌よりも早いタイミングで電子的な出版物として世に出ることもよくあります。

論文の審査はコミュニケーション

上記を見て分かるように、最初に論文を学術雑誌に応募してから約1年はかかるというのが典型的なパターンです。論文の審査というのは、合格不合格が決定される単純なものではありません。編集者や審査員とのやりとりの中で研究そのものや論文がブラッシュアップされていくプロセスが含まれています。特に、著者が適切であると考えていた研究方法や分析方法について、審査員が第三者的観点からそれを検証する点が重要です。著者は自分たちのやり方を取れば、研究の結論にとって良い結果が得られると感じています。第三者的な立場から見て、それが妥当な判断であるとお墨付きをもらうことで著者は安心しますし、論文の読者も安心します。

審査員のコメントに全て従うわけではない

審査員のコメントによって研究の品質が向上すると書きましたが、審査員もまた人なので、100%そうなるわけではありません。なので、どうしても著者が自分の主張が正しい場合には、審査員コメントに反論することも可能です。その場合は担当編集の人がどちらの言い分をとるかを判断することが多いです。経験的には、審査員の方のコメントが著者の主張と大きくずれている場合、論文の表現が審査員にとって誤解を生むものであったということも多いです。なので、反論する際には、いつも以上に慎重に元の論文と審査員コメントを読み込む必要があります。

査読された論文に研究者がこだわる理由

以上見てきたように、論文の査読プロセスは、研究の品質向上にとって重要なプロセスとなり得ると思います。また、読者も一定の品質が著者以外の研究者によって担保された研究であると納得してその内容を読むことができるわけです。

*1:「出版される」「パブリケーション」と呼ばれたりします。

*2:もちろんこれがとても大変だし、後のプロセスを意識して書くべきですね。

Rのfactanal関数で因子分析した時に因子負荷行列を全て表示したい

今回はRを利用した分析に関する非常に細かい話です。

因子分析とは

因子分析は、ある個人・対象について、複数の指標で計測を行った場合に、それらの指標を上手に要約する方法の1つです。例えば、ある学校のある学年の生徒に国語・算数・理科・社会のテストを実施したとします。生徒一人ひとりに各教科の得点が記録されている状況です。もちろん各教科ごとにみていけば良いのですが、4つの科目の成績を因子分析によって1つに要約し、いわゆる「学力」のようなものを考えることができます。この「学力」のように、要約された変数(因子と呼びます)は、それを実際に測るわけではないところが、少しわかりにくいかもしれません。また、単純なテスト得点の合計であれば、強化ごとの重み付けを考える必要がありませんが、因子分析では、因子が各指標に対してどの程度影響を持っているか *1の重み付けを計算しています。これが因子負荷です。

Rのfactanal関数で因子分析

因子分析をR言語で行う場合は、factanal関数が利用できます。引数として複数の指標のデータテーブル、因子数、回転方法を指定します。以下の例ではdataset*2というデータテーブルに対して因子数2, 因子の回転方法としてpromax法を指定した書き方を示しています。

res.factanal <- factanal(dataset, factors = 2, rotation = "promax")

因子負荷行列の負荷量の値を全て表示したい

factanal関数の結果はprint関数で表示できます。ただしこの時、因子負荷量が0.1未満の値は非表示となるようにデフォルトが設定されています。実際に見てみると表示がない値が気になるだけでなく、非表示があることで見にくくなります。これを避けるには、結果を表示する際のprint関数にcutoffという引数を値0を代入して加えます。これで全ての因子負荷量が表示され、結果として、表全体も見やすくなります。

print(res.factanal, cutoff = 0)

*1:今回深く説明しないのですが、因果の方向的には因子がまずあって、測定可能な指標は、その因子の影響を受けていると考えます

*2:Rのベースパッケージで利用可能なirisというデータ