打开深度学习的锁:(0)什么是神经网络?

PS:每每温故必而知新

什么是神经网络?

一、一个单神经元的神经网络

深度学习中的神经网络是一种受人脑结构启发的算法模型,主要用于模拟人脑处理和学习信息的方式。这种网络包括多层的 “神经元” 节点。

每个节点都是一个计算单元,它们通过层与层之间的连接互相传递信息。

每个连接都有一个权重,这些权重在学习过程中会不断更新,以帮助网络更好地完成特定任务,如图像识别、语音理解或文本翻译。

神经网络的基本组成包括:

  1. 输入层:接收原始数据输入,如图像的像素值、音频信号或文本数据。
  2. 隐藏层:一个或多个,负责从输入中提取特征。每个隐藏层都会将前一层的输出作为输入,通过激活函数进一步处理这些数据。
  3. 输出层:生成最终的输出,如分类任务中的类别标签。

举个简单的例子:我们希望预测房间大小房价之间的关系。

假设我们有6个房价变化和房间大小变化的数据,我们把它们放在一个直角坐标系上。

在这里插入图片描述
我们希望通过六个数据的信息,找到一个 “房间大小和房价的关系函数”
当我们获得这个 “函数” ,我们只需要输入 房间大小 就可以计算出对应的 房价

对于这个简单的任务,函数即是初始为0的一个线性回归函数(X轴为房间大小,Y为价格)。

在这里插入图片描述
进一步,我们把这个 “房间大小和房价的关系函数” 抽象成一个小圆点,当输出房间大小X的时候,我们会得到一个对应的房价Y
在这里插入图片描述

所以这个小圆点,就是神经网络中的一个 “神经元(Neurons)”
在这里插入图片描述

二、多个单神经元的神经网络

之前的输入数据,只有一个简单的"房子大小X". 即我们只需要考虑房子大小对于房价的影响。
那么,如果存在多个因素,比如房子的房间数房子处于的地段位置房子的使用寿命等…

这些考虑因素,输入数据中的 属性 或组成部分,在机器学习中叫 特征(Feature)

假设,对于 每一个房子,现在我们要输入的特征有四个,分别是房子的大小(Size)、房间数量(Bedrooms)、房子的位置(Position)、周边富裕情况(Wealth)

在这里插入图片描述
接下来,我们可以根据 每一个房子 的Size和Bedrooms,学习到一个函数(“小圆点/ 神经元”),来预测房子可以容纳人口的数量(Familys)

在这里插入图片描述
然后,我们可以根据 每一个房子 的Position,来预测房子的交通是否便利(Convenience)

在这里插入图片描述
然后,我们也可以根据 每一个房子 的Position和Wealth来预测附近的教学质量(School)

在这里插入图片描述
最后,我们可以通过 每一个房子 的人口的数量(Familys)、便利程度(Convenience)、教学质量(School)来学习到一个函数(“小圆点/ 神经元”),来预测 每一个房子 的价格。
在这里插入图片描述
对于输入的,每一个房子 的四个原始特征,记作X。
对于最后得到的 每一个房子 的预测价格,记作Y

在这里插入图片描述

三、到底什么是机器学习?(重点)

1:什么是机器学习的训练?

1:我们需要搭建好神经网络的框架,设定好有多少层,每一层有多少神经元。
2:我们需要给每一个神经元设置一个固定的公式,和两个可变的参数(权重 W W W和偏差 b b b
3:向这个框架给定 训练数据集中的每一个数据的多个特征X,然后也给定 每一个数据的希望预测结果Y
4:然后计算机就会根据“输入数据”和“理想结果”,自动学习 “怎么调节权重 W W W和偏差 b b b,可以使X变成Y?"

找权重 W W W和偏差 b b b的过程,就称为训练!

2:什么是模型?权重 W W W和偏差 b b b又是什么?

W W W:输入特征的权重

微观到每一个神经元来看,它们接受的输入的 训练数据集中的每一个数据的多个特征 N ≥ 1 N\geq1 N1,对于这多个特征,我们需要知道每一个输入特征在预测输出中的贡献大小

哪些对于渴望的预测是是重要的,哪些是不重要的?
在这里插入图片描述

在每一个神经元中,我们给接收到的每一个特征一个自己的可变的权重,也就是 W W W

通过“学习”,模型可以自动增大对于渴望的预测有利的特征的权重
通过“学习”,模型可以自动减小对于渴望的预测有利的特征的权重

所以可以说,权重 W W W是作用于每一个神经元接收的多个输入的特征上

b b b:每一个神经元的专属偏差

如果,无论怎么调整输入特征的权重,得到的计算公式还是不能把数据拟合成我们理想的输出该怎么办呢?
这个时候,我们可以引入偏差 b b b,来辅助权重 W W W调整神经元中的公式

在每一个神经元中,权重 W W W的个数等于输入的特征的个数即每一个特征都有一个自己的权重来微调
而对于每一个神经元,有且只有一个单独的 b b b,用来直接调控当前神经元(当前的计算公式)。

此外,偏差的引入还有以下好处:

  1. 增加偏移能力
    假设一个线性模型没有偏差项,即模型的表达式为 ( y = Wx ),其中 ( W ) 是权重,( x ) 是输入。这种模型限制了输出 ( y ) 必须通过原点,即当 ( x = 0 ) 时 ( y ) 也必须为 0。这种限制减少了模型的灵活性,因为现实世界的数据往往不是完全通过原点的。引入偏差 ( b )(即 ( y = Wx + b ))可以允许输出有一个基线偏移,无论输入 ( x ) 的值如何

  2. 适应数据偏差
    实际数据往往包含不同的偏差,如数据集整体可能偏向某个数值。没有偏差项的模型可能很难适应这种类型的数据结构,因为模型无法通过简单的权重调整来补偿这种偏向。偏差项可以帮助模型更好地适应数据的中心位置或其他统计特征。

  3. 提高非线性
    在包含非线性激活函数的神经网络中,每个神经元的输出不仅取决于加权输入和偏差,还取决于激活函数如何处理这个加权和。偏差可以调整在激活函数中加权和的位置,从而影响激活函数的激活状态。这种调整是非常重要的,因为它可以帮助网络捕捉更复杂的模式和关系。

  4. 增加决策边界的灵活性
    在分类问题中,决策边界是模型用来区分不同类别的界限。==如果没有偏差项,模型的决策边界可能只能是通过原点的直线或超平面,这大大限制了模型的有效性。==通过引入偏差,模型的决策边界可以是任意位置的直线或超平面,这大大提高了模型解决实际问题的能力。

3:神经元的里面是什么?

神经元里的基础函数:线性变换函数

在深度学习中,每一个神经单元(通常称为神经元或单元)的基础,都是执行一个线性变换函数
即:
y = w ∗ x + b y=w*x+b y=wx+b
其中, w w w 是权重, b b b 是偏置, x x x是输入数据或前一层的输出, y y y是得到的预测结果。
在这里插入图片描述

神经元里为了多样化任务的函数:激活函数

可以看到,线性变化的范围, x x x y y y成正比,无限增长或无限缩小。
单单依靠这简单的线性变化,无法满足多样的需求。

因此,我们需要在这个线性变化函数的外面嵌套一个函数,这样的函数也成为激活函数(Activation Function)

那什么又是嵌套呢?即,线性变化函数的输出结果,作为激活函数的输入值

举例:

对于逻辑回归任务,即预测一个事件发生的概率,有发生不发生两种情况(二分类任务)
如果我们只是使用简单的线性变化函数,得到的得到的结果、输入 x x x和输出 y y y的关系可能是这样(假设不考虑 w w w b b b

在这里插入图片描述
X有5种类型的输人,Y也有5种类型的输出,这样怎么判断事件发生的概率是发生了还是不发生呢?

聪明的小朋友也许想到了,我们可以以数字4为分界线,大于4的视为发生了,小于4的视为不发生

在机器学习种,有一个思路和这样一模一样的函数专门应用于逻辑回归任务,即sigmoid函数

对于它,只需要明白两点。

  1. 无论输入大小,它的输出范围:[0,1],它的图像是这样

在这里插入图片描述
2. 公式如下:
y = 1 1 + e − x y = \frac{1}{1 + e^{-x}} y=1+ex1
这个时候,我们就可以把得到的线性变化函数结果 y y y放到sigmoid函数里面— 或者直接将线性变化函数与sigmoid函数合并计算:

y = 1 1 + e − ( w ⋅ x + b ) y= \frac{1}{1 + e^{-( w \cdot x + b)}} y=1+e(wx+b)1

那么得到的输出结果可能就是这样:
在这里插入图片描述

这里的sigmoid函数,即嵌套在线性函数外面用于多样化功能的函数,就叫激活函数.

四、什么是深度学习?

深度学习的 “深度” 指的是神经网络中隐藏层的数量
在这里插入图片描述
随着层数的增加,网络能够学习更复杂的特征,但同时也可能导致计算成本增加和模型训练难度加大。

神经网络通过一种叫做反向传播的学习算法来训练,它涉及到对网络输出的误差进行评估,并将误差反向传递回网络,以调整连接的权重,从而减少未来输出的误差。这个过程通常需要大量的数据和计算资源,这些我们下一篇再说。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/597597.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

python数据分析所需要的语法基础

Python语言基础——语法基础 前言语法基础变量标识符数据类型输入与输出代码缩进与注释 总结 前言 对于学过C语言的人来说,python其实很简单。学过一种语言,学习另一种语言,很显然的能感觉到,语言大体上都是相通的。当然&#xf…

【docker】常用的把springboot打包为docker镜像的maven插件

Spring Boot Maven Plugin: Spring Boot 自带的 Maven 插件 (spring-boot-maven-plugin) 支持直接生成 Docker 镜像。通过配置,可以在 Maven 构建过程中自动构建 Docker 镜像,而无需单独编写 Dockerfile。这种方法简化了将应用打包为 Docker 镜像的过程。…

武汉理工大学python123实验——流程控制结构

1.百分制成绩转换五分制#1707 n int(input())if n>90:print(A) elif n>80:print(B) elif n>70:print(C) elif n>60:print(D) else:print(E) 2.角古猜想#73963 n eval(input()) if n<0:print(ERROR) elif . in str(n):print(ERROR) else:print(n,end" …

Qt扫盲-Qt D-Bus概述

Qt D-Bus概述 一、概述二、总线三、相关概念1. 消息2. 服务名称3. 对象的路径4. 接口5. 备忘单 四、调试五、使用Qt D-Bus 适配器1. 在 D-Bus 适配器中声明槽函数1. 异步槽2. 只输入槽3. 输入输出槽4. 自动回复5. 延迟回复 一、概述 D-Bus是一种进程间通信(IPC)和远程过程调用…

Java面试题:多线程2

如何停止正在运行的线程 1,使用退出标志,使线程正常退出(run方法中循环对退出标志进行判断) 2,使用stop()方法强行终止(不推荐) 3,调用interrupt()方法中断线程 打断阻塞线程(sleep,wait,join),线程会抛出InterruptedException异常 打断正常的线程,可以根据打断状态来标记…

继承知识及扩展(C++)

1. 继承是什么&#xff1f; 继承是面向对象编程的三大特征之一&#xff0c;也是代码复用的手段之一。之前我们在很多的地方尝试函数的复用&#xff0c;而继承是为了类的复用提供了很好的方式。 &#xff08;1&#xff09;继承的代码怎么写 在一个类后面使用 &#xff1a;继承方…

知识图谱融入RAG模型:LinkedIn重塑智能客服新范式【附LeCun哈佛演讲PPT】

原文&#xff1a;Retrieval-Augmented Generation with Knowledge Graphs for Customer Service Question Answering 一、研究背景与问题 在客服领域,快速准确地匹配用户问题与历史工单,是提供优质回答的关键。传统的检索增强生成(Retrieval-Augmented Generation, RAG)方法虽…

IDEA-控制台日志过滤插件 - Grep Console

IDEA-控制台日志过滤插件 - Grep Console 当idea控制台日志较多时&#xff0c;为了方便查找关键字&#xff0c;使用Grep Console插件&#xff0c;指定控制台中关键字高亮显示 1.安装 2.使用 2.1 高亮显示 控制台中指定颜色高亮显示指定字符 效果: 重启项目后还是会高亮显示 取…

【软考高项】三十三、质量管理

一、管理基础 质量定义 国际标准&#xff1a;反映实体满足主体明确和隐含需求的能力的特性总和。 国家标准&#xff1a;一组固有特性满足要求的程度。固有特性是指在某事或某物中本来就有的&#xff0c;尤其是那种永久的可区分的特征。 ➢ 对产品来说&#xff0c;例如…

缓存菜品操作

一&#xff1a;问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得&#xff0c;如果用户端访问量比较大&#xff0c;数据库访问压力随之增大。 二&#xff1a;实现思路 通过Redis来缓存菜品数据&#xff0c;减少数据库查询操作。 缓存逻辑分析&#xff1a; 每个分…

k8s保持pod健康

存活探针 Kubemetes 可以通过存活探针 (liveness probe) 检查容器是否还在运行。可以为 pod 中的每个容器单独指定存活探针。如果探测失败&#xff0c;Kubemetes 将定期执行探针并重新启动容器。 Kubemetes 有以下三种探测容器的机制&#xff1a; HTTP GET 探针对容器的 IP 地…

Day61:单调栈 739. 每日温度 496.下一个更大元素 I

739. 每日温度 给定一个整数数组 temperatures &#xff0c;表示每天的温度&#xff0c;返回一个数组 answer &#xff0c;其中 answer[i] 是指对于第 i 天&#xff0c;下一个更高温度出现在几天后。如果气温在这之后都不会升高&#xff0c;请在该位置用 0 来代替。 示例 1: 输…

发表博客之:gemm/threadblock/threadblock_swizzle.h 文件夹讲解,cutlass深入讲解

文章目录 [发表博客之&#xff1a;gemm/threadblock/threadblock_swizzle.h 文件夹讲解&#xff0c;cutlass深入讲解](https://cyj666.blog.csdn.net/article/details/138514145)先来看一下最简单的struct GemmIdentityThreadblockSwizzle结构体 发表博客之&#xff1a;gemm/th…

vue2 webpack-dev-server Unknown promise rejection reason

在vue.config.js中添加如下配置&#xff0c;重启项目即可 module.exports defineConfig({devServer: {client: {overlay: false,},} })参考

探索中位数快速排序算法:高效寻找数据集的中间值

在计算机科学领域&#xff0c;寻找数据集的中位数是一个常见而重要的问题。而快速排序算法作为一种高效的排序算法&#xff0c;可以被巧妙地利用来解决中位数查找的问题。本文将深入探讨中位数快速排序算法的原理、实现方法以及应用场景&#xff0c;带你领略这一寻找中间值的高…

vue 金额组件,输入提示单位:‘千’、‘万’、‘十万’...并用‘,’三个格式化

近期项目中遇到一个需求&#xff0c;金额输入框&#xff0c;输入过程中自动提示‘千’、‘万’、‘十万’、‘百万’......等单位提示&#xff0c;鼠标失去焦点后&#xff0c;并用‘,’三位隔开计数。 例如&#xff1a; 输入&#xff1a;12345.99 失去焦点&#xff1a;12,34…

Vue--》从零开始打造交互体验一流的电商平台(一)

今天开始使用 vue3 ts 搭建一个电商项目平台&#xff0c;因为文章会将项目的每处代码的书写都会讲解到&#xff0c;所以本项目会分成好几篇文章进行讲解&#xff0c;我会在最后一篇文章中会将项目代码开源到我的github上&#xff0c;大家可以自行去进行下载运行&#xff0c;希…

【Node.js工程师养成计划】之express中间件与接口规范

一、Express中间件的概念与基本应用 const express require(express)// 加一个注释&#xff0c;用以说明&#xff0c;本项目代码可以任意定制更改 const app express()const PORT process.env.PORT || 3000// // 挂载路由 // app.use(/api, router)// // 挂载统一处理服务端…

【倪亲斫经典水墨云纹仲尼式】倪诗韵亲斫古琴

【倪亲斫经典水墨云纹仲尼式】倪诗韵亲斫古琴 松透润&#xff0c;适合大曲文曲潇湘欸乃平沙&#xff0c;余韵悠长&#xff0c;手感极其舒适&#xff0c;久弹不疲。

[Linux][网络][TCP][三][超时重传][快速重传][SACK][D-SACK][滑动窗口]详细讲解

目录 1.超时重传1.什么是超时重传&#xff1f;2.超时时间是如何确定的&#xff1f; 2.快速重传3.SACK4.D-SACK1.ACK丢失2.网络延迟 5.滑动窗口0.问题抛出1.发送方的滑动窗口2.如何表示发送方的四个部分&#xff1f;3.接收方的滑动窗口4.滑动窗口的完善理解 1.超时重传 1.什么是…