多层感知器

在之前的博客中,我们了解到,感知器(指单层感知器)具有一定的局限——无法解决异或问题,即线性不可分的问题。
将多个单层感知器进行组合,就可以得到一个多层感知器(MLP——Multi-Layer Perceptron)结构。 多层感知器包含输入层,一个或多个隐藏层以及一个输出层。每层的神经元与下一层进行完全连接。
如果网络中包含一个以上的隐层,则称其为深度人工神经网络。

说明

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

激活函数

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

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

激活函数的特征
激活函数的一些属性:

  • 非线性 可以解决非线性可分问题。当激活函数是线性时,多层神经网络相当于单层神经网络。

  • 范围性 当激活函数是有限范围时,基于梯度的训练方法往往更稳定,因为模式呈现仅显着影响有限的权重。当范围无限时,训练通常更有效,因为模式呈现显着影响大多数权重。在后一种情况下,通常需要较小的学习率。

  • 可微性 该属性用来实现基于梯度的优化方法。

  • 单调性 当激活函数是单调的时,与单层模型相关联的误差表面保证是凸的。

  • 平滑性并且具有单调导数 在某些情况下,这些函数已被证明更为普遍。

  • 原点中心化
    当激活函数具有此属性时,使用较小的随机值初始化权重,可以让神经网络学习更加有效(更有利于权重的更新)。否则,在初始化权重时必须特别小心。如果函数f满足以下条件,则表明函数是原点中心化的。

    • f(0)=0f(0)=0

    • f′(0)=1f′(0)=1

导函数在0点处连续

常见激活函数

常见的激活函数如下:

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

练习

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

import matplotlib.pyplot as plt
import numpy as npx = 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,否则,在正向传播时,所有的神经元都会得到相同的值,同时,在反向传播时,权重也会更新相同的值。这会使得神经网络拥有不同权重的意义不复存在。

多层感知器及常见激活函数-深度神经网络DNN及计算推导相关推荐

  1. 深度学习之多层感知器及激活函数

    目录 一.多层感知机MLP 1.1定义 二.MLP实现非线性分类 2.1MLP实现与门 2.2MLP实现非与门 2.3MLP实现或门 2.4MLP实现同或门 三.MLP实现多分类 四.激活函数 4.1 ...

  2. 深度学习02-神经网络(MLP多层感知器)

    文章目录 神经网络 简介 学习路径 分类 多层感知器(MLP) 神经网络认识 两层神经网络 输入层 从输入层到隐藏层 从隐藏层到输出层 激活层 输出的正规化 如何衡量输出的好坏 反向传播与参数优化 过 ...

  3. 【深度学习BookNote】多层感知器(multi-layer perceptron)

    多层感知器(multi-layer perceptron) 神经网络的变种目前有很多,如误差反向传播(Back Propagation,BP)神经网路.概率神经网络.卷积神经网络(Convolutio ...

  4. 深度学习入门系列1:多层感知器概述

    本人正在学习<deep learning with python>–Jason Brownlee,有兴趣的可以一起学习. 仅供学习参考,不做商用! 大家好,我技术人Howzit,这是深度学 ...

  5. 人工神经网络:多层感知器

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.今日所学 二.今日重点 前言 虽然异或问题成为感知器和早期神经网络的阿喀琉斯之踵,但它并非无解的问题.恰恰相反,解 ...

  6. 多层感知器神经网络模型,人工智能神经网络模型

    有哪些深度神经网络模型? 目前经常使用的深度神经网络模型主要有卷积神经网络(CNN).递归神经网络(RNN).深信度网络(DBN).深度自动编码器(AutoEncoder)和生成对抗网络(GAN)等. ...

  7. 深度学习-Tensorflow2.2-深度学习基础和tf.keras{1}-多层感知器(神经网络)与激活函数概述-04

    多层感知器 计算输入特征得加权和,然后使用一个函数激活(或传递函数)计算输出. 单个神经元 多个神经元 单层神经元缺陷 多层感知器 多层感知器 激活函数 relu:曲线如下图,假如过来的函数是x当x小 ...

  8. 深度学习(一)多层感知器MLP/人工神经网络ANN

    目录 一.定义和公式 1. 多层感知器 Multi Layer Perceptron MLP 2. MLP实现非线性分类 3. Keras介绍 二. 代码实战 1. 建立MLP模型实现二分类 1.1  ...

  9. OpenCV 神经网络 - 多层感知器(MLP)

    一.简述 人工神经网络(ANN) 简称神经网络(NN),能模拟生物神经系统对物体所作出的交互反应,是由具有适应性的简单单元(称为神经元)组成的广泛并行互连网络. 二.M-P神经元 "M-P神 ...

最新文章

  1. 计算机无法转换输入发,电脑输入法切换不了怎么办
  2. Spring Cloud 覆写远端的配置属性
  3. Tomcat中部署后JspFactory报异常的解决方案
  4. 使用memocache
  5. 用VC写Assembly代码(6)--附录1[堆和栈的区别]
  6. 数字表达_神奇的数字英语表达一定会让你大吃一惊
  7. java中nio流_Java输入输出流IO介绍(与NIO比较)
  8. Android开发手记(23) Notification
  9. R语言data manipulation学习笔记之创建变量、重命名、数据融合
  10. python文件处理——文件读写
  11. python解释器的下载与安装
  12. 13款最佳免费网络监控工具,网站监控软件的总结。
  13. Midas GTS NX To 3DEC网格转换程序
  14. java web张龙_圣思园张龙javaWeb视频教程全集配套源码和PDF课件
  15. python制作动态表情包,用 Python 开发一个【GIF表情包制作神器】
  16. linux 光盘刻录命令,Linux命令刻录光盘
  17. LeetCode 237. 删除链表中的节点
  18. JSP中把动态页面转换为静态页面
  19. 十年磨一剑,两万字长文深剖析分享IC验证经验
  20. 查询并处理占用8080端口进程

热门文章

  1. 如何使用sizeof获取指针指向数组的长度
  2. WaterMark 1.0
  3. 微机中的实际地址、物理地址、有效地址、逻辑地址之间的区别
  4. vue双向绑定是如何实现的
  5. 华盛顿大学西雅图分校计算机专业排名,2020年华盛顿大学西雅图分校世界排名...
  6. calendar.getActualMaximum(calendar.DAY_OF_MONTH)的坑点
  7. anchor机制讲解
  8. 环境实验耐高温、耐低温、温度变化、恒定湿热、湿热循环
  9. linux 下dump文件放在那里,怎么查看dump文件目录
  10. CSS3视窗单位vw、vh、vmin、vmax说明