1. 卷积神经网络反向求导时对池化层怎么处理:
无论max pooling还是mean pooling,都没有需要学习的参数。因此,在卷积神经网络的训练中,Pooling层需要做的仅仅是将误差项传递到上一层,而没有梯度的计算。
(1)max pooling层:对于max pooling,下一层的误差项的值会原封不动的传递到上一层对应区块中的最大值所对应的神经元,而其他神经元的误差项的值都是0;
(2)mean pooling层:对于mean pooling,下一层的误差项的值会平均分配到上一层对应区块中的所有神经元
2. dropout原理
https://blog.csdn.net/program_developer/article/details/80737724
3.L1,L2正则化的区别
https://blog.csdn.net/weiyongle1996/article/details/78161512
4.激活函数介绍以及区别
https://blog.csdn.net/tyhj_sf/article/details/79932893
5.梯度爆炸,梯度消失原因以及解决方法
https://blog.csdn.net/qq_25737169/article/details/78847691
6.Logistic Regression推导
https://www.jianshu.com/p/e8dca5613da6
7.Softmax推导
https://www.jianshu.com/p/c02a1fbffad6
https://blog.csdn.net/u014313009/article/details/51045303
8.多分类问题中MAP值的计算
https://blog.csdn.net/tigerda/article/details/78651159
9.信息量,信息熵,交叉熵,KL散度和互信息(信息增益)
https://blog.csdn.net/haolexiao/article/details/70142571
10.一步一步理解GB、GBDT、xgboost
https://www.cnblogs.com/wxquare/p/5541414.html
11.Batch Normalization
https://www.cnblogs.com/guoyaohua/p/8724433.html
12.Kmeans算法Python实现
#!/usr/bin/env python
# coding=utf-8
import numpy as np
import random
import matplotlib.pyplot as plt
#data:numpy.array dataset
#k the number of cluster
def k_means(data,k):
#random generate cluster_center
sample_num=data.shape[0]
center_index=random.sample(range(sample_num),k)
cluster_cen=data[center_index,:]
is_change=1
cat=np.zeros(sample_num)
while is_change:
is_change=0
for i in range(sample_num):
min_distance=100000
min_index=0
for j in range(k):
sub_data=data[i,:]-cluster_cen[j,:]
distance=np.inner(sub_data,sub_data)
if distance<min_distance:
min_distance=distance
min_index=j+1
if cat[i]!=min_index:
is_change=1
cat[i]=min_index
for j in range(k):
cluster_cen[j]=np.mean(data[cat==(j+1)],axis=0)
return cat,cluster_cen
13.KNN
给定训练集,对于新输进来的样例,寻找训练数据集里面与之距离最近的K个样例,根据多数表决规则,如果K个实例多数属于某个类,则把该输入实例划分为这个类。
模型三要素是:距离度量,K值的选择,分类决策规则。
距离度量:使用的距离是欧式距离,或者是更一般的Lp距离或Minkowski距离
p为2则为欧式距离,p=1为曼哈顿距离,p为无穷大则为各个坐标距离的最大值。
K值的选取:
k值减小意味着模型变得复杂,容易发生过拟合,选择较大的k值,可以减小学习的估计误差,但缺点是学习的近似误差会增大,k值一般取一个较小的值,通常使用交叉验证法来选择最优的k值。
K近邻的实现需要考虑如何快速地搜索k个最近邻点。kd树是一种便于对k维(注意这个k是指特征维度,而非KNN里面的k) 空间中的数据进行快速检索的数据结构。kd树是二叉树,表示对k维空间的一个划分,其每个节点对应于k为空间划分中的一个超矩形区域。利用kd树可以省去对大量数据点的搜索,从而减少搜索的计算量。
kd树使用于训练实例数远远大于空间维度的k近邻搜索。当空间维度接近训练实例数时,它的效率会迅速下降,几乎接近线性扫描。
14.SVM
推导:
https://blog.csdn.net/sinat_20177327/article/details/79729551