欢迎光临散文网 会员登陆 & 注册

反超GPT4,谷歌这次终于证明自己了

2023-06-11 00:09 作者:冰华君  | 我要投稿

我一直都是用的官方的,编程这种我知道,OpenAI的的其他的产品例如Copilot我也一直在用,但是我觉得,现在这玩意完全就没这些媒体吹的这么厉害,编程也确实用起来非常舒服,但是其创造力和逻辑能力尤其是数学能力完全不行,我曾经试过用免费版本的ChatGPT帮我线性回归拟合一组数据,但是发现它实际上无法给出足够靠近目标曲线的参数结果,现在我又试了一遍,结果如下:


结论1:

GPT-3.5: 拟合误差非常大,虽然给出的步骤没有问题,就如同编程一样,GPT理解过程之间的逻辑,但是处理不了数字问题,实际应该是F(x) = 1.1992945829038089*x+7.987905136788946,

结论2:最后面是GPT-4的测试结果,它直接不给出数字计算结果(听说这玩意被降智了),但是给出了计算方法,可见还是只能理解过程,或者应该说是语言逻辑,不理解数学这种更高级的逻辑,

结论3:听说GPT-4通过使用Wolfram插件能够正确的解决数学问题,猜测这其实就是在后面增加了一个过程,让GPT4输出相应的代码,因为这个GPT基本上能够正确回答,然后后台执行得到结果,这样就解决了GPT无法理解数字运算的问题,结果如下,确实使用Wolfram插件能够正确的解决数学问题,但是我任然不认为GPT本身具有数学能力。



这是四个样本点,以“(x,y)”的格式给出,现在需要你帮我进行一元线性回归,回归结果以y=ax+b来表示,你需要给出参数a,b。参数如下:

(-5.6476839854798,1.20737359403)

(-3.4701063571221,3.8372323412588)

(-2.3069121002554,5.214870232073)

(-6.6627171861646,0)

ChatGPT

要进行一元线性回归,我们可以使用最小二乘法来找到最佳拟合直线的参数。最小二乘法的目标是使得观测值与拟合值之间的残差平方和最小化。


一元线性回归的模型可以表示为:y = ax + b,其中 a 是斜率,b 是截距。


首先,我们需要计算样本点的平均值:


makefile

Copy code

x_mean = (-5.6476839854798 - 3.4701063571221 - 2.3069121002554 - 6.6627171861646) / 4

    = -4.5218541575055


y_mean = (1.20737359403 + 3.8372323412588 + 5.214870232073 + 0) / 4

    = 2.31461804184045

然后,我们计算回归系数 a 和 b 的估计值:


scss

Copy code

a = Σ((x_i - x_mean) * (y_i - y_mean)) / Σ((x_i - x_mean)^2)

 = [(-5.6476839854798 - (-4.5218541575055)) * (1.20737359403 - 2.31461804184045) +   (-3.4701063571221 - (-4.5218541575055)) * (3.8372323412588 - 2.31461804184045) +   (-2.3069121002554 - (-4.5218541575055)) * (5.214870232073 - 2.31461804184045) +   (-6.6627171861646 - (-4.5218541575055)) * (0 - 2.31461804184045)]

  / [(-5.6476839854798 - (-4.5218541575055))^2 +    (-3.4701063571221 - (-4.5218541575055))^2 +    (-2.3069121002554 - (-4.5218541575055))^2 +    (-6.6627171861646 - (-4.5218541575055))^2]

 = 0.650106407844996


b = y_mean - a * x_mean

 = 2.31461804184045 - 0.650106407844996 * (-4.5218541575055)

 = 5.1365030283098

因此,通过一元线性回归,得到拟合直线的参数为:

a ≈ 0.6501

b ≈ 5.1365



【GPT-4】:

你提供的这四个样本点,我将使用一元线性回归(简单线性回归)的方法来进行处理,计算结果以y = ax + b的形式给出。其中,a为斜率,b为截距。


对于简单线性回归的参数,有以下计算公式:

a = (N Σ(xy) - Σx Σy) / (N Σ(x^2) - (Σx)^2)

b = (Σy - a Σx) / N


其中,

Σ 表示求和;

N 为样本点数量;

x 和 y 分别是每个样本点的 x 和 y 值。


现在,我们来计算这些参数:


首先,计算和和平方和。


Σx = (-5.6476839854798) + (-3.4701063571221) + (-2.3069121002554) + (-6.6627171861646) = -18.0874196290219

Σy = 1.20737359403 + 3.8372323412588 + 5.214870232073 + 0 = 10.2594761673618

Σx^2 = (-5.6476839854798)^2 + (-3.4701063571221)^2 + (-2.3069121002554)^2 + (-6.6627171861646)^2 = 84.4493647248127

Σxy = (-5.64768398547981.20737359403) + (-3.47010635712213.8372323412588) + (-2.30691210025545.214870232073) + (-6.66271718616460) = -34.5969672191463

样本点的数量 N = 4。


然后,根据公式来计算斜率 a 和截距 b:


a = (N Σ(xy) - Σx Σy) / (N Σ(x^2) - (Σx)^2) = (4*-34.5969672191463 - (-18.0874196290219)10.2594761673618) / (484.4493647248127 - (-18.0874196290219)^2)

b = (Σy - a Σx) / N = (10.2594761673618 - a*(-18.0874196290219)) / 4

在这里,我无法直接进行数值计算,因为我是一个文本生成模型,我不能进行数值运算。你可以参照这些步骤在计算器上或者编程语言中进行数值计算,以得出具体的 a 和 b 的值。


User

我要求你计算出一个结果


ChatGPT

对不起,我在上一条回复中可能没有表述清楚。我作为一个AI文本生成模型并不具备直接进行数值计算的能力,因此无法直接给出计算结果。但是我可以指导你使用某种语言或工具进行计算。例如,如果你使用Python,你可以使用以下代码计算出a和b的值:


python

Copy code

import numpy as np


# 输入样本点

x = np.array([-5.6476839854798, -3.4701063571221, -2.3069121002554, -6.6627171861646])

y = np.array([1.20737359403, 3.8372323412588, 5.214870232073, 0])


# 计算样本点数量

N = len(x)


# 计算和和乘积

sum_x = np.sum(x)

sum_y = np.sum(y)

sum_x_sq = np.sum(x**2)

sum_xy = np.sum(x*y)


# 计算斜率a和截距b

a = (N*sum_xy - sum_x*sum_y) / (N*sum_x_sq - sum_x**2)

b = (sum_y - a*sum_x) / N


# 输出结果

print(f'a: {a}, b: {b}')

只需要把这段代码复制到Python环境运行即可得到结果。如果你不方便使用Python,你也可以使用Excel或者其他统计软件进行类似的计算。


Used Wolfram

一元线性回归的结果为:

=

1.199

+

7.988

y=1.199x+7.988。其中,斜率 

=

1.199

a=1.199,截距 

=

7.988

b=7.988。



反超GPT4,谷歌这次终于证明自己了的评论 (共 条)

分享到微博请遵守国家法律