CHAPTER 17 / 37
用Python实现神经网络,以及AGI是否真的可能?
用Python写神经网络并不复杂,而真正复杂的,从来都是智能本身。
在前面的几篇文章里,我们已经逐渐理解了神经网络的三个关键问题:神经网络的结构是什么?神经网络是如何计算预测结果的?以及如何使用TensorFlow这样的框架构建模型?
但如果我们把这些框架拿走,会发生什么?如果只剩下Python和数学公式,我们还能不能自己写出一个神经网络?答案是可以,而且并没有想象中复杂。
这一篇,我们会做两件事:
-
用Python实现一个简单神经网络
-
讨论一个更宏大的问题:神经网络是否可能走向AGI(通用人工智能)?
如果不用TensorFlow,神经网络到底是什么?
先回忆一下神经网络的基本结构,本质上只是:
输入 → 第一层 → 第二层 → 输出每一层都在做同一件事:
加权求和
加上偏置
通过激活函数换句话说:神经网络其实只是大量重复的数学计算。
第一层神经网络的计算
假设你在做一个内容平台,希望预测:一篇文章是否会被大量转发?
输入特征可能是:
阅读时长
点赞数
评论数假设输入向量: x = [200秒阅读, 80点赞, 12评论]。
第一层有3个神经元。
每个神经元都会计算:
z = w · x + b
a = sigmoid(z)代码可以写成:
import numpy as np
def sigmoid(z):
return 1/(1+np.exp(-z))第一层的计算:
z1 = np.dot(w1, x) + b1
a1 = sigmoid(z1)输出可能是:
a1 = [0.3, 0.7, 0.4]这些数就是第一层神经元的“激活值”。
第二层神经网络
第二层只需要重复同样的计算。
z2 = np.dot(w2, a1) + b2
a2 = sigmoid(z2)最终输出:
a2 = 0.82代表文章有82%概率会被分享。
把这一切封装成函数
如果我们把一层神经网络封装成函数:
def dense_layer(a_in, W, b):
units = W.shape[1]
a_out = np.zeros(units)
for j in range(units):
w = W[:,j]
z = np.dot(w, a_in) + b[j]
a_out[j] = sigmoid(z)
return a_out这个函数做的事情只有一句话:根据输入计算一层神经元的输出。
现在我们只需要把多层组合起来:
def neural_network(x, W1, b1, W2, b2):
a1 = dense_layer(x, W1, b1)
a2 = dense_layer(a1, W2, b2)
return a2这其实就是: x → layer1 → layer2 → output
如果你仔细看会发现:TensorFlow 其实就是在自动帮你做这些事情。
为什么理解底层实现很重要?
很多人学习机器学习时会直接使用框架,比如:
model.fit()
model.predict()这当然没问题,但理解底层原理有一个重要价值:当模型出现问题时,你知道问题在哪里。
比如模型为什么不收敛?为什么预测全部一样?为什么训练很慢?如果只会调用 API,几乎无法定位问题。这也是为什么很多机器学习课程都会让你至少自己实现一次神经网络。
从神经网络到AGI的问题
理解神经网络之后,一个问题自然会出现:如果我们能模拟越来越多的神经元,是否就能复制人类智能?
这也是AGI(Artificial General Intelligence)的核心问题。
很多人把AI的进步误认为AGI的进步,其实两者完全不同。
ANI(Artificial Narrow Intelligence)专门解决单一任务:
推荐系统
图像识别
语音识别
自动驾驶今天几乎所有AI都属于ANI。
AGI(Artificial General Intelligence)目标是:能完成任何人类能完成的认知任务。
例如:
学习新知识
进行复杂推理
适应未知环境这是完全不同的层级。
为什么AGI仍然非常遥远?
很多人以为,更多神经元意味着更接近人类大脑。但现实是,神经网络和真实大脑差距巨大。
原因有两个。
1、神经元模型极其简化
-
人工神经元:加权求和 → 激活函数
-
真实神经元涉及: 化学信号、电信号、时间动态、网络反馈
复杂程度完全不同。
2、我们并不了解大脑
直到今天,科学家仍然不清楚,大脑如何形成抽象概念、如何进行推理以及如何产生意识。
换句话说,我们还不知道要复制什么。
一个有趣的科学发现
神经科学中有一个非常有趣的现象:大脑的可塑性(plasticity)。
实验发现,同一块脑组织,在不同输入下可以学会完全不同的任务。例如原本处理声音的区域,在接收视觉信号后可以学会“看”。
这意味着大脑可能依赖一种通用学习算法。
如果这个假设成立,那么理论上AGI也许只需要找到一种“通用学习机制”。
但目前我们还不知道它是什么。
尽管AGI仍然遥远,但它仍然是AI研究最迷人的目标之一。
因为如果实现,它将改变几乎所有行业,甚至将改变人类文明。但在真正实现AGI之前,机器学习仍然有巨大的应用空间。
即使只是ANI,医疗、自动驾驶、科学研究、工业生产等都正在被改变。
当你真正用Python从零实现过一次神经网络之后,会发现一件很有意思的事情:那些看起来神秘而强大的AI系统,本质上只是由一层层非常简单的数学计算组成。
真正困难的,从来不是写代码,而是理解世界本身。而AGI的问题,本质上也是如此——在我们真正理解“智能是什么”之前,机器是否能复制它,仍然是一个开放问题。
也许未来的某一天,会有人找到那把钥匙。
附录:本文涉及的专有名词中英文对照(标红为最核心)