神经网络技术栈介绍:PyTorch,Transformer,NLP,CV,Embedding

学习了一段时间神经网络技术之后发现对很多东西理解还不够深刻,所以今天就来梳理一下神经网络的技术栈,深入了解一下不同的工具在神经网络中所处的位置,以及其扮演的角色。 先说一句废话,神经网络仅仅只是神经网络,它不涉及具体的任务,只是一个神经网络模型;神经网络要解决实际问题就需要和不同的任务领域相结合。 神经网络技术栈要了解或者说要学习神经网络,首先要从两个方面去入手——技术原理和应用场景。

学习了一段时间神经网络技术之后发现对很多东西理解还不够深刻,所以今天就来梳理一下神经网络的技术栈,深入了解一下不同的工具在神经网络中所处的位置,以及其扮演的角色。

先说一句废话,神经网络仅仅只是神经网络,它不涉及具体的任务,只是一个神经网络模型;神经网络要解决实际问题就需要和不同的任务领域相结合。

神经网络技术栈介绍:PyTorch,Transformer,NLP,CV,Embedding

神经网络技术栈

要了解或者说要学习神经网络,首先要从两个方面去入手——技术原理和应用场景。

神经网络是基于人工智能领域中,机器学习的深化——深度学习,通过模仿人类的大脑神经的行为来实现人工智能的一种技术手段。

因此,基于这种思想诞生了神经网络模型;既然是模仿人类大脑的神经网络模型,那么具体的数学模型应该是什么样的呢?

因此,这里就产生了神经网络模型中几种常见的神经网络架构及其变种,RNN——循环神经网络,CNN——卷积神经网络和Transformer——自注意力模型。

神经网络技术栈介绍:PyTorch,Transformer,NLP,CV,Embedding

为什么会有多种不同的神经网络架构模型?

因为人类还无法真正模拟出人类的大脑神经网络,因此只能根据不同的任务类型设计能够处理不同任务的神经网络模型;比如说Transformer擅长处理NLP任务,CNN适合处理图像任务等。

所以说可以简单把神经网络技术理解成一种实现人工智能的思想,而RNN,CNN与Transformer等神经网络架构是其中的几种实现方式,也可以理解成数学模型。

而有了思想还要有具体的实现,因为神经网络的本质是数学模型,因此需要进行大量的数学计算;所以,谷歌和meta公司分别开发了一款神经网络的开发框架,Tensorflow和PyTorch,也就是一个科学计算框架,里面封装了大量的数学计算公式等。

因此,如果说RNN,CNN和Transformer是一种实现思想;那么PyTorch就是实现这些思想的具体工具;有了PyTorch和Tensorflow技术人员在开发神经网络时就会简单很多。

神经网络技术栈介绍:PyTorch,Transformer,NLP,CV,Embedding

以上是神经网络中纯粹的技术问题,网络模型是理论,PyTorch和Tensorflow负责具体实现。

而从实际的价值来说,技术的作用是解决问题,也就是应用;因此,需要把神经网络技术与其它领域的任务相结合,去解决实际问题,这样才能发挥神经网络的真正价值。

而作为一个人工智能,最基础的功能当然就是要能够和人类进行正常交流;因此,神经网络就必须能够理解语言,图像,视频;并且能够生成新的内容。

所以,神经网络与自然语言处理(NLP)任务相结合就有了自然语言处理的神经网络模型;而神经网络与图像,视频处理的任务相结合,就有了CV——计算机视觉处理。

所以说,NLP和CV是神经网络技术的两个主要应用方向;但NLP和CV并不是依赖于神经网络技术而存在,NLP和CV是两项独立的技术领域;只不过神经网络技术在这两个领域中表现还不错。

神经网络与NLP和CV的关系就类似于农村地锅和城市里的天然气类似;做饭可以用地锅,也可以用天然气;只不过天气热用起来更简单方便。神经网络就相当于天然气,但不用神经网络还有其它方法研究NLP和CV。

神经网络技术栈介绍:PyTorch,Transformer,NLP,CV,Embedding

这也是为什么,明明你学了pyTorch和Transformer,你依然不知道该怎么解决NLP和CV的问题;原因就在于神经网络只是研究NLP和CV的一种工具。这就相当于你学会了使用天然气,但就代表你会做菜了吗? 毕竟天然气和做菜是两个领域的问题。

那现在应该知道神经网络与NLP,CV的关系了吧?以及神经网络的几种经典架构模型;但Embedding又是什么东西? 

Embedding中文叫做嵌入,简单来说就是一种数据格式转换工具;在神经网络中,主要的数据格式是向量(张量);而在人类的交流中主要是文字,图片,视频等数据格式。

因此,使用神经网络模型就需要把人类认识的文字,图片,视频等格式的数据,转换成神经网络能难过处理的数据格式——也就是张量(向量)。而这个过程就是Embedding要做的事情,数据格式转换。

相关资讯

经网络的每一层都是干嘛的?这才是神经网络结构的核心

组成一个神经网络从技术上来说主要有以下几个部分:数据集神经网络结构损失函数优化函数反向传播而不同神经网络模型之间最主要的区别就是神经网络结构的异同,当然最相似的地方也是神经网络结构。 原因就在于神经网络结构是由多个神经网络层所组成的;而使用不同的层就实现了不同功能的神经网络模型。 神经网络的层一个神经网络是由多种神经网络层所组成的,而每个神经网络层实现不同的功能;然后由此组成神经网络模型。

ICLR 2024 | 连续学习不怕丢西瓜捡芝麻,神经形态方法保护旧知识

以脉冲神经网络(SNN)为代表的脑启发神经形态计算(neuromorphic computing)由于计算上的节能性质在最近几年受到了越来越多的关注 [1]。受启发于人脑中的生物神经元,神经形态计算通过模拟并行的存内计算、基于脉冲信号的事件驱动计算等生物特性,能够在不同于冯诺依曼架构的神经形态芯片上以低功耗实现神经网络计算。然而,神经网络模型在持续学习新任务时通常存在对旧任务的灾难性遗忘的问题,这和人脑通过终生的连续学习(continual learning)来不断积累知识非常不同。如何能够通过神经形态的计算形式解

从一个简单的神经网络模型开始

关于神经网络的文章写的也不少了,但一直没弄明白神经网络到底是怎么运作的;而现有的神经网络模型又太复杂,如Transformer,CNN,RNN,以及各种应用场景(NLP,CV,分类任务,回归任务等等);导致我们无法看到神经网络最本质的东西。 所以,今天我们就来从最简单的神经网络开始学起。 简单神经网络神经网络的基本原理很简单,那就是模仿由人类大脑神经元构成的神经网络;神经元结构如下图所示:上图是生物学中神经元的基本结构,神经元由树突和轴突以及细胞核组成;而不同神经元之间通过轴突进行连接;当然这些都是中学生物学的基础,就不多说了。