深度学习入门系列1:多层感知器概述

深度学习入门系列1:多层感知器概述本人正在学习《deeplearningwithpython》–JasonBrownlee,有兴趣的可以一起学习。人工智能系列1:多层感知器概述待更新:人工智能系列2:用Keras构建你的第一个神经网络人工智能系列3:深度学习模型性能评价人工智能系列4:使用keras模型与scikit-learn进行通用机器学人工智能系列5:项目:花种的多分类人工智能系列6:项目:声纳二分类人工智能系列7:项目:波士顿房屋价格回归人工智能系列8:保存模型以便稍后进行序列化人工智能系列9:训练期.

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

本人正在学习《deep learning with python》–Jason Brownlee,有兴趣的可以一起学习。
仅供学习参考,不做商用!

大家好,我技术人Howzit,这是深度学习入门系列第一篇,欢迎大家一起交流!

深度学习入门系列1:多层感知器概述
深度学习入门系列2:用TensorFlow构建你的第一个神经网络
深度学习入门系列3:深度学习模型的性能评价方法
深度学习入门系列4:用scikit-learn找到最好的模型
深度学习入门系列5项目实战:用深度学习识别鸢尾花种类
深度学习入门系列6项目实战:声纳回声识别
深度学习入门系列7项目实战:波士顿房屋价格回归
深度学习入门系列8:用序列化保存模型便于继续训练
深度学习入门系列9:用检查点保存训练期间最好的模型
深度学习入门系列10:从绘制记录中理解训练期间的模型行为
深度学习入门系列11:用Dropout正则减少过拟合
深度学习入门系列12:使用学习规划来提升性能
深度学习入门系列13:卷积神经网络概述
深度学习入门系列14:项目实战:基于CNN的手写数字识别
深度学习入门系列15:用图像增强改善模型性能
深度学习入门系列16:项目实战:图像中目标识别
深度学习入门系列17:项目实战:从电影评论预测情感
深度学习入门系列18:循环神经网络概述
深度学习入门系列19:基于窗口(window)的多层感知器解决时序问题
深度学习入门系列20:LSTM循环神经网络解决国际航空乘客预测问题
深度学习入门系列21:项目:用LSTM+CNN对电影评论分类
深度学习入门系列22:从猜字母游戏中理解有状态的LSTM递归神经网络
深度学习入门系列23:项目:用爱丽丝梦游仙境生成文本


虽然人工神经网络刚开始学习时有点难,但是它仍是一个令人着迷的研究领域。在描述整个领域的数据结构和算法时,使用了许多术语。在这节课,你将带你快速学习多层感知器人工神经网络领域所使用的术语以及过程。完成课程后,你将了解:

  • 构建神经网络块,包括神经元,权重和激活函数。
  • 如何在层中使用构建块创建网络。
  • 如何从样本数据训练网络

让我们开始吧

1.1 概述

在这节课,我们将涵盖很多方面:

  • 多层感知器
  • 神经元,权重和激活函数
  • 神经元网络
  • 训练网络

我们将从多层感知器概述开始。

1.2 多层感知器

在它成为最具有使用价值的神经网络之前,人工神经网络领域经常被叫做神经网络或者多层感知器。一个感知器是一个单神经元模型,它是大型神经网络的前生。这个领域主要研究如何使用生物大脑的简单模型解决复杂计算任务,就像我们看到机器学习中看到预测模型任务一样。其目标不是构建一个真是人脑模型,而是开发一个鲁棒性更高的算法和数据结构,能够对复杂问题进行建模。
神经网络的力量来自于从训练集中学习表示(presentation)的能力,并如何更好的将我们想预测的输出变量与之关联起来。从某种意义上讲,神经网络学习是一种映射关系。从数学的角度,它能够学习任意映射函数,并被证明是一个广泛的近似算法。神经网络模型的预测能力来自于网络的层级或者多层结构。这种数据结构能够在不同大小或者分辨率中挑选出(学习表示)特征并把他们组成高阶的特征。例如,从线到线的集合,到图形。

1.3 神经元

对于神经网络,其组成部分是人工神经元,每个人工神经元,我们称之为计算单元,这些简单计算单元由带有权重的输入信号和使用激活函数的输出信号组成。
感知器

1.3.1 神经元权重

你可能比较熟悉线性回归,上面的例子中,输入端的权重和归回等式中的系数非常的类似。

你可以理解为一元一次函数:y=ax+b

如线性回归,每个神经元都有一个偏置常数,这个常数在输入端始终是1.0并且它也必须加权。

例如,一个神经元有两个输入端,这种情况需要三个权重,每个输入端对应一个,另外一个对应是偏置常数。

犹如:y=ax+bz+c,其中c为偏置常数,a,b为权重,x,z为输入端

虽然有复杂的初始化模式可用,但是权重一般还是被随机初始化一个很小的值,一般在0-0.3之间。如线性模型,大权重会增加了模型的复杂度和脆弱性,因此在网络中使用小权重和正则化技术是明智的选择。

1.3.2 激活函数

将输入端进行加权求和并传入激活函数又称之为转换函数。激活函数是一个从加权输入求和到神经元输出的简单映射,它被叫做激活函数,是因为它管理着神经元被激活和输出信号强度的阈值。例如,阈值0.5,如果输出之和高于阈值,神经元输出输出求和为1.0,否则输出为0.0。

从传统方法的来看,也可以使用非线性激活函数,它让网络以更为复杂的方法把输入端组合起来,反过来,它们可以在构建的函数上提供更丰富的能力。非线性函数像逻辑函数叫做sigmod函数,它是s形分布,输出值在0-1之间,还有双曲正切函数称之为Tanh,也是同样的分布,范围在-1和1之间。最近整流器(rectifier)激活函数展示出更好的效果。

1.4 神经元网络

神经元组成了神经元网络。每一行神经元称之为一层,而一个网络又多层。在网络中神经元的结构经常被称之为网络拓扑结构。
多层感知器

1.4.1 输入层/可见层

输入数据集的底层称之为可见层,因为它直接暴露神经网络的一部分。一个神经网络的可见层通常由神经元输入值或者数据集中的列组成。这些神经元与上面描述的神经元不同,只是将输入值传递给下一层。

1.4.2 隐藏层

在输入层后面的层是隐藏层,因为他们没有直接接触输入端。最简单网络结构是在隐藏层中有一个神经元并直接输出一个值。鉴于计算力和有效库增多,可以构建非常深的神经网路。深度学习指的是有多层隐藏层的神经网络。他们很深,因为训练时慢的超乎你的想象,但是使用现有技术和硬件可能只需几秒或者几分钟就能完成。

1.4.3 输出层

最后的隐藏层叫做输出层并负责输出对应问题格式的值或者向量。在输出层激活函数的选择与你建模问题的类型是强相关。例如:

  • 回归问题有一个单个输出神经元并且这个神经元没有激活函数。
  • 一个二分类问题有个一个单输出神经元,使用的 sigmoid 激活函数,输出一个0-1之间值,其值代表预测主类的概率。
  • 多分类问题在输出层有多个神经元,一个代表一个类(如,在著名的iris花分类问题上,三个分类,有三个神经元)。在这个例子中,使用softmax函数来输出网络的概率,用于每个类的值。选择最高概率值就是crisp类的值

1.5 训练网络

神经网络一旦配置好了,就可以在数据集上训练。

1.5.1 准备数据

为了训练神经网络,你必须要准备好训练的数据。数据必须是数字的,如实数。如果有分类数据,如性别属性,男和女,那么你可以把它转成实数表示,这个过程称之为 one-hot 编码。为每类新增一列(男女两列)而且根据行的类型为每行添加0或者1。
这种one-hot 编码也同样应用在多分类问题的输出变量上。这能够创建一个单列的二维向量,这样更容易直接和网络输出层的神经元做对比,正如上面描述的,为每个类输出一个值,而神经网络需要对输入端进行调整。你可以重新将输入端的值调整在0-1之间,这过程称之为正则化(normalization)。另外一项流行的正则化技术是每列遵循均值为0,标准差为1的分布。正则化技术也能应用于图像数据,以及其他数据,如能够转化为整数的单词,数据集中的单词频率。还有其他编码技术。

1.5.2 随机梯度下降

经典且首选的神经网络训练算法就是随机梯度下降算法。这是一行数据作为神经网络输入的地方。神经网络向上处理输入的神经元,它最终产生一个输出值。这叫做神经网络前向传输。这个传输过程也会在被训练的网络使用,目的是在新数据上做预测。
神经网络输出值和期望值作比较,并计算误差。这个误差通过网络反向传回去,一次一层,根据他们贡献错误的总和来更新权重。这个聪明的数学运算被称为反向传播算法。这个过程在训练集上不断重复。整个训练集更新一次叫做一次迭代。一个神经网络可能训练几十代,几百代,或成千代。

1.5.3 权重更新

神经网络的权重更新来自于每次训练对样本误差的计算。这叫做在线学习。这会导致网络变化快但混乱,或者保存所有的训练样本过程中的误差并在最后更新神经网络。这叫做批量学习,更平稳。因为数据集如此大,并且由于计算效率,在更新之前网络的样本数量,批量大小通常减少到少量,如成百或者成千个样例。权重总和的更新是由一个配置参数学习速率控制的,它也叫作步长,控制神经网络权重误差的步长或者变化。学习速度一般是0.1或则0.01或者更小。更新等式可以通过其他配置来补充。

  • 动量 是融合了先前重量更新的属性,即使在计算的误差较少时,也允许权重在相同方向上继续变化。
  • 学习速度衰减 用于随着不断的迭代减少学习速率大小,以至于在开始训练时有更大的权重修改,在后期对权重进行精细的调整。

1.5.4 预测

一旦神经网络被训练好,他就能用于预测。你可以在测试或则验证数据上预测,为了估计在未标记数据上模型的能力。你可以部署它并用它不断做预测。所有来自模型的网络拓扑结构和最后权重集合都需要保存。通过向网络提供输入并执行前向传播来进行预测,从而允许它生成可用作预测的输出。

1.6 总结

在本课程中,您学习了用于机器学习的人工神经网络。你已经学的:

  • 神经网络不是人脑模型,而是解决复杂机器学习问题的计算模型。
  • 神经网络是由带有权重和激活函数的神经元组成的。
  • 神经网络是由神经元层组织而且采用随机梯度进行训练的。
  • 在训练一个神经网络前要提前准备好数据。

1.6.1 接下来

你现在已经了解到神经网络模型的基本知识,在接下来的部分,你将首先用keras构建第一个多层感知器。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/194172.html原文链接:https://javaforall.net

(0)
上一篇 2025年11月11日 上午8:15
下一篇 2025年11月11日 上午8:43


相关推荐

  • keil4注册机注册不了怎么办?我已经试过下面的注册机不行。求各大神指教一下?

    keil4注册机注册不了怎么办?我已经试过下面的注册机不行。求各大神指教一下?

    2022年5月13日
    58
  • Java SDK的作用

    Java SDK的作用1 SDK 的概念 SDK SoftwareDeve 就是 软件开发工具包 软件开发工具包一般都是一些软件工程师为特定的软件包 软件框架 硬件平台 操作系统等建立应用软件时的开发工具的集合 简单讲 就是通过第三方服务商实现产品功能的软件工具包 比如我们日常使用的移动支付技术 语音识别技术 验证码等功能都是可以通过软件工具包实现的 开发者不需要对产品的每一项功能进行开发 选择合适的 SDK 可以花费较少的时间 实现产品的功能 2 SDK 与 API 的区别 API 是 应用程序接口 只是类

    2026年3月26日
    3
  • 安卓Activity跳转的几种方式

    安卓Activity跳转的几种方式本文转载于http://blog.sina.com.cn/s/blog_5140274d0100q4j7.html,本人仅作为学习交流之用,请大家尊重原创。第一种方式,用action来跳转。使用Action跳转,如果有一个程序的AndroidManifest.xml中的某一个Activity的IntentFilter段中定义了包含了相同的Action那么这个Intent就与这个目标Ac…

    2022年5月11日
    50
  • NSGA2算法中拥挤度计算代码[通俗易懂]

    NSGA2算法中拥挤度计算代码[通俗易懂]思想:    要对拥挤距离进行计算,则需要根据每个目标函数对种群中的所有个体按升序进行排序。第一个和最后一个个体的拥挤距离设为无穷大,第i个个体的拥挤距离则设为第i+1和第i个体的所有目标函数值之差的和。具体方法如下面伪代码:defcrowding_distance_assignment(I)nLen=len(I)#I中的个体数量…

    2022年5月19日
    48
  • xgboost原理分析以及实践

    xgboost原理分析以及实践摘要本文在写完GBDT的三篇文章后本来就想写的,但一直没有时间,终于刚好碰上需要,有空来写这篇关于xgboost原理以及一些实践的东西(这里实践不是指给出代码然后跑结果,而是我们来手动算一算整个xgboost流程)由于网上已经许多优秀的文章对xgboost原理进行了详细的介绍,特别是xgboost作者陈天奇的论文以及slide已经非常完整阐述了整个xgboost的来龙去脉,现有的文章基本也…

    2022年6月6日
    79
  • tfs安装教程_2008安装教程

    tfs安装教程_2008安装教程TFS2010安装配置一、安装过程注意:1、服务器内存要求2、需要SQLSERVER2005以上;3、选择“基础安”。二、TFS配置1、Server端配置。      (1)新建“团队项目集合”      (2)新建用户      注意:TFS的用户主要与windows用户结合2、Client端      注意:TFS与Client端与VS紧密整合,没有VSS那样的单独客户端(1)打开VS,连接到TFS      (2)创建“团队项目(3)将解决方案添加到TFS,右击解决方案,“添加到源代码

    2026年2月22日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号