邓布利多的冥想盆有时候还是要拿出来用用
从OpenCV到Deep Learning
如前所言看到了Deep Learning微微扬起的嘴角以后,就像突然发现了一片海洋。
- Caffe & MxNet & Tensorflow & PyTorch
- RCNN & FastRCNN & FasterRCNN & MaskRCNN;
Deep Learning 圣经
那时候还没有对Deep Learning的记忆,只有远在校园时期,被称为神棍骗子躺在Matlab中用来数学建模的神经网络BP工具箱。
直到Deep Learning英文预印版出现,我们人手一份,一人一章,开始研讨学习。(学习查资料的过程中发现其实Pattern Recognition and Mechine Learning讲的更好),印象最深刻的还是古老的蒙特卡洛方法,让脑海中概率论只是不断丢硬币猜正反的刻板印象一扫而空。
一.应用数学与机器学习基础
前面基本上就是自述神经网络如何命运多舛,在几起几落更换皮肤后,如何在ImageNet比赛中吊打一切以Deep Learning之名重生。重生之后还遇到哪些机遇与挑战。
然后就是劝导大家要学好线性代数啦,概率与信息论啦,数值计算啦以及机器学习基础。
机器学习基础又解释了基本的过拟合,欠拟合,最大似然估计,贝叶斯统计,监督与无监督学习,随机梯度下降等概念。
1.监督学习(如Logistic)
- 主要思想: 根据现有数据对分类边界线建立回归公式,以此进行分类
- 目的:寻找一个非线性函数Sigmoid的最佳拟合参数
- 求解方法:梯度下降,随机梯度下降。
为了实现Logistic回归分类器,可以在每个特征上都乘以一个回归系数,然后把所有结果叠加代入Sigmoid函数,结果大于0.5的归入一类,反之归入另外一类
σ ( z ) = 1 1 + e ( − z ) \sigma(z)=\frac{1}{1+e^{(-z)}} σ(z)=1+e(−z)1
其中 z z z可以表示为
z = w T x z=\textbf w^{T}x z=wTx
梯度下降迭代公式
w = w − α ▽ w f ( w ) w=w-\alpha\triangledown_{w}f(w) w=w−α▽wf(w)
2.支持向量机(SVM)
有完备的数学推导证明,早年吴恩达极力推崇,直到 。。。。。。
- 线性可分(linearly separable) 假设
- 分隔超平面(separating hyperplane) 用于分隔N维数据的N-1维对象,它是分类的决策边界
- 支持向量(support vector) 离分隔超平面最近的那些点
3. k-邻近算法(kNN)
kNN算法对未知类别数据集中的各点依次执行以下操作:
- 计算已知类别数据集中的点与当前点之间的距离
- 按照距离递增次序排序
- 选取与当前点距离最小的k个点
- 确定前k个点所在类别的出现频率
- 返回前k个点出现频率最高的类别作为当前点的预测分类
4. 决策树(decision tree)
机器学习中,决策树是一个预测模型,它代表的是对象属性与对象值之间的一种映射关系。树中每个节点表示某个对象,而每个分叉路径则代表的某个可能的属性值,而每个叶结点则对应从根节点到该叶节点所经历的路径所表示的对象的值。
- ID3 (Iterative Dichotomiser 3)
- C4.5 (successor of ID3)
- CART (Classification And Regression Tree)
- CHAID (CHi-squared Automatic Interaction Detector). Performs multi-level splits when computing classification trees
- MARS: extends decision trees to handle numerical data better
- Conditional Inference Trees: Statistics-based approach that uses non-parametric tests as splitting criteria, corrected for multiple testing to avoid overfitting.