区块链技术博客
www.b2bchain.cn

激活函数求职学习资料

本文介绍了激活函数求职学习资料,有助于帮助完成毕业设计以及求职,是一篇很好的资料。

对技术面试,学习经验等有一些体会,在此分享。

  • 前言
  • 为何需要激活函数
    • 单层感知机
    • 组合感知机
  • 激活函数
  • 激活函数的作用
  • 激活函数的选择
    • Sigmoid
    • Relu
    • tanh
  • 小结
  • 参考链接

前言

前两篇文章分别为大家介绍了卷积层和采样层,本文将为大家带来介于它们“中间”的激活函数

至于为什么称为“中间”,先看以下 CNN 的模型定义:

model = Sequential([   data_augmentation,   layers.experimental.preprocessing.Rescaling(1./255),   layers.Conv2D(16, 3, activation='relu'),   layers.MaxPooling2D(),   layers.Conv2D(32, 3, activation='relu'),   layers.MaxPooling2D(),   layers.Conv2D(64, 3, activation='relu'),   layers.MaxPooling2D(),   layers.Conv2D(128, 3, activation='relu'),   layers.MaxPooling2D(),       layers.Dropout(0.2),   layers.Flatten(),   layers.Dense(128, activation='relu'),   layers.Dense(len(class_names), activation='softmax') ])

其中的 activation='relu' 就是激活函数。

可以看出,卷积层不是直接把结果给池化层,而是先经过激活函数的处理,然后再输入到池化层

激活函数

为何需要激活函数

为了解释为何需要激活函数,我们先来看一个二分类问题。如下图所示,我们需要将下面的三角形和圆形进行分类

激活函数

你会发现,始终找不到一条直线可以把图中的三角形和圆形完全分开,也就是说,这是一个线性不可分的问题

单层感知机

单层感知机是最常用的神经网络组成单元,我们先尝试使用它来解决该问题。

激活函数

其中 w1w2权重b偏置。单层感知机的工作原理是:输入特征 x1 和特征 x2,如果 y>0 ,证明是正类;如果 y<0,证明是负类(这里不讨论 y=0 的特殊情况)。

可以发现,单层感知机可以画出一条线,分割平面,但本质上是一个线性分类器,无法解决线性不可分问题

组合感知机

为了获得更强的分类能力,我们很自然地想到,组合多个单层感知机来实现。

激活函数

但经过合并同类项后,公式还是一个关于 x1x2 的线性表达式, 这样一个神经网络组合起来,输出的时候无论如何都还是一个线性方程, 无法实现非线性分类

组合感知机,其实类似在做三条线的线性组合,如下图所示,试图通过三条线分割出一个区域(绿色部分),和另外区域,实现二分类。

激活函数

你可以尝试在平面中画几条直线试试,结果发现这几条直线无论在平面中如何旋转,都不能完全正确的分开三角形和圆点。结果如图下图所示。

激活函数

注:既然组合不行,那你可能还会想到机器学习工作原理提到的泰勒公式用无限条直线去逼近一条曲线。不过,你可以想象下,这个是不是太没效率了。

单层感知机、组合感知机都无法解决线性不可分问题,那下面,看下激活函数是如何帮我们解决这类问题的。

激活函数

神经网络中, 一个节点的激活函数(Activation Function)定义了该节点给定的输入或输入的集合下的输出

激活函数

直观的感觉是将卷积的结果做了一次转换。不要小看了这个转换,有了这层转换,才让神经网络变得强大。这不禁让笔者又想起了那句经典的话:

任何软件工程遇到的问题都可以通过增加一个中间层来解决!

激活函数的作用

  • 前言
  • 为何需要激活函数
    • 单层感知机
    • 组合感知机
  • 激活函数
  • 激活函数的作用
  • 激活函数的选择
    • Sigmoid
    • Relu
    • tanh
  • 小结
  • 参考链接

前言

前两篇文章分别为大家介绍了卷积层和采样层,本文将为大家带来介于它们“中间”的激活函数

至于为什么称为“中间”,先看以下 CNN 的模型定义:

model = Sequential([   data_augmentation,   layers.experimental.preprocessing.Rescaling(1./255),   layers.Conv2D(16, 3, activation='relu'),   layers.MaxPooling2D(),   layers.Conv2D(32, 3, activation='relu'),   layers.MaxPooling2D(),   layers.Conv2D(64, 3, activation='relu'),   layers.MaxPooling2D(),   layers.Conv2D(128, 3, activation='relu'),   layers.MaxPooling2D(),       layers.Dropout(0.2),   layers.Flatten(),   layers.Dense(128, activation='relu'),   layers.Dense(len(class_names), activation='softmax') ])

其中的 activation='relu' 就是激活函数。

可以看出,卷积层不是直接把结果给池化层,而是先经过激活函数的处理,然后再输入到池化层

激活函数

为何需要激活函数

为了解释为何需要激活函数,我们先来看一个二分类问题。如下图所示,我们需要将下面的三角形和圆形进行分类

激活函数

你会发现,始终找不到一条直线可以把图中的三角形和圆形完全分开,也就是说,这是一个线性不可分的问题

单层感知机

单层感知机是最常用的神经网络组成单元,我们先尝试使用它来解决该问题。

激活函数

其中 w1w2权重b偏置。单层感知机的工作原理是:输入特征 x1 和特征 x2,如果 y>0 ,证明是正类;如果 y<0,证明是负类(这里不讨论 y=0 的特殊情况)。

可以发现,单层感知机可以画出一条线,分割平面,但本质上是一个线性分类器,无法解决线性不可分问题

组合感知机

为了获得更强的分类能力,我们很自然地想到,组合多个单层感知机来实现。

激活函数

但经过合并同类项后,公式还是一个关于 x1x2 的线性表达式, 这样一个神经网络组合起来,输出的时候无论如何都还是一个线性方程, 无法实现非线性分类

组合感知机,其实类似在做三条线的线性组合,如下图所示,试图通过三条线分割出一个区域(绿色部分),和另外区域,实现二分类。

激活函数

你可以尝试在平面中画几条直线试试,结果发现这几条直线无论在平面中如何旋转,都不能完全正确的分开三角形和圆点。结果如图下图所示。

激活函数

注:既然组合不行,那你可能还会想到机器学习工作原理提到的泰勒公式用无限条直线去逼近一条曲线。不过,你可以想象下,这个是不是太没效率了。

单层感知机、组合感知机都无法解决线性不可分问题,那下面,看下激活函数是如何帮我们解决这类问题的。

激活函数

神经网络中, 一个节点的激活函数(Activation Function)定义了该节点给定的输入或输入的集合下的输出

激活函数

直观的感觉是将卷积的结果做了一次转换。不要小看了这个转换,有了这层转换,才让神经网络变得强大。这不禁让笔者又想起了那句经典的话:

任何软件工程遇到的问题都可以通过增加一个中间层来解决!

激活函数的作用

  • 前言
  • 为何需要激活函数
    • 单层感知机
    • 组合感知机
  • 激活函数
  • 激活函数的作用
  • 激活函数的选择
    • Sigmoid
    • Relu
    • tanh
  • 小结
  • 参考链接

前言

前两篇文章分别为大家介绍了卷积层和采样层,本文将为大家带来介于它们“中间”的激活函数

至于为什么称为“中间”,先看以下 CNN 的模型定义:

model = Sequential([   data_augmentation,   layers.experimental.preprocessing.Rescaling(1./255),   layers.Conv2D(16, 3, activation='relu'),   layers.MaxPooling2D(),   layers.Conv2D(32, 3, activation='relu'),   layers.MaxPooling2D(),   layers.Conv2D(64, 3, activation='relu'),   layers.MaxPooling2D(),   layers.Conv2D(128, 3, activation='relu'),   layers.MaxPooling2D(),       layers.Dropout(0.2),   layers.Flatten(),   layers.Dense(128, activation='relu'),   layers.Dense(len(class_names), activation='softmax') ])

其中的 activation='relu' 就是激活函数。

可以看出,卷积层不是直接把结果给池化层,而是先经过激活函数的处理,然后再输入到池化层

激活函数

为何需要激活函数

为了解释为何需要激活函数,我们先来看一个二分类问题。如下图所示,我们需要将下面的三角形和圆形进行分类

激活函数

你会发现,始终找不到一条直线可以把图中的三角形和圆形完全分开,也就是说,这是一个线性不可分的问题

单层感知机

单层感知机是最常用的神经网络组成单元,我们先尝试使用它来解决该问题。

激活函数

其中 w1w2权重b偏置。单层感知机的工作原理是:输入特征 x1 和特征 x2,如果 y>0 ,证明是正类;如果 y<0,证明是负类(这里不讨论 y=0 的特殊情况)。

可以发现,单层感知机可以画出一条线,分割平面,但本质上是一个线性分类器,无法解决线性不可分问题

组合感知机

为了获得更强的分类能力,我们很自然地想到,组合多个单层感知机来实现。

激活函数

但经过合并同类项后,公式还是一个关于 x1x2 的线性表达式, 这样一个神经网络组合起来,输出的时候无论如何都还是一个线性方程, 无法实现非线性分类

组合感知机,其实类似在做三条线的线性组合,如下图所示,试图通过三条线分割出一个区域(绿色部分),和另外区域,实现二分类。

激活函数

你可以尝试在平面中画几条直线试试,结果发现这几条直线无论在平面中如何旋转,都不能完全正确的分开三角形和圆点。结果如图下图所示。

激活函数

注:既然组合不行,那你可能还会想到机器学习工作原理提到的泰勒公式用无限条直线去逼近一条曲线。不过,你可以想象下,这个是不是太没效率了。

单层感知机、组合感知机都无法解决线性不可分问题,那下面,看下激活函数是如何帮我们解决这类问题的。

激活函数

神经网络中, 一个节点的激活函数(Activation Function)定义了该节点给定的输入或输入的集合下的输出

激活函数

直观的感觉是将卷积的结果做了一次转换。不要小看了这个转换,有了这层转换,才让神经网络变得强大。这不禁让笔者又想起了那句经典的话:

任何软件工程遇到的问题都可以通过增加一个中间层来解决!

激活函数的作用

部分转自互联网,侵权删除联系

赞(0) 打赏
部分文章转自网络,侵权联系删除b2bchain区块链学习技术社区 » 激活函数求职学习资料
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

b2b链

联系我们联系我们