作者|Nature
出品|AI机器思维
人脑是一种强大的智慧大脑,人类通过教育改变了人类大脑的思维,提升了人类自己适应社会的能力,通过教育自我学习成长。
可以说人脑具有一种强大的信息处理能力的装置,其在听觉、视觉、语言知识、情感、艺术和学习方面是机器无法替代的。
人类通过自身得到启发,虽然不能完全创造出一个人类一样的强大大脑,但人类可以在某个方面让机器超过人类自己,从而帮助人类更好的生活,辅助人类处理一些危险、重复或复杂的事情等等。我们可以让机器“学习”使它拥有某种能力去为人类服务。
人脑与计算机最大的不同是计算机的处理器是有限的,而人脑处理器是无限的,包含着大量的神经元去传输信息。基于人脑神经元的启发,科学家建立了一种新的运算模型人工神经网络(Artificial Neural Network,即ANN )。
人工神经网络是20世纪80 年代以来人工智能领域兴起的研究热点,其从信息处理角度对人脑神经元网络进行抽象,建立某种简单模型,按不同的连接方式组成不同的网络。
人工神经网络在工程与学术界简称为神经网络或类神经网络。神经网络是一种运算模型,由大量的节点(或称神经元)之间相互联接构成,每个节点代表一种特定的输出函数,称为激励函数(activation function)。
神经网络是有大量的节点也称为神经元,相互连接构成。信息经过输入层进入神经网络,在节点中不断进行信息传输与运算,每两个节点间的连接都代表一个对于通过该连接信号的加权值,称之为权重,这相当于人工神经网络的记忆,最后到达输出层,得到最终处理后的输出信息。
人工神经网络经过数据训练后,它具有类似人脑的某方面能力,具有“图像识别”,“风险判断”等应用。随着数据量的增多,人类创造一个有人类智能的机器也成为趋势。
最近十多年来,人工神经网络的研究工作不断深入,已经取得了很大的进展,其在人脸识别、指纹支付、模式识别、智能机器人、自动控制、预测估计、生物、医学、经济等领域已成功地解决了许多现代计算机难以解决的实际问题,表现出了良好的智能特性,促进了人工智能的大发展。
本节以BP(Back Propagation)神经网络为案例讲解,BP神经网络是一种处理分类和回归问题很有效的神经网络。具体里面的神经网络模型算法大家可以查资料,理论资料互联网上很丰富。
本案例就是帮助大家入门,让大家有一个体会认识神经网络的价值,提升学习兴趣,跟着案例去学习能更好的提升学习动力。
案例以python自带数据make_moons为例,数据集说明,“+”表示女性病人,“*”表示男性病人,x和y轴表示两个指标。
将数据集分为训练集与测试集后,使用训练集训练神经网络,然后将训练好的神经网络用于测试集,得到预测错误率。
程序运行后:
可以看到数据集中男女病人的大致分布情况。
上面程序参数说明:
plt.scatter()函数用于生成一个scatter散点图,
traningdataSet[traingLabels==1][:,0],traningdataSet[traingLabels==1][:,1]:表示的是shape大小为(n,)的数组,也就是我们即将绘制散点图的数据点,输入数据。
s:表示的是大小,是一个标量或者是一个shape大小为(n,)的数组,可选,默认20。
c:表示的是色彩或颜色序列,可选,默认蓝色’b’。但是c不应该是一个单一的RGB数字,也不应该是一个RGBA的序列,因为不便区分。c可以是一个RGB或RGBA二维行数组。
marker:MarkerStyle,表示的是标记的样式,可选,默认’o’。
cmap:Colormap,标量或者是一个colormap的名字,cmap仅仅当c是一个浮点数数组的时候才使用。如果没有申明就是image.cmap,可选,默认None。
程序如下:
程序执行后的结果输出:
可以看出训练集的错误率为0.1525,测试集错误率为0.17。
大家可以根据上面的程序改造试验,数据集拆分比例不同会对训练和测试结果有影响,合理设置很关键。