1.如何判断一个单链表是不是循环链表
快慢指针都指向head,快指针每次走俩,慢指针每次走一个,如果快指针到了结尾,慢指针还没和快指针相遇,那就是循环链表。
(循环链表因为是走不到头的,一定有快指针和慢指针相遇的那天)
2.介绍一下平衡二叉树
二叉搜索树一定程度上可以提高效率,但当原序列有序时,比如 1,2,3,4,5 效率就很低 因为会出现
的情况,搜索效率变O(n)
但如果保持树的高度最小,就可以保证树的查找效率。
树的高度小一倍 速度也快了一倍
这样左右高度相差不超过1的树为平衡二叉树 —— AVL
其实是俩数学家提出的 这个AVL就是俩数学家名字的简称
可以是空树,如果不是空树,任何一个结点的左子树与右子树都是平衡二叉树,并且高度之差不超过1
平衡因子:某节点左子树与右子树高度的差即为该节点的平衡因子。平衡因子只能取+1,-1,0
3.矩阵的秩
暂时还不会
4.介绍下特征值与特征向量的意义
暂时还不会
5.介绍下线性相关和线性无关
暂时还不会
6.解释下等价关系和等价类
等价关系:满足自反性、对称性、传递性
等价类:类的内部元素都具有等价关系
7. 解释下大数定律
指得是某个随机事件在单次试验中可能发生也可能不发生,但在大量重复实验中往往呈现出明显的规律性,即该随机事件发生的频率会向某个常数值收敛,该常数值即为该事件发生的概率。
8.全概率公式
全概率公式就是
某一事件发生的概率 == 引起某一事件的各个原因的出现概率*该原因导致事件结果发生的概率 之和
9. 贝叶斯公式
条件概率 从结果看原因 比如路上一个人说的话我听不懂 那他是外国人的概率就大幅提升
10. 正态分布
呈现一种 中间密集 两边稀疏的形式
一个群体身高服从正态分布,说明群体中大多数人都在平均身高附近,特别高和特别矮的人都很少
11. 机器学习和深度学习的差别联系
机器学习,是人工智能的一个子集,需要用大量数据,来训练机器
深度学习 尤其与神经网络相关,是机器学习的一个子集,深度学习也需要更高的运算能力支撑,如GPU
12.梯度下降法和牛顿迭代法的算法过程
梯度下降法:从函数的某个初始点开始,一次次移动到函数的极值点。 (每次移动后,会判断该点是否符合某些条件,如果不满足,继续移动,若满足,移动结束)因为负梯度方向是函数值下降最快的方向,所以在迭代的每一步中,以负梯度方向更新x的值,从而减少函数值的目的。(减少损失函数hhh)
牛顿迭代法:在初始点取二阶泰勒展开式。。。(很复杂)
区别:
-
梯度下降法是一阶优化算法,牛顿法是二阶优化算法
-
牛顿法的收敛速度相比梯度下降法常常较快
-
牛顿法每次需要更新一个二维矩阵,计算代价很大,实际使用中常使用拟牛顿法
-
牛顿法对初始值有一定要求,在非凸优化问题中(如神经网络训练),牛顿法很容易陷入鞍点(牛顿法步长会越来越小),而梯度下降法则很容易逃离鞍点(因此在神经网络训练中一般使用梯度下降法,高维空间的神经网络中存在大量鞍点)
-
梯度下降法在靠近最优点时会震荡,因此步长调整在梯度下降法中是必要的,具体有adagrad, adadelta, rmsprop, adam等一系列自适应学习率的方法