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

<深度学习入门学习笔记P1>——《深度学习》

一、深度学习概述

1.深度学习入门概念及介绍

在这里插入图片描述
注:
(1)感知机是深度学习网络算法的起源,神经网络是深度学习算法的中心。
(2)损失函数和梯度下降是用来对模型优化和训练的一种方式。
(3)反向传播算法是用来在神经网络中求导用的,用于调整参数和权重。
人工智能划时代事件:
在这里插入图片描述** 深度学习巨大影响:**
在这里插入图片描述

2.什么是深度学习

在这里插入图片描述
深度神经网络:
在这里插入图片描述
人工智能、机器学习、深度学习之前的关系:
在这里插入图片描述

3.深度学习的特点

在这里插入图片描述

3.1深度学习的优点

在这里插入图片描述
注:(上图所示的竖轴为错误率)
2011年及之前ImageNet大赛都是采用传统的机器学习模型,2012年之后开始采用深度学习网络模型,如图显示错误率大幅下降。在2015年,深度学习网络模型错误率低于人类平均水平,代表着以机器进行分类的水平已经超越了人类平均水平,直到2017年,ImageNet大赛停办。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.2深度学习的缺点

在这里插入图片描述
(1)深度学习需要有大量的数据作为样本进行训练特征提取。
(2)深度学习网络可能会有上千层,构建复杂。
(3)传统的机器学习模型、方程都是自己设计建立的,特征是自己提取的,其过程具有可解释性。而深度学习模型中包含许多隐藏层,有些中间的处理是不可知的。目前,深度学习遇到的一些问题如:通过实验其结果是正确的,而其可解释性较难以解释等,说明其原理比较复杂。类似于量子学等。随着研究的深入,这类问题可能将会得到合理的解释。

4.深度学习与传统机器学习的对比

在这里插入图片描述

5.为什么要学习深度学习

在这里插入图片描述

6.深度学习的应用

在这里插入图片描述
将要学习的知识:
在这里插入图片描述
课程特点:
在这里插入图片描述

二、感知机和神经网络

1.感知机概述

1.1什么是感知机

在这里插入图片描述

1.2感知机的功能

在这里插入图片描述
实现逻辑运算:
实现逻辑和:
在这里插入图片描述
实现逻辑或:
在这里插入图片描述

1.3感知机的缺陷

在这里插入图片描述
可以看出,“或”、“与”问题都可以在平面上找到一条直线将其分类,是线性可分问题。而“异或”问题在平面上不是一个线性可分问题,所以通过一个感知机在平面上实现异或问题的处理是无法解决的。

1.4解决方法

多层感知机:
在这里插入图片描述
当输入为1、0演示:
在这里插入图片描述
(因为这个结构是对称的,所以当上面输入0、下面输入1时,也可以输出为1)
当输入为1、1演示:
在这里插入图片描述
当输入为0、0易得输出为0,无需演示,即可证明多层感知机解决异或问题。

1.5使用Python模拟实现自定义感知机

# percetron.py
# 自定义感知机# 实现逻辑和
def AND(x1, x2):w1, w2 = 0.5, 0.5  # 两个权重theta = 0.7  # 阈值tmp = x1 * w1 + x2 * w2if tmp <= theta:return 0else:return 1print(AND(1, 1))  # 1
print(AND(1, 0))  # 0
print(AND(0, 0))  # 0# 实现逻辑或
def OR(x1, x2):w1, w2 = 0.5, 0.5  # 两个权重theta = 0.2  # 阈值tmp = x1 * w1 + x2 * w2if tmp <= theta:return 0else:return 1print(OR(1, 1))  # 1
print(OR(1, 0))  # 1
print(OR(0, 0))  # 0# 实现逻辑异或
def XOR(x1, x2):s1 = not AND(x1, x2)  # 对x1,x2做逻辑和计算再取非s2 = OR(x1, x2)  # 直接对x1,x2做逻辑或计算y = AND(s1, s2)return yprint(XOR(1, 1))  # 0
print(XOR(1, 0))  # 1
print(XOR(0, 1))  # 1
print(XOR(0, 0))  # 0

2.神经网络

2.1什么是神经网络

在这里插入图片描述

2.2神经网络的功能

在这里插入图片描述通用近似定理:
在这里插入图片描述
在这里插入图片描述

2.3深层网络的特点

在这里插入图片描述

2.4激活函数

什么是激活函数:
在这里插入图片描述
为什么使用激活函数:
在这里插入图片描述
常用的激活函数——阶跃函数:
在这里插入图片描述
常用的激活函数——sigmoid函数:
在这里插入图片描述
常用的激活函数——tanh(双曲正切)函数:
在这里插入图片描述
常用的激活函数——ReLU(修正线性单元)函数:
在这里插入图片描述
常用的激活函数——Softmax函数:
在这里插入图片描述
总结:在这里插入图片描述

三、损失函数与梯度下降

1.损失函数

1.1什么是损失函数

在这里插入图片描述

1.2损失函数的作用

在这里插入图片描述

1.3常用的损失函数

在这里插入图片描述
在这里插入图片描述

2.梯度下降

2.1什么是梯度

在这里插入图片描述

2.2梯度下降

在这里插入图片描述
梯度下降计算:
依赖于导数、偏导数:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.3学习率

在这里插入图片描述

2.4梯度递减训练法则

在这里插入图片描述

2.5梯度下降算法

批量梯度下降:
在这里插入图片描述
随机梯度下降:
在这里插入图片描述
小批量梯度下降:
在这里插入图片描述

2.6几种梯度下降算法收敛比较

在这里插入图片描述
总结:
在这里插入图片描述

四、反向传播算法

1.什么是正向传播网络

在这里插入图片描述

2.什么是反向传播网络

在这里插入图片描述

2.1为什么需要反向传播

在这里插入图片描述
图解反向传播:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.2反向传播计算

在这里插入图片描述
加法节点反向传播计算:
在这里插入图片描述
在这里插入图片描述

乘法节点反向传播计算:
在这里插入图片描述
链式求导法则:
在这里插入图片描述
在这里插入图片描述
练习:
在这里插入图片描述
在这里插入图片描述

五、卷积神经网络

1.什么是卷积

在这里插入图片描述
离散卷积与多维卷积:
在这里插入图片描述
生活中的卷积:
在这里插入图片描述

2. 卷积神经网络

2.1全连接神经网络的局限

在这里插入图片描述

2.2什么是卷积神经网络

在这里插入图片描述
在这里插入图片描述

2.3卷积运算

单通道、二维卷积:
在这里插入图片描述在这里插入图片描述
带填充的卷积运算:
在这里插入图片描述

步符为2的卷积运算:
在这里插入图片描述
输入输出大小计算公式:
在这里插入图片描述
多通道卷积计算演示GIF:
卷积计算演示GIF
卷积运算的效果:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.4使用Python模拟实现卷积运算

# img_conv.py
# 图像卷积示例
from scipy import signal
from scipy import misc
import matplotlib.pyplot as plt
import numpy as np
import scipy.ndimage as snim = misc.imread("d:\\tmp\\lily.png", flatten=True)  
# im = sn.imread("d:\\tmp\\lily.png", flatten=True)
#1.以上两种读取函数均可以读取图像,返回的是矩阵数据
#2."d:\\tmp\\lily.png"这个是图片存储的路径flt = np.array([[-1, 0, 1],[-2, 0, 2],[-1, 0, 1]])  # 卷积核(过滤器)
flt2 = np.array([[1, 2, 1],[0, 0, 0],[-1, -2, -1]]) # 另一个卷积核(对垂直方向上的色彩变化敏感)
grad = signal.convolve2d(im,  # 输入数据flt,  # 卷积核boundary="symm",  # 边沿处理方式mode="same").astype("int32")  # same表示同维卷积
grad2 = signal.convolve2d(im,  # 输入数据flt2,  # 卷积核boundary="symm",  # 边沿处理方式mode="same").astype("int32")  # same表示同维卷积
# 可视化
plt.figure("Conv2D")
plt.subplot(131)  # 第一个子图, 显示原图
plt.imshow(im, cmap="gray")  # 显示原图
plt.xticks([])
plt.yticks([])plt.subplot(132)  # 第二个子图, 显示卷积后的图像
plt.imshow(grad, cmap="gray")  # 显示卷积后的图像
plt.xticks([])
plt.yticks([])plt.subplot(133)  # 第三个子图, 显示flt2卷积后的图像
plt.imshow(grad2, cmap="gray")  # 显示flt2卷积后的图像
plt.xticks([])
plt.yticks([])
plt.show()

在这里插入图片描述
卷积计算后:
在这里插入图片描述

四、经典卷积网络介绍

1.卷积神经网络结构

在这里插入图片描述

1.1卷积层

在这里插入图片描述

1.2激活层

在这里插入图片描述

1.3池化层

在这里插入图片描述
在这里插入图片描述
池化层的特征:
在这里插入图片描述

1.4全连接层

在这里插入图片描述

2.经典卷积神经网络模型

2.1LeNet

在这里插入图片描述
在这里插入图片描述

2.2AlexNet

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
AlexNet参考论文地址链接:http://www.cs.toronto.edu/~fritz/absps/imagenet.pdf

2.3VGG

在这里插入图片描述
在这里插入图片描述
总结:
在这里插入图片描述

后记:
●本博客基于B站开源学习资源,是作者学习的笔记记录,仅用于学习交流,不做任何商业用途!

相关文章:

  • 后端返回文件流pdf 下载
  • 【AIGC调研系列】Starling-LM-7B模型与其他模型相比的优势和劣势
  • 更高效稳定 | 基于ACM32 MCU的编程直流电源应用方案
  • C#WPF控件TextBlock详解
  • 通俗易懂:如何通过JVM参数来调整内存大小?
  • OpenFeign原理整理【Java面试】
  • Gitlab CI---could not read username for xxx: no such device or address
  • flutter 打包成web应用后怎么通过url跳转页面
  • Chrome 插件 tabs API 解析
  • uniApp使用XR-Frame创建3D场景(8)粒子系统
  • 目标检测+车道线识别+追踪
  • pulsar: kafka on pulsar之把pulsar当kafka用
  • 【直播课】2024年PostgreSQL CM认证实战培训课程于4月27日开课!
  • 持续集成流水线介绍(CI)
  • 大语言模型中的强化学习与迁移学习技术
  • C学习-枚举(九)
  • JAVA_NIO系列——Channel和Buffer详解
  • Java多态
  • leetcode讲解--894. All Possible Full Binary Trees
  • LeetCode算法系列_0891_子序列宽度之和
  • select2 取值 遍历 设置默认值
  • SSH 免密登录
  • ubuntu 下nginx安装 并支持https协议
  • UMLCHINA 首席专家潘加宇鼎力推荐
  • Vim 折腾记
  • 阿里云ubuntu14.04 Nginx反向代理Nodejs
  • 编写符合Python风格的对象
  • 大快搜索数据爬虫技术实例安装教学篇
  • 蓝海存储开关机注意事项总结
  • 前端面试总结(at, md)
  • 深度学习中的信息论知识详解
  • 想使用 MongoDB ,你应该了解这8个方面!
  • 一个JAVA程序员成长之路分享
  • 中文输入法与React文本输入框的问题与解决方案
  • 如何通过报表单元格右键控制报表跳转到不同链接地址 ...
  • (AtCoder Beginner Contest 340) -- F - S = 1 -- 题解
  • (介绍与使用)物联网NodeMCUESP8266(ESP-12F)连接新版onenet mqtt协议实现上传数据(温湿度)和下发指令(控制LED灯)
  • (免费领源码)python+django+mysql线上兼职平台系统83320-计算机毕业设计项目选题推荐
  • (数据结构)顺序表的定义
  • (四)模仿学习-完成后台管理页面查询
  • (一)Mocha源码阅读: 项目结构及命令行启动
  • (原創) X61用戶,小心你的上蓋!! (NB) (ThinkPad) (X61)
  • ..回顾17,展望18
  • .net core 6 使用注解自动注入实例,无需构造注入 autowrite4net
  • .NET 除了用 Task 之外,如何自己写一个可以 await 的对象?
  • .NET/C# 在 64 位进程中读取 32 位进程重定向后的注册表
  • .Net通用分页类(存储过程分页版,可以选择页码的显示样式,且有中英选择)
  • ;号自动换行
  • @KafkaListener注解详解(一)| 常用参数详解
  • @ModelAttribute注解使用
  • @TableId注解详细介绍 mybaits 实体类主键注解
  • [ web基础篇 ] Burp Suite 爆破 Basic 认证密码
  • [ 隧道技术 ] 反弹shell的集中常见方式(二)bash反弹shell
  • [51nod1610]路径计数
  • [Android] 修改设备访问权限