1. 概述
本文章不是代码程序,番茄也不擅长搞代码。
回想自己的读书生涯,感慨良多,作为一个即将三十的人,边工作边读书,累个半死,也算为自己的大学生涯买了后悔药了。多说两句,哎,怎么就入了游戏的坑,怎么就上了恋爱的脑,哪怕上课的时候不玩手机,下课的时候少去一趟网吧,哪怕不谈恋爱(算了,这个可以的,适可就行),总之,但凡上点心在读书上,也不会后面暗自蹉跎,望洋兴叹!!!后悔后悔后悔!!吃了不用功读书的亏,寒门出路一半在读书上。好了,废话太多,一堆抱怨。
一般来说,一个人工智能模型的训练大体需要数据采集、特征提取、模型训练和模型评估等几个阶段,本篇文章讲述这几个阶段采用的方法,算是一个小白的入门篇吧。
一家之言,仅供参考,益则纳之,弊则弃之。
2. 数据采集
毫不夸张的说,决定你的训练结果是人工智能还是人工智障,一大半的功夫就在数据库的选取。我们利用人工智能就是想总结规律,如果数据都不对,总结出的规律大半也是有问题的。
2.1 数据获取
数据的来源一方面可以是公开的数据库,它的好处是典型性和权威性有了保证,很多数据库已经由行业的专家打好了标签,那就更Nice了。但是既然是公开的就意味着你有我也会有,模型训练的效果就全凭手段了。换句话说,公开的数据库往往意味着大家已经用多了,这个赛道很多人再跑,就看看你能不能搞出点新花样了(创新型有待商榷)。
数据的来源也可以是自己采集建立的。有幸见证几位学长的博士答辩,工作中也有科技项目的答辩,一个字,强,可能大佬习以为常,可对于我这个只动嘴不动手的人来说,惊为天人。学长A用小鼠研究脑电波的,给我聊采集过程:骗小鼠吃药、哄小鼠睡觉、给小鼠上套、刺小鼠脑脑……,略,受不鸟。也有高压电树的大佬,挖坑、栽树、上电、灭火...10kV的高压电想想就刺激。总之,这种自己采集建数据库的都是大佬,动手能力超强,且实验室也要有资金支持。当然,要是能有资源,跟医院、企业或者用户合作搞数据,也是一个办法。这类数据光是听就很难搞了,关键拿回来之后,你得筛选,你得去噪,你还得分好类,总之,必须懂行,想研究出东西,搞点真研究,方能坚持搞下来。
2.2 数据预处理
有了数据并不能直接开干,还得进行预处理,就像你想吃鱼,有了鱼只是第一步,还得去磷,去内脏,巴拉巴拉。
数据的预处理分很多种,第一种扩充数据集。比如你的数据集太小了,只有一两百,这点数据塞牙缝都不够,怎么办,看看能不能扩。比如一段10s的波形,截成5s,能截成几段?两段,对不起,可能不够,那我重叠一下,三段够不够,也不一定够,但是最多就是三段,滑动窗的尺寸要满足最小要求,扩充数据间的重叠率不要超过50%。
第二种去噪声,采样数据大多伴随着通道的噪声,这时候一个数字式的低通滤波器或者带通滤波器就很适合,以免得模型把噪声识别成了规律。
第三种归一化,不同单位的波形,你只想看波形的趋势,而非数值,就可以把原始数据归一化之后再提取特征。归一化的方法可以是用最大值和最小值归一化,也可以用均值进行归一化。
当然,还有其他骚操作,这里就不提了,这三种基本常用到。
3. 特征提取
这一块是区分内行和外行的功夫。
特征是实物突出性质的表现,是区分事物的关键。人工智能解决的问题大体分为两类,分类问题和预测问题,分类问题就是区分不同类,比如最简单的二分类,区分男和女,区分西瓜和土豆,区分狗和猫,区分你和我,都是分类问题,可以看到这类问题的结果大多不连续,是断裂的;预测问题是连续的,比如预计事物的发展趋势,比如今年的田地的亩产、房子的价格等等,这类问题的结果多是连续的。
以常见的分类问题为例,要区分男和女,可以提取的特征有什么呢?身高、体重、三围、头发长度、衣着颜色等等,都可以定义为这个分类问题的特征。那么,这个问题里面,我们大多知道衣着颜色这个特征区分度不好,身高和体重也一般,但是三围特征和头发长度这两个特征,对于区分男和女的区分度很好。
实际应用人工智能分类的问题,也就是寻找最好的特征去实现最好的区分效果。因此,在进行人工智能分类时,如何提取一个合理的有效的特征是我们要认真考虑,并需要对分类问题的成因有一定的了解。
比如,对于癫痫脑电波和正常脑电波的识别问题,癫痫脑电波往往伴随有棘波、尖波等异常波形,而正常脑电波多是平缓的、缓变的,那这个专家经验转换为特征就是两种波形的频率成分是不一样的。
比如,对于单相接地故障的识别上,故障线路的幅值最大,而相位异于健全线路,这个专家经验转换为特征就是能量值和相似度的区别。
特征的提取方法多种多样,千差万别,特征分类也得根据问题来区分。还是以正常波形和异常波形的分类问题举例:波形提取的特征可以是时域特征,如峰值、均值、方差、相位等等,可以是频域特征,如高频或低频含量,也可以利用小波变换、短时傅里叶变换提取时频域特征都可以。
还是那句话,对于人工智能的问题,提取合适的特征是准确率高的关键。
先写到这里吧,下一篇文章介绍分类器的选择和模型的评估。