内容摘要 机器学习决策树、K-NN算法等技术能够使得电脑等电子设备从原始的数据集中学习和发现数据存在一般知识规律,利用这门技术来处理医疗数据,研发对应的智能诊断医疗系统和设备,将会极大的改善国民生活健康水平。与机器学习密切相关的一门技术是神经网络,神经网络具备自主学习、组合已有特征的特性,经过神经网络处理的医疗记录数据集,将会得到对应高度抽象的诊断特征集,利用这个诊断特征集结合采集到的用户输入数据,神经网络模型使用激活函数、优化器、损失函数、正向传播、反向传播等数据处理技术,便能够实现电子自主学习并能高智能分析、诊断功能。基于机器学习和神经网络的类型、及其搭建的方式、相应参数的配置等诸多因素都会对诊断特征集产生影响,有些地方稍微不同,甚至就会得到完全不一样的结果。本次通过实验探索更一般的医疗智能诊断模式。 关键字:机器学习;决策树;K-NN算法;智能诊断;神经网络;自主学习;激活函数;优化器;损失函数;正向传播;反向传播
Abstract Machine learning decision tree, K-NN algorithm and other technologies can enable electronic equipment such as computers to learn from the original data set and discover the general knowledge of data, and use this technology to process medical data. Research and development of the corresponding intelligent diagnostic medical system and equipment, will greatly improve the national standard of living health. A technique closely related to machine learning is the neural network, which has the characteristics of autonomous learning, combining the existing features, and the data set of medical records processed by the neural network will get a highly abstract diagnostic feature set. Using this diagnostic feature set combined with collected user input data, neural networks Using activation function, optimizer, loss function, forward propagation, back propagation and other data processing techniques, the complex model can realize electronic autonomous learning and high intelligent analysis and diagnosis function. Many factors such as the type of machine learning and neural network, the way they are built, the configuration of corresponding parameters and so on, will affect the diagnostic feature set. In some places, they will be slightly different, or even get completely different results. This time through the experiment to explore the more general medical intelligent diagnosis mode. Keywords: machine learning; decision tree; K-NN algorithm; intelligent diagnosis; neural network; autonomous learning; activation function; optimizer; loss function; forward propagation; back propagation
目录 第一章 引言 1 第二章 研究现状 2 第三章 探索机器学习和神经网络内部结构数学运算原理实现过程 5 3.1 softmax函数 5 3.2深度学习的理论基础——机器学习 6 3.2.1机器学习的算法流程 6 3.2.2基本算法的分类 6 3.3机器学习基本算法 7 3.4回归算法 7 3.4.1逻辑回归 7 3.5决策树算法的基础——信息熵 8 3.5.1ID3算法 9 3.6数据标准化 9 3.6.1 0-1标准化(0-1 normalization) 9 3.6.2 Z-score标准化(Zero-mean normalization) 10 3.7 BP神经网络算法 10 3.7.1 神经网络常用算法——最小二乘法(LS算法) 11 3.7.2 神经网络常用算法——随机梯度下降算法 12 3.8反馈神经网络反向传播算法 12 3.8.1链式求导法则 13 3.8.2反馈神经网络原理与公式推导 13 第四章 基于机器学习和神经网络探索电子智能医疗诊断 20 4.1数据集说明和获取 20 4.2使用K-NN算法探索数据集 21 4.2.1分类函数 21 4.2.2数据归一化 21 4.2.3启动和检测模型 22 4.2.4探索不同的K值对算法的影响 22 4.3使用决策树算法探索数据集 23 4.3.1定义计算属性熵值函数 23 4.3.2划分数据集 24 4.3.3选择最好的属性作为根节点 25 4.3.4投票机制 25 4.3.5创建决策树模型 26 4.3.6打印决策树 26 4.3.7使用决策树模型进行决策分类函数 27 4.3.8启动和测试模型 28 4.3.9比较K-NN算法与决策树算法的优劣 29 4.4使用神经网络探索数据集 30 4.4.1将标签转one-hot编码 30 4.4.2定义输入数据集变量 30 4.4.3权重和偏置的处理 30 4.4.4建立模型 31 4.4.5定义损失函数 31 4.4.6训练模型 31 4.4.7启动模型 31 4.4.8模型评估 32 4.4.9模型的使用 32 4.4.10使用一百条原数据进行模型的训练与测试 32 4.4.11使用AdamOptimizer优化器 33 4.4.12使用MomentumOptimizer优化器 33 4.4.13分析选定神经网络更新参数优化器 33 4.4.14损失函数的修正 33 4.4.15激活函数的修正 34 4.4.16增加神经网络更多的深度 34 第五章 比较决策树与神经网络的优劣 35 第六章 结果可视化和结论 36 6.1 统计各种算法处理模型数据 36 6.2 结果可视化 38 6.2.1 K-NN算法 38 6.2.2 K-NN算法耗时散点图 38 6.2.3 神经网络算法对应各种有用的模型设计耗时曲线图 40 6.2.4 K-NN、决策树以及神经网络算法对比 40 6.3 结论 41 参 考 文 献 42 致谢 42 表附录 43 图附录 45
第一章 引言
现在很多国家和地区的医疗管理系统存在着许多问题,这些问题在医院体现为医疗成本高、技术设备落后且操作复杂等现状,站在普通用户角度,比较突出的有看病难、看病贵、医疗服务欠佳等社会关注问题和医疗现状。站在医疗信息角度看,现在的医疗信息并不顺畅,直接导致了医疗资源两极分化日益严重。在新的时代,面对这些医疗遗留下来的顽疾问题,所以很有必要基于现代新的研究成果,针对现状的医疗问题,继续研究探索出对应的一些新的解决方案和新的医疗诊断模式。并以此为契机更进一步地推进相关技术和理论的研究,让更多的人可以感受、学习、接触和了解新的知识。现代最新人工智能领域的智能算法研究是经典的机器学习算法和神经网络算法,包括K-NN算法、决策树、BP神经网络等。经过时间的洗涤和实践的检验,研究表明,这些算法都具有强大的自我学习能力能够在计算机视觉、图片识别、语音识别、自然语言处理等多领域上取得了很大的成功,有的甚至具备划时代的意义,而真正标志着和奠定了新一代智能时代的到来。世界各地大小的医疗机构都具有大量的医疗数据记录,但由于疾病的类型症状交叉以及所涉及的学科知识更是多种多样,没有医生能够把这些知识都理解和记忆,现在许多具备高价值的医疗数据都尘封在各自的医院数据库里面,要是能够把这些医疗数据通过高效的神经网络模型处理,实现电子高智能分析、诊断疾病,为主治医生提供有效的医疗建议,这将大大提高世界医疗和人们健康的水平,我们人类在医疗领域也将会迎来一个新时代的春天。基于神经网络探索高智能分析、诊断模型技术由此展开。
第二章 研究现状
近年来,AI医疗研究在CT图像疾病诊断、眼疾、癌症、假肢等各个医疗领域都取得了很大的进步。人工智能技术在医疗上的应用,使得医疗技术科技成果得以更好地持续发展,与传统的医疗看病诊断相比,在新时代新技术背景下,让机器、算法和大数据为我们的健康服务,未来让更全面的智能医疗来为我们抵御疾病、延长寿命的核心科技。目前,人工智能技术在语音交互、计算机视觉、云计算等领域都已经逐渐成熟,这也使得人工智能技术在医疗的各个方面的运用变成了可能。在医疗方面,智能医疗领域主要有:语音录入病历、医疗影像智能识别、辅助诊疗/癌症诊断、医疗机器人、个人监看大数据的智能分析等。利用人工智能辅助各种疾病的诊断,这样就可以减少人为因素造成误诊情况,并且在癌症方面可以节省诊断时间,降低癌症死亡率;在医疗影像数据处理方面,应用深度学习技术,提高医学影像的质量,获取更加全面的医疗数据信息,从而大大提高医生在这方面所做到的精准判断率。
表 2-1 人工智能在医疗领域的应用
智能医疗领域 |
人工智能技术 |
具体应用或方法 |
电子病历 |
语音识别/合成、自然语言处理 |
语音识别医生诊断语录,并对信息进行结构化处理,得到可分类的病历信息 |
影像诊断 |
机器视觉 |
图像预处理,抓取特征等 |
辅助治疗 |
语音识别/合成、自然语言处理、机器视觉、机器学习 |
通过语言、图像识别技术以及电子病历信息进行机器学习,为主治医生提供参考意见 |
医疗机器人 |
机器人 |
手术机器人/导诊机器人 |
个人健康大数据分析 |
自然语言处理 |
日常健康数据分析/病情监控 |
精准医疗 |
语音识别、机器学习 |
DNA序列分析,疾病预防 |
表 2-2 具有重要影响的神经网络
神经网络名称 |
特定 |
局限性 |
典型应用领域 |
感知器 |
有学习能力,只能进行线性分类 |
不能识别复杂字符与输入模式的大小、平移和旋转敏感 |
文字识别、声音识别和学习记忆等 |
自适应线性单元 |
学习能力较强,较早开始商业应用 |
要求输入、输出之间是线性关系 |
雷达天线控制、自适应回波抵消等 |
小脑自动机 |
能调和各种指令系列,按需要缓慢地插入动作 |
需要复杂的控制输入 |
控制机器人的手臂运动 |
误差反传网络 |
多层前馈网络,采用最小均方误差学习方式,是目前应用最广泛的网络 |
需要大量输入、输出数据,训练时间长,易陷入局部极小 |
语音识别、过程控制、模式识别等 |
自适应共振理论 |
可以对任意多个和任意复杂的二维模式进行自组织学习 |
受平移,旋转和尺度的影响,系统较复杂 |
模式识别、擅长识别复杂、未知模式 |
盒中脑BSB网络 |
具有最小均方误差的单层自联想网络,类似于双向联想记忆,可对片段输入补全 |
只能作一次性决策,无重复性共振 |
解释概念形成、分类和知识处理 |
新认知机 |
多层结构化字符识别网络与输入模式的大小、平移和旋转无关,能识别复杂字型 |
需要大量加工单元和联系 |
手写字母识别 |
自组织特征映射网络 |
对输入样本自组织聚类,可映射样本空间的分布 |
模式类型数需要事先知道 |
语言识别、机器人控制,图像处理等 |
Hopfield网络 |
单层自联想网络,可从缺损或有噪声输入中恢复完整信息 |
无学习能力,权值要预先设定 |
求解TSP问题,优化计算及联想记忆等 |
玻尔兹曼机、柯西机 |
采用随机学习算法的网络,可训练实现全局最优 |
玻尔兹曼机训练时间长,柯西机在某些统计分布下产生噪声 |
图像、声呐和雷达等的模式识别 |
双向联想记忆网 |
双向联想式单层网络,有学习功能,简单易学 |
存储的密度低,数据必须能编码 |
内容寻址的联想记忆 |
双向传播网 |
一种在功能上作为统计最优化和概率密度函数分析的网络 |
需要大量处理单元和连接要高度准确 |
神经网络计算机图像处理和统计分析 |
表 2-3 2006年以后的深度学习模型
模型中文名称 |
模型英文名称 |
受限玻尔兹曼机 |
RBM |
深层自编码器 |
deep AE |
深层信念网络 |
deep belief net |
深层玻尔兹曼机 |
DBM |
积网络 |
SPN |
深层堆叠网络 |
DSN |
卷积神经网络 |
CNN |
循环神经网络 |
RNN |
长短期记忆网络 |
LSTM network |
强化学习网络 |
RLN |
生成对抗网络 |
GAN |
第三章 探索机器学习和神经网络内部结构数学运算原理实现过程
3.1 softmax函数
表 3-1 softmax函数说明
函数名称 |
函数表达式 |
函数理解 |
softmax |
这是深度学习中最为常见的函数,其中,是长度为j的数列V中的一个数,带入softmax的结果其实就是先对每个取e为底的指数计算变成非负数,然后除以所有项之和进行归一化,之后每个就可以理解成观察到的数据属于某个类别的概率,或者称作似然(Likelihood)。Softmax用以解决概率计算中概率结果大占绝对优势的问题。例如,函数计算结果中有两个值A和B,且A>B。如果简单地以值的大小为单位衡量,那么在后续的使用过程中A永远被选用,而B由于数值较小则不会被选择。但是有时也需要数值小的B被使用,此时softmax就可以解决这个问题。 |
3.2深度学习的理论基础——机器学习
3.2.1机器学习的算法流程
表 3-2一个完整的机器学习项目包含以下内容:
步骤 |
说明 |
输入数据 |
这是算法最开始就要进行的步骤,通过输入原始的数据集,其中数据集可以包括标签和不包括标签两种情况。这些数据要有一定的格式,只有把数据处理成算法能够读取的格式,算法才能进行后续的数据学习进一步和处理。这一部分也是作为最基础的一部分。 |
特征提取 |
当数据正常输入到算法之后,算法将会数据集的每一条记录进行特定流程的处理,并且会保存一些从原来数据集提出来的新的数据,并且这部分新的数据在后续的数据输入的时候可能会进一步地修改或者是影响着后面数据的处理。这部分算法中间过程从原数据提出来的新的数据作为原始数据记录的电脑能够知道和识别的特征。当原始数据特征量很多的时候,处理起来需要消耗的计算资源会很大,所有当出现数据集特征过多的时候,一般要使用其它类似PCA这样的降维技术处理。 |
模型设计 |
模型设计是算法用来模拟或者处理数据的的一个抽象的模式,输入到算法里面的数据主要就是按照这个模式来进行数据处理、特征提取的。训练模型一般是依靠大量可靠的数据和对应数据特征的提取。 |
数据预测 |
通过使用大量数据训练过了的模型,一般就具备了回答某些特定问题抽象的知识和规律,当需要被回答的问题输入到算法模型的时候,这个模型就会根据之前学习到的知识和规律,给出特定问题的回答,从而完成算法预测这样的一个过程。我们可以使用这个训练好的模型来进行模拟和拓展一些人的行为,从而能够开发出具备一定智商处理特定问题的人工智能产品。 |
3.2.2基本算法的分类
表 3-3 基本算法的训练模式算法分类:
算法模式种类名称 |
说明 |
无监督学习 |
数据集没有特定的分类标签,只要明确的一些特征,而怎么把这些无标签的数据怎么处理进行分类的过程,完全由机器运行特定的算法来决定,所有这样的分析结果往往也是不可控的,在算法运行结束前,原始的数据具体会被划分为多少类没有办法提前预知。 |
有监督学习 |
算法最开始输入的数据记录是有特定的分类标签的,算法根据数据的特征和它对应的标签来进行学习,通过这样的数据不断地输入,算法不断地修正和改进模型,使得算法能够在很大程度上能够对这类的数据进行正确的预测和分类,从而达到算法分类的标准。 |
半监督学习 |
通过混合有标识数据和无标识数据,创建同一模型对数据进行分析和识别,算法的运行介于有监督和无监督之间,最终使得全部输入数据能够被分区。如果数据集有特征值缺失的话,那么使用半监督学习这种数据处理方式会在一定程度上减少缺失值给模型处理数据带来的影响。 |
强化学习 |
通过输入不同的标识数据,使用已有的机器学习数据模型,进行学习、反馈修正现有模型,从而建立一个新的能够识别输入数据的模型算法。 |
3.3机器学习基本算法
1、关联:Apriri算法
2、聚类:k-means、k-medoids、聚焦、分裂算法、视觉聚类算法
3、预测(分类、回归):决策树、支持向量机、正则化方法
3.4回归算法
表 3-4 回归算法说明
算法名称 |
说明 |
回归分析(regression analysis) |
回归分析是数学上将特征量化后,确定两种或两种以上变量之间的相互关系的一种数理统计分析方法。按照自变量和因变量相互之间的关系,一般可以分为线性回归分析和非线性回归分析。如果只有一个自变量和因变量,并且二者可以用一条直线表示近似拟合表示的话,这种便是一元线性回归分析。如果回归分析中包含两个或两个以上的自变量,且因变量和自变量之间是线性关系,则称为多元线性回归分析。 |
3.7 BP神经网络算法
表 3-10 BP算法说明
算法名称 |
说明 |
BP算法(反向传播算法) |
BP算法的学习过程,由信息的正向传播和误差的反向传播两个过程组成。数据集所包含的信息通过事先定义好的神经网络层次结构进行纵向和横向的计算过程,这个过程从前往后,一直运算到神经网络最后输出层,这个过程称之为神经网络的前向传播过程。输入层各神经元负责接收来自外界的输入信息,并传递给中间层(隐藏层)各神经元;隐藏层主要进行数据内部信息的处理,负责将数据变形、整合、计算等信息变换过程。根据信息变换能力的需求,中间层对应地设计为单隐层或者更为复杂的多隐层结构;最后一个隐层传递信息到输出层各神经元,之后这些信息经过进一步处理后,就完成一次学习的正向传播处理过程,由输出层向外界输出信息处理结果。但是如果输出层的期望输出与其对应的实际输入不一样的时候,将会进入到神经网络的误差反向传播过程。误差从输出层开始,并按照一定的数据处理方式修正神经网络各层神经元正向传播运算时使用的权值,并且向各层隐藏层和输入层各个层次的神经元反传。 神经网络算法运行训练数据的过程,就是周而复始地信息进行正向传播和误差反向传播的过程,也是各层权值不断调整的过程。当神经网络的训练过程输出的误差减少到一定的程度又或者是达到了神经网络内部结构预先设定的循环次数,神经网络这个训练过程才结束。
|
6.2.4 K-NN、决策树以及神经网络算法对比
当K-NN、决策树、神经网络设计模式不一样时的准确率对比饼图分布显示如下:
表附录
表 2-1 人工智能在医疗领域的应用 2
表 2-2 具有重要影响的神经网络 2
表 2-3 2006年以后的深度学习模型 3
表 3-1 softmax函数说明 5
表 3-2 一个完整的机器学习项目包含以下内容: 6
表 3-3 基本算法的训练模式算法分类: 6
表 3-4 回归算法说明 7
表 3-5 逻辑回归函数说明 7
表 3-6 信息熵公式说明 8
表 3-7 ID3算法函数说明 9
表 3-8 0-1标准化说明 9
表 3-9 Z-score说明 10
表 3-10 BP算法说明 10
表 3-11 最小二乘法说明 11
表 3-12 随机梯度下降说明 12
表 3-13 前向传播算法说明 15
表 3-14 反向传播算法说明 16
表 3-15 反馈神经网络计算公式说明 17
表 3-16 反馈神经网络权值更新说明 18
表 3-17 神经网络激活函数说明 18
表 3-18 sigmoid激活函数说明 19
表 4-1 数据集获取代码说明 20
表 4-2 K-NN分类函数代码说明 21
表 4-3 数据归一化代码说明 21
表 4-4 计算熵值代码说明 23
表 4-5 划分数据集代码说明 24
表 4-6 选择决策树根节点代码说明 25
表 4-7 投票机制代码说明 25
表 4-8 创建决策树模型代码说明 26
表 4-9 决策树模型分类代码说明 27
表 4-10 启动和测试决策树模型代码说明 28
表 4-11 one-hot代码说明 30
表 4-12 神经网络数据输入代码说明 30
表 4-13 权重和偏激代码说明 30
表 4-14 建立模型代码说明 31
表 4-15 定义神级网络损失函数说明 31
表 4-16 神经网络训练模型代码说明 31
表 4-17 启动神经网络模型代码说明 32
表 4-18 评估神经网络模型代码说明 32
表 4-19 神经网络模型使用代码说明 32
表 4-20 分析神经网络优化器对比结果 33
表 5-1 对比决策树与神经网络结果优劣分析 35
表 6-1 K-NN算法不同K值效率分析 39
图附录
图 3-1 多层神经网络的表示 13
图 3-2 反馈神经网络最终误差的计算 14
图 3-3 反馈神经网络输出层误差的传播 14
图 3-4 反馈神经网络隐藏层误差的计算 14
图 3-5 反馈神经网络权重的更新 15
图 3-6 反馈神经网络权重逐层的反向传导 17
图 3-7 反馈神经网络激活函数示意图 19
图 3-8 sigmoid激活函数图 19
图 4-1 K取不同值时算法准确率和错误率的变化 23
图 4-2 K-NN算法与决策树准确率比较直方图 29
图 5-1 决策树与神经网络准确率和耗时比较 35
图 6-1 当K取不同值时算法准确率占比情况 38
图 6-2 K取不同值时算法耗时情况 39
图 6-3 成功神经网络模型耗时曲线图 40
图 6-4 不同K-NN、决策树、神经网络算法准确率占比情况 41