“ 神经网络是神经网络,具体任务是具体任务,不能混为一谈 ”
学习了一段时间神经网络技术之后发现对很多东西理解还不够深刻,所以今天就来梳理一下神经网络的技术栈,深入了解一下不同的工具在神经网络中所处的位置,以及其扮演的角色。
先说一句废话,神经网络仅仅只是神经网络,它不涉及具体的任务,只是一个神经网络模型;神经网络要解决实际问题就需要和不同的任务领域相结合。
神经网络技术栈
要了解或者说要学习神经网络,首先要从两个方面去入手——技术原理和应用场景。
神经网络是基于人工智能领域中,机器学习的深化——深度学习,通过模仿人类的大脑神经的行为来实现人工智能的一种技术手段。
因此,基于这种思想诞生了神经网络模型;既然是模仿人类大脑的神经网络模型,那么具体的数学模型应该是什么样的呢?
因此,这里就产生了神经网络模型中几种常见的神经网络架构及其变种,RNN——循环神经网络,CNN——卷积神经网络和Transformer——自注意力模型。
为什么会有多种不同的神经网络架构模型?
因为人类还无法真正模拟出人类的大脑神经网络,因此只能根据不同的任务类型设计能够处理不同任务的神经网络模型;比如说Transformer擅长处理NLP任务,CNN适合处理图像任务等。
所以说可以简单把神经网络技术理解成一种实现人工智能的思想,而RNN,CNN与Transformer等神经网络架构是其中的几种实现方式,也可以理解成数学模型。
而有了思想还要有具体的实现,因为神经网络的本质是数学模型,因此需要进行大量的数学计算;所以,谷歌和meta公司分别开发了一款神经网络的开发框架,Tensorflow和PyTorch,也就是一个科学计算框架,里面封装了大量的数学计算公式等。
因此,如果说RNN,CNN和Transformer是一种实现思想;那么PyTorch就是实现这些思想的具体工具;有了PyTorch和Tensorflow技术人员在开发神经网络时就会简单很多。
以上是神经网络中纯粹的技术问题,网络模型是理论,PyTorch和Tensorflow负责具体实现。
而从实际的价值来说,技术的作用是解决问题,也就是应用;因此,需要把神经网络技术与其它领域的任务相结合,去解决实际问题,这样才能发挥神经网络的真正价值。
而作为一个人工智能,最基础的功能当然就是要能够和人类进行正常交流;因此,神经网络就必须能够理解语言,图像,视频;并且能够生成新的内容。
所以,神经网络与自然语言处理(NLP)任务相结合就有了自然语言处理的神经网络模型;而神经网络与图像,视频处理的任务相结合,就有了CV——计算机视觉处理。
所以说,NLP和CV是神经网络技术的两个主要应用方向;但NLP和CV并不是依赖于神经网络技术而存在,NLP和CV是两项独立的技术领域;只不过神经网络技术在这两个领域中表现还不错。
神经网络与NLP和CV的关系就类似于农村地锅和城市里的天然气类似;做饭可以用地锅,也可以用天然气;只不过天气热用起来更简单方便。神经网络就相当于天然气,但不用神经网络还有其它方法研究NLP和CV。
这也是为什么,明明你学了pyTorch和Transformer,你依然不知道该怎么解决NLP和CV的问题;原因就在于神经网络只是研究NLP和CV的一种工具。这就相当于你学会了使用天然气,但就代表你会做菜了吗? 毕竟天然气和做菜是两个领域的问题。
那现在应该知道神经网络与NLP,CV的关系了吧?以及神经网络的几种经典架构模型;但Embedding又是什么东西?
Embedding中文叫做嵌入,简单来说就是一种数据格式转换工具;在神经网络中,主要的数据格式是向量(张量);而在人类的交流中主要是文字,图片,视频等数据格式。
因此,使用神经网络模型就需要把人类认识的文字,图片,视频等格式的数据,转换成神经网络能难过处理的数据格式——也就是张量(向量)。而这个过程就是Embedding要做的事情,数据格式转换。
(文:AI探索时代)