AI入门——从函数到神经网络
从函数到神经网络
前言
最近,笔者在学习深度学习这一块的内容,为了加深理解,决定把学习过程中的思考和收获记录下来。本文图片与内容主要参考了视频:【闪客】一小时从函数到 Transformer_哔哩哔哩_bilibili。这些前辈珠玉在前,笔者只不过是对其初略的反刍罢了。
函数
讲神经网络之前我们来说一个更容易理解的名词——函数。
函数本质上是一种变换:
x → f ( x ) → y x → f(x) → y x→f(x)→y
早期的人工智能(符号主义)试图用精确的函数来描述一切事物,认为世界可以被完全形式化。

但是很多时候,我们很难找到一个精确的函数来刻画复杂的关系。于是人们退而求其次,开始接受“近似解”——函数不需要穿过每一个点,只要整体上最接近真实结果就好。这就是联结主义的思路。
符号主义(早期AI):追求精确函数描述一切
联结主义(现代AI):找不到精确函数时,用近似函数(允许误差)

AI 就是用可学习的参数构造非线性函数,把输入 x 映射成输出 y,让预测误差最小。
激活函数:引入非线性
很多时候当数据稍微变化一下,出现曲线的时候,简单的线性函数就没办法解决这个问题了。那我们的目标就是将线性函数转为非线性函数,这可以通过套一个非线性函数来做到,比如平方、正弦函数、指数函数。这就是激活函数。
激活函数是神经网络中非常重要的部分。如果没有激活函数,神经网络就只能做线性计算:
y = w 1 × x 1 + w 2 × x 2 + w 3 × x 3 + b y = w1×x1 + w2×x2 + w3×x3 + b y=w1×x1+w2×x2+w3×x3+b
这样不管你堆多少层,本质上都等于一个简单的线性函数!就像:
- 1层线性 y = 2 × x + 1 y = 2×x + 1 y=2×x+1
- 100层线性堆叠依旧是 y = 某个数 × x + 某个数 y = 某个数×x + 某个数 y=某个数×x+某个数
单一的参数是解决不了复杂问题的!
有了激活函数之后:
激活函数引入了非线性,让神经网络可以学习复杂的模式。就像:
- 线性 = 只能画直线
- 非线性 = 可以画曲线、圆、各种复杂图形
常见的激活函数:
Sigmoid函数
公式: σ ( x ) = 1 ( 1 + e ( − x ) ) σ(x) = \frac{1}{(1 + e^{(-x)})} σ(x)=(1+e(−x))1
特点:
- 输出范围:0到1之间
- 形状:S形曲线
- 可以理解为"概率"
ReLU (Rectified Linear Unit) - 最常用!
公式: f ( x ) = m a x ( 0 , x ) f(x) = max(0, x) f(x)=max(0,x)
特点:
- 输入为负数时,输出0
- 输入为正数时,输出就是输入本身

这还不够,正常情况下我们不会只有一个输入,并且只有一个激活函数可能不会达到理想的结果,所以开始嵌套!

像这样多个输入,激活函数外面加一次线性变换,再套一个激活函数,并且还可以不断嵌套。通过这样的方式,我们可以构造出非常复杂的关系,理论上可以逼近任意的连续函数。
神经网络与神经元
但上面这种不断嵌套的形式看起来太复杂了,所以我们引入神经元的概念。
神经元
参考生物学知识,神经元通过树突接收信号,这些信号在细胞体内整合后,通过轴突传递到其他神经元。如果输入信号的总和超过神经元的阈值,神经元就会“点火”,即产生一个固定大小的输出信号。(相信这些知识你早已忘记,哈哈)
简单来说神经元干以下三件事:接收信号、处理信号、决定是否激活。
我们讲的神经元又略有不同,计算机里的神经元是这样工作的:
输入 1 × 权重 1 + 输入 2 × 权重 2 + 输入 3 × 权重 3 + 偏置 = 输出 输入1 × 权重1 + 输入2 × 权重2 + 输入3 × 权重3 + 偏置 = 输出 输入1×权重1+输入2×权重2+输入3×权重3+偏置=输出
图中的一个小圈就是一个神经元,多个神经元互相连接形成的网状结构就叫做神经网络。
神经网络 = 神经元的集合
单个神经元只能做简单判断,但成千上万个神经元分层连接,就能处理极其复杂的任务。
典型的三层结构:
- 输入层:接收原始数据
- 隐藏层:进行复杂计算(可以有很多层)
- 输出层:给出最终结果
我们可以看到随着函数式子的嵌套,神经网络也在拓展,原本的输出成为了隐藏层(位于输入层和输出层之间的中间层)。隐藏层的主要作用是对输入数据进行复杂的特征提取和变换。

从图示来看,信号从左向右逐层传递,这个过程叫做前向传播。网络的层数和每层的神经元数量都可以不断增加,从而构造出极其复杂的非线性函数。
尽管结构变得复杂,但是我们的目标还是一开始说的:找到一个近似解,也就是根据已知的x、y猜出所有的w和b。

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)