Summary(一)
- KNN算法:
- 概念:求得输入的K个最相似的样本,选取其中类别最多的那一项
- 优点:在多分类问题上优于SVM
- 缺点:当出现其中一种类别数量特别多时,会出现问题
- SVM算法(支持向量机):
- 概念:利用维度变化,求得超平面来进行分类
- lagrange乘子法:在遇到
f(x)
和约束条件g(x)=0,k(x)=0
时,令h(x)=f(x)+a1*g(x)+a2*k(x)
求x1,x2...xn
的偏导为0. - KTT条件:当遇到
f(x)
和约束条件g(x)<0,k(x)<0
时,令h(x)=f(x)+∑aigi(x)<0+∑bihi(x)=0
,求取f(x)
的各个偏导为0,∑aigi(x)=0和∑bihi(x)=0
,两个两个求解 - 损失:
- hinge损失:
max(0,1-z)
- 指数损失:
exp(-z)
- 对率损失:
log(1+exp(-z))
- hinge损失:
- sigmoid函数:
1/(1+exp(-z))
:- 特性:
- 无论什么输入的输出都在(0,1)之间,可用作
logistic回归
- 可在神经网络中用作最后的映射函数
- 但是会出现梯度消失问题
- 输出恒正恒负,导致收敛震荡
- 无论什么输入的输出都在(0,1)之间,可用作
- 特性:
- 收敛算法:
- 梯度下降算法:
- BGD(批量梯度下降):对所有的样本一次性进行训练,数量大时间慢
- SGD(随机梯度下降):随机选取batch数量的样本进行多次训练,速度快但有可能收敛不到最优解
W(n+1) = W(n)-learning_rate*dW
- 牛顿法:
- 拟牛顿法
- 共轭梯度法:
- Levenberg-Marquardt算法
- 梯度下降算法:
-
logistic回归
:线性回归的一种,属于监督性学习,二分类方法,将最后的输出用sigmoid函数进行映射. -
softmax回归
:多分类回归,类似于logistic回归,只不过最后会对应于多个类型 -
最小二乘法(LMS)
:使用二范数求取误差项. -
感知机
:最简单的二层神经网络 -
S型神经元
:sigmoid作激活函数的神经元 -
ANN
:人工神经网络,包括了CNN(卷积神经网络)
,RNN(循环神经网络)
,DNN(深度神经网络)
-
CNN(卷积神经网络)
:巨大数量大图片,分为很多小部分对应着很多卷积核 -
DNN(深度神经网络)
:全连接的多层神经网络 -
RNN(循环神经网络)
:可以在当前时间作用于自身,用于自然语言处理,语音识别,手写体识别等方面,突破了时间轴- LSTM(长短时记忆单元):通过控制门的开关来进行时间的保存
-
-
奇异函数
:具有不连续点的函数(阶跃函数) -
梯度消失问题
:由于反向传播导致的梯度趋于0 -
批量归一化(Batch Normalization)
:用于解决梯度消散问题,加速下降,防止过拟合 -
数据预处理
:去均值,归一化,PCA(主成分分析)技术,白化 -
激活函数
:- Tanh(z) = (exp(x)-exp(-x))/(exp(x)+exp(-x))
- ReLu(z) = max(0,z)
- ELU
- LReLu = max(αz,z),α一般取较小正值0.01等
-
衰减学习率
:减小步长避免震荡- Adagrad(使高权重的学习率降低,低权重的学习率升高):
cache += dx**2
-
x += -learning_rate*dx/(np.sqrt(cache)+eps)
其中eps
一般取(1e-4到1e-8)
- RMSprop
cache = decay_rate*cache+(1-deacy_rate)*dx**2
x += -learning_rate*dx/(np.sqrt(cache)+eps)
- Adam
m = β1*m+(1-β1)*dx
v = β2*v+(1-β2)*dx**2
x += -learning_rate*m/(np.sqr(v)+eps)
- Adagrad(使高权重的学习率降低,低权重的学习率升高):
- 建立简单神经网络:
- 数据预处理:批量归一化
- 正向传播计算
loss function
(正则化防止过拟合) - 反向传播计算梯度(使用链式法则,注意激活函数处的反向传播)
- 重复训练