Pytorch学习笔记(五)--多层神经网络

本文是PyTorch学习笔记的第五部分,主要探讨多层神经网络及其背后的原理。介绍了激活函数如sigmoid、tanh和ReLU,并通过比较一层神经网络与多层神经网络的训练效果,展示了多层网络的优势。示例中,采用两层神经网络在训练过程中损失逐渐降低,验证了深度学习的效果。
摘要由CSDN通过智能技术生成

前请提要
Pytorch学习笔记(一)--Tensor和Variable
Pytorch学习笔记(二)--autograd and dynamic-graph
Pytorch学习笔记(三)--linear regression andgradient descend(线性回归和梯度下降)
Pytorch学习笔记(四)--Logistic 回归模型

一.多层神经网络

之前学习的线性模型和logistic模型可以看作是单层神经网络,在logistic模型是 y = sigmoid(wx + b),sigmoid可以看作是激活函数,在神经网络中必须有激活函数.如果不使用激活函数 y = wn(w1x) => y = w*n 本质上就变成了一层神经网络.

神经网络的原型来源与人类的神经网络,即从上个神经元等传来的信号经过突触传入的下个神经元,通过激活这个神经元,让信号传递到下个神经元.神经网络就是上一层网络的输入经过激活函数来输出传递到下一层.

以下是常见的激活函数:

  • sigmoid 激活函数

σ(x)=1/(1+e^x)

在这里插入图片描述

  • tanh 激活函数

tanh(x)=2σ(2x)−1

在这里插入图片描述

  • ReLU 激活函数

ReLU(x)=max(0,x)
在这里插入图片描述
一般一个一层的神经网络的公式就是 y=max(0,wx+b) ,一个两层的神经网络就是 y=w2 max(0,w1x+b1)+b2 ,非常简单,但是却很有效,使用这个激活函数能够加快梯度下降法的收敛速度,同时对比与其他的激活函数,这个激活函数计算更加简单.

神经网络就是很多个神经元堆在一起形成一层神经网络,那么多个层堆叠在一起就是深层神经网络.每层神经元的个数和神经网络的层数都是可以调节的参数,会对网络产生大的影响

在这里插入图片描述
例子:对比一层与多层网络
画出样本点

import torch
import numpy as np
from torch import nn
from torch.autograd import Variable
import torch.nn.functional as F

import matplotlib.pyplot as plt

def plot_decision_boundary(model, x, y):
    # Set min and max values and give it some padding
    x_min, x_max = x[:, 0].min() - 1, x[:, 0].max() + 1
    y_min, y_max = x[:, 1].min() - 1, x[:, 1].max() + 1
    h = 0.01
    # Generate a grid of points with distance h between them
    xx, yy = np.meshgrid(np.arange(x_min, x_max, h), np.arange(y_min, y_max, h))
    # Predict the function value for the whole grid
    Z = model(np.c_[xx.ravel(), yy
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值