非常感谢您能阅读下我的分享,前年刚来北京的时候,互联网的关键词还是大数据,到去年alphago战胜李世石以后,转成了人工智能。人工智能的基础依然是数据,数据量和计算速度的飞速提成是人工智能发展的保障。我(一个业外人士)了解到市场上没有一个合适的数据库来适合这个场景的,为了迎合时代发展,数据库功能向这方面倾斜是必然趋势,也许已经了有很多产品,只是目前我没听过。这里我说说我对新型数据库的一点想法:
1.支持GPU运算(必要)
未来的数据库不仅仅是数据存储,更多的是数据处理。这些数据处理涉及到大量数学密集型的运算任务。而GPU擅长的就是处理需要大量数学密集型运算的任务,比如视觉模拟、超快数据库事务、计算视觉和机器学习等任务。目前好像有个MapD的数据库支持GPU。
2.高维计算的效率提高或者更好的支持(必要)
随着数据维度的增大,对数据的分析越來越复杂,对数据的需求也不可能仅仅局限于传统的运算了,复杂的运算更多的涉及到高维度数据之间的运算。我现在目前接触到的东西,仅仅知道python里面的numpy包对高维度运算做了很好的支持。
3.查找条件复杂化(必要)
查找条件不仅仅是以前的用传统方法可以数据化的条件,他将是一些更抽象的条件。比如和某段文字最相似的文字,和某张图片相同的图片,某张图片中包含的图片,某个高维数据完全相同的数据等,这些用深度学习技术都可以大大较少查询的时间负责度和空间复杂度。我认为以后对这些数据的存储模式是高维数据利用som等网络训练出合理的模型,对应相应的低惟空间,再对应相应的分区。
4.存储方式多样化(必要)
以前的数据库都是对数据的机械存储,但是以后会更多的从数据中抽取一些特征,然后用这些特征再做相应的逻辑,这些特征一般是多维降维后的高维度数据,目前的数据库对这些数据的机械存储绝对不可能迎合未来需求。
5.支持机器学习(这里不包括深度学习,不是太必要)
hadoop有mahout,spark有mllib,我就不说什么了
6.支持深度学习即神经网络(非常必要)
随着深度学习的理论的发展和深度学习工程技术的发展,深度学习慢慢的会深入到各个公司。深度学习往往涉及到大规模的数据,目前caffe使用的一个叫LMDB的数据库,theano,torch,tensorflow好像是对文件的直接操作,在这个场景仍没有一个较好的数据库,所以迫切的需要一个符合深度学习场景的数据库。
深度学习的数据来源于数据库,结果保存在数据库,所以数据库需要对深度学习算法有很好的支持。在以后效率决定一切,还有一些存储和查询都会设计到一些神经网络来缩短时间复杂读和空间复杂度,所以从源码层次上支持深度学习也是必要的。
7.支持深度学习的中间数据存储(必要)
现在我接触到到的都是深度学习的结果,更深的应用都是对学习过程中中间数据的进一步处理,具体我现在还不太了解。
最后总结下,其实这些功能都是互相依存的,高维数据使用GPU高效计算,深度学习使用GPU,抽象数据的查找,和多样化数据的存储依靠神经网络完成,神经网络又依赖深度学习。
这是我昨天思考数据库的一些想法,也许不切合实际,也许会您早已经想过,也许会帮助您有更好的想法,写下来给您分享一下。
最后,真诚的感谢您的阅读。