此处要对铁哥复杂系统对话机器学习特训班做个总结,此次巡洋舰特训班, 得到了山南海北的朋友支持,大家来自各行各业。
此次课程的核心内容是围绕预测和决策, 以及机器学习, 复杂系统这两门课程是如何帮助我们解决预测与决策问题的。
现实生活中预测的根本难题在于无处不在的复杂性,比如股市,自然灾害, 长久的天气预测, 都很难做到精准。这与迄今人类做的最成功的预测-经典物理学的预测大相径庭,物理预测的核心方法是动力学方法, 即人们由实验出发抽象出运动改变的原因, 用微分方程来 述, 从而取得之后任意的精确解。人类20世纪的伟大成就,从登月到粒子加速器无疑与此方法有关。
但是这种思维模式在人类试图理解那些和自身生存最相关的东西时候却节节溃败。
这种溃败首先是,还原论(把整体拆成部分)思维的溃败。 量子物理里, 我们可以通过了解金属原子电子云的性质, 很好的预测金属的属性。 而你却无法通过了解市场上每个人的特性就很好的预测整个市场走势。 在市场这种系统里, 非常重要的是个体和个体之间的互相作用(博弈)而形成的复杂模式(Pattern), 而非每个人的细节。 这种类型的系统我们通常定义为复杂系统:
由大量单元互相作用组成的系统, 其活动呈现非线性, 往往形成具备无数层级的复杂组织。
这里主要强调的是大量互相作用的微观单元, 通过非线性效应, 得到一个性质与微观单元完全不同的宏观整体。 他强调一套联系不同尺度的数学方法。
复杂性可以被理解为几个完全不同的方面:
1, 高维诅咒: 构成现实生活的系统具有大量未知的维度, 比如生物由无数的细胞组成。 基因,是由无数独立的单元组成的, 市场, 由无数的交易者组成, 这些用物理的描述方法来预测它的运动, 就是极高维度空间的运动问题
2, 非线性诅咒:高维度系统的维度之间具有复杂的相互作用,导致我们不能把系统分解为单一维度然后做加法的方法研究。 高维加上非线性我们将得到对初级极为敏感的混沌系统。
3, 反馈诅咒: 复杂系统中反馈无处不在, 即使是一个简单的一维系统, 反馈也可以使得系统的特性很丰富, 最典型的反馈是某种记忆效应, 使得系统产生复杂的路径依赖, 此刻与历史深刻关联,而关联方法导致复杂的模式产生。
反身性是一种由预测产生的特殊反馈, 当你预测股市的价格, 会引起你的交易策略变化从而影响你的预测, 是为反身性。
4, 随机诅咒: 复杂系统往往含有不包含确定规律的随机噪声,加上噪声, 系统的行为更加难预测, 而很多时候, 我们也无法区分一个系统里发现的模式是噪声导致还是由于元件之间的相互作用。
这四大诅咒是这些系统难以理解和预测的原因, 而这个时候, 复杂系统和机器学习的方法论可以作为一种非常有力的手段帮我们从复杂性中挖掘模式。
第一种方法叫非线性动力学, 它讲的是一种降维的思路。即从非常繁复的要素中化简出最重要的一个或者两个, 从而化繁琐为简单。不管三七二十一先抓住主要矛盾:
1, 如果一个系统可以化简到一维, 那么你只需要研究其内部存在的反馈性质并描述它即可。 负反馈导致稳定定点产生, 正反馈导致不稳定性。
2, 如果一个系统可以化简到二维, 那么你需要研究两个维度间的相互作用,最终可以互为负反馈而稳定下来,互为正反馈而爆发,或者产生此消彼长的周期轨道。 比如恋爱中的男女是个二维系统, 互为负反馈就回到普通朋友, 互为正反馈在爱欲中爆发-比如罗密欧与朱丽叶, 此消彼长那是玩捉迷藏的周期游戏。
3, 如果一个系统是三维的, 则混沌可能产生。 混沌即对初值极为敏感的运动体系。 你一旦偏离既定轨道一点, 即几乎无法回去。
4, 如果一个系统大于三维, 那么你需要用一个复杂网络描述它的运动, 这个时候我们可以得到我们复杂系统的主角- collective phenomena。 复杂组织的性质直接与单体间的相互作用和网络结构有关。 复杂网络的动力学往往混沌难以预测。
对于这些难以预测的复杂现象,我们可以寄出我们的第二种方法: 贝叶斯分析框架: 即先不预测, 而是假定几种可能的结果,并根据以往数据和新增数据, 推测几种可能结果的概率大小。
如果你要用贝叶斯分析的框架分析问题, 你需要:
这就是机器学习的基本思想。
机器学习如果可以进入一个问题中, 往往要具备三个条件: 1, 系统中可能存在模式 2, 这种模式不是一般解析手段可以猜测到的。 3, 数据可以获取。 如果三点有一点不符,都很难运用机器学习。
机器学习的另一个名字叫模式识别, 也可以看出它和刚才讲的复杂系统产生模式的关系。
那么机器学习在现实生活中被用于非常多的方面, 最常见的如数据分类(推荐算法), 时间序列分析(股市,市场价格变化,自然语言处理), 图像处理(各种人脸识别, 癌症检测), 各类自动化(游戏AI)。 而由方法论分, 又可以分成有监督学习, 无监督学习, 和强化学习。
我着重讲了几种机器学习的基本方法:
0. 贝叶斯决策的基本思想:
你要让机器做决策, 一个基本的思路是从统计之前数据挖掘已有的模式(pattern)入手, 来掌握新的数据中蕴含的信息。 这个pattern在有监督学习的例子里, 就是把某种数据结构和假设关联起来的过程,我们通常用条件概率描述。 那么让机器做决策, 就是通过不停的做抽样掌握这个数据结构和假设结果如何对应的条件概率。通常我们要把我们预先对某领域的知识作为预设(prior),它是一个假设结果在数据收集前的概率密度函数,然后通过收集数据我们得到调整后的假设结果的概率密度函数, 被称为后验概率(posterior),最终的目标是机器得到的概率密度函数与真实情况最匹配, 即 Maximum a posterior(MAP), 这是机器学习的最终目标。
1, 从朴素贝叶斯到贝叶斯网络 :
机器学习最质朴而深刻的模型即朴素贝叶斯:当你具有多个证据而非一个证据的时候,最简单的贝叶斯决策已经不够使唤了,我们有一个稍微复杂,但是依然十分天真的算法,成为朴素贝叶斯,这个算法说的是当你的证据相互独立(或者你先假设相互独立),你利用乘法法则得到一个假设成立的概率,被成为likelihood,然后你在假设空间里找,
世界上的事无一不处于复杂的因果联系之中,而贝叶斯网络正是刻画这个因果联系的方式。构建一个贝叶斯网络的关键方法是图模型,构建一个图模型我们需要把具有因果联系的各个事件用箭头连在一起。
2, 贝叶斯时间序列分析之隐马模型:
贝叶斯时间序列分析被用于挖掘存储于时间中的模式, 时间序列模式的预设setting即马尔科夫链, 之前动力学模式里讲到反馈导致复杂历史路径依赖,当这种依赖的最简单模式是, 此刻的变化趋势只与此刻的状态有关而与历史无关, 这时候我们得到马尔科夫链。
贝叶斯时间序列说的是当假设变量是马尔科夫过程,而我们直接测量,我们需要通过证据测量这个假设变量的马尔科夫过程, 从而对整个时间序列进行推测的方法。
3, 深度学习
深度学习即数据内涵的模式本身具备多层级结构时候,我们的机器学习方法。 从以毒攻毒的角度看, 此时我们的机器学习机器也需要具有类似的多级结构,这就是大名鼎鼎的多层卷积神经网络。
4, RNN和神经图灵机
如果时间序列数据里的模式也包含复杂的多层级结构, 这里和我之前说的复杂系统往往由于反馈导致复杂的时间依赖是一致的, 那么要挖掘这种系统里的模式, 我们通常的工具就是超级前卫的递归神经网络RNN,这种工具对处理高维具有复杂反馈的系统有神效, 因为它本身就是一个高维具有复杂时间反馈的动力学系统。
这里才是真正的以复杂对抗复杂, 虽然如此复杂, 我们却有一套简洁的法则训练RNN。
网友评论