本文为合集收录,欢迎查看合集/专栏链接进行全部合集的系统学习。
合集完整版请参考这里。
深度学习是机器学习中重要的一个学科分支,它的特点就在于需要构建多层且“深度”的神经网络。
人们在探索人工智能初期,就曾设想构建一个用数学方式来表达的模型,它可以模拟人的大脑。
大脑我们都知道,有很多神经元,每个神经元之间通过突触链接。
神经网络的设计就是模仿了这一结构。
只不过,在数学上,将每一个神经元换成了一个个的算法,比如卷积算法。突触对于神经元的激活则换成了激活函数,比如Relu激活函数。
上图是我用 Netron 打开的一个真实的自动驾驶领域用到的一个AI神经网络模型。可以看到该模型是由一层一层的算法(算子)堆积而成。该神经网络最终就可以完成一些图像的识别或者汽车周围环境的感知任务。
如果把上面的一部分放大,可以看到如下的样子:
这里面就有一些经典的算法,比如Conv(代表的是卷积运算)、Relu(代表的是激活运算)等。这些算法模拟了人类大脑中的神经元,组织在一起构成了一个非常庞大的神经网络。
本专栏在后面会一步步来搭建一个类似的神经网络。
需要说明的,完成不同任务的神经网络的结构是不同的,但都有一个特点:网络的深度很深。
你可能会有疑问,这样通过一层层算法搭建起来的神经网络真的有效吗?
答案是肯定的。
大量的实验已经验证了这种深度的神经网络是可以学习到很多图片或文本的重要特征,从而在神经网络输出结果时可以输出正确的结果。
比如,进行图像识别的神经网络可以正确的输出一个图像类别,图像检测的神经网络可以正确的输出物体在图像中的坐标和类别,如下:
而涉及语音和文本翻译的神经网络则可以正确的输出中文对应的英文翻译等。
至于为什么神经网络有效,也就衍生出一个新的研究领域:神经网络的可解释性。很多人试图通过研究探究神经网络中深层次的原理,进行解释,该领域目前仍然是一个比较前沿的研究方向。
人脑的原理人们研究了很多年,至今也无法真正说清其中的原理,神经网络的可解释性同样任重道远。
但不管怎样,如此深度的神经网络已经取得了举世瞩目的成就,基于yolo的目标检测已经大规模应用于工业检测中,基于transformer的大模型也几乎成为了目前提高生产力的工具。
神经网络的分类
神经网络的分类有很多种,下面介绍两种你可能会经常听到的。
卷积神经网络(Convolutional Neural Networks, CNN)
该神经网络指的是神经网络中以卷积为主,辅助的有一些激活或者池化,只要是符合这种特性的神经网络,都可以称之为卷积神经网络。上面展示的那个,也可以看作是一种卷积神经网络。
卷积神经网络一般用于计算机视觉领域,用于图像分类、检测、分割等,这是由于卷积的局部性特征所决定的。
循环神经网络
该神经网络指的是可以处理带时序数据的网络。什么是时序呢,就是数据中带有时间序列。
比如语音和文本,我说一句话“你欠我100万”,这句话就带有时序信息,神经网络处理这类数据,需要找到“你”、“我、“欠”这些词之间的先后关系,才能正确的理解这句话。
否则“你欠我100万”和“我欠你100万”是两种完全不一样的意思。
典型的循环网络有 RNN 以及在此基础之上发展出来的 lstm,甚至基于transformer的架构都可以处理这种时序信息。
至于其他分类,感兴趣的话可以去搜一搜看看。本专栏学习的内容主要集中在卷积神经网络,也就是适用于计算机视觉的一大类网络。