- 从神经元到神经网络
生物灵感:大脑有约860亿个神经元,每个接收信号、处理、然后传递给下一个。
人工神经元:数学函数 y = f(w1x1 + w2x2 + ... + b)
🧠 单个神经元就像一个小决策器:
输入:x1, x2(比如温度、湿度)
权重:w1, w2(重要性)
偏置:b(基础阈值)
激活函数:f(决定是否"兴奋")
-
最简单的神经网络:感知机
只能处理线性可分问题(如AND、OR)。
要解决异或(XOR)问题,需要多层网络。
-
多层神经网络(MLP)
输入层:接收原始数据(图片像素、房价特征)
隐藏层:提取抽象特征(可以有很多层→"深度"学习)
输出层:给出最终结果(分类概率、回归值)
📐 前向传播:数据从左到右流过网络,计算出预测值。
- 神经网络怎么学?------反向传播
前向:计算预测值
损失:比较预测与真实值(如交叉熵损失)
反向:从输出层往输入层,计算每个权重的梯度(用链式法则)
更新:梯度下降法调整权重
重复多轮(epoch)
🧮 直观理解:
误差像涟漪一样从输出层向后传播,告诉每一层的神经元"你该为错误承担多少责任",然后它们修正自己的权重。
- 用Keras搭一个3层神经网络(10行代码)
python
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
model = Sequential([
Dense(64, activation='relu', input_shape=(20,)), # 隐藏层1
Dense(64, activation='relu'), # 隐藏层2
Dense(1, activation='sigmoid') # 输出层(二分类)
])
model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])
model.fit(X_train, y_train, epochs=10, batch_size=32)
- 深度学习的"深"到底有多深?
浅层网络:1-2个隐藏层(1990s)
深度网络:5-150层(2010s)
超深网络:如ResNet有1000+层(通过跳跃连接实现)
- 为什么深度学习现在这么火?
数据爆炸:互联网每天产生海量标注数据
算力飞跃:GPU让矩阵运算快几千倍
算法突破:ReLU激活函数、Dropout、BatchNorm等
小结
神经网络通过多层非线性变换,可以拟合任意复杂函数。它是现代计算机视觉、自然语言处理的基石。下一篇我们将进入"计算机视觉",看看卷积神经网络如何看懂图像。
下一篇预告:《计算机视觉:让AI拥有一双"火眼金睛"》