人工智能近年来成为社会关注的焦点,深度学习大规模落地成功是主要原因。
GPU的发展及基于海量训练数据的深度学习算法在解决了许多现实问题,比如图像分类和检测、智能游戏和人机对话等。越来越多的科学工程领域积极拥抱深度学习。
伴随着深度学习热火朝天般的发展,市面上诞生了诸如Caffe、Tensorflow和Pytorch等深度学习框架,并得到了快速发展。框架提供了用于神经网络建设的常见的构建基块。通过使用这些框架,开发人员可以专注模型设计和特定于应用程序的逻辑,而不必过于担心编码细节、矩阵乘法和GPU优化。
深度学习框架的实现非常复杂,并且通常包含诸如图片处理、视频处理和科学计算库等第三方软件包。
每个深度学习框架的实现都不同,但深度学习框架通常可以抽象为三层,顶层包括程序逻辑、模型和训练数据,中间层是深度学习框架的实现,包括张量数据结构实现方法、各种过滤器和神经网络层的实现。前两层的实现通常可以选择C++(Caffe)、Python(Tensorflow)、Lua(Torch)等语言。底层是框架使用的基础构建块,通常包括音视频处理和模型表示的组件,构建块的选择取决于框架的设计方案。例如,TensorFlow包含自己构建的视频和图像处理实现

超过第三方软件包,例如librosa和numpy,而Caffe选择直接使用开源库,例如OpenCV和Libjasper,用于解析媒体输入。底层和中间层往往对算法工程师是不可见的。
对软件行业来说,有个共同的挑战: 软件实现的复杂性通常会导致漏洞。深度学习框架面临同样的挑战。
深度学习框架可能由于错误的输入数据、错误的训练数据和模型,对系统产生安全威胁。