IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 循环神经网络理论知识+卷积神经网络模型 -> 正文阅读

[人工智能]循环神经网络理论知识+卷积神经网络模型

前馈神经网络
多层感知器与卷积神经网络,信息按照一个方向流动

Recurrent Neural Network , RNN
信息循环流动

两种循环神经网络==原始的循环神经网络和目前常用的长短时记忆网络

循环神经网络指的是网络的隐含层输出又作为其自身的输入。

Wxh,bxh,whh,bhh, why,bhy

x:
h
y

自己可以看到循环神经网络示意图

设置一个有限的循环次数,将其展开后相当于堆叠多个共享隐含层参数的前馈神经网络。

tanh(z)是激活函数,与sigoid类似,值域是-1到1
隐含层ht是不但与当前的输入有关,而且与上一时刻的隐含层有关
递归形式的定义。

记忆单元

处理文本分类的问题

每一个时刻都产生一个输出结果,这种结果适用于处理自然语言处理中常见的序列标注问题
词性标注,命名实体识别,分词

长短时记忆网路

网络参数难以优化
hk与ht链接,减少了网络的层数,使网络更容易优化

旧状态与新状态进行相加。

上课

Dense网络
全连接网络

Dense Layer稠密层 与 全连接层 Fully Connected Layer

Linear Layer
Sigmoid Layer

Softmax回归

多元分类

Logistic回归

输出值的大小是任意的,但是要限制在一个范围内
例如二次分类,0,1
所以这种函数就被成为激活函数

此模型就叫Logistic回归

经过Sigmoid函数归一化的模型输出可以看作一个输出属于某一类别的概率值。

提取局部特征的稠密层又被称为卷积核(Kernel)或者滤波器(Filter)

池化:卷积的结果进行进一步聚合
最大池化、平均池化、加和池化

最大池化:仅保留最有意义的局部特征

池化的好处:解决样本的输入大小不一致的问题

多个卷积核提取不同种类的局部特征

使用不同组的参数,并且使用不同的初始化参数,获得不同的卷积核

提取不同尺度的局部特征

全连接的分类层==做出最终的决策

卷积神经网络(CNN)
一维卷积

卷积提取特征,池化聚合!!!!
全连接层==拼接为一个特征向量

FFN:前反馈的神经网咯哦

模型实现

Conv1d,2d 3d
一维卷积,二维卷积,三位卷积
一维卷积:单一方向滑动

in-channels输入通道的个数
kernel-size :每个卷积宽度
out_channels:输出通道的个数

(batch,in_channels,seq_len)
输出:
(batch,out_channels,seq)len)

seq_len分别代表:输入的序列长度和输出的序列长度

从后向中排除子图

requires_grad

单一=》输出也需要
输出不需要梯度=》输入不需要

如果要对预先训练的CNN进行优化,只要切换冻结模型中的requires_grad标志就足够了,直到计算到最后一层才会保存中间缓冲区,其中的仿射变换将使用需要梯度的权重并且网络的输出也将需要它们。

volatile

不会调用.backward()
volatile也决定了require_grad is False

volatile 不同于require_grad的传递
如果一个操作甚至只有一个volatile的输入,他的输出也是volatile

https://www.freesion.com/article/80661200398/

特别重要

在这里插入图片描述

import torch
from torch.nn import Conv1d
conv1 = Conv1d(5,2,4)
conv2 = Conv1d(5,2,3)
inputs = torch.rand(2,5,6)
outputs1 = conv1(inputs)
outputs2 = conv2(inputs)
print(outputs1)
print(outputs2)

在这里插入图片描述

在这里插入图片描述

conv2 = Convid(5,2,3)
inputs = torch.rand(1,5,6)
outputs2 = conv2(inputs)
print(output2)

在这里插入图片描述

我终于好像懂了!!!

torch.nn包中定义的池化层类,主要有最大池化,平均池化。

Maxpoolid 是一维最大池化,kernel_size
池化层的大小,对多大范围进行池化。

如果对整个序列进行池化,则其大小应为卷积层输出的序列长度

所以下列例子就是对整个卷积层进行一个查找,找到一个最大的卷积层

max_poolid

无须定义一个池化层对象,就可以直接调用池化功能。

outputs_pooli = F.max_poolid(outputs1,kernel_size = outputs1.shape[2])
即outputs1的最后一维恰好为其序列的长度

记住是长度!!!!!

torch.cat将其拼接起来。
squeeze函数将最后一个为1的维度删除,即将2行1列的矩阵变为一个向量

outputs_pool_squeeze1 = outputs_pool1.squeeze(dim=2)

另一个也是一样

之后
outpus_pool  = torch.cat([outputs_pool_squeeze1,outputs_pool_squeeze2].dim=1)


全连接层,实现分类功能

from torch.nn import Linear
linear = Linear(4,2)
输入维度4.池化层输入的维度,而我只需要的是2个维度

outputs_linear = linear(outputs_pool)

print(outputs_linear)

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-10-08 20:42:06  更:2022-10-08 20:44:02 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 21:22:51-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码