『人工知能の哲学入門』関連情報

『人工知能の哲学入門』(勁草書房、2024年)の関連情報ページです。

2024年8月24日:一橋大学の小町守さんに、第8章の間違っている部分、不正確な部分についてくわしいコメントをいただきました。それをふまえて2刷では以下のような修正を行いましたので、こちらにもアップします。小町さん、どうもありがとうございました。

正誤表(2024年8月24日更新、2刷には反映済み)

p.104, 10行目:

誤:x=0.5のときの
正:x=0, f(x)=0.5のときの

p. 129 第1段落(段落全体を以下の通りに変更):

旧:bag-of-words モデルは、それぞれの語の出現確率が相互に独立であることを前提としている。しかし、これは実際には正しくない。”hit” という語は、”baseball” という語がない場合よりも、ある場合により高い確率で出現するだろう。このような事情を考慮した言語モデルが、n-グラム語モデルである。このモデルは、n 個の先行する語から、ある語の出現確率を推定するものである。このモデルに n 個の単語を与えると、その後に出現する確率がもっとも高い単語が示される。1語ずらして同じ作業を繰り返せば、そのつぎの単語も示される。この作業を繰り返すことで、はじめの n 個の語に続くもっとも自然な文を生成できる。たとえば、”Last night I ate” と入力すると、次に現れる確率が最も高い語として、”a” が現れる。つぎに、”night I ate a” と入力すると、”hamburger” が現れる。このような作業を繰り返すと、”Last night I ate a hamburger and French fries for dinner.” という文が生成される。n の値を大きくするとモデルが正確になり、生成される文はより自然になる。ただし、n-グラム語モデルは語順を考慮しないモデルである。たとえば、”a dog bites a boy” と “a boy bite a dog” のどちらをn-グラム語モデルに入力しても、これら5つの語に続く確率がもっとも高い語を選択することになる。このような例を考えれば、言語モデルは、語順の情報も利用できるのが望ましいだろう。

新:bag-of-words モデルは、それぞれの単語の出現確率が相互に独立であることを前提としている。しかし、これは実際には正しくない。”hit” という単語は、”baseball” という単語がない場合よりも、ある場合により高い確率で出現するだろう。このような事情を考慮した言語モデルが、単語n-グラム言語モデルである。このモデルは、n 個の先行する単語から、ある単語の出現確率を推定するものである。このモデルに n 個の単語を与えると、その後に出現する確率がもっとも高い単語が示される。1語ずらして同じ作業を繰り返せば、そのつぎの単語も示される。この作業を繰り返すことで、はじめの n 個の単語に続くもっとも自然な文を生成できる。たとえば、”Last night I ate” と入力すると、次に現れる確率が最も高い単語として、”a” が現れる。つぎに、”night I ate a” と入力すると、”hamburger” が現れる。このような作業を繰り返すと、”Last night I ate a hamburger and French fries for dinner.” という文が生成される。n の値を大きくして十分なデータで学習すると、モデルが正確になり、生成される文はより自然になる。しかし、ある言語の単語数が10万だとすれば、この言語における20単語からなる文は ${10^5}^{20} = 10^{100}$ 通りあることになるので、20-グラムモデルを作ることは現実には不可能である。このような理由から、実際には5-グラム程度のモデルを利用することが一般的だが、このようなモデルでは、離れた単語同士の関係を扱えないことが問題となる。

コメント:初版では段落最後の部分が bag-of-words モデルの話になってしまっていました… ここが大きな修正点で、そのほかは説明をより明確にするための修正です。

p. 130 注1:

注の最後に以下を追加:ベクトル演算が成り立つことが知られているのはこの手法である。

コメント:説明がしやすいので本文は CBOW の話になっていますが、ベクトル演算が成立するのが知られているのは SGNS の方だとのことです。素人が書くとこういうところでボロが出ますね…

p. 134 注3 7行目:

誤:long short term memory
正:long short-term memory

p. 138 2行目:

GPTをはじめとする
→BERTやGPTといった

コメント:小町さんに指摘していただいて、エンコーダモデルの話とデコーダモデルの話がきちんと区別されていないことに気づきました。以下はその点に関連する修正です。本文における以下の記述は、BERTに代表されるエンコーダモデルの説明になっています。これに対してGPTはデコーダモデルで、エンコーダモデルとは、ある語のアテンション計算をするときにそれより前の語だけを対象にするという構造上の違いや、GPT-3以降の真に大規模なモデルではファインチューニングをほぼ必要としないといった違いがあります。本当はそのあたりまできちんと説明すべきなのですが、今回は最小限の変更しかできないので、できる範囲の文言修正にとどまっています。また、BERTのようなエンコーダモデルを大規模言語モデルに含めてよいかは微妙なのだと思いますが、その点には目を瞑って読んでください。

p. 138 13行目:

大規模言語モデルは
→BERTのようなエンコーダモデルは

p. 138 18行目:

大規模言語モデルは
→エンコーダモデルは

p. 138 注6:

誤:入力された埋め込みベクトルを分割し、それぞれに自己アテンションを適用することによって埋め込みベクトルを再構成する(マルチヘッドアテンション)
正:入力された埋め込みベクトルに複数の自己アテンションを並行して適用する(マルチヘッドアテンション)

コメント:これは単純に間違った説明です。自分で読み返していて気づきました。

p. 139 図8-7のキャプション:

図8-7 大規模言語モデルの基本構造(点線の枠内が大規模言語モデルの本体)
→図8-7 エンコーダモデルの基本構造(点線の枠内がモデルの本体)