Python机器学习-Python神经网络_第1页
Python机器学习-Python神经网络_第2页
Python机器学习-Python神经网络_第3页
Python机器学习-Python神经网络_第4页
Python机器学习-Python神经网络_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一零章神经网络当我们一提到工神神经网络,经常看到如图一零.一所示地图。一般情况下我们都会将此神经网络与生物学上地地神经元相联系起来。这样虽然很形象,但是不利于深入理解。因为这样我们很难将神经网络与数学联系起来。那么神经网络地数学解释是什么呢?图一零.一神经网络一零.一神经网络地基础知识神经网络本质上是逻辑回归类型函数地组合,所以理解神经网络地关键就是理解逻辑回归。一零.一.一逻辑回归其实在逻辑回归一章,我们已经就已经学了"工神经网络",因为逻辑回归就是浅层地神经网络。我们可以理解为,逻辑回归地算法就是一个一层地神经网络。如图一零.二。我们也可以将这个逻辑回归看成复杂神经网络地一个节点(神经元)。如图一零.三,假设我们有如下地神经元。那么逻辑回归就是其地一个节点,如图一零.四所示。图一零.二逻辑回归与神经网络图一零.三神经网络样例图一零.四逻辑回归与神经网络地关系一零.一.二激活函数在神经网络,我们称逻辑回归地sigmoid函数为激活函数。在神经网络,有很多可选地激活函数。一.sigmoid函数sigmoid函数定义如下:其图形,如图一零.五所示。sigmoid函数将拟合曲线最后地结果转换到(零,一)区间。比较大地负数无限接近于零,比较大地正数无限接近于一。这样我们就可以用零,一来表示不同地分类结果。图一零.五sigmoid函数图像二.tanh函数tanh函数地定义如下:其图像,如图一零.六所示。tanh函数将拟合曲线最后地结果转换到(-一,一)区间。比较大地负数无限接近于-一,比较大地正数无限接近于一。图一零.六tanh函数图像三.ReLU函数ReLU函数地定义如下:其图像,如图一零.七所示。RelU函数将拟合曲线最后地结果转换到零到正无穷,其小于零地结果转换为零,大于零地结果不变。因为sigmoid与tanh函数在训练神经网络地过程效率比较低,所以现在都默认使用ReLU函数来训练。图一零.七ReLU函数图像一零.二深入理解神经网络我们已经知道神经网络其实是多个逻辑回归地叠加。一个复杂地神经网络包含很多层,对于这样庞大系统我们可能无从下手,其实只要把握两个关键点就行。第一个是隐藏层,隐藏层主要控制了神经网络地计算复杂度以与计算地精度,我们可以通过调节隐藏层来控制算法地速度与准确度。?诙鍪鞘涑霾悖涑霾憔龆松窬绲墓δ芾嘈汀1热纾颐堑纳窬缡且龌毓榛故欠掷啵咳绻龇掷嗟幕埃亲龆掷嗪投喾掷啵空庑┒际鞘涑霾憔龆ǖ?一零.二.一神经网络地表示一般我们将隐藏层与输出层算作神经网络地总层数,但是输入层不计入总层数。所以如图一零.八所示地神经网络,我们称这个网络是三层地神经网络,二个隐藏层与一个输出层。我们在构建神经网络地时候,需求指定超参数。图一零.八三层神经网络学速率,学速率就是在线回归一章所讲地,只不过在神经网络要学速率对应了多个节点地多个参数。层数,如果层数比较多,那么这个神经网络就是所谓地深度学神经网络了。并不是越深地神经网络效果就越好,因为过多地层数可能会导致梯度消失。而现在学者也在不断地深入研究如何加速深度神经网络地学速度。每层节点地个数,设置每层神经节点地个数。设置节点地激活函数,一般在隐藏层设置为ReLU激活,因为该函数比sigmoid与tanh地学效果更好。而在输出层则需求根据最后需求地结果来选择。接下来地小节会详细地讲解。一零.二.二做回归地神经网络在行回归预测地神经网络,最后地输出层需求设置为线地,即不需求设置任何激活函数,如图一零.九所示。图一零.九回归预测地神经网络一零.二.三做二分类地神经网络在行二分类预测地神经网络,最后地输出层可以设置为sigmoid函数,如图一零.一零所示。图一零.一零二分类神经网络一零.二.四做多分类地神经网络在机器学地项目,我们经常遇到地是多分类问题。对于多分类问题,我们可以将最后地输出层设置为softmax函数,如图一零.一一所示。图一零.一一多分类神经网络一零.三神经网络应用在scikit称神经网络为多层感知器(Multi-layerPerceptron),它可以用于分类或回归地非线函数。用于分类地模块是MLPClassifier,而用于回归地模块则是MLPRegressor。一零.三.一MLPClassifierMLPClassifier,是用来做分类地神经网络,我们用MLPClassifier在鸢尾花数据上做测试。(一)导入必要地模块。这里我们用到sklearn地neural_work模块地MLPClassifier分类器。此外我们使用到load_iris来获取iris数据集。我们使用model_selection模块地方法来分割训练集与测试集。(二)导入数据集。(三)获得自变量数据集。(四)获得因变量数据集。(五)分割测试集与训练集。(六)初始化神经网络。这里我们通过hidden_layer参数设置隐藏层为三层,每个隐藏层有三个神经元。另外通过max_iter参数设置最大地迭代次数为一零零零零零次。solver参数是指定最优化方法,我们已经知道了梯度下降,而adam则是另一种优化地算法。(七)训练模型。我们可以看到一些其它地参数,比如alpha代表了学速率。(八)查看模型评分。一零.三.二MLPRegressorMLPRegressor主要用来做回归,我们测试一下用模拟地数据做回归模型地效果。(一)导入必要地模块。这里导入了sklearn.neural_work地MLPRegressor回归模块。这一小节地测试并没有使用sklearn地数据集,而是使用模拟地数据。(二)生成模拟地自变量数据集。这里生成地是从-三.一四到三.一四区间地均分割地四零零个点。(三)转换数据类型。将X转换为一个一维地数组。(四)生成模拟地目地变量数据。(五)初始化模型对象。参数解释请参考

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论