第三章 神经网络

神经网络结构

输入层->中间层(隐藏层)->输出层

神经网络与感知机的差异

向下一个神经元发送信号时,改变信号的激活函数有很大差异。

神经网络中使用的是平滑变化的sigmoid函数,而感知机中使用的是信号急剧变化的阶跃函数。

激活函数

激活函数将输入信号的总和转换为输出信号

作用在于决定如何来激活输入信号的总和

sigmoid函数

python 复制代码
def sigmoid(x):
    return 1 / (1 + np.exp(-x))

不管输入信号有多小,或者有多大,输出信号都在0到1之间

为了发挥叠加层所带来的有事,激活函数必须使用非线性函数

ReLU函数

ReLU函数在输入大于0 时,直接输出该值;在输入小于等于0 时,输出0

python 复制代码
def relu(x):
    return np.maximum(0, x)

使用np.dot计算矩阵的点积

关于输出层的激活函数

分类问题是数据属于哪一个类别的问题,而回归问题是根据某个输入预测一个(连续的)数值的问题

需要根据情况改变输出层的激活函数。回归问题用恒等函数,分类问题用softmax 函数

softmax函数

python 复制代码
def softmax(a):
    c = np.max(a)
    exp_a = np.exp(a - c) # 溢出对策
    sum_exp_a = np.sum(exp_a)
    y = exp_a / sum_exp_a
        return y

softmax函数的输出是0.0 到1.0之间的实数。并且,softmax函数的输出值的总和是1

因为有了这个性质,我们才可以把softmax 函数的输出解释为"概率"

输出层的神经元数量需要根据待解决的问题来决定。对于分类问题,输出层的神经元数量一般设定为类别的数量

输入数据的集合称为批,通过批处理可以实现计算机高速运算

sigmoid函数和softmax函数的区别和联系

多标签分类任务使用softmax函数

二分类任务使用sigmoid函数

相关推荐
万里鹏程转瞬至1 小时前
InternVL(1~3.5版本)多模型大模型训练中的数据集构造总结
人工智能
badhope6 小时前
Mobile-Skills:移动端技能可视化的创新实践
开发语言·人工智能·git·智能手机·github
吴佳浩7 小时前
GPU 编号进阶:CUDA\_VISIBLE\_DEVICES、多进程与容器化陷阱
人工智能·pytorch·python
吴佳浩7 小时前
GPU 编号错乱踩坑指南:PyTorch cuda 编号与 nvidia-smi 不一致
人工智能·pytorch·nvidia
小饕8 小时前
苏格拉底式提问对抗315 AI投毒:实操指南
网络·人工智能
卧蚕土豆8 小时前
【有啥问啥】OpenClaw 安装与使用教程
人工智能·深度学习
GoCodingInMyWay8 小时前
开源好物 26/03
人工智能·开源
AI科技星8 小时前
全尺度角速度统一:基于 v ≡ c 的纯推导与验证
c语言·开发语言·人工智能·opencv·算法·机器学习·数据挖掘
zhangfeng11338 小时前
Windows 的 Git Bash 中使用 md5sum 命令非常简单 md5做文件完整性检测 WinRAR 可以计算文件的 MD5 值
人工智能·windows·git·bash
monsion8 小时前
OpenCode 学习指南
人工智能·vscode·架构