Python在机器学习教学中的应用
摘要:随着大数据与人工智能技术的发展和广泛应用,机器学习成为高校数据科学与大数据技术专业学生和从事数据分析的从业人员必须掌握的技术与技能。将机器学习自身特点和大数据与人工智时代的需求进行有机融合,据此不断深化人才培养方案,以便更好地培养适应时代发展的应用型人才。本文讨论机器学习教学中利用 Python 简单易用和功能强大的特点,提高其教学效率,降低学习难度,为提高教学质量提供一些有益的建议。
关键词:Python软件;人工智能;机器学习;图像处理
中图分类号:TP181;TP311.52
numpy库不具有的功能有0 引言
机器学习是是一门理论和实践并重的综合性、多领域交叉的学科,涉及了许多数学领域的理论知识,机器学习在图像、语音、自然语言识别、文本分类等方面得到广泛应用并表现良好,而机器学习还是人工智能发展的主要技术手段和核心技术,而在机器学习这个学科的教学和学习过程中,除了要学会经典机器学习算法的使用,还要掌握其背后的数学原理和应用模型的具体
实现,尤其是针对工程应用和科学研究领域的复杂问题的解决时,必须掌握其基本原理和数学模型。但是,学生或专业技术人员要在短时间内掌握机器学习的数学原理和复杂繁琐的公式推导,难度之大可想而知,那么充分利用开源的第三方优秀的机器学习工具包,可以使学习者和使用者自己动手快速实现算法并对其进行验证,一定程度上能够提高学习者的信心和学习兴趣。Python软件具有简单、易读、扩展性强以及多个领域的人工智能算法库等,所以将Python引入机器学习的教学与学习过程中,能够利用其易学易用的特点和丰富的算法工具包,能使学习者快速实现和应用机器学习算法来解决实际问题,即能提高学习者的学习效率,又能帮助其理解机器学习背后复杂的数学原理和模型实现机制,可以在机器学习的教与学中起到事半功倍的效果[1]
在机器学习的传统教学中,往注采用针对基本原理和公式推导的教学方式,着重对原理进行阐述,对权值更新公式进行推导,这种教学方式对于初学者来说不直观、不容易理解,学生很难产生共鸣和感性直观的认识,影响学生的学习效果和深入研究的兴趣。本文讨论利用Python如何提高机器学习的学习效率和降低学习难度,实现了机器学习中基本图像处理、深度学习中的卷积操作和池化操作案例,旨在说明利用Python进行简单编程即可实现复杂问题的处理,让学习者体会到Python的简单易用和功能的强大,相比传统教学方式,利用Python
进行直观、灵活的算法实现,能够提高学生的学习兴趣,提高自己动手实现的能力,为培养应用型人才具有一定的参考价值和指导意义。
1 Python软件的特点及应用
Python软件具有简单易学、面向对象、跨平台及开源等特点,尤其是众多开源的科学计算软件包使用Python为基础语言编写且大都提供了Python的调用接口,为学习者和使用者降低了使用门槛,并且有丰富的开源代码、技术资料、开源社区持续提供技术支持,让使用者无后顾之忧,Python 几乎能够实现任何领域的技术编程,如科学运算、大数据、深度学习、序列分析、推荐系统等,且Python软件中都有相应的库提供支持,如封装了常用机器学习算法的Scikit-Learn、基于Tensorflow的深度学习库Keras、图像处理库PIL (Python Image Library)、计算机视觉库OpenCV、科学计算库NumPy、数学计算库SciPy、绘图库Matplotlib等,随着机器学习等技术的快速发展和广泛应用,Python软件已成为人工智能领域的应用非常广泛的开发语言,得到了诸多行业的重点关注和广泛应用,已在模式识别、数据分析、自然语言处理、图像处理、医学领域、运维管理等方面得到广泛应用[2,3]
1.图像处理应用
2.1 显示彩及灰度图像
本文利用PIL、NumPy、Matplotlib库实现图像的读取、显示等处理,PIL库提供了图像处理的常用算法和常用功能,图像显示的核心代码如下:
from PIL import Image 
import matplotlib.pyplot as plt  #绘图库
import numpy as np  #科学计算库
img=Image.open('lena.jpg')  # 打开彩图像lena.jpg
vert('L') 
plt.imshow(img) #显示彩图像
plt.imshow(gray,cmap='gray')
plt.show()
显示结果如图1所示:
a.彩图像                      b.灰度图像
图1 彩及灰度图像的显示
2.2 彩图像RGB颜分量分离及可视化
RGB模型的每个分量在0-255之间取值。对于彩图像,它的每个像素由有三个分量R(红)、G(绿)、B(蓝)表示,即彩图像的每个像素要用三维数组(R,G,B)来表示。对于灰度图像,在每个像素点上只有一个分量,表示该点的亮度值,常用图像的位深为8 bit或10 bit。一副彩图像是往往由不同比例的R、G、B三种分量合而成,如图2所示选定点的R、G、B分量的比例。
图2 彩图像红、蓝、绿颜分量示意图
分离RGB颜分量的核心代码如下:
img=Image.open('lena.jpg')  #打开lena.jpg图像
r,g,b=img.split()  #从图像中分离出RGB颜分量,分别存入变量r、g、b
plt.subplot(131)
plt.imshow(r) 
plt.subplot(132) 
plt.imshow(g) 
plt.subplot(133) 
plt.imshow(b)
plt.show()
显示结果如图3所示:
a.原始图像                b.R通道              c.G通道            d.B通道
图3 图像RGB颜分量示意图
3 图像卷积操作
卷积操作是深度学习中采用的关键技术之一,卷积中图像和卷积核进行逐个元素相乘再求和得到的值作为第二层的特征,在卷积神经网络中,组成卷积核的每个元素代表一个权重值和一个偏差值,卷积利用卷积核对输入数据的操作实现高层特征提取,卷积核的个数决定了最终提取的特征数量[4,5]。卷积的实现过程可描述如下:用一个选定的卷积核根据设定的步长依次过滤图像的各个区域,对图像区域和选定的卷积核进行逐个元素的相乘再求和,计算得到的值将作为这些区域的特征值。常用的卷积核有3x3、5x5等,首先确定一个卷积核,以滑动窗口的方式按选定的步长在图像上依次滑动,每滑动一次,就将重新计算窗口中数据的加权和作为卷积结果,其中权值是卷积核的值,利用一共3*3的卷积核[[-1,1,-1],[1,1,1],[-1,1,-1]]T进行卷积操作的示意图如图4所示。