邢立国 李文坚 刘玉坤
摘要:深度学习已经成为近几年来的研究热点。在诸多深度学习研究工具中,pytorch是最流行、最常用系统之一。对pytorch进行了介绍,并给出了一个线性回归案例,使用pytorch语言进行了实现。文章既可以对pytorch的入门学习者助一臂之力,又可以使深度学习的爱好者从中受益。
关键词:深度学习;pytorch;线性回归
中图分类号:TP3 文献标识码:A
文章编号:1009-3044(2019)26-0202-02
开放科学(资源服务)标识码(OSID):
目前AI研究出现了新的高潮,人工智能相关领域的科学研究已经被应用到国民生活的各个领域[1]。深度学习是机器学习研究的一个新的领域,其动机在于建立、模拟人脑进行分析学习的神经物理,例如“自然语言处理”“人机博弈”“语音识别”。当今对深度学习的关注度也在不断攀升。在诸多深度学习系统中,pyTorch 很快成为 AI 研究人员的热门选择并受到推崇[2]。文章介绍了线性回归,pytorch的相关概念,其次描述了一个线性回归的案例并给出了部分pytorch代码实现。
1 pytorch
pyTorch是美国互联网巨头Facebook在深度学习框架Torch的基础上使用Python重写的一个全新的深度学习框架,它更像NumPy的替代产物,不仅继承了NumPy的众多优点,还支持GPUs计算,在计算效率上要比NumPy有更明显的优势;不仅如此,PyTorch还有许多高级功能,比如拥有丰富的API,可以快速完成深度神经网络模型的搭建和训练。所以 PyTorch一经发布,便受到了众多开发人员和科研人员的追捧和喜爱,成为AI从业者的重要工具之一。
2 线性回归
一般地,变量之间的关系可以是确定关系,也可以是非确定关系,变量之间的非确定关系称为回归关系。在简单线性回归中,可以使用训练数据的统计数据来估计模型所需的系数,以便对新数据进行预测。例如,第三产业职工的工资剖面曲线格[3]。输出变量(y)可以从输入变量(z)的线性组合来计算。当有一个输入变量时,描述两个变量z和y之间关系的简单线性回归模型可以用下面的方程表示y=az^2+bz+c,数字a和b称为参数,c是误差项。下面通过pytorch来实现简单的线性回归,通过对数据进行训练,计算出二次线性回归函数(y=az^2+bz+c)中a、b和c的值,并通过验证数据,验证得到的函数是否符合预期效果。
3 pytorch实现
(1)Moudle(模块)引入
Moudle是python中的一个重要结构,pytorch的程序是由一个个moudle构成。为了方便代码的重用,可以导入该Moudle[4],这样就可以调用该模块的函数或类,首先导入torch模块,为了看到结果,引入pltlib,引入测试数据Moudle (此模块代码从略)。
(2)得到训练数据
(4)参数优化。深度学习[5]常见的是对于grad(梯度)的调优调优就是各种对于grad下降算法的优化。这里使用了loss.backward()函数。一般在上面这个函数的之后再添加一个最小化代价函数,构成深度学习中的训练对象。在pytorch中调整假设y=az^2+bz+c,使用grad下降算法找最优解。
4 多轮训练效果
经过多轮训练后,训练结果如图1二次回归散点模拟图所示。使用Pyplot进行线性回归模拟求解直观的实现二次函数的参数模拟求解。应用二次函数求值并且加上高斯误差的点均匀地分布在抛物线附近,非常直观,见图1。
5 结语
Pytorch及其扩展函数库构成了一个丰富、完整的神经网络构建、应用平台,开源,免費,学习和使用方便,本文给出了线性回归的介绍,并使用pytorch对该模型进行了实现,具有一定的学习和应用价值。Pytorch非常适合深度学习领域的项目设计和应用。广大深度学习专业人员,以及爱好者可以学习和使用Pytorch,以提高工作效率。本文也可以给入门级的读者带来一个全新的体验。
参考文献:
[1] https://blog.csdn.net/sfm06sqvw55dft1/article/details/79149283.
[2] 陈云.深度学习框架PyTorch:入门与实践[M].北京:电子工业出版社,2018.
[3] 廖星宇.深度学习入门之PyTorch深度学习框架PyTorch:入门与实践[M].北京:电子工业出版社,2018:67-75.
[4] https://deeplearning4j.org/cn/linear-regression.
[5]https://blog.csdn.net/u011012422/article/details/72808898?utm_source=itdadao&utm_medium=referral.
【通联编辑:代影】