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

我一直都是用的官方的,编程这种我知道,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。
