大家好
我叫刘刚
是西安交通大学
机器人与智能系统研究所的博士生
今年博二
最近新型冠状病毒把我们都困在了家里
哎
比较苦恼
很多研究都没法进行
只不过呢
嗯。。。
我运气还算比较好的
在王晶老师的指导下
嗯。。。
病毒给我逼出了一种我认为还可以的系统分析方法论
我把它命名为Gang系统分析方法论
这个还是比较有意义的，因为它是基础方法论
他可以应用于：
机械、经济、航空航天、电力电子、能动、材料、化学、生物等
几乎所有的自然学科它都可以用
因为...它是用来做什么的呢？
嗯。。。
我用一支笔
首先
它可以用来做预测
什么是预测呢？
比如说
昨天下雨了
我要预测一下明天是否下雨啊？
可以用它
再比如说
今天股票在涨涨涨涨，我要预测一下之后的股票是什么情况呢?
它是涨还是跌呢？
还有就是。。。
嗯。。。
房价
比如说这个地方的房价它受挨不挨学校、是否是学区房啊、这边的经济发展情况什么样呢、这边交通是否便利的影响
然后，
随便给我一个地方
然后只要给我一下那里：交通是否便利啊？是否是学区房啊？ 等等一些因素
我就能预测一下它的房价大约是什么样子的
可以干这事
就是，，
之前比较经典的BP神经网络或SVM能干的事，它都可以干
但是呢？
嗯。。。
我这个Gang分析方法里边的Gang转换比传统的神经网络快5-10倍
效率还是蛮高的
之后，仔细给大家讲
好
还有一个是做因果分析的
"因果分析"之前的情况怎么说呢？
之前应该说没有一个系统的分析方法
但是，我这个方法就可以实现了
我先解释一下什么是因果分析
比如说
对于那些学材料、化学、生物的同学
大家做完实验，然后会有好多变量
比如说
A变量的数据、B变量的数据，还有C变量的数据、D变量的数据
好
然后，其中一个变量受多个因素的影响
它的具体影响是什么样子的呢？
之前是没法搞，
但现在这个系统方法论就特别好搞了
直接能出来一个叫因果谱的东西
能够显示出：
你的输入对输出独立成分的作用或交叉的影响
总之，它的各种交互作用都能出现
并且包含一次的、二次的、三次的、多次的
好
刚刚是对于材料、化学和生物的同学
这个如果是从机械、航空航天、电力电子这方面去讲的话
那就要从系统上去讲
一个系统
你给系统一个输入，它就有一个输出
如果这个系统特别复杂的话，
你没办法求这个系统的传递函数
没办法对这个系统的参数进行估计
虽然之前神经网络能够模拟这个系统
但神经网络是个黑箱子呀！
然后，即使你训练处一个神经网络，你也不知道它的输入、输出是什么样子，从而推导出它的传递函数呀！
然后，优化的时候也是完全没有方向的呀！
就和海中无方向的船一样，乱走
好
我这个就不一样了
我这个是它是可以直接输出输入与输出它们俩之间的因果对应的关系谱
然后，有方向的进行优化
还有一个功能是干扰关系的去除
这个也是这个方法论所独有的
嗯。。。
举个例子
首先，也是分两种。
一是分材料、化学、生物的同学
你做了很多实验
不是有一个变量受多个变量的影响吗？
你出来一个关系谱
但是呢？有些干扰你不想要
你想把这个关系去掉
比如说，A和B相互都作用于C
然后，A、B对C的作用包含：A单独对C的作用、B单独对C的作用、AB合起来对C的作用
这样的话，你打算把AB合起来对C的作用去掉
然后，创造一个A单独对C的作用和B单独对C的作用的图谱
你就可以用这个方法
额。。
下一步说一下, 如果是机械、航空航天、电力电子。。。这些工科学生的话可以这样理解
比如说这是一个系统，一个大系统
很多输入对输出有影响
然后，有很多交互作用的影响你不打算要了
因为你认为这个对输出是无用的或者你不关心的
那这样的话，你就可以把这个影响关系给剔除
然后，只留下你关系的那个系统（关系）
嗯，就相当于构造一个新型系统
好
具体讲一下
嗯。。。
具体讲的话，
首先，我想我应该是从傅里叶开始讲起
因为，说实话，我认为Gang转化的分析方法有可能会和傅里叶比肩   哈哈
分为两部分
首先，傅里叶
傅里叶，大家应该都知道傅里叶转化，特别是学过信号的
就是。。。傅里叶转化是什么样子呢？
比如说这个一个原信号
是这个样子的， 好
我进行傅里叶转化
然后，
它就会分解成各种正弦波，正弦波，余弦波等等
然后，加起来等于原信号
好
这些正弦波和余弦波构成了傅里叶的频谱
频谱的。。。
频谱的Y就相当于这些分解成的正弦波、余弦波，它们的幅值
好，这是频谱
有了频谱之后，
基于这个频谱，就可以推导出滤波器
就是滤除不想要的成分
然后，保留想要的成分
去除干扰
这是傅里叶频谱
但是从本质上来说，傅里叶转化是一种三角分解
把信号分解成三角函数的形式
大家不知是否还记得除了三角分解, 数学上还有一个比较伟大的分解？
叫做多项式分解
如果大家不清楚这个名字的话，我换个名字
泰勒展开式
泰勒展开式大家应该都清楚，特别是考研的同学
泰勒展开式是什么样子的呢？
它把输入和输出的函数关系分解成多项式相加的形式
好
这个Gang转化就是泰勒展开式的形式
我可以把它的很多输入对一个输出， 这个系统，
利用Gang转化，直接转化为一个泰勒展开式
好
如果有了泰勒展开式的话， 它就出来因果谱了
它的纵坐标就是泰勒展开式的系数
横坐标，我把它定义成每一项的位置
因为对应着这，我有一个泰勒展开式表
每一项的位置表，它会自动输出
后边有例子
下一个，系统滤波器
系统滤波器的话，就相当于基于因果谱把不想要的成分给去掉，然后，保留想要的关系成分
也是类比于傅里叶的滤波器嘛！
所以我才说它有可能比肩。
不过，傅里叶是针对于信号， 单一信号嘛
然后， 嗯。。。
Gang转化是针对于系统
一个复杂的系统
好
下边每单个单个地讲解
Gang转化从本质上来讲啊
它是一种神经网络
不过，它还并不是传统意义上的神经网络
传统意义上的神经网络是
一个激活函数，然后，一个输入
额。。。 好多输入，输出乘以权值，再经过激活函数，构成一个神经元
好多神经元合起来，然后就构成了神经网络
这个神经网络它的优势在于可以映射各种函数关系
由于它这种很强的映射能力
在各个领域都有应用
但是它有一个本质的缺陷
它是一个黑箱子！
黑箱子的本质使它没办法进行输入与输出的关系分析
好
然后，我提出的这个CR-PNN就不同了
C是可控，R是可读
这个，CR-PNN不再是以单神经元为单位
它是以每一层为单位
具体是
各个蓝色的连线就相当于权值
权值乘以输入得到的结果，再点乘（hadamard product）以原始的输入
一层一层进行下去
最后有个输出
大家看这个L， L是可以随便设定的
L就代表
你所需要的、控制的系统逼近精度
或者说你所需要的、预估的它是几阶系统，你就取L是多少
最终训练出来关于所有的输入与输出的预设关系完全储存在这些权值中，就相当于这些蓝色的连线之中
这张图是一个
泰勒公式与我的网络的对比图
关于这个，大家如果感兴趣的话，有一定数学基础的话
可以去看我的原始文章
我的原始文章在这
后边，全讲完我会教一下怎么去看原始文章，以及代码怎么用
好
下一步， 万事有因果，因果谱
我们这个系统会出来一个因果谱
它的纵向为多项式的系数
横向为每一项的位置
对应着，这里有个位置所对应的的项是什么样子的
首先，以这个为例
比如说，我对这里这个
类似于频谱啊
这里这个“尖”比较感兴趣
好， 这个“尖”它是什么样子的呢？
定位，它是45
X=45
好
你就去这个位置表里查， 45对应着x1， 好
就说明X1对这个输出的影响还是蛮大的
好
再举个例子，比如说这个
它是115
115， 你查， 115所对应的是X4^2
x4的平方对输出的影响蛮大的
然后，下一个，举个例子
你看这个。。。
这里还有个“尖”你蛮感兴趣的，那你就看这
X=127， 好， 你就去查
127它是X4乘以X7
这个交互作用对输出的影响
嗯， 好
你都能查到
这就是因果谱
查询表， 这个是自动生成的
嗯。。。
当你把L，也就是系统的阶数，设置的特别高的话
这个表可能特别长
现在我这个表大约有170多项呢
然后，这个还只是三阶的
如果你是四阶、五阶、六阶、七阶、八阶、九阶、十阶呢？
它会。。。更长
你用人工查的话比较慢
你可以通过这个因果谱
找到你比较关注的成分
然后，这里有个X坐标嘛
然后，你直接在系统里边通过函数去查
t括号，里边是x的位置
输入 t149
然后通过函数它会自动直接出来
告诉你149它会直接输出X6的平方
是直接可以通过代码去查的
所以，比较方便
一会儿，给大家都演示一下的，听不懂也没关系的
下一个是系统滤波器
好
这个也要以上边的因果谱为例
比如说
比如说，假使X127，也就是X4乘以X7这个成分咱不想要了
咱要把这个成分给去掉，构成一个新的系统
好
咱们可以把这一项，把X127这个，直接令Y强制为0
就是你把不想要的都置为0
做完之后
把新的因果谱乘以查询表
就会出来一个新的系统
这样你就去除了自己不想要的成分，保留了你所需要的成分
好
下一步，我给大家去讲一下，这个是怎么去用的啊
首先，先从Gang转换开始
这是我们论文的链接，大家可以跟着我学
复制这个链接
打开浏览器
输进去
由于这是外网嘛，可能有比较慢
还好还好
这是我们的文章原文，大家可以看，点PDF下载
就可以下载我们的原文章进行阅读了
刚刚我说我这个网络
对效率有很大的提高，大家可以看的出来
效率， 传统的
纵坐标为时间啊
明显快了，快了好多
如果大家感兴趣，也可以去看
泛化能力也有提高
什么是泛化能力呢？
它的预测精度（让各个领域理解的不严格定义），有所提高
有数学功底的去看，没有数学功底的我教大家怎么用
大家这里可以下载，我就不下了
我们这里有个链接，看到没？
这个链接是源码的链接
去下载下来
嗯。。。外网还是有点慢
用谷歌浏览器，谷歌可能会快一些
下载
下载到桌面
有点慢，让它先下着，咱们去讲一下另外一个
这个因果谱， 因果谱我也有论文
同样地
复制一下
粘贴
跳转
这是因果谱的， 因果谱直接是一个例子
下载完了， 因为我这个有密码，它提示有密码，就是下载完了
解压
首先，解压完了大家先看这一个
txt的
以记事本的形式打开
第一行
这个就是密码
复制一下
点一下，把这个压缩包都解压到当前文件夹
粘贴密码
解压
好
这就解压完了，解压完之后大家打开这个example
我英文不是特别好， 哈哈
正在打开中
打开了，打开了
电脑有点卡
好了
嗯。。。 给大家讲一下
这个是一个例子啊
假使我给了8个输入
8个输入，1个输出
输入就是I，输出是S
8个输入1个输出
然后给复制一下
训练的话，
m是每一个训练，送入多少的数据
如果大家不缺定的话，就默认为2好了
这个c是最大训练次数
最大训练次数
这里大家可以改， 我这个就给的特别大
这个它本身是2嘛，m特别小，c就大一点好
n是层数
就是这个L 层数
这里我设为3层，那就3层吧
这个是进行训练
绘制误差
测试、结果
这里还有个 Read PNN
先运行一遍
运行
嗯。。。 我c给的有点大
大就大吧 哈哈
C是代表让它训练多少次嘛
C特别大就是训练好多好多次
因为我没有设定收敛条件
额，，，前边口误， 没有设定终止条件，直接设定成最大训练次数了 (意思是：到指定训练次数，终止）
好
大家看
出来两张图
先说一下这个
这个是误差的下降曲线
实际上误差在这的时候已经特别低了
越往后越低，约往后越低嘛
后边的实际上不训练的话，效果应该也都挺好的
然后，这张图是它的输入与输出
这个蓝色的线。。。  大家没看到蓝色的线，为什么没看到蓝色的呢
因为红色的。。。 训练效果太好了，把蓝色的给覆盖住了
所以，你只看到了红色的
这个蓝色的是实际的数据，红色的是我这个网络输出的数据
大家会发现特别完美
好
这个是因果谱
因果谱， 大家看
每点一个你所关注的都会出来一个标注
在这里，我记得这里有一个文档
按文档讲
大家下载的那个里边
有一个read这个神经网络的
刚刚的那个例子嘛
大家执行read，会出来一个因果谱
然后大家输入t(X),就会出现它的项是什么
试一下
比如说，它这是t149嘛， 我不输入t149
输入t115,看看是啥
t(115)
X4的平方
大家看， X4的平方的话，是3.99，相当于4
X4的平方咱看上边，看这一项
X4的平方就是实际的
它的系数是4
我这个网络输出的是3.998
差不多，差不多
它的误差是源于你的输入本身具有一定的相似性
效果已经相对来说很好了
再继续回到PPT
Gang转化已经讲完了
因果谱也讲完了，这个链接是看论文，下载论文的
这样子下载论文，   我说一下引用啊
引用的话，大家点这个
使用我们的方法，引用一下我们的三篇文章啊， 我们一共三篇 哈哈
然后
再点输出
这里可以点各种格式的导出， endnote，各种导出
下载，就可以引用了
好
系统滤波器
系统滤波器我刚刚也说了，系统滤波器我直接没有写代码嘛
但是，按照我说的大家也特别好实现，因为因果谱都有了
在这里还有一点需要注意的是:
在这个地方
read RNN
Read_RNN里边，这是可以更改的
像我这个是8个输入嘛
例子给了8个输入，所以到X8
如果有9个输入的话，那就加上一个X9嘛 ， X9
这里也加X9
你的数据有几个输入，这里就改成多少
其他的不用动
我觉得也没有什么好讲的了，如果大家还有什么不懂的可以去看我们的三篇原文章
特别是第三篇
第三篇我给大家看一下，第三篇
除了提出系统滤波器之外，可以把它当成一个系统的总结
特别短
可以俗称 系统分析方法总教程
点开，这里下载pdf
这里边讲的特别细
滤波过程，我们举了个例子
首先，Gang转化
因果谱
系统滤波器
大家看，我把这个当成干扰的话
把这个去除后，相乘不就是滤波后的系统吗
此外，这还有一个说明文档
文档的话，我会放在视频下方的链接里边，大家可以去下载查看
讲的也特别细
先这个样子
