dede装修网站模板,东凤镇 网站建设,描述个人网站的建站过程,python 做网站很快吗一#xff1a;多层感知器模型
1#xff1a;感知器 解释一下#xff0c;为什么写成 wxb0 #xff0c;其实原本是 wx t ,t就是阈值#xff0c;超过这个阈值fx就为1#xff0c;现在把t放在左边。 在感知器里面涉及到两个问题#xff1a; 第一个#xff0c;特征提…一多层感知器模型
1感知器 解释一下为什么写成 wxb0 其实原本是 wx t ,t就是阈值超过这个阈值fx就为1现在把t放在左边。 在感知器里面涉及到两个问题 第一个特征提取就是如何将问题的原始输入转换成输入向量x其实就是数值如何表示文本 第二个参数学习参数优化或者模型训练就是如何设置合理的w权重和b偏差项
感知器主要处理文本分类问题比如识别一个句子的褒贬性。 2线性回归
感知器输出的结果是离散的除了感知器这类分类模型还有一类是回归模型Regression他的输出是连续的实数值。线性回归是最简单的回归模型。y wx b 3Logical回归
线性回归的输出值大小是任意的激活函数就是为了将其限制在一定的范围内。
Logical函数形式为 其中k控制了函数的陡峭程度。
如果 此时的模型叫做Logical回归模型。虽然叫做回归模型但是常用作分类问题。
原因当L1、k1z0 0 此时函数形式就是sigmoid函数 它的值域恰好在0-1所以经过sigmoid函数归一化以后就可以认为是输入属于某一类别的概率值除了可以输出概率值还有一个优点就是它的导数比较容易求得有利于使用基于梯度的参数优化算法。sigmoid函数图像如下图 4Softmax回归
如果不只有2个类别处理多元分类任务可以用Softmax回归操作。
Softmax回归就是对第i个类别使用线性回归打一个分数。其中表示第i个类别对应的第i个输入的权重。然后再对多个分数使用指数函数进行归一化计算并获得一个输入属于某个类别的概率。 5多层感知器MLP
以上介绍的都是线性模型真实情况很多时候无法通过一条直线、平面、或者超平面来分割不同的类别例如异或问题相同为0不同为1
多层感知器就是堆叠多层线性分类器并在中间隐含层增加非线性激活函数。
ReLU 6模型实现
1神经网络层和激活函数
线性层输入为batchinputdim输出为batchoutputdim
# 线性层
import torch
from torch import nn
linear nn.Linear(32, 2) # 第一个参数就是输入第二个是输出
inputs torch.rand(3, 32) # 创建一个输入为3 23 维度的随机张量 可以理解为3是batch
outputs linear(inputs)
print(Linear:)
print(outputs)
batch就是一个批次即为一次处理的张量数量。 这里grad_fn是张量tensor的一个属性它记录了创建该张量的函数操作。
激活函数在torch.nn.functional中
# 线性层
import torch
from torch import nn
linear nn.Linear(32, 2) # 第一个参数就是输入第二个是输出
inputs torch.rand(3, 32) # 创建一个输入为3 23 维度的随机张量 可以将3理解为batch
outputs linear(inputs)
print(Linear:)
print(outputs)
print(******20)from torch.nn import functional as F
activation_sigmoid F.sigmoid(outputs)
print(activation_sigmoid:)
print(activation_sigmoid)
print(******20)activation_softmax F.softmax(outputs)
print(activation_softmax:)
print(activation_softmax)
print(******20)activation_relu F.relu(outputs)
print(activation_relu:)
print(activation_relu)
print(******20)activation_tanh F.tanh(outputs)
print(activation_tanh:)
print(activation_tanh)
print(******20) 2自定义神经网络模型
import torch
from torch import nn
from torch.nn import functional as Fclass MLP(nn.Module):# 多层感知器的构建def __init__(self, input_dim, hidden_dim, num_class):super(MLP, self).__init__()# 线性变换输入层--隐含层self.linear1 nn.Linear(input_dim, hidden_dim)# ReLUself.activate F.relu# 线性变换隐藏层--输出层self.linear2 nn.Linear(hidden_dim, num_class)def forward(self, inputs):hidden self.linear1(inputs)activation self.activate(hidden)outputs self.linear2(activation)probs F.softmax(outputs, dim1) # 获得每个输入属于某一类别的概率return probsmlp MLP(input_dim4, hidden_dim5, num_class2)
inputs torch.rand(3, 4)
probs mlp(inputs)
print(probs) 二卷积神经网络
1模型结构
全连接层又叫做稠密层在多层感知器中每层输入的各个元素都需要乘以一个独立的参数的那一层叫做全连接层。 缺点难以捕捉局部信息。
卷积操作就是依次扫描输入的每个区域。每个小的、用于提取局部特征的稠密层被叫做卷积核或者滤波器。假设卷积核的大小为N单词长度为L那么卷积核的输出长度为L-N1
卷积操作输出的结果再进行进一步聚合这一过程就是池化。池化包括最大池化、平均池化、加和池化等。池化的优点解决样本输入大小不一致的问题可以保证最终输出相同个数的特征。
卷积核的构造方式大致有两种1使用不同组的参数且不同的初始化参数获得不同的卷积核。2提取不同尺度的局部特征例如提取不同大小N-gram
卷积操作以后再经过一个全连接的分类层就可以做出最终的决策。将多个卷积层池化层叠堆叠起来形成更深层次的网络就叫做卷积神经网络CNN。
前馈神经网络信息从输入层经过隐藏层再到输出层按照一个方向流动就叫做前馈神经网络 三循环神经网络 四注意力模型 五神经网络模型的训练 未完待续。。。。持续更新