深度学习应用开发-TensorFlow实践

https://www.icourse163.org/learn/ZUCC-1206146808?tid=1206445215

课程概述

不干涩地讲深层次理论和算法,也不是纯粹介绍TensorFlow的编程。而是针对大多数潜在学员的特点(有基本的编程能力,对开发人工智能应用感兴趣,学过一些基本概率统计和线性代数,但谈不上有深厚的数学功底和人工智能理论基础),通过针对典型的人工智能应用场景,设计系列针对性案例来引导学习过程。主要案例包括价格预测、手写数字识别、图像识别、文本情感分析、图像自动生成等,在案例讲解过程中深入浅出地介绍相关理论,并会从中讲解TensorBoard可视化、模型的断点续训等实用技巧。

本课程将主要内容根据学习阶段分为四部分:筑基篇、启航篇、进阶篇和扩展篇。筑基篇包括人工智能简介、开发环境搭建和Python开发语言快速入门、TensorFlow编程基础等三讲内容;启航篇从单个神经元的线性回归应用开始,直到完成多层神经网络应用开发,共有四讲内容;进阶篇主要围绕深度网络,从卷积神经网络CNN开始,历经循环神经网络RNN、生成对抗网络GAN等应用开发,涵括迁移学习等内容;扩展篇则包括Keras框架、TensorFlow.js、TensorFlow Lite移动应用开发等高级话题。

授课目标

本课程将全面介绍基于TensorFlow深度学习框架的人工智能应用开发技术。课程不仅会讲解机器学习的基础理论和主流的模型及算法(包括线性回归、神经网络、卷积神经网络、循环神经网络、生成对抗网络等),而且会重点讲解如何基于TensorFlow框架,针对不同的应用场景进行深度学习模型的选择、构建和应用。让学习者能快速具备人工智能问题求解的基本思想和初步的人工智能应用软件开发能力。

课程大纲

01

人工智能导论

感受人工智能时代得到来,回顾人工智能发展史

课时

1 人工智能,未来以来?

2 人工智能,未来以来!

3 人工智能发展史 跌宕起伏的60+年

02

深度学习简介及开发环境搭建

介绍深度学习相关概念,并讲解如何搭建开发环境

课时

1 人工智能、机器学习与深度学习

2 深度神经网路与深度学习框架

3 Anaconda和TensorFlow开发环境搭建

03

(根据基础选修)Python快速入门

快速掌握Python程序设计方法

课时

1 引言、输出语句Print、变量、数据类型和基本运算

2 字符串、列表、元组、集合、字典、格式化输出和类型转换

3 程序结构与控制语句

04

磨刀不误砍柴工:TensorFlow 编程基础

TensorFlow 编程基础

课时

1 TensorFlow的基础概念

2 TensorFlow的基本运算

3 TensorBoard可视化初步

05

单变量线性回归:TesnsorFlow实战

通过一个最简单的案例:单变量线性回归问题来体验一下TesnsorFlow实战

课时

1 监督式机器学习的基本术语

2 线性回归问题TensorFlow实战:初步

3 线性回归问题TensorFlow实战:进阶

06

多元线性回归:波士顿房价预测问题TesnsorFlow实战

通过波士顿房价预测的案例,讲述稍微复杂一点的多个变量的线性回归问题如何实现。针对线性代数基础薄弱的同学,特别提供了一节涉及所用的矩阵运算的讲解

课时

1 波士顿房价预测:数据与问题分析

2 机器学习中的线性代数基础(根据基础选修)

3 第一个版本的模型构建

4 后续版本的持续改进

07

MNIST手写数字识别:分类应用入门

通过MNIST手写数字识别案例,讲解如何通过简单神经网络实现图片分类应用

课时

1 MNIST手写数字识别数据解读

2 分类模型构建与训练

08

MNIST手写数字识别进阶:多层神经网络与应用

仍然以MNIST手写数字识别为例,讲解如何进一步通过多层神经网络来提高识别准确率

课时

1 单隐藏层神经网络构建与应用

2 多层神经网络建模与模型的保存还原

3 TensorBoard进阶与TensorFlow游乐场

09

图像识别问题:卷积神经网络与应用

通过CIFAR-10图像识别案例讲解卷积神经网络的建模和应用

课时

1 从全连接神经网络到卷积神经网络:解决参数太多的问题

2 卷积神经网络的基本结构

3 TensorFlow对卷积神经网络的支持

4 CIFAR-10图像分类案例的TensorFlow卷积神经网络实现

10

Deep Dream:理解深度神经网络结构及应用

通过Deep Dream的案例实践,帮助学员进一步理解深度神经网络结构及应用

课时

1 Deep Dream:计算机生成梦幻图像

2 经典深度神经网络与数据增强

3 Inception模型文件导入与卷积层分析

4 Deep Dream图像生成

11

猫狗大战:迁移学习及应用

通过猫狗大战案例的实现,讲解在实际中最常用的迁移学习

课时

1 猫狗大战案例介绍

2 基于VGG16的迁移学习

3 案例实践

12

泰坦尼克号旅客生存预测:Keras应用实践

通过泰坦尼克号旅客生存预测案例,讲解TensorFlow的高层API:Keras的应用

课时

1 泰坦尼克号旅客生存预测案例分析与数据处理

2 Keras建模与应用

3 Keras模型训练过程中数据存储与模型恢复

13

电影评论情感分析:自然语言处理应用实践

通过电影评语情感分析案例,讲解自然语言处理的原理及循环神经网络RNN应用实践

课时

1 电影评论情感分析案例

2 自然语言处理的基本原理

3 循环神经网络RNN和LSTM

4 通过Keras实现电影评论情感分析

14

(高阶选修) FashionMNIST图像生成:生成式对抗网络原理及Tensorflow实现

通过FashionMNIST图像生成案例,讲解生成式对抗网络原理及Tensorflow实现

课时

1 生成式对抗网络(GAN)的简介

2 利用GAN生成Fashion-MNIST图像

3 利用CGAN生成Fashion-MNIST图像

15

(高阶选修) 鸢尾花品种识别:TensorFlow.js应用实践

通过鸢尾花品种识别案例,讲解TensorFlow.js开发人工智能网页应用开发

课时

1 TensorFlow.js介绍和第一个web程序

2 IDE和第一个TensorFlow.js程序

3 TensorFlow.js的核心概念和API介绍

4 鸢尾花分类案例构建

16

(高阶选修) 花卉识别App:TensorFlow Lite与移动应用开发

通过花卉识别App的案例,讲解TensorFlow Lite与Android移动应用开发

课时

1 TensorFlow Lite介绍和优势特点

2 花卉识别:TF Lite模型重训练和模型转换

3 花卉识别:安卓App运行TF Lite

17

课程大作业项目

布置课程大作业项目,展示部分往年作品

课时

1 课程大作业选题及提交

2 部分往年作品展示

预备知识

有基本的编程能力,学过一些基本概率统计和线性代数

不需要有深厚的数学功底和人工智能理论基础

证书要求

合格线:60分

优秀线:85分

参考资料

吴明晖、李卓蓉、金苍宏,深度学习应用开发 - 基于TensorFlow的实践,高等教育出版社(待出版)

教材电子版本:

常见问题

Q : 这门课程对数学要求是否很高?

A : 本门课程偏应用开发,目的是在了解实现原理的基础上会建模、应用。需要了解一些基本的求导数、矩阵点乘、叉乘的概念,但不用做复杂的公式求解和推导。

Q : 这门课对编程要求是否很高?

A : 既然叫应用开发,当然是要编程实现的。本门课程采用Python编程,但只需要基本的编程技能,因此谈不上对编程技巧有太高要求。对于学过C语言或者Java语言,但没有学过Python的学员,还提供了一讲Python快速入门的章节,相信花点功夫就能跟上的。

Q : 这门课对开发机器的要求是否很高,没有GPU的一般电脑能做开发吗?

A : 作为教学案例,所设计的项目对电脑的要求谈不上高,普通配置的笔记本电脑都能顺利运行。只有到后面迁移学习需要训练深度神经网络时,如果有GPU会更快。总体说来是不用担心电脑配置问题影响学习的。

Q : 这门课采用的TensorFlow版本是多少?

A : 目前TensorFlow发布的最新版本是2.0Beta,本课程在录制时的版本没有这个高。简单案例其实和版本关系不大,主要通过教案体会思想。如果大家想提前安装环境,可以安装Anaconda(Python3.x)+TensorFlow2.0。课程讲义会提供2.0版本的案例代码。