谈一下我今天参加完后的感受吧,首先神经网络很重要,他们也很关注这个方面的应用。还有就是很深厚的数学背景,对矩阵,线代,和概率论等知识考察的比较多。
一、简答题
1、目前深度神经网络有哪些成功的应用,简述其适用原因。
2、不同进程之间进行通信的方式有哪些?(至少列出三种)
管道(pipe)、命名管道(named pipe)、信号(signal)、信号量(semaphore)、套接字(socket)、消息队列(message queue)、共享内存和内存映射(mapped memeory)。
3、有N个样本,每个样本都是D维的,使用KNN分类算法,采用欧式距离,(1)其时间复杂度为多少?(2)当N很大时,可以使用什么方法进行优化?(3)K的值对预测的方差和偏差的影响是什么?
现在看来N应该是训练集的样本数,时间复杂度是指的分类一个样本需要的时间。
(1)KNN分类的的思想是,计算待分类样本与训练集中所有样本的距离,找出距离最小的k个,计算那个标签出现的次数最多,将出现最多的标签作为样本的标签。计算距离的复杂度是O(M*D),排序最快得是O(M*log(M)),找出现最多的标签的复杂度是K。因此总的时间复杂度是O(N*D+N*log(N)+K))。
(2)KNN比较费时的步骤在于要计算与训练集中每一个样本的距离,为了减少计算量,可以每次从训练集中随机地选取一部分样本进行,作为分类的依据。假设每次取T个点,则时间复杂度变为O((T*D+T*log(T)+K))。当N很大时,选取的T可以远远小于N。
(3)记样本的真实标签为Y,分类结果记为X,X是随机变量,可以取训练集中所有出现的类标签。
如果K=N,则任意Y,X|Y=训练集中包含样本数最多的类的标签。
如果K=1,则分类结果是离待分类样本最近的训练集中的样本的类的标签。
现在,仍然没有梳理出这里的方差和偏差指的是什么?
二、算法与程序设计题
1、给定数组A=(n可变),请输出所有的组合。
思路是,首先将从小到大排序,记包含k个元素组合的集合为G(k)。
如果知道G(k-1),则采用以下方式生成G(k): U。
2、数组A中相邻两个数的差的绝对值为1,如,给定某一个数字t,求其在数组中的位置。
思路是,用一指针p遍历数组,首先计算当前位置与t的绝对值s,然后移动到p+s处,比较p+s指的元素与t是否相等,若相等,输出当前下标,若不相等,重复计算绝对值、移动,比较步骤。
3、布丰投针问题。平面上有一组距离为d的平行线,向其上任意地投一根长为l(l
答案为2*l/(pi*d).
三、系统设计题
1、神经网络模型,要求计算1、2、3层的两个偏导数。
2、K-means聚类算法,
(1)请写出目标优化函数。
sum_ sum_ dist(x,c_i)
其中C_i表示属于第i簇的点的集合,c_i表示C_i的质心。
(2)常用的终止条件有哪些?
质心不再发生变化,或者只有1%的点属于的簇发生了变化。
(3)结合K-means,描述EM算法的基本原理和步骤。
(4)使用MPI 或MapReduce,如何进行并行。
领取专属 10元无门槛券
私享最新 技术干货