RELATEED CONSULTING
相关咨询
选择下列产品马上在线沟通
服务时间:9:30-18:00
你可能遇到了下面的问题
关闭右侧工具栏
深度学习和机器学习的数据结构和算法需求
  • 作者:成都软件开发
  • 发表时间:2020-10-22 11:55
  • 来源:未知

深度学习是一个高度依赖数学的领域,您需要对数据结构和算法有很好的了解,才能以最佳方式解决数学问题。数据结构和算法可用于确定问题在内部的表示方式或实际存储模式的工作方式以及问题背后的实际情况。
 
深度学习领域需要什么数据结构和算法知识,为什么需要?
 
1.算法(最重要)
1.1动态编程算法(DP): 
 
该动态规划的概念有助于探索各种可能性,并随后负责选择一个方面,这是大多数人的预期在计算的每一步。在遗传算法中,强化学习算法使用动态规划的概念。生成模型,特别是隐马尔可夫模型,利用了基于动态规划的维特比算法。
 
1.2随机和次线性算法:
 
这些算法有助于深度优化学科中的关键主题,例如随机优化,随机低秩矩阵逼近,深度学习的辍学,回归的随机归约,这是深度学习学科的关键主题,而诸如训练线性分类器之类的深度学习出现了次线性优化问题并找到最小的封闭球。
 
1.3更多算法: 
 
梯度/随机算法
原始对偶方法
2.数据结构(最重要)
2.1链表:
 
如果知道要执行此操作的节点,则插入和删除是链表中的固定时间操作。因此,链接列表可用于与动态数组相同的应用程序,因为如果新元素插入到开头或中间,则数组需要移动元素,这是O(N)时间复杂性,这很昂贵,因此链接列表可以被认为是最便宜的选择,因为它也可以转换为数组。
 
2.2二叉树和平衡二叉树:
 
当对二叉树进行排序时,可以以O(log N)时间复杂度完成插入和删除操作,就像上面提到的链表上的概念一样-二叉树也可以转换为数组。当数据以线性方式插入时,最糟糕的情况是O(N),需要应用各种转换技术以使树更加平衡。此外,深度学习中的NN算法需要使用二叉搜索树概念的k维树知识。
 
2.3堆数据结构:
 
这种数据结构在某种程度上类似于树木,但是它是基于垂直顺序的,与树木不同。但是,可以将相同的应用程序应用于Heap数据结构,与在上面的树中使用的方法相同,但是使用的方法不同。而且,与树不同,大多数堆都存储在一个数组中,而元素之间的关系只是隐式的。
 
2.4动态数组: 
 
遇到线性代数时,这是一个非常重要的主题,具体来说,矩阵算术是一个人遇到一维,二维甚至是三维或四维数组时所必需的主题。此外,如果将Python用作实现深度学习算法的主要编程语言,则需要对Python NumPy有所了解。
 
2.5堆栈数据结构:
 
基于“后进先出”的概念,深度学习中的大多数库都使用递归控制语言来概括二进制分类,该分类可以通过堆栈来实现。另外,堆栈非常容易学习,掌握堆栈可以在许多计算机科学方面提供帮助,例如语法分析等。
 
2.6队列数据结构:
 
它被定义为“先进先出”,其方法用于预测排队情况,在该情况下,可以从给定的数据集中绘制队列中等待人数与概率密度的直方图。可以将其用于记录F1赛车中汽车的分段时间,其中有排队进入终点线的汽车,此处的排队概念可以用于记录经过的每辆汽车的分段时间并绘制相应的给定数据集的直方图。
 
2.7设定: 
 
集合数据结构非常有用,因为与深度学习相关的数学主要基于处理数据集,因此该数据结构对于长期学习深度学习非常有帮助。而且,Python有一个set方法,该方法非常有用并且更受欢迎。
 
2.8散列: 
 
这是一种数据索引方法,可用于减少深度学习的计算开销。最佳散列函数用于将数据集转换为可组织的少量散列,称为散列,散列当然也大量用于信息存储和检索上下文中。在“大数据”被广泛使用之前,散列是很好处理大数据的关键方法之一,它表明了散列的能力。
 
2.9图表:
 
这种数据结构在机器学习领域具有巨大的影响。例如,在链接预测中,预测将来最有可能形成的缺失边,或预测知识图中实体之间的缺失关系。因此,您需要精通用于深度学习或机器学习的Graph数据结构。