当前位置: 首页 > news >正文

【深度学习】(1)--神经网络

文章目录

  • 深度学习
  • 神经网络
    • 1. 感知器
    • 2. 多层感知器
      • 偏置
    • 3. 神经网络的构造
    • 4. 模型训练
      • 损失函数
  • 总结

深度学习

深度学习(DL, Deep Learning)是机器学习(ML, Machine Learning)领域中一个新的研究方向。

在这里插入图片描述

从上方的内容包含结果,我们可以知道,在学习深度学习之前,我们还需要了解一下什么是神经网络。

神经网络

神经网络,我们可以将它类比为人类的神经元,由外界传递信息,产生神经冲动,传递电信号,做出行为的过程。

在这里插入图片描述

这是生物学上的体现,那么,在神经网络中是如何体现的呢?
在这里插入图片描述

由外界传入数据,然后通过“路径”抵达神经元,在每一条的“路径”上会有不同的w参数,与传入的数据进行计算。从而影响接收值:

在这里插入图片描述

在推导式中,每条“路径”上的信息传入神经元,然后对他们进行累加求和,接着经过特定的输出函数sigmoid函数输入,对结果进行分类。

神经网络的本质:通过参数与激活函数来拟合特征与目标之间的真实函数关系。但在一个神经网络的程序中,不需要神经元和线,本质上是矩阵的运算,实现一个神经网络最需要的是线性代数库。

1. 感知器

由两层神经元组成的神经网络–“感知器”(Perceptron),感知器只能线性划分数据。

在这里插入图片描述

对于这样简单的感知器,只能线性划分数据,因为对于神经元的结果,只有y =kx+b一层计算,只可以在二维空间画一条直线划分,这样的话,对于一些区域型的数据无法具体分类,比如:

在这里插入图片描述

对于这组数据的分类,是无法通过一条直线就让它们分开的,那该如何分类N呢?

我们得让分类的线弯曲,比如:

在这里插入图片描述

这样就将类别划分开了。可是,我们该怎样使这条“线”弯曲呢?通过多层感知器。

2. 多层感知器

多层感知器其实就是增加了一个中间层,即隐含层。而这,也就是神经网络可以做非线性分类的关键。

在这里插入图片描述

多层感知器同简单感知器的区别就是多加了1层运算,那这样我们的计算就变成了y=w1x1+w2x2+b,在一个二维图片中,这样的函数计算可以使“线”弯曲,从而实现了非线性分类。

偏置

在神经网络中需要默认增加偏置神经元(节点),这些节点是默认存在的。它本质上是一个只含有存储功能,且存储值永远为1的单元。在神经网络的每个层次中,除了输出层以外,都会含有这样一个偏置单元。

在这里插入图片描述

偏置节点没有输入(前一层中没有箭头指向它)。一般情况下,我们都不会明确画出偏置节点。

3. 神经网络的构造

在这里插入图片描述

神经网络从左到右分为输入层、隐含层、输出层。

需要记忆

  1. 设计一个神经网络时,输入层与输出层的节点数往往是固定的,中间层则可以自由指定
    1. 输入层的节点数:与特征的维度匹配(特征数量)。
    2. 输出层的节点数:与目标的维度匹配(类别结果数量)。
    3. 中间层的节点数:目前业界没有完善的理论来指导这个决策。一般是根据经验来设置。
  2. 神经网络结构图中的拓扑与箭头代表着预测过程时数据的流向,跟训练时的数据流有一定的区别;
  3. 结构图里的关键不是圆圈(代表“神经元”),而是连接线(代表“神经元”之间的连接)。每个连接线对应一个不同的权重(其值称为权值),这是需要训练得到的。

4. 模型训练

模型训练的目的:使得参数尽可能的与真实的模型逼近。

具体做法:

  1. 首先给所有参数赋上随机值。我们使用这些随机生成的参数值,来预测训练数据中的样本。
  2. 计算预测值为yp,真实值为y。那么,定义一个损失值loss,损失值用于判断预测的结果和真实值的误差,误差越小越好。

损失函数

  1. 均方差损失函数

对真实值与预测值作差然后做平方,计算每一条数据的差值平方加起来,然后再除以数据的条数即可得到损失值。

在这里插入图片描述

  1. 多分类的情况下,交叉熵损失函数

运算过程,将一组数据传入:

在这里插入图片描述

公式:

在这里插入图片描述

总结

本篇介绍了:

  1. 神经网络的构造
  2. 神经网络的运行过程
  3. 感知器

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 将成功请求的数据 放入apipost接口测试工具,发送给后端后,部分符号丢失
  • Arthas thread(查看当前JVM的线程堆栈信息)
  • Mastering Qt 番外 —— 添加源码调试
  • pg入门18—如何使用pg gis
  • Mybatis中sql数组为空判断
  • 3款免费的GPT类工具
  • vscode软件在 C发中常用插件
  • 【工具】Windows|两款开源桌面窗口管理小工具Deskpins和WindowTop
  • 【动态库的加载】【进程地址空间(三)】
  • iPhone16,超先进摄像头系统?丝滑的相机控制
  • Vue 依赖注入组件通信:provide / inject 使用详解
  • 链动3+1滑落模式小程序开发
  • 7、论等保的必要性
  • Linux之实战命令03:stat应用实例(三十七)
  • 分治策略:从入门到精通,10分钟带你玩转算法!
  • ➹使用webpack配置多页面应用(MPA)
  • Angularjs之国际化
  • javascript 哈希表
  • JavaScript设计模式与开发实践系列之策略模式
  • Js基础知识(一) - 变量
  • Netty 4.1 源代码学习:线程模型
  • niucms就是以城市为分割单位,在上面 小区/乡村/同城论坛+58+团购
  • PV统计优化设计
  • Solarized Scheme
  • SpingCloudBus整合RabbitMQ
  • spring-boot List转Page
  • Vue.js源码(2):初探List Rendering
  • vue+element后台管理系统,从后端获取路由表,并正常渲染
  • vuex 笔记整理
  • Yeoman_Bower_Grunt
  • 嵌入式文件系统
  • 区块链技术特点之去中心化特性
  • 使用putty远程连接linux
  • 腾讯优测优分享 | 你是否体验过Android手机插入耳机后仍外放的尴尬?
  • 一个6年java程序员的工作感悟,写给还在迷茫的你
  • 一个完整Java Web项目背后的密码
  • Python 之网络式编程
  • 正则表达式-基础知识Review
  • ​Kaggle X光肺炎检测比赛第二名方案解析 | CVPR 2020 Workshop
  • ​MySQL主从复制一致性检测
  • ​软考-高级-信息系统项目管理师教程 第四版【第14章-项目沟通管理-思维导图】​
  • # linux 中使用 visudo 命令,怎么保存退出?
  • # 透过事物看本质的能力怎么培养?
  • #免费 苹果M系芯片Macbook电脑MacOS使用Bash脚本写入(读写)NTFS硬盘教程
  • #微信小程序(布局、渲染层基础知识)
  • (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (博弈 sg入门)kiki's game -- hdu -- 2147
  • (动态规划)5. 最长回文子串 java解决
  • (黑马出品_高级篇_01)SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式
  • (七)MySQL是如何将LRU链表的使用性能优化到极致的?
  • (十六)一篇文章学会Java的常用API
  • (一)使用Mybatis实现在student数据库中插入一个学生信息
  • (原创)攻击方式学习之(4) - 拒绝服务(DOS/DDOS/DRDOS)
  • .NET CF命令行调试器MDbg入门(一)
  • .NET MAUI学习笔记——2.构建第一个程序_初级篇