绝大部分夏令营都需要面试:如果幸运的话,稍微问几个问题就结束了;不幸的话,可能要抓住你做项目、读论文、复现、做 pre 等等。

这篇博客适用于幸运的情况:绝大部分学校的面试题库,都是彼此重合的,并且一年年的没什么变化。因此,只要准备一下常见的高频问题,就足以应付这种面试了。



夏令营原题:数学

线代

  • 【北航】矩阵的范数:

    • 引入范数的目的是为了度量。
    • 正定(零矩阵范数=0),齐次(|λA|=λ|A|),三角不等式(两边范数之和 ≥ 第三边范数)。
    • 对于矩阵范数,还有:||AB|| ≤ |A|·|B|
  • 【北航】线性无关是什么:

    • 一组向量里面,没有一个可以被其他人联合表示。
    • 只有当 k全=0 时,Σkx=0 才成立。
    • 广义 组成的四边形 六面体 超几何体 体积是否不为零。
    • 线性组合:多项式,全是一次项(无向量相乘 无常数)。
  • 【北航】矩阵的行列式:

    • 广义平行四边形的体积。
    • 行列式为零的矩阵,不可逆(把线性无关的向量,映射成线性相关的了,丢失信息 则不可逆);行列式不为零的矩阵,可逆。
  • 【北航】矩阵的迹:矩阵主对角线元素的和

  • 【ALL】矩阵的秩是什么,有什么物理意义

    • 矩阵中线性无关向量的个数。
    • 取子矩阵(方阵)的行列式,最大子矩阵维度 使得行列式 ≠ 0。
    • 物理意义:方程有几个解。
    • 秩:变换后,虽然可能没法完全不丢信息,但至少还能给你保住几个面。
    • r(AB) <= r(A), r(A) + r(B) - n <= r(AB)
    • 矩阵可逆 <=> 矩阵满秩。
  • 【北航】Ax=b有解的条件:

    • A 的秩 = 分块矩阵 (A,b) 的秩
    • 如果 b 存在于 A 的列向量的线性空间中,则有解,否则无解;
    • 如果 A 的列均是线性无关的(列满秩),那么存在唯一解;非列满秩则多解;
    • Ax=0 如果列满秩,则只有零解。
  • 【北航】【复旦】矩阵的特征值是什么,有什么物理意义,应用

    • Ax=λx。算子的本征值(投影不变,有点像傅里叶变换 卷积指数信号还是指数信号)。
    • —个变换矩阵的所有特征向量,都是正交的,组成了这个变换矩阵的一组基。
    • 矩阵的特征值分解:\(A=Q\Sigma Q^{-1}\),Σ是对角阵,Q是特征列向量组成的矩阵。
    • 怎么求:
      • 写出方程丨λE-A丨=0,其中I为与A同阶的单位阵,λ为代求特征值
      • 将n阶行列式变形化简,得到关于λ的n次方程
      • 解此n次方程,即可求得A的特征值
    • 应用:PCA 主成分分析。
  • 【自动化所】【北航】线性空间是什么,m维线性空间的定义

    • m个相互正交的向量,做加法和数乘,可以组成线性空间。
    • 向量空间:V 为 n 维向量的集合,不为空集,对加法和数乘封闭。
    • 线性空间:再满足
      • 向量加法 交换律 结合律,数乘结合律,加法和数乘的分配律。
      • 向量加法的零元素 向量加法可逆(负数),数乘的 1 元素。
  • 【软件所】转置矩阵的几何意义

    • 二维图像 关于某个点对称后(关于 45° 轴翻转?)。
  • 【北航】正交矩阵:

    • \(AA^T=A^TA=E\),\(A^T\) 是 \(A^{-1}\) 也是正交矩阵,行向量 列向量是单位向量 且两两正交,|A|=1 或 -1(显然)。
    • 左乘正交矩阵造成的空间变换,是用一个新空间代替原有空间,即用另一组正交基描述被变换的向量,不改变原向量的长度和空间位置。
  • 【北航】矩阵如何求逆:

    • 待定系数法,初等变换法:
  • 【北航】什么时候 AB = BA:

    • P−1AP,P−1BP 都是对角阵(同一个P),或者A=B。

概率论

  • 【北航】【北大】贝叶斯公式是什么,有什么应用

    • 已知 B 求 A 的概率,等于 AB 都发生概率 / B 发生的概率。
    • 已知事情发生了,求 xx 事情是因的概率。也就是似然?
  • 【北航】期望和方差的定义:

  • 【北航】全概率公式:

    • 事件 A1,A2,…构成一个完备事件组,才能用全概率公式。
  • 【复旦】【22年复旦又问到了!】最大似然估计

    • 概率:结果没有产生之前,根据环境参数,预测某件事情发生的可能性;
    • 似然:在确定的结果下,去推测产生这个结果的可能环境参数。
    • L(θ|x) = P(x|θ)。
  • 【复旦】【北航】解释独立性、相关性、互斥性;

    • 独立 互不影响 条件概率=概率,互斥 不能同时发生。
    • 条件独立:P(AB∣C)=P(A∣C)P(B∣C)
    • 协方差:两随机变量 线性相关性的强度,\(Cov(X,Y)=E{[X−E(X)][Y−E(Y)]}\),相关系数 归一化(不受变量尺度影响)\(Cov(X,Y)/\sqrt{D(X)}\sqrt{D(Y)}\)。
    • 独立一定不(线性)相关,不相关不一定独立。服从二维正态分布,不相关 <=> 独立。举例,Y=X²。
  • 【北大】【北航】大数定律,中心极限定理:

    • 大数定律:当样本数据无限大时,样本均值趋于总体均值。事件 A 发生的频率逼近于它的概率。切比雪夫(样本均值→总体均值),伯努利(频率→概率),辛钦(样本均值→期望)。
    • 中心极限定理:当样本量 n 逐渐趋于无穷大时,n 个抽样样本的均值的频数,逐渐趋于正态分布。原总体的分布不做任何要求。
    • 中心极限定理 应用:蒙特卡罗法。求随机变量之和Sn落在某区间的概率。
  • 【msra】熵是什么

  • 【北航】【复旦】高斯分布(正态分布)是什么

    • 若随机变量 X 服从一个数学期望为 μ、方差为 σ² 的正态分布,记为 N(μ, σ²)。
    • 概率密度函数:
    • 期望值μ决定了其位置,标准差σ决定分布的跨度。μ = 0, σ = 1:标准正态分布。
    • 正态分布能积分出来吗:不太能,最多只有这个
    • 应用场景:近似某些分布(中心极限定理),把成绩转换为正态分布(高考赋分)。
  • 【北航】概率密度函数 是什么:

    • 连续型随机变量,落在一段区间的概率 / 区间长度 取极限。
  • 【北航】二项分布,超几何分布。

    • 二项分布:n次独立重复的伯努利试验中,设每次试验中事件A发生的概率为p。n 次试验中事件 A 恰好发生 k 次,这个离散概率分布。 \(P\{X=k\}=C_n^kp^k(1-p)^{n-k}, C_n^k=\frac{n!}{k!(n-k)!}\)
    • 超几何分布:它描述了从有限N个物件(其中包含M个指定种类的物件)中抽出n个物件,成功抽出 该指定种类 的物件的次数(不放回)。
  • 【北航】泊松分布:

    • 泊松分布: ,参数λ是单位时间(或单位面积)内随机事件的平均发生次数。 泊松分布适合于描述单位时间内随机事件发生的次数。
    • 举例:医院平均每小时出生6个新生儿,想知道在起飞前一小时 是否有机会见到10个或更多的婴儿。预测这段时间来的客户数量。
    • 当二项分布 n 很大 p 很小时,泊松分布可作为二项分布的近似,其中 λ 为 np。

高数

  • 【北航】【自动化所】可微与可导有什么区别,一维 二维 条件,与连续的关系。

    • 可微:若自变量在点x的改变量Δx,与函数相应的改变量Δy,有关系Δy=A·Δx+ο(Δx),其中A与Δx无关。那么 A 是微分。
    • 可微:偏导数 在邻域 存在且连续。
    • 可导:lim Δy/Δx =A 存在,那么 A 是导数。两侧可导则连续。
    • 连续:一维:可微<=>可导=>连续=>可积,多维:可微=>偏导数存在=>连续=>可积。
  • 【自动化所】【北航】【复旦】连续和一致连续,收敛和一致收敛

    • 连续 函数,收敛 级数。
    • 连续:某点连续:极限值=函数值(不会跳变),函数连续:每个点都连续。
    • 一致连续:对区间 I 上任意两点 x1 x2,当 |x1-x2|<δ 时,|f(x1)-f(x2)|<ε。
    • 一致连续→连续,1/x 不一致连续。考察均匀程度,不允许难以接受的连续突变(特别陡)。闭区间上,连续<=>一致连续。
    • 收敛:对特定的x,级数项数→无穷时,极限值=某个函数(x)。
    • 一致收敛:
    • 收敛:在极限函数 的任意小邻域内(该邻域对 x 定制)(可以想象成一条加宽的带子),对于函数列 项之后的函数图像都会全部落在这条带子里面。一致收敛:对所有 x,找到一条通用的带子。
    • 收敛→一致收敛,fn(x)=x^n (0, 1) 上收敛到 0,但不一致收敛。不允许 |fn(x)-f(x)| 难以接受的大。闭区间上,收敛<=>一致收敛。
    • 一致收敛后,对和函数求积分 可以变成 逐项求积分求导。
  • 【自动化所】【北航】柯西中值定理,拉格朗日中值定理

    • lagrange:闭区间连续 开区间可导,切线割线斜率。
    • cauchy:闭区间连续 开区间可导,g' ≠ 0,割线相比 = 导数相比。
  • 【自动化所】牛顿迭代法

  • 【自动化所】【北航】最小二乘法

  • 【复旦】【北航】极限的定义:

    • epsilon-N 定义,epsilon-δ 定义。趋于∞:M(大数)。
  • 【北航】边缘分布:

    • P(x)=Σ_y P(x,y)=Σ_y P(x|y)P(y)
  • 【复旦】空间闭环曲线 怎么求面积或体积;

    • green gauss stokes。
  • 【计算所】【北航】如何计算Sin 1

    • 如果是 sin 1° / sin 1/180Π,直接泰勒级数。
    • 如果是 sin 1,泰勒级数可能不太行(1 的多少次方还是1)(并不,从网上查的是ok的),可能要 sin1=2cos0.5sin0.5,再泰勒展开?
  • 【北航】极大值什么时候等于最大值

    • 导数单调递减,即二阶导数<0,上凸函数,肯定 ok。
    • 考察最大的极大值和端点值的关系。(端点值>极大值,且开区间,则无限逼近端点,函数无最大值)

离散数学

  • 【北航】握手定理:

    • 有n个人握手,每人握手x次,握手总次数为 S= nx/2。
  • 【北航】命题逻辑的连接词:

    • 一元连接词:非¬
    • 二元连接词:合取 ∧,析取 ∨,异或 ⊕,蕴涵 →,等价 <->。
  • 【北航】单射(我和你各抢各的 不抢一个人),满射(所有人都被抢了),双射(一一对应)。

  • 【北航】幂集,笛卡儿积:

    • 幂集:原集合中所有的子集(包括全集和空集)构成的集合,集合的集合 N → 2^N。
    • 笛卡尔积:第一个对象是X的成员,第二个对象是Y的成员,所有可能有序对的集合。
  • 【北航】偏序关系:

    • 非严格偏序或自反偏序:

      • 给定集合S,“≤”是S上的二元关系,满足:
      • 自反性:∀a∈S,有a≤a;
      • 反对称性:∀a,b∈S,a≤b且b≤a,则a=b;
      • 传递性:∀a,b,c∈S,a≤b且b≤c,则a≤c;则
    • 严格偏序,反自反偏序:

      • 反自反性:∀a∈S,有a≮a;
      • 非对称性:∀a,b∈S,a<b ⇒ b≮a;
      • 传递性:∀a,b,c∈S,a<b且b<c,则a<c;
  • 【北航】欧拉回路,哈密顿回路。

    • 哈密顿回路:经过每个点一次并且回到起点(旅行商问题),NP-complete 也是 NP hard。
    • 欧拉回路:经过每一条边并回到起点,一笔画。
      • 图是连通的,没有孤立节点,(欧拉通路)对于无向图,奇数度的顶点为2个(起点终点),剩下都是偶数度。如果没有奇数度顶点,可以有欧拉回路。
  • 【北航】等价关系:

    • 设 R 是集合 A 的二元关系,R 自反 对称 传递 → 等价关系。
    • 自反性:∀a∈S,有 aRa;
    • 对称性:在集合R中,若 aRb 则 bRa。
    • 传递性:∀a,b,c∈S,aRb 且 bRc,则 aRc;
  • 【北航】图 度数和边的关系

    • 有向图:入度 出度。边数=Σ入度=Σ出度
    • 无向图:边数=0.5 Σ度
  • 【北航】集合的划分,集合的基:

    • 划分可能就是所谓完备事件集?互不相交,并集=原集合。基貌似是集合元素个数。
  • 【北航】群 环 域:二元运算

    • 群:加法,封闭性 结合性 单位元 反元素。
    • 环:在交换群的基础上,添加二元运算乘法:加法单位元是乘法零元素,反元素 (-a)b = a(-b) = -(ab),结合律(半群),关于加法满足分配率。
    • 域:在交换环的基础上,增加二元运算除法,具体没有学。

夏令营原题:专业课

强意向:自动化系。自动化所,计算所,人大高瓴,北航,上交,复旦,天大。

弱意向:软件所,北理工,南开。

无意向:清华其他地方,北大,南大。

数据结构

  • 【复旦】快排时间复杂度(最优最差和平均),证明
  • 【高瓴】【2022年高瓴又考到了!】KMP 字符串匹配
  • 【北航】栈算表达式,前缀中缀后缀表达式
    • 中 → 后:两个栈。
    • 计算后缀表达式:一个栈。
    • 计算前缀表达式:从右到左(反向)扫描,数字压栈,运算符 弹栈*2 计算。
  • 【北大】【复旦】【北航】常见的排序算法,复杂度
    • 稳定 / 非稳定排序:两个相等的数 排序前后 相对位置不变。
    • 插入排序(希尔排序):
      • 每一趟将一个待排序记录,按其关键字的大小插入到已排好序的一组记录的适当位置上,直到所有待排序记录全部插入为止。稳定,O(n),O(1)。
      • 把记录按下标增量(模)分组,对每组进行直接插入排序,每次排序后减小增量,当增量减至 1 时排序完毕。不稳定,不知道(有个实验结论),O(1)。
    • 冒泡排序:
      • 比较相邻的元素,如果第一个比第二个大就进行交换,对每一对相邻元素做同样的工作。稳定,O(n),O(1)。
    • 选择排序:
      • 每次在未排序序列中找到最小元素,和未排序序列的第一个元素交换位置,再在剩余未排序序列中重复该操作,直到所有元素排序完毕。不稳定,O(n),O(1)。
    • 桶排序:
      • 将数组分到有限数量的桶里(比如按照十进制最高位,分到10个桶里),每个桶分别排序(可能使用别的排序算法,也可能递归桶排序),然后把排序好的桶连接起来。
      • 稳定。桶数量 = 数据量时,O(N),O(N)。桶数量 = 2,完全递归桶排序,O(NlogN),O(N)。
    • 归并排序:
      • 将待排序序列分成两部分,先对两部分 分别递归排序,然后进行合并。稳定,O(nlogn),O(n)。
    • 堆排序:
      • 堆是一种完全二叉树,最大值堆:子节点均小于父节点,最小值堆:子节点均大于父节点。
      • 插入:放在完全二叉树最后一点,一直往上升。
      • 删除:取出根节点,最后一点升顶,往下降。
      • 不稳定,O(nlogn),O(1)(树状数组)。
    • 快速排序:
      • 随机选择一个基准元素,通过一趟遍历 将要排序的数据分割成两部分,一部分全部小于等于基准元素,一部分全部大于等于基准元素,继续对两部分递归快排。不稳定,O(nlogn),O(1)。
      • 最优:每一次选基准元素都恰好选到中位数,⼆叉树的层数(logn)即为递归需要进⾏的次数,并且每轮递归结束时,都将⼆叉树遍历了⼀遍(n),O(nlogn)。
      • 最差:数组完全倒序,每次都选到最大的作基准,O(n^2)。
      • 平均:
      • 然后错位相减:nA(n) - (n-1)A(n-1)
  • 【复旦】用栈实现 Hanoi:
    • 实现:应该指盘子堆叠 LIFO。
    • Hanoi:将 A 上面的 n-1 个盘子移到 C 上,即 A(n-1) 次;将第 n 个盘子移到 B 上,1 次;将 B 上面的 n-1 个盘子移到C上,即 A(n-1) 次。A(n) = 2A(n-1) + 1。
  • 【北航】贪心算法得不到最优解的例子
  • 【复旦】最短路径有几种算法,复杂度
    • Floyd:求所有点到所有点的最短路径。

      • for 源点 i,for 终点 j,for 松弛点 k,d[i][j]=min(d[i][j], d[i][k]+d[k][j]),O(n^3)。
    • Dijkstra:求原点到所有点的最短路径,正边权图。
      • 选择目前仍未确定最短路的 距离最短顶点 k(堆优化),确定 k 和 k 的前向,别的顶点对 k 松弛一遍 d[j]=min(d[j], d[k]+edge[k][j]),O(ElogV),E:对每条边都松弛一遍,logV:入堆出堆。
  • 【复旦】最小生成树(MST)是什么,怎么求。
    • 一个联通子图,包含所有结点,边数 = n-1,边权之和最小。存在多个。
    • prim(点 稠密图):每次选择 与连通块之间的边权值最小的顶点(堆),直到已选 n 个顶点。维护 {边权, 边顶点1, 顶点2} 的结构体,用堆来存,每次 logV 选最小顶点,选完更新其他顶点(旧信息出堆,新信息入堆,Σ边数×logV,常数为最大度),O((E+V)logV)。
    • kruskal(边 稀疏图):每次选择 两顶点未连通(并查集)权值最小的边,直到已选 n-1 条边。边按权值排序 然后依次选边,O(V+ElogE) 排序 。
  • 【北航】从海量数据里找到一个相对大的数
    • 分块,分成1000块,找每块里最大的 K 个数,再把这 1000K 个数进行排序。
  • 线性表:数组,链表,栈,队列。
  • 二叉树:满二叉树(每一层都最大节点数量),完全二叉树(一行行排),二叉搜索树,前中后序 层序 遍历。
  • AVL 树(二叉平衡树):改进的搜索二叉树。
    • 每一个结点的左右分支绝对高度不超过1,(1为平衡因子)。
    • 增删后,通过旋转的方式重新恢复平衡。
  • 图的邻接表:通过链表存储图的连接关系。本顶点存在表头,相邻顶点依次以单向链表形式存在后面,V 个链表。适合稀疏图。
  • DFS / BFS:
    • DFS:将图中每个顶点的访问标志设为 false,之后搜索图中每个顶点,如果未被访问,则以该顶点 V 为起始点出发,访问 V,依次递归 DFS 访问 V 的各个未被访问邻接点,直至图中所有和 V 连通的顶点都被访问到。(栈)
    • BFS:从图中某顶点 V 出发,访问此顶点后,依次访问 V 的所有未访问邻接点,之后,按这些顶点被访问的先后次序,依次访问它们的邻接点,直至图中所有和 V 连通的顶点都被访问到。(队列)
  • 【高瓴】无向图求割点。
    • 割点 / 关节点:

      • 若删除某个节点 u 和它带有的边,连通分量数目增加。
      • 若生成树中某个非叶子顶点V,其某棵子树的根和子树中的其他节点,均没有指向V的祖先的回边,则V为关节点。因为删去v,则其子树和图的其它部分被分割开来。
    • Tarjan 复杂度 O(V+E):
      • dfn 数组 维护从某节点开始 dfs 的访问顺序。
      • low 数组 维护某节点 dfs 能访问到的最小 dfn 节点,也就是最祖先的节点;平常。
      • 先 dfs,没点了 / 该点是祖先 回溯,回溯过程中,修改父亲节点 low = 子节点 low。
      • 如果一个父节点 v 的子节点 c 的 low[c] ≥ dfn[v],即我除了 连父节点的环,就没有连更早的祖先,那么 v 是割点。如果 low[c] > dfn[v],即 我没有连回任何祖先的环,则 c - v 是割边。
      • (为什么没有连到其他更年长的兄弟的环呢?因为如果有,无向图 则兄弟 dfs 时就会遍历到我,并且遍历到父节点,从而拥有了连到父节点的环。)

机器学习

  • 【复旦】列举比较常见的聚类算法,K-means 原理,除了 K-means 还有什么聚类算法

    • K-means:

      • 选择初始化的 k 个样本作为初始聚类中心
      • 对数据集中每个样本 ,计算它到 k 个聚类中心的距离,并将其分到聚类中心距离最小的类别;
      • 针对每个类别 ,重新计算它的聚类中心 (该类所有样本的质心);
      • 重复上面两步操作,直到达到某个中止条件(迭代次数、最小误差变化等)。
    • 优:容易理解,效果不错,复杂度低

    • 劣:容易陷入局部最优,K 值需人为设定,对初始聚类中心敏感,对异常值敏感,不适合非凸形状聚类。

    • 其他聚类算法:

      • 均值偏移 mean shift 更密集的地方 滑动窗口
      • 层次聚类:自下而上,一开始将每个数据点视为单一的聚类,然后依次合并。
  • K 近邻(KNN):

    • 给一个新数据,通过与它离得最近的 K 的样本 类别 投票,决定它是什么类别。
    • 优:模型不用训练,对异常值不敏感。
    • 劣:模型预测复杂度为 O(已有数据个数),K 值有影响,或许不适合很多特征。
  • 【北航】谈一谈梯度下降

  • 【北航】最小二乘法:

    • 最小二乘法是解决曲线拟合问题最常用的方法。其基本思路是:令

      其中,

      是事先选定的一组线性无关的函数,

      是待定系数

      ,拟合准则是使

      的距离

      的平方和最小,称为最小二乘准则。

  • 【复旦】神经网络中的激活函数举例,它们各自的特点,以及哪个激活函数效果更好,为什么

    • sigmoid: \(\sigma(x)=1/(1+e^{-x})\);

      • 优:将数值压缩到 0 1,导数为 \(\sigma(x)(1-\sigma(x))\) 好算。
      • 劣:输出均值非0(0.5),梯度消失(Gradient vanishing)每次传过来的梯度都会乘上小于1的值,靠近输出的层 参数更新幅度大,而靠近输入的层 参数更新幅度小。
    • ReLU: max(0, x) REctified Linear Unit
      • 优:不饱和(梯度不会过小),计算量小
      • 劣:输出均值非0,Dead ReLU:某层输入< 0,相应的输出值为0,那么此时该层就会"死亡",参数不会更新,而且不可逆转,神经元永远失效。
      • Leaky ReLU: >0, 1 | <0, 0.1。解决 Dead ReLU。
    • Tanh:
      • 优:输出均值为0,原点附近与 y = x 函数相近;
      • 劣:梯度消失(Gradient vanishing,但比 sigmoid 好),计算量大。
    • softmax(应该并不算): ,将多分类的输出值 转换为 0~1 Σ=1 的概率分布。
  • 【复旦】损失函数有哪些

    • MSE:欧距离不开根号 L2 loss;RMSE。
    • MAE:绝对值 L1 loss。
    • cross-entropy(分类): \(L=−[y\log\hat y+(1−y)\log(1−\hat y)]\) ,
    • Hinge Loss(分类):正确类别 要比 其他类别 大一个 margin。
  • 【复旦】BP 的英文全称,原理

    • backward propagation。
    • 首先,ANN 是怎么训练的。目标函数 求导 导数方向向下走一小步 gradient descent。
    • 求导:\(y=f(x), \part y/\part t=\part y/\part x\cdot\part x/\part t\)
  • 【复旦】解决过拟合的方法并具体说明

    • 过拟合:训练集上表现很好,测试集上表现很差。欠拟合:训练集上表现很差。
    • 解决过拟合:
      • 通过交叉检验,得到较优的模型参数;
      • 正则化,loss 添加正则项。L1(绝对值的和)L2(平方开根)正则。
  • 【复旦】支持向量机怎么改进,改进算法有哪些,改进方向是什么

    • SVM:分类超平面跟两类数据的间隔要尽可能大(即远离两边数据)
    • 先将数据变成线性可分的,再构造出最优分类超平面;通过选择一个核函数 K ,将低维非线性数据映射到高维空间中。
    • 优:
    • 劣:
  • 【复旦】线性回归 / 逻辑回归,原理和区别

    • 线性回归:用 WT+b 直线 拟合数据,loss function MSE(欧几里得距离)。logistic 回归:sigmoid 函数套上一个回归模型, loss function 最大似然估计,多标签则 n 个 二分类器。
    • 逻辑回归:分类问题,线性回归:回归问题。
    • logistic 回归 损失函数:对数似然函数,\(L(\hat y,y)=-(y\log\hat y+(1-y)\log(1-\hat y))\)
  • 【北航】朴素贝叶斯:

    • 全概率公式,贝叶斯公式 P(A|B) = P(B|A)*P(A)/P(B)。
    • p(类别|特征) = p(类别) Πp(特征|类别) / Πp(特征)
    • 朴素 naive:特征之间相互独立,无超参可以调。不朴素就是考虑特征间 相关 / 依赖关系。
    • 对异常值敏感吗?感觉不敏感,(比例不高的)异常值会被淹没。
    • 拉普拉斯修正:
  • 【复旦】模式识别中有哪些常用距离(马氏距离、棋盘距离、街道距离、欧氏距离)

    • 欧氏距离:平方和开根号,旋转不变性。
    • 曼哈顿距离:|x1 - x2| + |y1 - y2|,城市街区距离。切比雪夫距离:max(|x1 - x2|, |y1 - y2|)
    • 马氏距离:两个分布有多相似,数据的协方差距离,
    • 余弦相似度:cos(A, B)= A*B / |A|*|B|,方向的差异。
  • 特征归一化 / 标准化 / normalization:消除特征间 单位和尺度差异的影响。

  • one-hot:把分类变量表示为二进制向量;直接使用不重复的数字,会将人工假设导致的误差引入到类别特征中。

  • 【北航】处理高维组合特征,PCA:

    • 简化数据集的技术,它是一个线性变换,把数据变换到一个新的坐标系统中,任何数据投影的第一大方差在第一个坐标(称为第一主成分)上,第二大方差在第二个坐标(第二主成分)上,依次类推。
    • 用于降维,同时保持数据集的对方差贡献最大的特征。
  • 数据不平衡,如何解决:

    • 主要存在于有监督机器学习任务中。过多关注多数类,从而使得少数样本的分类性能下降。
    • 过采样 / 欠采样,改变权重,数据增强,集成学习(Adaboost),转换为异常检测问题。
  • 【北航】决策树,随机森林:

    • 构造:

      • 学习一颗最优的决策树,是一个NP-完全问题,因此,传统决策树算法基于启发式算法,例如贪心 即每个节点创建最优决策。
      • 最优:最大 信息增益、信息增益比(解决数据不平衡)、Gini 系数。
      • 局部过拟合的剪枝:创建好决策树后,再从下往上剪枝。
    • 随机森林的随机性:每颗树的训练样本是随机的;选取的特征集是随机的。
    • 为什么不能用全样本 训练 m 棵决策树:因为训出来都一模一样,不能避免过拟合。
    • 优:随机森林并行,处理搞维度数据(不用降维)
    • 劣:训练慢,在噪声较大的数据集 过拟合。
  • 【北航】集成学习:

    • Bagging:并行训练多个分类器,集体投票 减少方差。
    • Boosting:串行 迭代,提高被错误分类的样本的权重,降低被正确分类的样本的权重,集体投票。
    • XGBoost:
  • (简历问题)ARIMA,LSTM,TCN,RNN:【】

    • ARIMA:
    • RNN:
    • LSTM:RNN 的问题:不适用于长期记忆。基本思想:
      • 引入“门运算”,遗忘门 输入门,选择性记忆。
      • 引入“门运算”,将梯度中的累乘变为累加,解决梯度消失问题
    • TCN:RNN 的问题:只能串行计算,要保存所有中间变量,因此非常计算密集。因果卷积 && 空洞 dilated 卷积 + 残差模块。
    • Markov:
  • 【复旦】顶会或顶刊名称:

    • CVPR: International Conference on Computer Vision and Pattern Recognition;
    • ICCV: International Conference on Computer vision
    • ECCV: European Conference on Computer Vision
    • ICML: International Conference on Machine Learning
    • NeurIPS: Annual Conference on Neural lnformation Processing Systems
    • AAAl: Association for the Advancement of Artificial Intelligence
    • ICLR: International Conference on Learning Representation
    • IJCAI: International Joint Conferences on Artificial Intelligence
    • ACM SIGKDD: The Association for Computing Machinery's Special Interest Group on Knowledge Discovery and Data Mining
    • SIGGRAPH: Special Interest Group for Computer GRAPHICS
    • EMNLP: The Conference on Empirical Methods in Natural Language Processing
    • 顶刊:
      • TPAMl: IEEE Trans on Pattern Analysis and Machine Intelligence.
      • lJCV: International Journal of Computer Vision
      • TIP: IEEE Transactions on lmage Processing

操作系统(非重点)

  • 【计算所】中断、虚拟内存、进程和线程通信

  • 【北航】进程调度算法(可能是 LIFO 这种?)

    • FCFS 先到先得,SJF shortest job first 短作业优先,RR round-robin 轮流,multi level feedback queue
  • 【北航】进程之间通信的方式:

    • shared memory,message passing。
  • 【北航】进程和线程的区别:

    • 进程:资源分配最小单位,线程:资源调度最小单位
    • 进程有独立地址空间,代码段、堆栈段、数据段,线程共享进程中的数据,使用相同的地址空间。线程通信更方便,可以直接 shared memory。
    • 线程出错(段错误 除0),会 kill 掉整个进程(包括其他线程)
  • 【北航】临界区:访问临界资源(互斥访问资源)的那段代码。

计算机网络(非重点)

  • 【复旦】TCP 和 UDP 的区别

  • 【北大】TCP 三次握手

    • 一次握手:客户端发送带有 SYN 标志的连接请求数据包给服务端

      二次握手:服务端发送带有 SYN+ACK 标志的连接请求和应答数据包给客户端

      三次握手:客户端发送带有 ACK 标志的应答数据包给服务端(可以携带数据了)
    • 四次挥手:两边都发 FIN+ACK。
  • 【北航】输入网址点击转到后发生的事

    1. 应用层:DHCP 协议,得到本机 IP 地址。
    2. 网络层 / 链路层:ARP 协议,IP地址 → 物理地址,得到 DNS server 的 MAC 地址。
    3. 应用层 & 传输层 & 网络层 & 链路层:DNS 域名解析,得到 IP 地址
    4. 应用层 & 传输层 & 网络层 & 链路层:url 解析得到 HTTP 报文,组装 TCP/UDP → IP → MAC 报文,建立 TCP/UDP 连接。
  • 【北航】计网 各个层的功能:

    • OSI:应用层,表示层,会话层,传输层,网络层,链路层,物理层。
    • TCP/IP:应用层,传输层,网络层,链路层,物理层。
    • 交换信息的表示方式,管理主机间的会话;
    • 传输层:为端到端连接提供(可靠的)传输服务。
  • 【北航】为什么网络层不直接面向连接:

    • IP 地址不断变化,不断建立连接的代价。
    • 应用场景如视频通话,没有必要性。
  • 【北航】DNS的工作原理:

    • 递归查询:本地 server 也不知道,那我去帮你问吧。
    • 迭代查询:本地 server 告诉你上一级 server 的地址,你再去问吧。
  • 【北航】OSPF 协议:

    • open shortest path first。
    • 使用 link state 协议:发Hello报文 - 建立邻接关系 - 形成链路状态数据库 - dijkstra 算法 - 形成路由表。
    • 就是一个简单的寻最短路,链路cost是管理员配置的。
    • OSPF 消息直接承载在 IP 数据报中(而非TCP / UDP),有5种报文(hello DBD摘要 LSR详细讲讲 LSU我的状态多个LSA LSAck收到),不是ICMP通告。
    • OSPF属于哪一层:有些人说OSPF使用IP协议的功能,应该在IP层之上,即传输层;也有些人说OSPF是路由协议里的一种,应该属于网络层。OSPF报文直接封装在IP数据包内,专门为 TCP/IP 而设计的路由协议,因此属于网络层。

数据库(非重点)

  • 【北航】1 2 3 NF 范式:

    • 1:数据表每一列都不可分割,即 某个数学不能有多个值,不能表中套表、
    • 2:每行必须可以唯一区分(主键存在)
    • 3:某个属性不依赖于其他属性。比如 AI工程师+金融 → 薪资=高,那么就单独建一张表存储这个关系。
  • 【北航】除了关系型数据库还有什么数据库?
    • 网状数据库、层次数据库之类。

计算机组成原理(非重点)

  • 【复旦】你电脑内存多少g的,硬盘多少g的,内存和硬盘的关系是怎样的

    • 16.0 GB (15.3 GB 可用),512 GB,两码事,内存是硬盘的 cache。
  • 【北航】设置缓冲区的理论依据:

    • 局部性原理:时间局部性(现在访问的 过会还可能访问)空间局部性(访问这个点 旁边数据也可能访问)。
  • 【北大】【北航】电脑开机的过程:

    • 计算机是如何启动的,我说先进bios,老师打断我说bios在哪?我说rom啊,然后老师又问rom在哪,我猜是cpu(并不是),但不敢乱说,只好说没研究那么深。
    • 通电 → 初始化启动程序 BIOS → 操作权交给 CPU 载入 os 到内存。
    • 通电 → BIOS 硬件初始化和检查 → 控制权交给主引导记录(MBR) → MBR找启动文件并读入内存 → 控制权给启动文件 载入操作系统
    • BIOS:一组固化到计算机内主板上一个ROM芯片上的程序,保存着计算机最重要的基本输入输出的程序(ROM)、开机后自检程序、系统自启动程序,其主要功能是为计算机提供最底层的、最直接的硬件设置和控制。
    • 主板:
      • 电路板,安装了 BIOS芯片、南北桥芯片、I/O控制芯片、键盘和面板控制开关接口、指示灯插接件、扩充插槽、直流电源供电接插件 等元件
      • 如果说CPU是电脑的心脏,那么主板就是血管和神经,有了主板,电脑的CPU才能控制硬盘、软驱等周边设备。
      • 北桥芯片:主板上离CPU最近的芯片,控制 CPU 内存 显卡 等高速设备。
      • 南桥芯片:负责I/O总线之间的通信,如PCI总线、USB、LAN、ATA、SATA、音频控制器、键盘控制器、实时时钟控制器、高级电源管理等。
    • 按下开机开关,电脑主板给电源发送启动信号,电源开始向主板、硬盘、光驱等设备供电。
    • 硬件设备通电后,电脑开始启动,首先,主板开始初始化启动程序,主板BIOS先检测所有硬件是否连接正常。
    • 确认连接的设备正常后,电脑开始真正启动,主板会再一次对某些部件进行一些检测,准备载入操作系统。
    • 所有检测完成后,主板将操作权交给了CPU,CPU按照预订的程序,开始从硬盘读取储存的信息,并加载在内存
    • 系统的加载是相当复杂的,内容繁多,首先,系统先加载操作系统所需的文件,然后检测所有的硬件,加载相应硬件的驱动程序加载完毕后进入欢迎界面。
  • 【北航】USB 接鼠标 键盘有什么区别。

    • 不需要在bios中进行任何设置,插在计算机usb口上可以直接使用,热插拔。
  • 【北航】计算机的存储介质:

    • 半导体:ROM RAM,磁盘 磁介质。
  • 【北航】计算机 组成 体系结构 有什么区别?

    • 组成:实现, 存储器 处理器 数据类型 指令格式 这些。
    • 体系结构:概念性结构和功能特性,更 high-level。
  • 【北航】什么是虚拟内存,转换,TLB:

    • 虚拟内存:

      • 每个程序拥有自己的地址空间,这个地址空间被分割成多个块,每一块称为一页 (Page, 4KB)。
      • 这些页被映射到物理内存,但不需要映射到连续的物理内存,也不需要所有页都必须在物理内存中。
      • 虚拟内存:物理内存扩充成更大的逻辑内存,从而让程序获得更多的可用内存。程序不用将地址空间中的每一页都映射到物理内存,也就是说,一个程序不需要全部调入内存就可以运行,这使得有限的内存运行大程序成为可能。
    • MMU:地址空间 → 物理内存,TLB: Translation Lookaside Buffer 页表缓冲区。

编译原理(非重点)

  • 【北航】从代码到可执行程序的步骤:

    • 词法分析,语法分析,语义分析,中间代码生成,优化中间代码,生成代码,优化代码。
    • 词法 lexical 分析:识别单词类型是什么(int x = 3 → int, x, =, 3)
    • 语法 syntax 分析:int x = 3 符合语法规则吗,fit 哪一条语法规则。
    • 语义 semantic 分析:这个语法规则代表什么意思,我们为语法规则配上什么样的动作。
    • 预处理 → 编译 → 汇编(得到二进制文件) → 链接(对调用的库)
  • 词法分析:
    • language:字符串集合,比如 L = {ω | ω∈(a,b)*} 。
    • grammar 文法:表达 language 构成规则的形式化方法。\(G=(V_N,V_T,S,P)\),非终结符集,终结符集,文法开始符号,产生式。
    • re FA grammar。
    • NFA → DFA:二进制状态法,n state 的 NFA,变成DFA 最多可能有 2^n 个 state。
    • DFA → minimum DFA:集合划分法。把所有状态认为是一个集合,根据集合状态转移的分歧,切割集合。
  • 【北航】语法分析:LL 分析法,LR 分析法:
    • LL:
    • 终结首符集 FIRST(a):从某个短语可以推出的 所有句子 的首终结符。
    • 后随终结符集 FOLLOW(A):·所有合法句型中,可能出现在 A 后方的终结符集合。
    • 构造 预测分析表。
    • LR:
    • 画状态转移自动机 → LR分析表。
    • LL 和 LR 的比较:
      • 自上而下 & 自下而上。
      • LL 写程序更简单,分析表更小;
      • LR 适用范围更广,能支持更多 CFG(上下文无关文法)。
    • LL 和 LR 的限制:
      • LL:比如 LL(1),如果两个产生式 拥有相同的 first 集,那么分析表冲突,不能用 LL。
      • LR:一个状态里,出现 移进-规约冲突,或有两个以上不同的规约。
  • 【北航】上下文无关文法 CFG 的特点:
    • 可以随意将 文法规则左边的非终结符 替换为 右边的终结符或非终结符,不用考虑 LHS 的上下文。

其他

  • 【复旦】句柄是什么,句柄怎么用。(不对,这好像是问的编译原理)

    • 在程序设计中,句柄是一种特殊的智能指针,指获取另一个对象的方法(广义的指针)。
    • Windows 句柄 16 位无符号整数。
    • 和内存管理的虚拟地址(段 页式,页表 MMU 翻译)有关。
  • 【北航】面向对象的三个性质:
    • 封装 集成 多态(重载 overload 重写 override)。
  • 【北航】函数名,函数指针,函数的入口地址:
    • 函数名:c语言中,函数名就是一个函数指针。
    • 入口地址:函数时执行的第一条指令的地址,通过这个地址可以找到该函数。
    • 函数指针:指向入口地址,就可以通过该指针调用函数了。
  • 【北航】数组名,数组首地址,数组指针:
    • 数组名不是指针,是数组首地址。但 sizeof 时返回整个数组地址大小。
    • 编译器会自动将 数组名 a 替换为 指向该数组首元素的指针 &a[0]。
  • malloc 和 new 的区别。
    • new从自由存储区上分配内存,malloc从堆上分配内存。自由存储区是C++基于new操作符的一个抽象概念,凡是通过new操作符进行内存申请,该内存即为自由存储区。
    • new、delete 返回的是某种数据类型指针;malloc、free 返回的是 void 指针。
    • 使用new操作符申请内存分配时,无须指定内存块的大小,编译器会根据类型信息自行计算;使用malloc则需要显式指出所需内存的尺寸。
    • new 可以调用对象的构造函数,对应的 delete 调用相应的析构函数;malloc 仅仅分配内存,free 仅仅回收内存,并不执行构造和析构函数。
    • new、delete 是操作符,可以重载;malloc、free 是函数,可以重写(覆盖)。

cs 保研经验贴 | 综合面试题库的更多相关文章

  1. 保研经验帖----江西师范大学 to 华中科技大学

    呼,距离拿到华科cs的offer也有一段时间,有好几次准备动手写这篇经验帖,但就是理不清自己想表达什么,今早起来状态还不错,洗漱的时候思路居然通透了,哈哈哈~ 一.基本情况 先简单介绍笔者的一些基本情 ...

  2. SAP成都研究院Sunshine: 我的C4C实习感受和保研之路

    今天的文章来自SAP成都一位实习生,曾经和Jerry同在C4C成都开发团队一起工作过.在Sunshine最后一个工作日里,Jerry和Sunshine一起吃饭的时候,她曾经聊到接下来的保研打算和将来工 ...

  3. 计算机保研,maybe this is all you need(普通双非学子上岸浙大工程师数据科学项目)

    写在前面 9.28接收了拟录取通知,也终究是尘埃落定了,我人生的又一个阶段也终于结束.面对最终录取结果,或多或少会有所遗憾,但也还是基本达到了预期的目标了. 作为在今年严峻的保研形势下幸存的我,一直想 ...

  4. JAVA 综合面试题

    JAVA 综合面试题 2007-08-12 目录 TOC \o "1-3" \h \z \u Java面试题整理 9 Java面向对象 9 1. super()与this()的区别 ...

  5. 我的美国(北美)计算机CS实习面试经验分享

    过去的一年多里,参加了一些面试,虽然面过的公司不多,但都从头一直走到尾.毕竟自己也是花了大量的时间和精力在这一场场的面试里.所以,就絮叨下自己的一些经验,希望能给在美国找实习找工作的同学们提供一点点帮 ...

  6. 多测师讲解第一个月 _综合面试题_高级讲师肖sir

    第一个月综合面试题 1.  冒烟测试是什么意思?  对主要的用例测试 2.你们公司的项目流程是什么? 3.你们公司的bug分几个级别?  4个 4.你对外键是怎么理解的? 你会使用外键吗?给一个表添加 ...

  7. (各个公司面试原题)在线做了一套CC++综合測试题,也来測一下你的水平吧(二)

    刚才把最后的10道题又看了下.也发上来吧. 以下给出试题.和我对题目的一些理解 前10道题地址 (各个公司面试原题)在线做了一套CC++综合測试题.也来測一下你的水平吧(一) 11.设已经有A,B,C ...

  8. COGS732. [网络流24题] 试题库

    «问题描述:假设一个试题库中有n道试题.每道试题都标明了所属类别.同一道题可能有多个类别属性.现要从题库中抽取m 道题组成试卷.并要求试卷包含指定类型的试题.试设计一个满足要求的组卷算法.«编程任务: ...

  9. 一个面试题的解答-----从500(Id不连续)道试题库里随机抽取20道题!

    做一个考试系统的项目,现在从试题库里面随机抽取20道题 比如我题库有500道题(ID不连续).题目出现了,如何解决呢,随机抽取! 1,我们先把500道题的id存进一个长度为500的数组. 2,实现代码 ...

  10. 【网络流24题】No.7 试题库问题 (最大流,二分图多重匹配)

    [题意] 假设一个试题库中有 n 道试题. 每道试题都标明了所属类别. 同一道题可能有多个类别属性.现要从题库中抽取 m 道题组成试卷.并要求试卷包含指定类型的试题. 试设计一个满足要求的组卷算法. ...

随机推荐

  1. vue表单校验限制输入数字后小数点两位(包括避开通过中文输入法的那些坑)

    <el-form-item label="海运运费系数"> <el-input v-model.trim="ruleForm.oceanFreightC ...

  2. Jmeter六、采样器解析

    一.HTTP request sampler 默认端口:80 协议protocol:http,https,file 参数中有特殊字符,勾选编码encode send files with reques ...

  3. 关于js数组方法forEach()

    1.forEach()是什么? forEach()是一种数组遍历方法. 在js最基础的遍历数组方法可能是这样的 点击查看代码 var myArr = [1, 2, 3] for(var i = 0; ...

  4. mitudesk的pytorch基础

    pytorch定义张量的方法和Numpy差不多 2. 标量才能对张量求导,代表其在各个方向上的偏导数,结果是一个张量 3. 在pyt中张量可以对张量求导,前提条件是求导时传一个1,1,1,1,进去,其 ...

  5. selenium定位元素位置-xpath

    xpath定位元素位置: 1.定位父兄节点: <div> <span>我是span1标签</span> <a id="1" href=&q ...

  6. centos7 redis 无法用 systemctl 启动

    今天刚安装了redis,修改了 /etc/redis.conf 的内容. 尝试在 bind 后添加一个地址 "bind 127.0.0.1 -::* 192.168.2.1", 后 ...

  7. QT网络编程【二】【Socket】

    1.QT中添加socket 库的相关操作 2.正常c++11 VS2019使用socket库的操作 3.winsock2 与 sys/socket.h的区别? 4.WinSock2 的基本操作? 详细 ...

  8. Manage your references to .Net assemblies Dynamics 365 for Operations VS projects

    (Dynamics 365 for Operations was previously known as the New Dynamics AX) Dynamics 365 for Operation ...

  9. linux软件安装篇

    nginx篇 第一件事情 cd /etc/yum.repo.d mv CentOS-Base.repo CentOS-Base.repo.bak wget -O CentOS-Base.repo ht ...

  10. MariaDB简介

    一.什么是数据库 DB 与 DBMS :DB(DataBase)即数据库,存储已经组织好的数据的容器.DBMS(DataBase Manage System)是数据库管理系统用来对数据库及数据库中的数 ...