【深度学习Pytorch】一、单层神经网络基本认知

机器学习:使用计算机实现算法,使得计算机能够学习数据、获得经验、并实现预测或得出结果的过程。

深度学习:以研究人工神经网络算法为核心的学科。

一、开始的准备与了解

python=3.7.9 

cudatoolkit=11.3
pytorch==1.12.0
torchaudio==0.12.0
torchvision==0.13.0

pytorch库的基本架构

二、torch.nn.linear实现单层回归网络正向传播

三、二分类神经网络

sigmoid函数

Sigmoid函数是一个在生物学中常见的S型函数,也称为S型生长曲线。在深度学习中,由于其单增以及反函数单增等性质,Sigmoid函数常被用作神经网络的激活函数,将变量映射到[0,1]之间。

\sigma =Sigmoid(z)=\frac{1}{1+e^{-z}}

sigmoid函数的导数可以用其自身来表示:

\sigma {}'(z)=\frac{e^{-z}}{(1+e^{-z})^{2}}=\sigma (z)(1-\sigma (z))

函数特性与优缺点:

  • Sigmoid函数的输出范围是0到1。由于输出值限定在0到1,因此它对每个神经元的输出进行了归一化。
  • 用于将预测概率作为输出的模型。由于概率的取值范围是0到1,因此Sigmoid函数非常合适
  • 梯度平滑,避免跳跃的输出值
  • 函数是可微的。这意味着可以找到任意两个点的Sigmoid曲线的斜率
  • 明确的预测,即非常接近1或0。
  • 函数输出不是以0为中心的,这会降低权重更新的效率
  • Sigmoid函数执行指数运算,计算机运行得较慢。

对数几率回归:\sigma取对数几率后得到的就是线性回归的z

import torch

X = torch.tensor([[1,0,0],[1,1,0],[1,0,1],[1,1,1]],dtype = torch.float32)
andgate = torch.tensor([[0],[0],[0],[1]],dtype = torch.float32)
w = torch.tensor([-0.2,0.15,0.15],dtype = torch.float32)

def LogisticR(X,w):
    zhat = torch.mv(X,w)
    sigma = 1/(1+torch.exp(-zhat))
    #sigma = torch.sigmoid(zhat)
    andhat = torch.tensor([int(x) for x in sigma >= 0.5],dtype = torch.float32)
    return sigma,andhat

sigma,andhat = LogisticR(X,w)

ReLU函数

ReLU(Rectified Linear Unit)

ReLU: \sigma = \begin{cases} { z} & \text (z>0) \\ {0} & \text (z\leqslant 0) \end{cases}

tanh

tanh (hyperbolic tangent)双曲正切函数

tanh :\sigma =\frac{e^{2z}-1}{e^{2z}+1}

torch.nn.functional实现二分类网络正向传播

import torch
from torch.nn import functional as F

x = torch.tensor([[0,0],[1,0],[0,1],[1,1]],dtype=torch.float32)

torch.random.manual_seed(99)
dense = torch.nn.Linear(2,1)
zhat = dense(x)
sigma = F.sigmoid(zhat)
y = [int(x) for x in sigma >=0.5]

四、多分类神经网络softmax回归

\sigma _{k} = Softmax(z_{k}) = \frac{e^{z_{k}}}{\sum ^{K}e^{z}}

如果是swim,run,bike3分类

\sigma _{swim = \frac{e^{z_{swim}}}{e^{z_{swim}}+e^{z_{run}}+e^{z_{bike}}}}

z = torch.tensor([10,9,5],dtype=torch.float32)
torch.softmax(z,dim=0)#dim=0在最外层的维度进行计算

dim指定到哪一个维度,就会将这个维度上的数据作为类别(即概率和为1)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
PyTorch深度学习实战中,可以使用卷积神经网络来进行图像分类任务。在实战中,可以使用经典的卷积神经网络模型,如VGG、ResNet、Inception和DenseNet等。这些模型都是在深度学习的发展过程中出现的经典模型,对深度学习的学术研究和工业生产都起到了巨大的促进作用。初学者可以通过阅读论文和实现代码来全面了解这些模型。例如,可以使用PyTorch中的torchvision.models模块来加载预训练的卷积神经网络模型,如VGG-16、VGG-19和ResNet等\[1\]。其中,VGG-16和VGG-19是由卷积层、池化层和全连接层等不同组合构成的经典卷积神经网络模型\[1\]。而ResNet是一种使用残差元连接而成的卷积神经网络模型,通过跨层的短接来突出微小的变化,使得网络对误差更加敏感,并解决了网络退化现象,具有良好的学习效果\[2\]\[3\]。因此,在PyTorch深度学习实战中,可以选择合适的卷积神经网络模型来进行图像分类任务。 #### 引用[.reference_title] - *1* *2* *3* [PyTorch深度学习实战 | 典型卷积神经网络](https://blog.csdn.net/qq_41640218/article/details/129832298)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wing以一

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值