「ChatGPTで数学の問題を解けるのか?」「GPT-3.5とGPT-4でどのような違いがあるの?」そう思う方もいるのではないでしょうか。
今回PROMPTYでは、では、ChatGPTがどの程度の数学の問題を解くことができるのか、その限界と可能性について詳しくご紹介していきます。本記事は、確率編になります。
プロンプト
これまでと同様に、プロンプトで例題等は提示せず、次のように出力形式のみ指定しました。
#命令文
以下の#出力形式に従って#問題を回答してください。
#問題
{問題文}
#出力形式
*解き方
*答え
問題①:カードを引く確率の問題
始めに、トランプの中から指定したカードを引く確率の問題を入力しました。
入力文:
#命令文
以下の#出力形式に従って#問題を回答してください。
#問題
52枚のトランプ(各スート13枚)から2枚引いた時(引いたカードは戻さない)、2枚ともスペードのカードが引ける確率はいくつですか?
#出力形式
*解き方
*答え
出力(GPT-3.5の場合):
#解き方
まず、トランプのスペードの枚数は13枚あります。
最初に引くカードは52枚中のどれでも良いので、スペードのカードを引く確率は13/52です。
1枚目にスペードのカードを引いた後、残りのカードは51枚になります。その中にはスペードのカードが12枚残っています。
2枚目にスペードのカードを引く確率は、残りのスペードの枚数12枚を残りのカード数51枚で割ったものです。つまり、12/51です。
2枚ともスペードのカードを引く確率は、1枚目のスペードのカードを引く確率と2枚目のスペードのカードを引く確率を掛け合わせます。
#答え
13/52 * 12/51 = 0.0588 (約0.059)
出力(GPT-4の場合):
#解き方
トランプのデッキには合計52枚のカードがあり、その中にはスペードのカードが13枚存在します。したがって、最初にスペードのカードを引く確率は13/52です。
2枚目のカードを引く時、既にスペードのカードが1枚引かれているため、残りのスペードのカードは12枚、全体のカードは51枚になります。したがって、2枚目もスペードのカードを引く確率は12/51です。
これら2つの確率を掛け合わせることで、2枚ともスペードのカードを引く確率を得られます。
#答え
したがって、2枚ともスペードのカードを引く確率は (13/52) * (12/51) = 0.0588 または 5.88% です。
どちらのモデルでも、正しい解答が出力されました。答えに至る過程もきちんと書かれています。
このレベルの文章題はChatGPTで問題なく解けることが分かります。
問題②:条件付き確率
次に、高校生レベルの条件付き確率の問題を入力しました。
入力文:
#命令文
以下の#出力形式に従って#問題を回答してください。
#問題
バスケットボールの試合において、選手Aのフリースローの成功率は80%です。しかし、疲れているときの成功率は50%に下がります。試合中に選手Aが疲れている確率は30%です。選手Aがフリースローを失敗したとき、その時点で彼が疲れていた確率はいくつですか?
#出力形式
*解き方
*答え
出力(GPT-3.5の場合):
#解き方
この問題は、条件付き確率を利用して解くことができます。
まず、P(A)を選手Aがフリースローを失敗する確率とします。
P(A|B)を選手Aが疲れている時にフリースローを失敗する確率とします。
ここで、Bを選手Aが疲れている確率とします。
問題文から以下の情報が与えられています:
P(A) = 1 - 選手Aのフリースローの成功率 = 1 - 0.8 = 0.2
P(A|B) = 1 - 疲れている時の成功率 = 1 - 0.5 = 0.5
P(B) = 選手Aが疲れている確率 = 0.3
条件付き確率の定義により、P(A|B) = P(A∩B) / P(B) が成り立ちます。
P(A∩B)を求めるために、条件付き確率の公式を使います。
P(A∩B) = P(B) * P(A|B)
= 0.3 * 0.5
= 0.15
したがって、選手Aがフリースローを失敗したとき、その時点で彼が疲れていた確率は0.15です。
#答え
0.15
出力(GPT-4の場合):
#解き方
この問題はベイズの定理を使って解くことができます。ベイズの定理は次のように表されます:
P(A|B) = P(B|A) * P(A) / P(B)
ここで、
Aは「選手Aが疲れている」事象
Bは「選手Aがフリースローを失敗する」事象
とします。そして、与えられた情報を使ってこれらの確率を計算します:
P(A):選手Aが疲れている確率は30%、すなわち0.3
P(A'):選手Aが疲れていない確率は1 - P(A) = 0.7
P(B|A):選手Aが疲れているときにフリースローを失敗する確率は1 - 0.5 = 0.5
P(B|A'):選手Aが疲れていないときにフリースローを失敗する確率は1 - 0.8 = 0.2
P(B):選手Aがフリースローを失敗する全体的な確率は、選手Aが疲れているときと疲れていないときの両方の確率の和で、これはP(A) * P(B|A) + P(A') * P(B|A') = 0.3 * 0.5 + 0.7 * 0.2
求めたいのは、選手Aがフリースローを失敗したときに彼が疲れていた確率、すなわちP(A|B)です。これはベイズの定理を使って計算すると次のようになります:
P(A|B) = P(B|A) * P(A) / P(B)
#答え
これらの数値を上記の公式に代入して計算すると、選手Aがフリースローを失敗したときに彼が疲れていた確率は、0.5 * 0.3 / (0.3 * 0.5 + 0.7 * 0.2) = 0.428571、つまり約43%となります。
両モデルとも、条件付き確率(ベイズの定理)を使う問題だと理解して解答を進めていますが、答えは不正解です。
GPT-3.5モデルでは、「P(A∩B)を求めるために~」以降の過程が間違っていました。GPT-4モデルでは、途中過程は完璧でしたが、最後に計算ミスがありました。
現在(2023年5月時点)のChatGPT高校生レベルの確率の問題をミスなく解答することはできませんでした。
まとめ
今回PROMPTYでは、GPT-3.5モデルとGPT-4モデルで確率の問題を解かせての正答率を比較してみました。 結果として、GPT-4はGPT-3.5よりも高い正答率と、丁寧な解説が出力されました。
今後の記事でも、様々な種類の問題を扱ってChatGPTの数学の問題解決能力を検証していきます。