Unsupervised Machine Learning 无监督学习方法简述 及 深度学习(Deep Learning)、强化学习(Reinforcement Learning)简介
(I)Unsupervised Machine Learning 无监督学习
无监督学习最大的特点就是没有label,最典型的方法就是聚类(Clustering),另外还有主成分分析法(Prcincipal Components Analysis,PCA)。
主成分分析法(Prcincipal Components Analysis,PCA)
主成分分析法(Prcincipal Components Analysis,PCA)主要是用来给模型降维的,之前我们提到模型中features如果太多,会导致模型出现overfitting(过度拟合)等一系列问题。
那么我们不如挑一挑,把几个有关系的features(X1,X2,X3 | X4,X5 | X6,X7,X8,X9)组一起,定义成一个新的features组合(Z1 | Z2 | Z3),这个组合也叫composite variable,这样就实现了降维的效果。
上图左边一大堆X,经过主成分分析后,变成了右图中仅剩四个feature组(composite variable),组内的X们都是有很强统计相关关系的。
PCA不仅仅是给你做一个简单的聚类降维,还会通过特征向量(eigenvectors)和特征值(eigenvalue)将这几个composite variable根据对Y的解释力度大小进行排序,挑选,剔除。
对Y的解释力度大小(proportion of total variance in initial data)就是每个composite variable的特征值,特征向量还为其增添了方向。
PCA根据根据特征值将composite variable排序,解释力度最大的定义为the first principal components,其次为the second principal components…
然后形成scree plots(崖低碎石图/陡坡图),根据解释力度的大小,我们可以自行选择需要保留的维度,就是留几个independent variable(Z)。
实践上,我们至少要保留可以解释85%~95%的composite variable,剩下的剔除掉,以免留的太多产生overfitting问题,实现信息损失和过度拟合的均衡(trade-off)。
Clustering聚类
聚类其实就是把一堆散乱的小点点,给他们划定一个圈一个圈,变成一个个类别。根据不同的实现途径,聚类可以分成k-Means聚类 和 分级(Hierarchical)聚类,另外还有树状图(Dendrograms)。
k-Means Clustering (k均值聚类)
我第一次听到k-means聚类方法是在课上的时候,这是一种非常有趣的聚类方法。
k-Means将实现聚类内距离之和最小,聚类外距离之和最大——这句话是k-means聚类的精髓。
在一群散乱的数据点中,随意选定三个点,作为中心(centroid),然后每个点分别计算自己离哪个中心最近,就跟着哪个中心所属的聚类。
当全部划割好之后,每个聚类内重新计算出一个新的中心,然后取消之前定好的聚类。
再重新计算每个点分别离哪个中心最近,就跟着哪个中心所属的聚类。
如此反复迭代,直到不能变化为止,最终稳定的聚类,就是k-means聚类的结果。
刚才我们提到随意选定三个点,这三个点就是k=3的意思。
k是一种超参数(hyperparameter),在开始前由我们人为设定。
Hierarchical Clustering(分级聚类)
分级聚类从小聚合到大叫Agglomerative Clustering(自下而上聚合),从大到小裂变叫Divisiver Clustering(自上而下裂变)。
Agglomerative Clustering(自下而上聚合)
起初每一个individual observation自己是自己;然后挑选离自己最近的一个,两个人组合,变成一个聚类;然后每个组合再挑选离自己最近的组合,两个组合再组合,变成一个更大的聚类…如此迭代反复。
Divisiver Clustering(自上而下裂变)
起初所有的样本观察点大家都是一家人;然后根据距离将单一聚类分成两个小聚类,然后再分裂…如此迭代反复。
两种分级聚类方式的结果是一致的。
Agglomerative Clustering聚合聚类更适合小聚类,辨别个体特征。Divisiver Clustering裂变聚类更适合大聚类,辨别整体特征。
Dendrograms 树状图
树状图(Dendrograms)有点类似于聚类的另外一种可视化形式。
横轴是聚类类别Cluster,形成拱门(Arch)。
纵轴是聚类之间的距离,形成树突(Dendrite)。
(II)深度学习(Deep Learning)、强化学习(Reinforcement Learning)及人工神经网络(Neural Networks)
人工神经网络(Neural Networks)
考试写选择题,你读题目的过程就是input,大脑思考解题的过程是hidden,最终写出来ABCD的过程是output。
题目一行字,选项一个字母,input和output似乎很简单。
真正复杂的是隐藏起来大脑内部思考的过程,大脑内部是由一个个神经元连接活动的,这就类似于一个神经网络。
效仿人脑,机器学习的人工神经网络(Neural Networks)也是这么回事。
人工神经网络(Artificial Neural Networks , ANN)简单分为三个层次,分别为输入层(input layer),隐藏层(Hidden Layer)和输出层(Output Layer),每个结点(nodes/circles)由线(arrows)进行连接。
输入层和输出层很好理解,ANN机器学习的核心精髓在隐藏层。
隐藏层(Hidden Layer)有两个功能:加和(Summation Operator)和调权(Activation Function)。
比如第一个隐藏层结点是有四个input信息输入的,加和功能(Summation Operator)将四个信息都考虑了进去。
调权功能(Activation Function)既将不同的input给予不同的权重,又将结果标准化至[0,1]的区间。
调节权重:起初随机给予权重,经过不断迭代和监督学习(向前传递调权Forward Propagation,向后传递调权 Backward Propagation),实现更优的权重。
标准化输出:实现非线性(如S-shaped/sigmoidal)的输出,结果在[0,1]区间内。
深度学习(Deep Learning)、强化学习(Reinforcement Learning)
最后简单提一下深度学习和强化学习。
深度学习就是指hidden layer隐藏层的深化。告诉你input的信息,你要通过加多隐藏层神经元的连接活动(逻辑层),来实现更精准的output结果。
强化学习就是指在学习过程中给予一定的反馈。结果正确了给一句鼓励,结果错误了给一句批评,通过不断的试错来发现pattern。
参考资料: CFA Level II <Quantitative Methods>
文 by / 杨翊守 公众号:拂晓Palpitate