【DeepLearning学习笔记】Neurons神经元

【DeepLearning学习笔记】Neurons神经元今天找到一个比较好的deeplearning的教材:NeuralNetworksandDeepLearning对神经网络有详细的讲解,鉴于自己青年痴呆,还是总结下笔记吧=。=Perceptr

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

今天找到一个比较好的deep learning的教材:Neural Networks and Deep Learning 对神经网络有详细的讲解,鉴于自己青年痴呆,还是总结下笔记吧=。=

Perceptron感知器

Perceptron的输入的一组binary变量xi,对这些binary变量求出加权和后,如果这个和大于某个阈值threshold,就输出1;否则输出0.

【DeepLearning学习笔记】Neurons神经元

所以perceptron的输入输出都是binary的,我们可以把一个perceptron的输入看成一组“evidences”(证据),perceptron利用这组证据判断出一个decision(决策)。

比如说我们用一个perceptron判断一个女生会不会买一双鞋,就用上图的perceptron,假设这个女生有三个评价标准:

x1:这双鞋是否打折?

x2:这双鞋小伙伴们是否还没有?

x3:这双鞋是否是今年新款?

以上各个变量如果回答是“是”,则对应xi为1,否则为0.并且假设threshold为3,即如果w1x1+w2x2+w3x3≥3,那么输出1,否则输出0.

第一种情况:这个女生非常(chu)挑(nv)剔(zuo),她要求这三个评价标准都满足,才会买这双鞋,这时可以设置w1=w2=w3=1,那么只有x1=x2=x3的时候,perceptron的输出才是1,否则是0.

第二种情况:这个女生非常自(jiao)主(qing),她很讨厌和别人买一样的鞋,那么第二个标准对她非常重要,而其他两个都不重要。这是可以设置w2=3,w1=w3=1,那么只有当x2=1的时候perceptron才可能输出1,否则不管x1和x2取什么值,perceptron都只输出0.

以上是perceptron的直观理解,以下是数学表示:

【DeepLearning学习笔记】Neurons神经元

这个表示有两坨东西非常复杂,一个是求和符号,另一个是threshold。那么为了简化,我们可以利用向量运算代替求和符号,即∑wjxj = wx,其中w是权重向量,x是样本向量。另外设置一个变量b=-threshold,然后把它挪到不等号左边,那么上述数学表示就变成了:

【DeepLearning学习笔记】Neurons神经元

所以一个perceptron所做的工作就是把所有输入和它们对应的权重相乘求和后加上偏置b然后和0比较,大于0输出1,小于0输出0.

Sigmoid神经元

在神经网络的训练过程中,我们随机初始化权重,然后通过训练数据逐步的修改权重,使得神经网络最终能够完成某项任务。上述的perceptron有一个缺点就是如果它的某一个权重发生了细微的变化,那么output的值很有可能直接从0跳变到1,并且它的输出跳变就有可能引起更大范围的不可控的跳变,这样我们就不能“逐(ping)渐(wen)”的调整网络的权重来训练网络。

这个时候就要引入sigmoid神经元了。它的结构和上述perceptron是十分相似的,同样有若干个输入xi,对应若干个权重wi,一个输出output。不过这些x以及output都是[0,1]之间的实数了,而不限定与binary了。并且,sigmoid神经元的工作要比perceptron稍微复杂一些:当这个perceptron把输入x和权重求完加权和后,并不是用threshold来判断输出,而是将这个加权和作为sigmoid函数(f(x)=1/(1+exp(-x)))的输入,最后函数值作为输出。

为什么这个函数可以解决perceptron的问题呢?因为如下这个公式:

【DeepLearning学习笔记】Neurons神经元

假设我们在训练网络的时候对w的修改是Δw,对b的修改是Δb,那么输出的变化是Δw和Δb的线性和(上述偏导都可以看成线性关系的系数),也就是说Δoutput=∑aiwi+bΔb(a,b都是偏导),这样一来,Δw和Δb微小的变化就不会引起output的突然跳变,而是一个线性缓慢变化的过程,这样我们训练神经网络的过程就可控了。

sigmoid的输出和perceptron是相似的,从它们的图像就可以看出来:

【DeepLearning学习笔记】Neurons神经元

红色的是perceptron,蓝色是sigmoid。二者均是当输入接近正无穷时输出接近1;当输入接近负无穷时,输出接近0.只是在0附近,perceptron的函数是跳变,而sigmoid是逐渐变化,正是这种逐渐变化使得sigmoid可导并且权重的微小变化引起的输出的变化是可控的,而不是跳变。

所以sigmoid函数重要的是它的形状好,其实这个形状的还有tanh正切函数(输出在[-1,1]而不是(0,1)):

【DeepLearning学习笔记】Neurons神经元

那么为什么sigmoid使用更广泛呢?因为它有一个极好的求导性质:

f(z)=1/(1+exp(-z))

f'(z)=f(z)(1-f(z))

这个性质在训练神经网络的BP算法中使我们可以快速计算sigmoid函数的梯度,所以sigmoid函数在神经网络中使用更广泛。

【参考】http://neuralnetworksanddeeplearning.com/index.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/167306.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 服务器可以ghost备份吗_服务器可以用dism备份吗

    服务器可以ghost备份吗_服务器可以用dism备份吗带RAID服务器能GHOST备份吗?一、不可以的原因:1、从saymantec上查询到不行:Ghost与RAID的兼容性情形本文介绍Ghost与使用RAID的计算机的兼容性。解释请注意:无论驱动器使用软件级RAID还是硬件级RAID,赛门铁克都不提供制作RAID驱动器映像的技术支持。能否成功制作RAID驱动器映像取决于特定的计算机模型、驱动程序控制器、硬盘驱动器和…

    2022年9月5日
    2
  • 如何处理Android Studio 上面关于 update 和 commit 小箭头的消失

    如何处理Android Studio 上面关于 update 和 commit 小箭头的消失

    2021年9月12日
    49
  • PostgreSQL数据库备份和恢复

    PostgreSQL数据库备份和恢复一、备份1、cmd到PostgreSQL安装目录bin下2、备份命令pg_dump-h192.168.100.23-Upostgrespostgres>D:\postgres.bak3、指令解释如上命令,pg_dump是备份数据库指令;10.194.227.231是数据库的ip地址;postgres是数据库的用户名;postgres是数据库名;>意思是导出到指定目录;4、图文并茂备份二、恢复1、备份命令psql

    2022年5月14日
    46
  • Linux磁盘管理和文件系统[通俗易懂]

    Linux磁盘管理和文件系统[通俗易懂]文章目录1.前言2.磁盘结构2.1设备文件2.2设备的命名规则(1)物理设备1.前言https://zhuanlan.zhihu.com/p/3397174632.磁盘结构2.1设备文件在linux系统中,一切皆文件,磁盘设备也是文件的一种。设备文件:关联至一个设备驱动程序,进而能够跟与之对应硬件设备进行通信设备号码:主设备号:majornumber,标识设备类型次设备号:minornumber,标识同一类型下的不同设备设备类型:块设备:block,存取单位“块”,磁盘

    2022年5月28日
    42
  • AutoEventWireup介绍

    AutoEventWireup介绍       ASP.NET页会引发诸如Init、Load、PreRender等生命周期事件。默认情况下,可以使用Page_事件名称的命名约定将页事件绑定到方法。例如,若要为页的Load事件创建处理程序,可以创建名为Page_Load的方法。编译时,ASP.NET将查找基于此命名约定的方法,并自动执行事件与方法之间的绑定。可以对Page类公开的任何事件使用Page

    2022年5月8日
    35
  • navicat15 永久激活码-激活码分享2022.02.27「建议收藏」

    (navicat15 永久激活码)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

    2022年4月1日
    2.4K

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号