本书聚焦近期涌现的人工智能、机器人工程、智能医学工程等新工科专业对于人才培养的实际需求,着力解决人工智能基础知识交叉贯通不足、配套实验实践支撑不强等问题。书中主要内容包括Python编程基础、神经网络基础、深度学习计算框架、卷积神经网络、序列到序列网络、目标检测及其应用、语义分割及其应用等。
本书结合高等院校人工智能相关专业的知识体系,将基础知识和编程实践相结合,通过代码实例分析,使得基础知识变得直观易懂;通过基础Python编程和PyTorch框架编程的结合进行实践,适应互联网时代共享代码的社区生态需求;通过综合实践例程,使读者经历知识学习、数据准备、代码编写、参数调试、结果分析等过程,在掌握相关技术的同时提高学习兴趣。
本书可满足高等院校人工智能相关专业的学生学习基础知识及实践创新的需求,也可为电子、信息等相关领域的从业者转型人工智能领域提供入门学习资料。
本教材是基于山东大学人工智能、机器人工程、智能医学工程等新工科专业建设,特别是“人工智能与机器人”新工科实验班的教学育人实践,因此本教材有着扎实的理论功底和实践基础,是一本理实结合的、有特色的新工科教材。
本教材的编写专注于人工智能*前沿的深度学习技术。结合大学相关专业知识体系的构成,将理论和代码相结合,通过代码的可视化,使得理论知识变得直观有趣;介绍应用*广泛的Pytorch框架为主,满足新型互联网时代共享代码的社区生态需求;本教材包含综合实践项目,使同学经历知识学习、编程测试、实际部署、效果展示等过程,在掌握技术的同时提高兴趣。
近年来,受益于硬件计算能力的跨越式提升和海量数据的涌现,神经网络、卷积神经网络、深度学习等理论算法得以高效实现并不断优化,在人工智能技术和相关产业应用中的地位和重要性日益提升。2006年,G.E.Hinton研究组有关深层网络训练的工作使得深度学习重回大众视野,该年因此也被称为深度学习元年。2012年,G.E.Hinton研究组凭借AlexNet在备受关注的ImageNet竞赛中强势夺冠后,基于深度学习的人工智能技术更是迎来爆发式发展期,在图像、语音等领域获得了优异的表现,并得到产业界的广泛认可和大力推进。
在人工智能算法的实现和部署过程中,有C、C++、Java、Python等高级编程语言可供选择,其中可读性好、灵活性强、库资源丰富的Python语言一直是大部分深度学习和人工智能领域开发人员的首选。对高等院校及相关行业的人工智能技术初学者来说,在学习前沿理论知识的同时,结合Python编程语言进行人工智能技术实践,是加深其对人工智能基础知识的理解、快速提升其技术开发能力的有效途径,因而本书使用Python作为算法实现、实验实践的编程语言。
本书聚焦国家新一代人工智能发展规划,面向人工智能、机器人工程、智能医学工程等新工科专业人才培养的实际需求,着力解决人工智能基础知识交叉不足、理论技术和业界应用关联不紧及实验实践教材匮乏、内容体系支撑不强等问题,主要内容包括Python编程基础、神经网络基础、深度学习计算框架、卷积神经网络、序列到序列网络、目标检测及其应用、语义分割及其应用等。
本书突出前沿性、实践性,以深度学习关键技术为牵引,设计构建紧贴产业实际的实践案例,可满足高等院校相关专业的本科生或研究生人工智能基础知识学习及实践创新的需求,也可以作为相关行业技术人员的参考资料。
本书基于山东大学人工智能、机器人工程、智能医学工程等新工科专业建设,特别是“人工智能与机器人”新工科实验班的教学育人实践,参考借鉴其他高水平大学人工智能相关专业知识体系的构成,将基础知识和编程实践相结合,通过代码实例分析,使得基础知识变得直观易懂;将基础Python编程和PyTorch框架编程结合设计实践内容,以适应互联网时代共享代码的社区生态需求;通过综合实践例程,帮助读者打通知识学习、数据准备、代码编写、参数调试、结果分析等全链条学习过程,在掌握相关技术的同时提高学习兴趣。
本书编写过程中,陈佳铭、曹淑强、孟子喻等十余名研究生参与了本书的校对工作,并对其中的代码进行了验证和完善,在此一并致谢!书中的实践例程多来源于人工智能技术的实际应用,具备良好的经济和社会效益,对于实践创新将起到良好的启发和指导作用。
以深度学习为基础的人工智能技术发展得如火如荼,但也面临诸多的挑战。希望本书能够引领读者打开人工智能技术的大门,不断开拓创新,在学术界或行业内创造优异成果!
张伟,教授,山东大学,毕业于香港中文大学,现从事人工智能、机器人方面的研究与教学工作。先后主持/参与部省校本科教改项目10项;撰写“新工科人工智能相关专业程序设计课程体系设置探讨”教研论文并发表在清华大学主办的教研期刊《计算机教育》;担任学院教学指导委员会委员,中国自动化学会智慧教育专委会首届委员;获山东省自动化学会教学成果特等奖、山东大学教学成果二等奖等荣誉奖励。
前言
第1章Python编程基础
1.1Python简介
1.2Python安装与运行
1.3Python基础编程
1.3.1标识符
1.3.2注释
1.3.3行和缩进
1.3.4变量和数据类型
1.3.5基本计算
1.3.6数据结构
1.3.7控制语句
1.3.8函数
1.3.9模块
1.4Python面向对象编程
1.4.1类
1.4.2继承机制
1.4.3类变量与方法的属性
1.5Python常用库介绍
1.5.1NumPy库
1.5.2Matplotlib库
1.6小结
参考文献
第2章神经网络基础
2.1感知机模型
2.2神经网络模型
2.2.1神经网络的架构
2.2.2激活函数
2.3神经网络学习原理
2.3.1数据集的准备
2.3.2损失函数
2.3.3小批量学习
2.3.4梯度下降法
2.3.5误差反向传播算法
2.4神经网络学习实践
2.4.1设计神经网络类
2.4.2小批量学习的实现
2.5神经网络学习技巧
2.5.1优化方法的选择
2.5.2权重初始值的设定
2.5.3批量归一化
2.5.4正则化方法
2.5.5数据增强
2.6小结
参考文献
第3章深度学习计算框架
3.1常用深度学习计算框架简介
3.2GPU加速配置
3.3PyTorch安装
3.4张量
3.4.1张量的概念
3.4.2张量的基本操作
3.5动态计算图
3.6神经网络层和模块
3.7PyTorch神经网络学习实践
3.8小结
参考文献
第4章卷积神经网络
4.1卷积神经网络的基本原理
4.1.1卷积神经网络的基本架构
4.1.2卷积运算
4.1.3卷积运算实例:边缘检测
4.1.4卷积层及其代码实现
4.1.5填充
4.1.6步幅
4.1.7池化
4.2经典卷积神经网络模型
4.2.1数据集的准备
4.2.2Pipeline
4.2.3LeNet
4.2.4AlexNet
4.2.5VGG
4.2.6GoogLeNet
4.2.7ResNet
4.3小结
参考文献
第5章序列到序列网络
5.1循环神经网络(RNN)
5.1.1RNN的基本原理
5.1.2RNN的简单实现
5.2长短期记忆网络(LSTM)
5.2.1LSTM的基本原理
5.2.2LSTM的简单实现
5.3Transformer网络
5.3.1自注意力层
5.3.2Transformer网络结构
5.3.3Vision Transformer(ViT)网络
5.4小结
参考文献
第6章目标检测及其应用
6.1目标检测的基本概念
6.1.1边界框
6.1.2锚框
6.1.3交并比
6.1.4NMS操作
6.1.5评价指标
6.2常用的目标检测算法
6.2.1区域卷积神经网络(R-CNN)系列
6.2.2YOLO系列
6.3实践案例:行人检测
6.3.1基于Faster R-CNN的行人检测
6.3.2基于YOLO v5的行人检测
6.3.3YOLO v5与Faster R-CNN算法对比
6.4小结
参考文献
第7章语义分割及其应用
7.1语义分割的基本概念
7.1.1语义分割任务描述
7.1.2上采样
7.1.3膨胀卷积
7.1.4定义损失函数
7.1.5评价指标
7.2语义分割网络
7.2.1FCN
7.2.2U-Net架构
7.2.3DeepLab系列
7.3实践案例:城市街景分割
7.3.1实践Pipeline
7.3.2算法对比分析
7.4小结
参考文献