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 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> [BPnet识别MNIST08]神经网络参数初始值对于模型结果的影响 -> 正文阅读

[人工智能][BPnet识别MNIST08]神经网络参数初始值对于模型结果的影响

写在前面

今天主要探索的是改变神经网络的权重和阈值的初始值的大小对于模型输出结果的影响,本篇文章首先会介绍一下我对输入数值的归一化处理,然后再通过示例查看初始化参数对于模型输出的影响。

归一化

为了减小MNIST数据本身数值大小的影响,我将MNIST图片的像素数据进行了归一化处理,归一化公式如下图所示:

在这里插入图片描述
程序实现如下图所示,需要注意的是,在程序中,我为了减小数字的位数,我将归一化数值进行了放大100倍的操作:

def  normalization(x):
    max = 0
    min = 999
    for i in range(0, 784):
        if (x[i] > max):
            max = x[i]
        elif (x[i] < min):
            min = x[i]

    for i in range(0, 784):
        x[i] = (x[i] - min) / (max - min) * 100
    # print(x)

    return x

探索

我是将一幅图像进行不断地训练,从而进行调优,因此我只取了MNIST数据集的第一张,也就是数字“5”进行预训练,看看我的神经网络模型是否有错,同时初步探索参数对于神经网络的影响。

在这里插入图片描述

下图是初始化了学习率为0.8, 对数字“5”训练200次,权重和阈值参数初始化的范围是(0, 0.4)得出的结果,乍看之下曲线形状还行,但是损失函数最低只能降到8左右,这显然是我们所不能接收的,但是目前还没有找出原因。

在这里插入图片描述

而且上图中曲线很丝滑是因为这是我调整过的参数,当我把参数打乱时,再来看看结果。

基于之前的数据,我将学习率调整成了0.04,曲线如下图所示:

在这里插入图片描述

可以发现,损失函数的最小值不但没有变化,而且曲线也没那么好看了,这个就是学习率的影响。

权重和阈值的初始化方法:

w = np.zeros(((2,4)), dtype=float)#(()) is used to confirm line and row
gamma = np.zeros((4,1), dtype=float)
v = np.zeros((4,4), dtype=float)
theta_1 = np.zeros(((1,4)), dtype=float)
theta_2 = np.zeros(((1,4)), dtype=float)
theta_3 = random.uniform(0,start_rand_max)
m = np.ones(((1,4)), dtype=float)
n = np.ones(((1,4)), dtype=float)

input_x = np.zeros(((1, 2)), dtype=float)
y_out = float(0)

# init para
for i in range(0, 4):  # [1,4]
    gamma[i] = random.uniform(0,start_rand_max)
    theta_1[0][i] = random.uniform(0,start_rand_max)
    theta_2[0][i] = random.uniform(0,start_rand_max)
    for j in range(0, 4):
        v[i][j] = random.uniform(0,start_rand_max)
    for k in range(0, 2):
        w[k][i] = random.uniform(0, start_rand_max)

接下来我们来看看权重和阈值的初始值对于模型的输出影响。

在这里插入图片描述
我将权重和阈值的随机初始化的范围改为了(1,10),模型的输出曲线同样产生了较大的变化,首先是曲线拐点出现了折点,目前没有搞明白是为啥,但是我觉得可能和数据大小有关系。

因为我归一化输入之后又进行了放大,因此输出数组的数值大小应该是在(1,100)之内的,所以我猜测神经网络的权重和阈值的数量级和输入变量的数量级差别较大时,模型的输出可能会受到较大的影响。

而且可以看到更改了权重和阈值的随机初始化的范围之后,损失函数的最小值并没有很明显的变化

在这里插入图片描述

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-08-04 11:12:44  更:2021-08-04 11:14:44 
 
开发: 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年12日历 -2024/12/22 15:24:39-

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