IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 深度学习入门初探——简单的激活函数 -> 正文阅读

[人工智能]深度学习入门初探——简单的激活函数

1 复习感知机

??????? 复习下前一节的感知机,先来看看公式:

?

???????? 如果稍微把式子从另外一个角度来描述呢:

???????? 激活函数已经显露出来了,h()即是。如果把a作为一个神经元,权重W有了,输入X有了,偏置b有了,a输出到y就得有激活函数来转换,这个激活函数就是阶跃函数:

# coding: utf-8
import numpy as np
import matplotlib.pylab as plt

def step_function(x):
    return np.array(x > 0, dtype=int)

X = np.arange(-5.0, 5.0, 0.1)
Y = step_function(X)
plt.plot(X, Y)
plt.ylim(-0.1, 1.1) 
plt.show()

???????? 这里说个不是那么严格的定义,朴素感知机即是使用了阶跃激活函数的单层网络,多层感知机就可以说是神经网络了,一般都是使用了比阶跃函数更为平滑的激活函数的多层网络。神经元的多层连接的构造、信号的传递方法等,基本上和感知机是一样的。

?2 平滑的激活函数

??????? 阶跃激活函数上图已经很明了了,这节就看看sigmoid函数和relu函数,这里明确一点,这些激活函数都是非线性函数,神经元的多层连接正是因为非线性函数才能发挥多层网络带来的优势。如果使用线性函数,不管网络有多少层,都是可以使用单层网络描述的。

??????? 都是非线性函数,后两者相对更为平滑,但是宏观上三个函数的形状也是相似的,直接看图:

??????? sigmoid函数:

# coding: utf-8
import numpy as np
import matplotlib.pylab as plt

def sigmoid(x):
    return 1 / (1 + np.exp(-x))    

X = np.arange(-5.0, 5.0, 0.1)
Y = sigmoid(X)
plt.plot(X, Y)
plt.ylim(-0.1, 1.1)
plt.show()

? ????? sigmoid和step函数,宏观上函数的形状也是相似的:

# coding: utf-8
import numpy as np
import matplotlib.pylab as plt

def sigmoid(x):
    return 1 / (1 + np.exp(-x))    
def step_function(x):
    return np.array(x > 0, dtype=np.int)

x = np.arange(-5.0, 5.0, 0.1)
y1 = sigmoid(x)
y2 = step_function(x)

plt.plot(x, y1)
plt.plot(x, y2, 'k--')
plt.ylim(-0.1, 1.1)
plt.show()

????????


relu函数:

?

# coding: utf-8
import numpy as np
import matplotlib.pylab as plt


def relu(x):
    return np.maximum(0, x)
def step_function(x):
    return np.array(x > 0, dtype=np.int)
    

x = np.arange(-5.0, 5.0, 0.1)
y = relu(x)
y0 = step_function(x)

plt.plot(x, y)
plt.plot(x, y0, 'k--')
plt.ylim(-0.1, 1.5)
plt.show()

? ? ? ?? 为了解决神经网络多层传递过程中趋于零的问题,平滑的激活函数使用得较为广泛,且为了算得更快,relu优势较为明显,看他们的公式就可知。relu也有好多的变体,都是在神经网络发展过程中遇到问题而做的改进。

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-09-29 10:15:46  更:2021-09-29 10:17:20 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/21 22:31:43-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码