深度学习与神经网络

news/2024/5/17 20:19:01

人工智能,机器学习,深度学习,神经网络,emmmm,傻傻分不清楚,这都啥呀,你知道吗?我不知道。你知道吗?我不知道。

来来来,接下来,整硬菜:

先解释一下这几个概念:

人工智能:

人工智能(Artificial Intelligence),英文缩写为AI。它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。人工智能是新一轮科技革命和产业变革的重要驱动力量。

机器学习:一种实现人工智能的方法。

是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及
人工智能的各个领域,它主要使用归纳、综合而不是演绎。

深度学习:一种实现机器学习的技术。

是利用深度的神经网络,将模型处理得更为复杂,从而使模型对数据的理解更加深入,是机器学习中一种基于对数据进行表征学习的方法。其动机在于建立、模拟人脑进行
分析学习的神经网络,它模仿人脑的机制来解释数据,例如图像,声音和文本。深度学习的实质,是通过构建具有很多隐层的机器学习模型和海量的训练数据,来学习更有
用的特征,从而最终提升分类或预测的准确性。

神经网络:一种机器学习的算法。

神经网络一般有输入层->隐藏层->输出层,一般来说隐藏层数量多于两层的神经网络就叫做深度神经网络,深度学习就是采用像深度神经网络这种深层架构的一种机器学习
方法。
那么多字,算了,懒得看了,客官,别走啊,有图的(坏笑)

什么是神经网络?

点成线,线成面(网)

生物神经网络的基本工作原理:

一个神经元的输入端有多个树突,主要是用来接收输入信息的。输入信息经过突触处理,将输入的信息累加,当处理后的输入信息大于某一个特定的阈值,就会把信息通过轴突传输出去,这时称神经元 被激活 。相反,当处理后的输入信息小于阈值时,神经元就处于抑制状态,它不会像其他神经元传递信息。或者传递很小的信息。
举个例子,你被蚊子叮的时候,可能压根就感觉不到,但是要是别人给你一个大逼兜,那你要不就是捂着脸嘤嘤嘤,要不就是直接跳起来跟他干了。

 与下图食用更加:

(人工)神经网络:

模拟生物神经网络的一种人工实现。

人工神经网络分为两个阶段:
1 :接收来自其他n个神经元传递过来的信号,这些输入信号通过与相应的权重进行加权求和传递给下个阶段。(预激活阶段)
2:把预激活的加权结果传递给激活函数

 a1~an:输入值

w1~wn:权重

SUM:加权求和

f:激活函数

t:输出

类比之后是不是就很好理解了 

我们把上述的步骤简化一下:

看不懂?那就看这个:

x1 ……xn:输入值, 是特征向量。特征向量代表的是变化的方向。或者说,是最能代表这个事物的特征的方向。
Wk1……Wkn:权重值, 就是特征值。有正有负,加强或抑制,同特征值一样。权重的绝对值大小,代表了输入信号对神经元的影响的大小。
bk:偏差
f :激活函数
Yk:输出 Yk = f U
U = Σ Wxi * Xi + bk
嗯?这仨有啥区别吗?貌似没有,确实没啥区别,凑字数的。
再凑个字数:
神经网络由相互联系的神经元形成,这些神经元具有权重和在网络训练期间根据错误来进行更新的偏差,目标是找到一个未知函数的近似值 。其原理是受我们大脑的生理结构 ——互相交叉相连的神经元启发。但与大脑中一个神经元可以连接一定距离内的任意神经元不同,人工神经网络具有离散的层、连接和数据传播的方向。
看个例子:一刀切

把猫咪和狗子分开,从图中很容易就发现,直接中间切一刀,两边就分开了。函数也很简单y=kx+b,一条直线呗。

问题来了!

如果我掏出这样的模型,那么阁下应该如何应对。

那就多层神经网络(多切几刀,手动狗头)

诶!!!它来了

多层神经网络
神经网络是由多个神经元组合而成,前一个神经元的结果作为后一个神经元的输入,依次组合而成。神经网络一般分为三层,第一层作为输入层,最后一层作为输出层,中间的全部是隐含层。
理论证明,任何多层网络可以用三层网络近似地表示。
一般凭经验来确定隐藏层到底应该有多少个节点,在测试的过程中也可以不断调整节点数以取得最佳效果。

前馈神经网络
人工神经网络模型主要考虑网络链接的拓扑结构、神经元特征、学习规则等。
其中,前馈神经网络也称为 多层感知机

激活函数
激活函数是神经网络设计的一个核心单元。
在神经网络中,把处于在活跃状态的神经元称为激活态,处于非活跃状态的神经元称为抑制态。激活函数赋予了神经元自我学习和适应的能力。
插个嘴:激活函数处于加权函数之后,输出之前
激活函数的作用是为了在神经网络中引入非线性的学习和处理能力。
常用的激活函数(满足 1 非线性 2 可微性 3 单调性)

所以怎么理解呢,改变他们的线性关系,这个与另一个特征结合起来就很好理解,归一化。

先看下几个激活函数的曲线图

sigmoid:

tanh:

 RELU:

可以看出,除了RELU之外,其他两个都被某种神秘力量掰弯了,嗯?掰弯了,哲学♂大扳手!!!

但其实RELU也被折了一下,他们都失去了一些宝贵的东西(我指的是线性),除了RELU,其他两种在归一化的特性显示也特别明显。

后面还会介绍其他激活函数,后期单独出一期各个激活函数的优缺点及比较。一键三连走起好吧。

张量tensor

什么是张量?张亮麻辣烫,哇,脆皮豆腐贼好吃(口水)

任何算法得以运行,都必须依靠特定的数据结构,而用于将各种数据统一封装并输入网络模型的数据结构叫tensor,也就是张量。张量在不同的情况下存有不同的形式。
张量一大特征是维度,一个0维张量就是一个常量。在Python中,一个张量的维度可以通过读取它的ndim属性来获取。(我们常用的数组就等价与一维张量,一个二维数组就是一个二维张量)
所谓n维张量,其实就是一维数组,数组中的每个元素都是n-1维张量。由此可见,3维张量其实就是一个一维数组,数组中的每个元素就是2维数组。
说直白点就是一种数据结构!!!
[
  [
    [1,2],
    [3,4]
  ],
  [
    [5,6],
    [7,8]
  ],
  [
    [9,10],
    [11,12]
  ]
]

 

看个例子,这个张量如何表示呢?(3,2,2),外层3个数组(三维),每个数组(维度)里有2个子数组(子维度),每个子数组(子维度)中有2个数据
[
  [
    [1,2],
    [3,4],
    [13,14]
  ],
  [
    [5,6],
    [7,8],
    [15,16]
  ],
  [
    [9,10],
    [11,12],
    [17,18]
  ]
]
这样就是(3,3,2)

如何设计神经网络

1、使用神经网络训练数据之前,必须确定神经网络的层数,以及每层单元的个数
2、特征向量在被传入输入层时通常要先标准化到0-1之间(为了加速学习过程)
3、离散型变量可以被编码成每一个输入单元对应一个特征值可能赋的值比如:特征值A可能取三个值(a0, a1, a2), 可以使用3个输入单元来代表A。
如果A=a0, 那么代表a0的单元值就取1, 其他取0;1,0,0
如果A=a1, 那么代表a1的单元值就取1,其他取0,以此类推 0,1,0
4、神经网络既可以用来做分类(classification)问题,也可以解决回归(regression)问题
(1)对于分类问题,如果是2类,可以用一个输出单元表示(0和1分别代表2类);如果多于2类,则每一个类别用一个输出单元表示 1 0 0 0 1 0
(2)没有明确的规则来设计最好有多少个隐藏层,可以根据实验测试和误差以及精准度来实验并改进。

对隐含层的感性认识

举个栗子:你喜不喜欢我?你只需要回答喜欢还是不喜欢,而不是扯其他乱七八糟的东西。

那么所有的节点都应该是这样的,我希望的是得到一个肯定的回答,而不是模棱两可的回答。

我希望所有的节点都是钢铁直男。

什么是深度学习(Deep Learning)?

The biggest title in this blog!!!

给你点color see see

 

深度神经网络 & 深度学习
传统的神经网络发展到了多隐藏层的情况,
具有多个隐藏层的神经网络被称为深度神经网络,基于深度神经网络的机器学习研究称之为深度学习。
如果需要细化和区分区别,那么,深度神经网络可以理解为对传统多层网络进行了结构、方法等方面的优化。

 

写在最后的:
即便我的世界失去了你
可是生活仍在继续
期待在下一个路口遇见下一个你

http://www.mrgr.cn/p/35764834

相关文章

vue3自定义dialog createApp setup语法组件使用element

目录 index.vue <template><el-dialogcenterv-model"isVisible"width"650px":title"title":append-to-body"true"><div id"dialogMap_container"></div><template #footer><span class&q…

Chrome浏览器中的vue插件devtools的下载方式(使用Chrome应用商店/科学上网情况下)

目录 devtools对前端来说的好处——开发预览、远程调试、性能调优、Bug跟踪、断点调试等 下载步骤&#xff1a; 测试阶段&#xff1a; 最近做项目要使用devtools这个vue插件。 devtools对前端来说的好处——开发预览、远程调试、性能调优、Bug跟踪、断点调试等 下载步骤…

IT职场笔记

MySQL笔记之一致性视图与MVCC实现 一致性读视图是InnoDB在实现MVCC用到的虚拟结构&#xff0c;用于读提交&#xff08;RC&#xff09;和可重复度&#xff08;RR&#xff09;隔离级别的实现。 一致性视图没有物理结构&#xff0c;主要是在事务执行期间用来定义该事物可以看到什…

[JavaScript游戏开发] 2D二维地图绘制、人物移动、障碍检测

系列文章目录 第一章 2D二维地图绘制、人物移动、障碍检测 第二章 跟随人物二维动态地图绘制、自动寻径、小地图显示(人物红点显示) 第三章 绘制冰宫宝藏地图、人物鼠标点击移动、障碍检测 文章目录 系列文章目录前言一、列计划1.1、目标1.2、步骤 二、使用步骤2.1、准备素材(…

探索AI图像安全,助力可信AI发展

探索AI图像安全&#xff0c;助力可信AI发展 0. 前言1. 人工智能发展与安全挑战1.1 人工智能及其发展1.2 人工智能安全挑战 2. WAIC 2023 多模态基础大模型的可信 AI2.1 WAIC 2023 专题论坛2.2 走进合合信息 3. AI 图像安全3.1 图像篡改检测3.2 生成式图像鉴别3.3 OCR 对抗攻击技…

环境搭建-Ubuntu20.04.6系统TensorFlow BenchMark的GPU测试

1. 下载Ubuntu20.04.6镜像 登录阿里云官方镜像站&#xff1a;阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区 2. 测试环境 Server OS&#xff1a;Ubuntu 20.04.6 LTS Kernel: Linux 5.4.0-155-generic x86-64 Docker Version&#xff1a;24.0.5, build ced0996 docker-com…

【SQL应知应会】表分区(二)• Oracle版

欢迎来到爱书不爱输的程序猿的博客, 本博客致力于知识分享&#xff0c;与更多的人进行学习交流 本文收录于SQL应知应会专栏,本专栏主要用于记录对于数据库的一些学习&#xff0c;有基础也有进阶&#xff0c;有MySQL也有Oracle 分区表 • Oracle版 前言一、分区表1.什么是表分区…

Oracle 迁移 Hive 过程中遇到的问题总结

前言 最近一个小伙伴在做从 Oracle 到 Hive 的业务迁移工作,在迁移过程中属实遇到了一些坑,今天就来汇总一下这些坑,避免以后大家其他业务迁移的时候再出现类似的问题,即使出现了也可以拿过来进行对照解决。 问题1:Distinct window functions are not supported: count(…

Python案例分析|使用Python图像处理库Pillow处理图像文件

本案例通过使用Python图像处理库Pillow&#xff0c;帮助大家进一步了解Python的基本概念&#xff1a;模块、对象、方法和函数的使用 使用Python语言解决实际问题时&#xff0c;往往需要使用由第三方开发的开源Python软件库。 本案例使用图像处理库Pillow中的模块、对象来处理…

uniapp小程序,根据小程序的环境版本,控制的显页面功能按钮的示隐藏

需求&#xff1a;根据小程序环境控制控制页面某个功能按钮的显示隐藏&#xff1b; 下面是官方文档和功能实现的相关代码&#xff1a; 实现上面需要&#xff0c;用到了uni.getAccountInfoSync()&#xff1a; uni.getAccountInfoSync() 是一个 Uniapp 提供的同步方法&#xff0c…

微服务如何治理

微服务远程调用可能有如下问题&#xff1a; 注册中心宕机&#xff1b; 服务提供者B有节点宕机&#xff1b; 服务消费者A和注册中心之间的网络不通&#xff1b; 服务提供者B和注册中心之间的网络不通&#xff1b; 服务消费者A和服务提供者B之间的网络不通&#xff1b; 服务提供者…

操作系统_进程与线程(三)

目录 3. 同步与互斥 3.1 同步与互斥的基本概念 3.1.1 临界资源 3.1.2 同步 3.1.3 互斥 3.2 实现临界区互斥的基本方法 3.2.1 软件实现方法 3.2.1.1 算法一&#xff1a;单标志法 3.2.1.2 算法二&#xff1a;双标志法先检查 3.2.1.3 算法三&#xff1a;双标志法后检查 …

mysql的json处理

写在前面 需要注意&#xff0c;5.7以上版本才支持&#xff0c;但如果是生产环境需要使用的话&#xff0c;尽量使用8.0版本&#xff0c;因为8.0版本对json处理做了比较大的性能优化。你你可以使用select version();来查看版本信息。 本文看下MySQL的json处理。在正式开始让我们先…

使用GGML和LangChain在CPU上运行量化的llama2

Meta AI 在本周二发布了最新一代开源大模型 Llama 2。对比于今年 2 月发布的 Llama 1&#xff0c;训练所用的 token 翻了一倍&#xff0c;已经达到了 2 万亿&#xff0c;对于使用大模型最重要的上下文长度限制&#xff0c;Llama 2 也翻了一倍。 在本文&#xff0c;我们将紧跟趋…

AI聊天GPT三步上篮!

1、是什么&#xff1f; CHATGPT是OpenAI开发的基于GPT&#xff08;Generative Pre-trained Transformer&#xff09;架构的聊天型人工智能模型。也就是你问它答&#xff0c;根据网络抓去训练 2、怎么用&#xff1f; 清晰表达自己诉求&#xff0c;因为它就是一个AI助手&#…

Eclipse memory analyzer 分析GC dump日志定位代码问题

1、问题描述&#xff1a; 使用命令 jstat -gcutil [pid] 查看JVM GC日志&#xff0c;发现生产系统频繁FullGC&#xff0c;大概几分钟一次&#xff0c;而且系统响应速度变慢很多 再使用 free -g 查看服务器内存全部占用&#xff0c;猜测是内存溢出了 2、导出dump日志 jmap -du…

【机器学习】分类算法 - KNN算法(K-近邻算法)KNeighborsClassifier

「作者主页」&#xff1a;士别三日wyx 「作者简介」&#xff1a;CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」&#xff1a;零基础快速入门人工智能《机器学习入门到精通》 K-近邻算法 1、什么是K-近邻算法&#xff1f;2、K-近邻算法API3、…

centos7安装mysql数据库详细教程及常见问题解决

mysql数据库详细安装步骤 1.在root身份下输入执行命令&#xff1a; yum -y update 2.检查是否已经安装MySQL&#xff0c;输入以下命令并执行&#xff1a; mysql -v 如出现-bash: mysql: command not found 则说明没有安装mysql 也可以输入rpm -qa | grep -i mysql 查看是否已…

Unity XML3——XML序列化

一、XML 序列化 ​ 序列化&#xff1a;把对象转化为可传输的字节序列过程称为序列化&#xff0c;就是把想要存储的内容转换为字节序列用于存储或传递 ​ 反序列化&#xff1a;把字节序列还原为对象的过程称为反序列化&#xff0c;就是把存储或收到的字节序列信息解析读取出来…

java+springboot+mysql疫情物资管理系统

项目介绍&#xff1a; 使用javaspringbootmysql开发的疫情物资管理系统&#xff0c;系统包含超级管理员&#xff0c;系统管理员、员工角色&#xff0c;功能如下&#xff1a; 超级管理员&#xff1a;管理员管理&#xff1b;部门管理&#xff1b;职位管理&#xff1b;员工管理&…