【深度学习-神经网络架构-通俗易懂的入门课程】

文章目录

    • 深度学习与AI的关系
    • 机器学习的流程
    • 机器学习的核心以及问题
    • 深度学习要解决的问题
      • 模型如何搭建?
      • 特征如何提取?
      • 为什么要深度学习?
    • 深度学习的应用
    • 深度学习的问题
    • 计算机视觉任务
      • 分类与检索
      • 如何实现分类
    • 神经网络基础
      • 线性函数
      • 损失函数
        • 防止过拟合
      • 前向传播
      • 反向传播
        • 反向传播的计算方法
      • 神经网络的架构
        • 输入层 输出层 隐藏层
        • 全连接层
        • 神经元
          • 神经元对网络的影响:
          • 惩罚粒度对结果拟合的影响
        • 激活函数
        • 数据预处理
        • 参数初始化
        • 过拟合解决方法

深度学习与AI的关系

在这里插入图片描述

AI 包括 机器学习 包括 深度学习
目前深度学习的算法表现更好

机器学习的流程

数据获取
特征工程
建立模型
评估与应用

机器学习的核心以及问题

特征、算法
特征决定了模型的上限,算法和参数决定了如何去逼近这个基线

问题:传统的机器学习算法,在数据规模上升时,效果无法提升
在这里插入图片描述

深度学习要解决的问题

模型如何搭建?

领域都有成型的模型,每年都有很多优秀的论文可以参考,反而特征提取更加重要

特征如何提取?

数值特征比较好提取
但是文本和图像 音视频等怎么提取呢?
留到下文详述

为什么要深度学习?

深度学习是一个黑盒子,能够提取出来最合适的特征,且能够自我学习更新,具备强大的学习能力

深度学习的应用

视觉类和自然语言类

  • 视觉类任务
    目标检测:无人驾驶汽车 怎么识别和检测目标
    在这里插入图片描述

医学 影像识别 基因检测
在这里插入图片描述

  • 自然语言处理
    聊天机器人,生成对话机器人

  • 人脸识别 人脸替换
    在这里插入图片描述

  • 超分辨率重构

深度学习的问题

计算量很大
计算中涉及的参数上千万 上亿,计算和更新耗时很长
因此移动端不能很好的支持

计算机视觉任务

分类与检索

分类是指:让程序分类图片是什么,
由斯坦福大学的李飞飞教授带领创建IMAGENET分类数据集。该数据集包合 14,197,122张图片和21,841个Synset索引,基本可涵盖大部分分类了。
在这里插入图片描述

如何实现分类

  • 传统的算法识别图片类别的方法:

比如K临近算法
在这里插入图片描述
以上图为例:
选择离目标最近的3个点,比如第一个圈部分,三角形居多,那这个图片的分类就很可能是三角形。
但是这也有问题,如果选择的K是5个呢? 那这个类别的判定就是正方形,分类截然相反

  • 以像素的近似点分类
    先看一下,图像在计算中的表现形式,以3通道为例:RGB 3通道,一个3维 0到255的图像(h, w, c)形式
    比如543的图片为例,在计算机中的表示

在这里插入图片描述

在这里插入图片描述
这样一个3维的像素数据如何判定出图片类别呢?
既然颜色的明亮程度可以用像素值类标识,最先想到的就是找出一些分类目标图片,计算输入图片与分类图片的像素差,哪两个个像素差最小,就归属于哪一类,最终分类的效果如下:
在这里插入图片描述
可以看出来部分图片的分类是正确,但是还有很大一部分是错误的,比如马被识别到了翻斗车的类别里
问题出在哪里呢?
首先无法区分背景和主题,对一幅图片来说,主题和背景的权重应该是不一样的,显然像素值的大小无法应对这种情况,另外还有如下所述的难点:

面临的挑战
比如照射的角度会导致像素变化
比如主体被别的东西遮蔽了
在这里插入图片描述
形状改变了
在这里插入图片描述
被挡住了一部分
在这里插入图片描述
背景混子在一起:
在这里插入图片描述
如何解决呢?
具体实现方式:
学习一次就知道了,比如遮蔽的情况,找一些类似的图片进行标注,进行学习
,通过学习后的网络就会记住这些特征也是属于这种分类的

神经网络基础

线性函数

(32,32,3)的图像 ,目标就是能计算它属于每个分类的得分。
这个猫是由3072个像素点决定的,也就是所谓的特征有3072个,记为x,怎么得出分值呢?
首先我们考虑一个问题,每个像素点对于这个猫的重要程度一样么?
答案是肯定不一样,比如背景的像素点是不相关的,重要程度低
比如眼睛,耳朵等等的像素点很重要,需要一个高的权重参数
所以需要3072个权重参数,来标注这个像素对于这个分类的重要程度
在这里插入图片描述

我们用一个w(3072)标识 每个像素是猫这个分类的权重
如果是判定十分类,就需要3072组w,10*3072大小的权重矩阵,分别去表示3073个像素分别对应10分类的权重。

矩阵中的数字的意义:
越大的权重数据说明,当前的这个像素,对这个类别比较重要
权重中的负数表示对这个类别是抑制的作用
0表示对这个类别没有作用

这个矩阵哪里来的?
初始是随机值
比如现在判定错了,说明是权重不太对,想出一种方法,不断的去优化权重矩阵,直至能够区分出这个分类。那么问题来了,这个优化方法是什么?答案是利用损失函数

损失函数

损失函数的作用是来衡量分类的结果的,神经网络可以分类可以回归等,相同的网络,配以不同的损失函数,就可以完成不同的任务。

举个例子:经过神经网络输出猫 狗 飞机的分数是22 56 48,损失函数sum(max(0, y_predict - y_true)),这样设计的损失函数,在分类正确时,损失就为0

另一个问题,损失函数有不同的类型,如果损失函数的值相同,意味着模型相同么?如下的例子:

比如输入数据 1,1,1,1
模型1最终w1 [1,0,0,0]
模型2最终w2 [0.25, 0.25, 0.25, 0.25]

答案肯定是否定的,这两个模型肯定是不同的,虽然这两个参数与输入矩阵相乘后损失相同的。第一个模型是一种突然的变化,就容易导致结果过拟合

防止过拟合

通常为了防止过拟合,损失函数都设计为加上正则化的惩罚项:
损失函数 = 数据损失 + 正则化的惩罚项

我们总是希望模型不要太复杂,过拟合的模型是没用的,神经网络太强大了,而越强大的模型,过拟合就越大

前向传播

在这里插入图片描述

f(w, x)计算损失的过程,就是所谓的前向传播。

更进一步,在神经网络中,最终到的是一个分数值,但如果给我们一个概率的话是不是更好?
在这里插入图片描述
这就是通常所说的 归一化f,在这里插入图片描述

在这里插入图片描述

e指数次幂可以放大变化,上述可以归为0.1区间的概率值,也是常说的softmax

反向传播

由输入一步步计算出损失,是正向传播
那么如何更新模型呢? 更新模型的实质就是更新权重w, 这就是所谓的反向传播(也叫梯度下降)

反向传播的计算方法

当我们得到了一个目标损失函数后,让损失尽可能的小,结果就越靠近真实值,那怎么去求解呢?
寻找一种方法,更新后的参数能使目标函数达到极值点,极值点又是怎么求?数学上已经证明了的是极值点导数为0的点,这就是所谓的更新的方向。

我们需要从损失出发,向前去寻找导数为0的点,这种从后向前传播的过程就是反向传播,具体来说的计算方法是用了导数的链式法则

在这里插入图片描述
传播就是根据这个法则一步步往后计算的,常见的梯度下降算法:

  • 批量梯度下降:
    容易得到最优解,但是考虑所有样本,速度很慢

  • 随机梯度下降SGD
    每次找一个样本,迭代速度快,但不一定是朝收敛的方向

  • 小批量梯度下降
    每一次更新选择一小部分数据来算

学习率(或步长):
梯度下降的粒度,它对结果产生巨大影响,一般都会选择小一点

另外每次批处理的数量: 32 64 128都可以,很多时候需要考虑内存和效率

神经网络的架构

在这里插入图片描述

输入层 输出层 隐藏层

除了输入和输出,其它层叫做隐藏层

全连接层

中间这些连接线,其实就是所谓的参数,被称为全连接层,实质上是权重矩阵,意义是什么呢?比如上述对于10分类的权重矩阵,是对3072个像素的每个像素点,10个分类的不同权重。

神经元

隐层中的特征个数

神经元对网络的影响:
  1. 参数个数
    举个例子 (800,600,3)的图片 100万个像素点,100w输入,增加一个神经元,1个隐层就增加100w个参数
  2. 拟合的程度
    斯坦福大学有一个网站,可以显示神经元个数对分类的影响 https://cs.stanford.edu/people/karpathy/convnetjs/demo/classify2d.html

在这里插入图片描述
上图分别是2和6个神经元的展示结果,6确实是更拟合

惩罚粒度对结果拟合的影响

在这里插入图片描述
显然这里,更大的惩罚力度,可以让模型更稳定

激活函数

非线性函数 sigmod RELU tanh 等
实际上几乎每个隐藏层后面都还包括一些激活函数,加入一些非线性特征,常用的激活函数及其优缺点:
在这里插入图片描述
如上所述,sigmod 一旦数值较大或者较小,sigmod函数获取不到了,也就是所谓的梯度消失
ReLU及变种,是当前最常用的激活函数

数据预处理

zero center 移动中心点 , normalized 缩小尺寸

在这里插入图片描述

参数初始化

一般都是随即策略进行参数初始化

过拟合解决方法

  1. 正则化
  2. 惩罚力度
  3. drop out 舍弃一部分神经元
  4. 其他

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

树状数组笔记

数组、前缀和、树状数组的区别: 数组:修改某点O(1),求区间O(n) 前缀和:修改某点O(n),求区间O(1) 树状数组:修改…

YOLOv5(v7.0)网络修改实践二:把单分支head改为YOLOX的双分支解耦合head(DecoupleHead)

前面研究了一下YOLOX的网络结构,在YOLOv5(tag7.0)集成了yolox的骨干网络,现在继续下一步集成YOLOX的head模块。YOLOX的head模块是双分支解耦合网络,把目标置信度的预测和目标的位置预测分成两条支路,并验证双分支解耦合头性能要优…

力扣 56. 合并区间

题目来源&#xff1a;https://leetcode.cn/problems/merge-intervals/description/ C题解&#xff1a;根据左区间排序&#xff0c;更新每一段的右区间最大值&#xff0c;直到间断。 class Solution { public:static bool cmp(vector<int> & a, vector<int> &a…

Linux实训笔记~操作系统概述

1、操作系统 操作系统作为接口的示意图: 没有安装操作系统的计算机, 通常被称为裸机。 2、不同应用利于的主流操作系统 桌面操作系统 服务器操作系统 嵌入式操作系统 移动设备操作系统

计算机网络——网络层

文章目录 **1 网络层的功能****1.1 异构网络互连****1.2 路由与转发****1.3 SDN的基本概念****1.4 拥塞控制** **2 路由算法****2.1 静态路由和动态路由****2.2 距离-向量路由算法&#xff08;动态&#xff09;****2.3 链路状态路由算法&#xff08;动态&#xff09;****2.4 层…

技术速览|Meta Llama 2 下一代开源大型语言模型

AI 使用大型语言模型&#xff08;LLM&#xff09;来理解和生成自然语言。LLM 可以从大量文本中学习并创建有关各种主题的文本&#xff0c;并可以完成比如编写代码、生成歌词、总结文章等任务。但有些 LLM 相关课程成本高昂且封闭&#xff0c;而现有的开放课程数量十分有限。这就…

Python爬虫+数据可视化:分析唯品会商品数据

目录 前言数据来源分析1. 明确需求2. 抓包分析&#xff1a;通过浏览器自带工具: 开发者工具 代码实现步骤: 发送请求 -> 获取数据 -> 解析数据 -> 保存数据发送请求解析数据保存数据 数据可视化先读取数据泳衣商品性别占比商品品牌分布占比各大品牌商品售价平均价格各…

LINUX中的myaql(一)安装

目录 前言 一、概述 二、数据库类型 三、数据库模型 四、MYSQL的安装 &#xff08;一&#xff09;yum安装MYSQL &#xff08;二&#xff09;rpm安装MYSQL 五、MYSQL本地登录 rpm安装MYSQL本地登录 六、重置密码 总结 前言 MySQL是一种常用的开源关系型数据库管理系统&#xff…

MATLAB与ROS联合仿真——ROS环境搭建及相关准备工作(下)

本篇文章主要介绍在安装完ROS后&#xff0c;在进行MATLAB与ROS联合仿真之前&#xff0c;需要进行的一些环境搭建以及准备工作&#xff0c;主要分为 创建ROS工作空间及功能包、必备功能包安装、安装Gazebo11、导入实验功能包至工作空间、安装Visual_Studio_Code(选做)、常用便捷…

Mysql错误日志、通用查询日志、二进制日志和慢日志的介绍和查看

一.日志 1.日志和备份的必要性 日志刷新 2.mysql的日志类型 &#xff08;1&#xff09;错误日志 查看当前错误日志和是否记录警告设置 &#xff08;2&#xff09;通用查询日志 查看通用查询日志的设置 &#xff08;3&#xff09;二进制日志 查看二进制文件的设置&…

最小二乘拟合椭圆

目录 1.拟合椭圆2.示例代码 爬虫网站自重。 1.拟合椭圆 二次曲线的一般方程为&#xff1a; A x 2 B x y C y 2 D x E y F 0 Ax^2BxyCy^2DxEyF0 Ax2BxyCy2DxEyF0 令&#xff1a; Δ B 2 − 4 A C Δ B^2-4AC ΔB2−4AC 那么&#xff0c;当 Δ > 0 Δ >0 Δ>0…

js基础-练习三

九九乘法表&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthsc, initial-scale1.0"><title>九九乘法表</title><style&g…

【uniapp学习之】uni-forms必填项校验

代码块 <uni-forms ref"baseForm" :modelValue"baseFormData" label-widthauto :rules"rules"><uni-forms-item label"企业名称" required name"principalName"><uni-easyinput v-model"baseFormData.…

springboot mybatis-plus 多数据源配置(HikariCP)

1.导入依赖jar <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency><dependency><groupId>org.postgresql</groupId><artifactId>postgres…

【JVM】浅看JVM的运行流程和垃圾回收

1.JVM是什么 JVM&#xff08; Java Virtual Machine&#xff09;就是Java虚拟机。 Java的程序都运行在JVM中。 2.JVM的运行流程 JVM的执行流程&#xff1a; 程序在执行之前先要把java代码转换成字节码&#xff08;class文件&#xff09;&#xff0c;JVM 首先需要把字节码通过…

金融领域:产业链知识图谱包括上市公司、行业和产品共3类实体,构建并形成了一个节点10w+,关系边16w的十万级别产业链图谱

项目设计集合&#xff08;人工智能方向&#xff09;&#xff1a;助力新人快速实战掌握技能、自主完成项目设计升级&#xff0c;提升自身的硬实力&#xff08;不仅限NLP、知识图谱、计算机视觉等领域&#xff09;&#xff1a;汇总有意义的项目设计集合&#xff0c;助力新人快速实…

前端 | ( 十三)CSS3简介及基本语法(下)| 伸缩盒模型 | 尚硅谷前端html+css零基础教程2023最新

学习来源&#xff1a;尚硅谷前端htmlcss零基础教程&#xff0c;2023最新前端开发html5css3视频 系列笔记&#xff1a; 【HTML4】&#xff08;一&#xff09;前端简介【HTML4】&#xff08;二&#xff09;各种各样的常用标签【HTML4】&#xff08;三&#xff09;表单及HTML4收尾…

微服务保护——Sentinel【实战篇二】

一、线程隔离 &#x1f349; 线程隔离有两种方式实现&#xff1a; 线程池隔离信号量隔离&#xff08;Sentinel默认采用&#xff09; 线程隔离&#xff08;舱壁模式&#xff09;&#x1f95d; 在添加限流规则时&#xff0c;可以选择两种阈值类型&#xff1a; QPS&#xff1a;…

SpringBoot-4

Spring Boot 使用 slf4j 日志 在开发中经常使用 System.out.println()来打印一些信息&#xff0c;但是这样不好&#xff0c;因为大量的使用 System.out 会增加资源的消耗。实际项目中使用的是 slf4j 的 logback 来输出日志&#xff0c;效率挺高的&#xff0c;Spring Boot 提供…

如何用3D格式转换工具HOOPS Exchange读取颜色和材料信息?

作为应用程序开发人员&#xff0c;非常希望导入部件的图形表示与它们在创作软件中的外观尽可能接近。外观可以在每个B-Rep面的基础上指定&#xff0c;而且&#xff0c;通过装配层次结构的特定路径可以在视觉外观上赋予父/子覆盖。HOOPS ExchangeHOOPS Exchange可捕获有关来自各…