《机器学习及其Python实践 (7).pdf》由会员分享,可在线阅读,更多相关《机器学习及其Python实践 (7).pdf(88页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、机器学习及其Python实践第7章 神经网络基础第7章 神经网络基础 人类大脑的神经系统是由超百亿神经元(neuron)细胞组成的网络,它是人类智能的物质基础 人工神经网络(Artificial Neural Network,缩写ANN,简称神经网络)是受生物神经系统启发而提出的一种数学模型,目前广泛应用于机器学习和人工智能“神经网络是由具有适应性的简单单元组成的广泛并行互连的网络,它的组织能够模拟生物神经系统对真实世界所做出的交互反应”(T.Kohonen)7.1 神经元模型 神经元的基本功能是接受、整合、传导和输出信息 将大量神经元组合在一起形成网络,其功能就会变得非常强大 生物神经元与M
2、-P神经元模型细胞体轴突树突7.1 神经元模型 生物神经元与M-P神经元模型 y=(xw-)w1x1w2wix2xiywdxd yz=xw-zy=(z)w1x1w2wix2xiwdxd细胞体轴突树突=1,如果 00,如果 0.(7 1)=11+22+.=11+22+.7 2=1,如果 00,如果 0.(7 2)激活函数(activation function)7.1 神经元模型 生物神经元与M-P神经元模型 y=(xw-)w1x1w2wix2xiywdxd yz=xw-zy=(z)w1x1w2wix2xiwdxd=11+22+.7 2=1,如果 00,如果 0.(7 2)激活函数(activa
3、tion function)7.1 神经元模型 生物神经元与M-P神经元模型 Hebb学习规则=+=11+22+.7 3=1,如果 00,如果 0.(7 3)阚道宏7.1 神经元模型 生物神经元与M-P神经元模型 Hebb学习规则 感知机模型=+=11+22+.7 3=1,如果 00,如果 0.(7 3)7.1 神经元模型 常用激活函数 阶跃函数 sigmoid函数 ReLU函数 tanh函数 无激活函数=1 1.(7 8)=+=1,如果+00,如果+07.1 神经元模型 常用激活函数 阶跃函数 sigmoid函数 ReLU函数 tanh函数 无激活函数=1 1.(7 8)=11+,0,1.7
4、 9a=1 =11+1+,0,0.25.(7 9b)7.1 神经元模型 常用激活函数 阶跃函数 sigmoid函数 ReLU函数 tanh函数 无激活函数=1 1.(7 8)=max 0,=,00,0,0,+.7 11a=1,00,0是一个超参数,用于控制更新参数时的步长(即更新幅度)。如果学习率过小,则每次迭代时参数的更新幅度很小,收敛速度慢 可以增大学习率来提高收敛速度,但如果学习率过大则参数可能会更新过头,这将使参数在极值点两边来回振荡,难以收敛 目前提高BP算法收敛速度的方法有两种,一是通过累积梯度来调节更新步长,二是通过自适应学习率来调节更新步长7.3 反向传播算法 基于代次、批次的
5、梯度下降 提高算法收敛速度 带动量的梯度下降法7.3 反向传播算法 基于代次、批次的梯度下降 提高算法收敛速度 带动量的梯度下降法 自适应学习率7.3 反向传播算法 基于代次、批次的梯度下降 提高算法收敛速度 带动量的梯度下降法 自适应学习率 面向深度学习的BP算法 梯度消失或梯度爆炸问题 过拟合问题7.3 反向传播算法 基于代次、批次的梯度下降 提高算法收敛速度 带动量的梯度下降法 自适应学习率 面向深度学习的BP算法 梯度消失或梯度爆炸问题 过拟合问题7.3 反向传播算法 基于代次、批次的梯度下降 提高算法收敛速度 带动量的梯度下降法 自适应学习率 面向深度学习的BP算法 梯度消失或梯度爆
6、炸问题 过拟合问题7.4 TensorFlow机器学习框架TensorFlow开源机器学习平台:https:/ Programming Interface):类库和函数库软件开发框架(framework):软件架构、接口规范以及APITensorFlow API支持Python、C+、Java等主流计算机语言的开发本课程使用Python语言来讲解TensorFlow编程开发7.4 TensorFlow机器学习框架 TensorFlow及其安装 TensorFlow 1(已逐步被淘汰)TensorFlow 2(Python 3.5以上版本)Anaconda+TensorFlow 2 创建Tens
7、orFlow开发环境 验证TensorFlow开发环境7.4 TensorFlow机器学习框架 TensorFlow及其安装 TensorFlow 1(已逐步被淘汰)TensorFlow 2(Python 3.5以上版本)Anaconda+TensorFlow 2 创建TensorFlow开发环境 验证TensorFlow开发环境7.4 TensorFlow机器学习框架 TensorFlow及其安装 TensorFlow 1(已逐步被淘汰)TensorFlow 2(Python 3.5以上版本)Anaconda+TensorFlow 2 创建TensorFlow开发环境 验证TensorFlo
8、w开发环境7.4 TensorFlow机器学习框架 TensorFlow底层接口编程 张量(tensor)及其运算、计算图(dataflow graph)与自动微分 两者相加就是“基于张量的计算图”(TensorFlow)TensorFlow提供了丰富的数据结构类与算法函数,它们被统称为TensorFlow API 底层接口(low-level API)和高层接口(high-level API,即Keras)TensorFlow API所包含的类和函数非常多包 子包 模块 类(或函数)()阚道宏7.4 TensorFlow机器学习框架 TensorFlow底层接口编程 张量(tensor)及其
9、运算、计算图(dataflow graph)与自动微分 两者相加就是“基于张量的计算图”(TensorFlow)TensorFlow提供了丰富的数据结构类与算法函数,它们被统称为TensorFlow API 底层接口(low-level API)和高层接口(high-level API,即Keras)TensorFlow API所包含的类和函数非常多包 子包 模块 类(或函数)()7.4 TensorFlow机器学习框架 TensorFlow底层接口编程 张量类型Tensor、Variable7.4 TensorFlow机器学习框架 TensorFlow底层接口编程 随机生成张量阚道宏7.4
10、TensorFlow机器学习框架 TensorFlow底层接口编程 批次标准化、算术运算1=2+.阚道宏7.4 TensorFlow机器学习框架 TensorFlow底层接口编程 张量运算阚道宏7.4 TensorFlow机器学习框架 TensorFlow底层接口编程 记录并生成计算图阚道宏7.4 TensorFlow机器学习框架 TensorFlow底层接口编程 记录计算图并进行自动微分7.4 TensorFlow机器学习框架 TensorFlow底层接口编程 将数据集包装成Dataset对象7.4 TensorFlow机器学习框架 TensorFlow底层接口编程 使用TensorFlow
11、底层接口搭建神经网络 波士顿房价预测模型 使用TensorFlow搭建神经网络模型的主要工作有:加载数据集、对数据集进行预处理、设计并搭建神经网络、编写训练(fit,即学习)算法和预测(predict)算法,最后使用训练集训练模型,并使用测试集对模型进行测试、评估阚道宏7.4 TensorFlow机器学习框架 TensorFlow底层接口编程 使用TensorFlow底层接口搭建神经网络 波士顿房价预测模型 使用TensorFlow搭建神经网络模型的主要工作有:加载数据集、对数据集进行预处理、设计并搭建神经网络、编写训练(fit,即学习)算法和预测(predict)算法,最后使用训练集训练模型
12、,并使用测试集对模型进行测试、评估7.4 TensorFlow机器学习框架 TensorFlow底层接口编程 使用TensorFlow底层接口搭建神经网络 波士顿房价预测模型 使用TensorFlow搭建神经网络模型的主要工作有:加载数据集、对数据集进行预处理、设计并搭建神经网络、编写训练(fit,即学习)算法和预测(predict)算法,最后使用训练集训练模型,并使用测试集对模型进行测试、评估w11w35u11u51输入层隐层输出层y1x1x2x3h1h57.4 TensorFlow机器学习框架 TensorFlow底层接口编程 使用TensorFlow底层接口搭建神经网络 波士顿房价预测模
13、型 使用TensorFlow搭建神经网络模型的主要工作有:加载数据集、对数据集进行预处理、设计并搭建神经网络、编写训练(fit,即学习)算法和预测(predict)算法,最后使用训练集训练模型,并使用测试集对模型进行测试、评估w11w35u11u51输入层隐层输出层y1x1x2x3h1h57.4 TensorFlow机器学习框架 TensorFlow底层接口编程 使用TensorFlow底层接口搭建神经网络 波士顿房价预测模型 使用TensorFlow搭建神经网络模型的主要工作有:加载数据集、对数据集进行预处理、设计并搭建神经网络、编写训练(fit,即学习)算法和预测(predict)算法,最
14、后使用训练集训练模型,并使用测试集对模型进行测试、评估w11w35u11u51输入层隐层输出层y1x1x2x3h1h5阚道宏7.4 TensorFlow机器学习框架 TensorFlow底层接口编程 使用TensorFlow底层接口搭建神经网络 波士顿房价预测模型 使用TensorFlow搭建神经网络模型的主要工作有:加载数据集、对数据集进行预处理、设计并搭建神经网络、编写训练(fit,即学习)算法和预测(predict)算法,最后使用训练集训练模型,并使用测试集对模型进行测试、评估w11w35u11u51输入层隐层输出层y1x1x2x3h1h57.5 Keras高层接口建模 Keras(号角
15、,来自希腊语)是一个用Python语言编写的专门用于神经网络与深度学习的高层接口(或称作KerasAPI)Keras能让科学家、工程师摆脱编程困扰,迅速将神经网络与深度学习引入自己的研究开发工作。注:如果是神经网络或深度学习建模则可以选用Keras,否则应选用其他Python库(例如Scikit-learn)Keras实际上是一个第三方开源Python库,在机器学习领域具有广泛的影响力。为此,TensorFlow从第2版开始引入Keras,将其作为自己的高层接口 安装TensorFlow 2时,Keras API将作为其中的一个子包被同时安装7.5 Keras高层接口建模 从编程到装配 Ker
16、as的核心是模型类Model以及构成模型的网络层类Layer 模型类Model下最常用的子类是堆叠式神经网络模型类Sequential(或称顺序模型类);网络层类Layer下最常用的子类是全连接网络层类Dense 在程序设计中,类(class)像是一张设计图纸,用类定义对象(object)就相当于是按照图纸制造程序零件(或称作实例,instance)7.5 Keras高层接口建模 从编程到装配 Keras用Python语言编写了搭建神经网络模型所需的全部代码,并以类的语法形式提供给用户使用。对用户来说,Keras能将神经网络建模工作从复杂的编程转变成简单的装配 使用Keras高层接口搭建神经网
17、络模型的完整流程,共5个环节,它们依次是:搭建神经网络模型、配置模型、训练模型、评估模型和应用模型阚道宏7.5 Keras高层接口建模 从编程到装配 搭建神经网络模型 配置模型 训练模型 评估模型 应用模型7.5 Keras高层接口建模 从编程到装配 搭建神经网络模型 配置模型 训练模型 评估模型 应用模型阚道宏7.5 Keras高层接口建模 使用Keras高层接口建立回归模型 加载数据集并进行预处理 搭建神经网络模型 训练模型并查看训练过程 测试并评估模型阚道宏7.5 Keras高层接口建模 使用Keras高层接口建立回归模型 加载数据集并进行预处理 搭建神经网络模型 训练模型并查看训练过程
18、 测试并评估模型阚道宏7.5 Keras高层接口建模 使用Keras高层接口建立分类模型 TensorFlow提供了一个手写数字数据集(名为MNIST)其中包含六万个手写数字样本图像,每幅图像的大小为2828=784像素阚道宏7.5 Keras高层接口建模 使用Keras高层接口建立分类模型 TensorFlow提供了一个手写数字数据集(名为MNIST)其中包含六万个手写数字样本图像,每幅图像的大小为2828=784像素7.5 Keras高层接口建模 使用Keras高层接口建立分类模型 TensorFlow提供了一个手写数字数据集(名为MNIST)其中包含六万个手写数字样本图像,每幅图像的大小
19、为2828=784像素w11w784,128输入层隐层1输出层p0p1p9x1x2x784h11h1128softmaxu11u64,10h21h264隐层2z0z1z97.5 Keras高层接口建模 使用Keras高层接口建立分类模型 TensorFlow提供了一个手写数字数据集(名为MNIST)其中包含六万个手写数字样本图像,每幅图像的大小为2828=784像素w11w784,128输入层隐层1输出层p0p1p9x1x2x784h11h1128softmaxu11u64,10h21h264隐层2z0z1z9阚道宏7.5 Keras高层接口建模 使用Keras高层接口建立分类模型 Tenso
20、rFlow提供了一个手写数字数据集(名为MNIST)其中包含六万个手写数字样本图像,每幅图像的大小为2828=784像素w11w784,128输入层隐层1输出层p0p1p9x1x2x784h11h1128softmaxu11u64,10h21h264隐层2z0z1z9阚道宏7.5 Keras高层接口建模 使用Keras高层接口建立分类模型 TensorFlow提供了一个手写数字数据集(名为MNIST)其中包含六万个手写数字样本图像,每幅图像的大小为2828=784像素w11w784,128输入层隐层1输出层p0p1p9x1x2x784h11h1128softmaxu11u64,10h21h264隐层2z0z1z9第7章 神经网络基础 本章学习要点 生物神经元、M-P神经元模型、感知机与Hebb学习规则、常用激活函数sigmoid/ReLU/tanh/softmax、小批量梯度下降法、代次/批次 多层前馈神经网络、输入层/隐层/输出层的功能与设计、基于特征/基于数据的机器学习、深度学习、梯度爆炸/梯度消失、过拟合 前向计算与反向求导、反向传播算法(BP算法)、RMSProp算法、Adam算法、批次标准化、早停、Dropout TensorFlow2下载与安装、张量及其运算、计算图与自动微分、使用TensorFlow底层接口/Keras高层接口搭建神经网络模型