快速入门深度学习01:神经元和神经网络

开篇

之前我详细写过两个专栏,分别为《快速入门CV》和《快速入门NLP》,讲道理,这两个专栏针对原理是写的挺详细的,但是想要快速上手的话,其实要学的知识还是蛮多的。

因此针对这部分,我打算再好好写一下,尽量精简一些,同时形成文档,可以提供给大家离线查阅。

那么要想快速入门深度学习,神经网络有点像这个领域的普通话了,基本上不可能绕过去,所以今天就从神经元和神经网络开始。


1 神经元

我们所说的神经网络,基本单元可以视为神经元,是仿生学的概念,因此其实深度学习其实也是在模拟我们的大脑。

1.1 生物神经元的启发

人类大脑里的生物神经元,工作逻辑其实很简单:

通过树突接收四面八方的信号,在胞体里把信号整合起来;如果总刺激超过了某个阈值,就通过轴突把信号传给下一个神经元。

简单说就三件事:接收信号、整合信号、决定要不要激活输出

上世纪40年代,研究者把这套逻辑抽象成了数学模型,也就是MP人工神经元模型。它就是整个人工神经网络最基础的计算单元。

1.2 一个神经元,到底在算个啥?

我们拿预测冰淇淋销量举例子:输入是温度、星期几这些特征,一个神经元就是对这些特征做一次打分,然后进行预测。

定义输入特征为向量:

每个特征对应一个权重 ,再加上一个偏置项 。 神经元的计算分成两步:

第一步:线性加权求和

把每个特征乘以对应的重要程度,全部加起来,再加上偏置量:

  • 权重:可以理解成「这个特征对结果影响有多大」,可正可负;

  • 偏置:相当于给结果设置一个基准线,避免所有输入都是0的时候,神经元直接没输出。

第二步:非线性激活

光有加权求和还不够,我们还要把结果送入激活函数,得到神经元最终的输出:

目前工程里最常用的激活函数是ReLU,逻辑非常简单: 输入大于0就原样输出,小于等于0直接输出0。

1.3 激活函数非用不可吗?

其实一开始我学激活函数的时候,并没有过多的思考它的作用和必要性,而是文章里这么说,我就这么记,随着学的深入,其实慢慢就能理解。

但是在这里还是和大家介绍一下它的作用,并且知乎上有很多大佬举了很多生动的例子,尤其是有一个掰铁丝的例子让我印象深刻,有兴趣的朋友可以去搜索一下。

我们直接上结论:

如果没有激活函数,无论堆叠多少层神经元,整个网络都等价于一层线性变换。

再多的层数,也只是反复做矩阵乘法,其实这是线性操作,到最后依然只能表达简单的直线关系。可现实世界里的规律,大多都不是直线!

咋说呢,感觉神经元做的操作感官上有点类似于直线,模拟的函数有限,激活函数可以假如非线性元素,可以模拟各种曲线。

所以呢,激活函数给网络引入非线性能力。有了这一步"掰弯",模型才有能力去拟合那些复杂的、弯弯曲曲的函数曲线。

你要把深度学习最后学到的模型视为一个无比复杂的函数,那么它的函数图像必然不是一个直线,当然一般其实也画不出来。

当然,单个神经元的能力还是很有限的。面对复杂的数据模式,只靠一个单元远远不够。

那怎么办?由此我们想到了:

堆叠神经元,神经形成网络。


2 单层感知机的局限

把输入直接连到输出神经元,中间没有其他单元,这就是单层感知机

单层感知机可以自动学习权重,完成简单的二分类任务。但研究者很快就发现了它的致命问题。

2.1 解决不了异或问题

MP只能处理线性可分的数据。

最经典的例子就是XOR异或问题:输入两个相同输出0,输入不同输出1。就这么简单的逻辑,MP怎么都做不到。

很明显,无论怎么调整权重,光靠直线,无法区分class0和1。

那么到是什么导致的呢?

因为缺少一层能做特征空间变换的中间层。

聪明的你会想到,原始空间里分不开的数据,能不能先把它映射到另一个空间,让它在新空间里变得可分?

顺着这个思路,研究者加入了隐藏层,多层感知机(MLP)就应运而生了。


3 多层感知机:MP+隐藏层

一个基础的多层感知机,由输入层、隐藏层、输出层三部分构成。

3.1 三层网络,分别干什么活?

  • 输入层:不做任何计算,只负责接收和传递原始数据;

  • 隐藏层:网络真正的干活儿的地方。一层里有很多神经元,每个神经元都对上一层的数据做加权求和+激活。原始特征经过这一层,就被映射到了新的特征空间;

  • 输出层:接收隐藏层变换好的特征,输出最终的预测结果。回归任务输出数值,分类任务输出类别结果。

3.2 前向传播

我们拿只有一层隐藏层的网络举例,过一遍完整的计算流程。

设 是输入层到隐藏层的参数, 是隐藏层到输出层的参数。

先算隐藏层的输出:

再算最终的预测输出:

整个过程就是:原始输入经过隐藏层做一次非线性变换,变换后的特征再交给输出层计算,得到最终结果。

3.3 前向传播解决的问题

有一个很重要的理论叫万能逼近定理

只要隐藏层的神经元数量足够多,单隐藏层的神经网络,就能以任意精度逼近任意连续函数。

这句话相当于给研究者吃了一颗定心丸:多层网络在理论上,拥有足够强的表达能力。理论上,你就去堆网络吧,最终肯定能对出你想要的函数模型。

但是,理论可行不代表训练可行。

网络刚初始化的时候,所有权重、偏置都是随机生成的。拿随机参数跑出来的结果,基本等同于瞎猜。

那怎么让这些参数自动调整,让预测越来越准?

这里就会涉及一整套神经网络训练流程:

用损失函数衡量错了多少,用梯度下降找更新方向,再用反向传播把误差一层层传回去。

这一块涉及不少推导,全部铺开的话篇幅会很长。所以损失函数、梯度下降、反向传播这些训练相关的内容,我们放到下一篇文章完整讲解。本篇我们先把网络本身的结构和前向逻辑吃透。


4 深度神经网络

再和大家说一下深度神经网络,刚才我们只用到了一层隐藏层。如果继续堆叠更多隐藏层,每一层都做一次线性变换+激活,就得到了深度神经网络,也就是我们常说的深度学习。

层数加深之后,网络会形成一种逐层抽象的特征提取逻辑。拿图像识别举例子就很好懂:

  • 浅层神经元捕捉边缘、简单纹理;

  • 中间层组合边缘,识别轮廓、局部形状;

  • 更深层再把局部形状组合起来,得到物体的整体特征。

每一层,都在上一层的基础上,做进一步的加工和抽象。

当然层数变多也会带来新问题。比如大家常听说的梯度消失、过拟合。这些都属于训练优化层面的问题,我们留到后面再展开。

总结一下:

  1. 人工神经元灵感来自生物神经元,核心是加权求和 + 非线性激活;激活函数是网络拥有非线性能力的关键。

  2. 单层感知机只能处理线性可分任务,面对XOR这类简单非线性问题都束手无策。

  3. 加入隐藏层得到多层感知机MLP,通过特征空间变换解决了非线性拟合问题;理论上足够多的神经元可以逼近任意连续函数。

  4. 多层网络的前向传播,就是数据从输入层开始,逐层做线性计算+激活,一路流向输出层。

  5. 网络初始参数都是随机值,想要让模型学会规律,需要完整的训练机制。训练部分我们下一篇详细拆解。

本质上来说,神经网络就是一套带可学习参数的分层函数映射框架。现在就粗暴的理解为函数吧,我们后来熟悉的CNN、RNN、Transformer,底层都建立在这套基础逻辑之上。

所以说它是深度学习领域的普通话,一点都不过分。

相关推荐
回眸&啤酒鸭10 分钟前
【回眸】AI新鲜事——Ox-Alpha 智能决策与场景化应用指南
人工智能
千里码aicood11 分钟前
基于CNN的音乐推荐系统设计与实现
人工智能·神经网络·cnn
2601_9662411619 分钟前
AI录音修音工具有哪些 录音修音用什么工具 AI音乐编辑器怎么选 录音修音一体的软件有哪些
人工智能
电商API_1800790524720 分钟前
自动化获取淘宝评论数据技术分享之API调用示例
大数据·运维·人工智能·自动化·网络爬虫
I Promise3422 分钟前
Fast‑BEV 完整实战教程(智驾工程视角)
深度学习·神经网络·目标检测·目标跟踪·自动驾驶
福建佰胜张工24 分钟前
西门子 ULTRAMAT23 分析仪 7MB2337‑0NH10‑3PW1 原理、调试、故障处理与现场运维全记录
大数据·运维·人工智能·自动化
__如果25 分钟前
医学大论文行文思路
人工智能
吨吨ai25 分钟前
Codex 实战:用 Git 分支 + pytest 构建可回滚的 AI 开发流程(2026年8月27日)
人工智能·git·pytest
科技新芯25 分钟前
2026年国内可用AI生图网站实测:ImageGood、ChatGPT、Gemini、Firefly怎么选?
人工智能·chatgpt