深度学习入门笔记4 深度神经网络

简介: 深度学习入门笔记4 深度神经网络

多层感知器

在之前的课程中,我们了解到,感知器(指单层感知器)具有一定的局限——无法解决异或问题,即线性不可分的问题。

将多个单层感知器进行组合,就可以得到一个多层感知器(MLP——Multi-Layer Perceptron)结构。 多层感知器包含输入层,一个或多个隐藏层以及一个输出层。每层的神经元与下一层进行完全连接。

如果网络中包含一个以上的隐层,则称其为深度人工神经网络

说明:

  • 通常我们说的神经网络的层,指具有计算的层,因为输入层没有计算,因此,通常输入层不计入神经网络的层次。
  • 多层感知器(深度神经网络)可以解决线性不可分问题。

激活函数

激活函数概念

在神经网络中,激活函数用来为每一个结点(神经元)定义输出,该输出可以作为下一个结点(神经元)的输入。

激活函数的作用

激活函数提供网络的非线性建模能力。如果不使用激活函数,即使是多层神经网络,也无法解决线性不可分的问题。

激活函数的特征

激活函数的一些属性:

  • 非线性 可以解决非线性可分问题。当激活函数是线性时,多层神经网络相当于单层神经网络。
  • 范围性 当激活函数是有限范围时,基于梯度的训练方法往往更稳定,因为模式呈现仅显着影响有限的权重。当范围无限时,训练通常更有效,因为模式呈现显着影响大多数权重。在后一种情况下,通常需要较小的学习率。
  • 可微性 该属性用来实现基于梯度的优化方法。
  • 单调性 当激活函数是单调的时,与单层模型相关联的误差表面保证是凸的。
  • 平滑性并且具有单调导数 在某些情况下,这些函数已被证明更为普遍。
  • 原点中心化 当激活函数具有此属性时,使用较小的随机值初始化权重,可以让神经网络学习更加有效(更有利于权重的更新)。否则,在初始化权重时必须特别小心。如果函数f满足以下条件,则表明函数是原点中心化的。
  • f(0)=0
  • f(0)=1
  • 导函数在0点处连续

常见激活函数

常见的激活函数如下:

  • 阶跃函数
  • sigmoid函数
  • tanh函数
  • relu函数

练习

画出各种激活函数在[-10, 10]区间的图像。

import matplotlib.pyplot as plt
import numpy as np
x = np.arange(-10, 10, 0.1)
y = np.where(x >= 0, 1, 0)
plt.plot(x, y)
x = np.arange(-10, 10, 0.1)
y = 1 / (1 + np.exp(-x))
plt.plot(x, y)
x = np.arange(-10, 10, 0.1)
y = (np.exp(x) - np.exp(-x)) /(np.exp(x) + np.exp(-x))
plt.plot(x, y)
x = np.arange(-10, 10, 0.1)
y = np.where(x >= 0, x, 0)
plt.plot(x, y)
## 学习步骤
多层感知器(深度神经网络DNN)的学习过程步骤如下:
1. 从输入层开始,通过网络进行正向传播(forward propagation),并计算输出。
2. 根据输出与真实值,计算误差。
3. 反向传播(back propagation)误差,根据误差值,更新每层的权重。

人工神经网络学习过程

前向传播

计算误差

反向传播

权重的初始化

注意,在深度神经网络中,权重一定不能全部初始化为0,否则,在正向传播时,所有的神经元都会得到相同的值,同时,在反向传播时,权重也会更新相同的值。这会使得神经网络拥有不同权重的意义不复存在。


相关文章
|
16天前
|
机器学习/深度学习 数据可视化 算法
PyTorch生态系统中的连续深度学习:使用Torchdyn实现连续时间神经网络
神经常微分方程(Neural ODEs)是深度学习领域的创新模型,将神经网络的离散变换扩展为连续时间动力系统。本文基于Torchdyn库介绍Neural ODE的实现与训练方法,涵盖数据集构建、模型构建、基于PyTorch Lightning的训练及实验结果可视化等内容。Torchdyn支持多种数值求解算法和高级特性,适用于生成模型、时间序列分析等领域。
163 77
PyTorch生态系统中的连续深度学习:使用Torchdyn实现连续时间神经网络
|
8天前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的【蘑菇识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
蘑菇识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了9种常见的蘑菇种类数据集【"香菇(Agaricus)", "毒鹅膏菌(Amanita)", "牛肝菌(Boletus)", "网状菌(Cortinarius)", "毒镰孢(Entoloma)", "湿孢菌(Hygrocybe)", "乳菇(Lactarius)", "红菇(Russula)", "松茸(Suillus)"】 再使用通过搭建的算法模型对数据集进行训练得到一个识别精度较高的模型,然后保存为为本地h5格式文件。最后使用Django框架搭建了一个Web网页平台可视化操作界面,
52 11
基于Python深度学习的【蘑菇识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
|
2月前
|
机器学习/深度学习 人工智能 算法
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
宠物识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了37种常见的猫狗宠物种类数据集【'阿比西尼亚猫(Abyssinian)', '孟加拉猫(Bengal)', '暹罗猫(Birman)', '孟买猫(Bombay)', '英国短毛猫(British Shorthair)', '埃及猫(Egyptian Mau)', '缅因猫(Maine Coon)', '波斯猫(Persian)', '布偶猫(Ragdoll)', '俄罗斯蓝猫(Russian Blue)', '暹罗猫(Siamese)', '斯芬克斯猫(Sphynx)', '美国斗牛犬
221 29
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
深入理解深度学习中的卷积神经网络(CNN)##
在当今的人工智能领域,深度学习已成为推动技术革新的核心力量之一。其中,卷积神经网络(CNN)作为深度学习的一个重要分支,因其在图像和视频处理方面的卓越性能而备受关注。本文旨在深入探讨CNN的基本原理、结构及其在实际应用中的表现,为读者提供一个全面了解CNN的窗口。 ##
|
3月前
|
机器学习/深度学习 人工智能 自然语言处理
深入理解深度学习中的卷积神经网络(CNN)
深入理解深度学习中的卷积神经网络(CNN)
|
2月前
|
机器学习/深度学习 人工智能 算法
深度学习入门:用Python构建你的第一个神经网络
在人工智能的海洋中,深度学习是那艘能够带你远航的船。本文将作为你的航标,引导你搭建第一个神经网络模型,让你领略深度学习的魅力。通过简单直观的语言和实例,我们将一起探索隐藏在数据背后的模式,体验从零开始创造智能系统的快感。准备好了吗?让我们启航吧!
115 3
|
28天前
|
机器学习/深度学习 运维 安全
深度学习在安全事件检测中的应用:守护数字世界的利器
深度学习在安全事件检测中的应用:守护数字世界的利器
73 22
|
2月前
|
机器学习/深度学习 传感器 数据采集
深度学习在故障检测中的应用:从理论到实践
深度学习在故障检测中的应用:从理论到实践
207 6
|
7天前
|
机器学习/深度学习 人工智能 运维
深度学习在流量监控中的革命性应用
深度学习在流量监控中的革命性应用
70 40
|
2天前
|
机器学习/深度学习 运维 资源调度
深度学习在资源利用率优化中的应用:让服务器更聪明
深度学习在资源利用率优化中的应用:让服务器更聪明
17 6

热门文章

最新文章