Keras的权重产生以及其介绍

参考网站:Keras官方指南

  如果想要看各个神经元最初设定的权重,输入以下程序:

layer = layers.Dense(4)
print(layer.weights)

  但出现的结果是:

[]

  这是因为在keras程序中,必须先有输入值才会产生权重,不然会出现空集合。因此如果用以下方式:

layer = layers.Dense(4)
y = layer(tf.ones((3,4,2)))
print(layer.weights)

  则会产生权重,而且有趣的是,每次执行都会产生不一样的权重,这也表示每次在训练都会以不同值作为训练,不必自己手动调整:

[<tf.Variable 'dense_5/kernel:0' shape=(2, 4) dtype=float32, numpy=
array([[-0.03356194,  0.3569517 , -0.8341913 ,  0.73365426],
       [-0.10828733,  0.30690932, -0.19653058,  0.02371168]],
      dtype=float32)>, <tf.Variable 'dense_5/bias:0' shape=(4,) dtype=float32, numpy=array([0., 0., 0., 0.], dtype=float32)>]
[<tf.Variable 'dense_6/kernel:0' shape=(2, 4) dtype=float32, numpy=
array([[ 0.50712013, -0.64136124, -0.3829267 ,  0.5257573 ],
       [-0.7684462 ,  0.03535271,  0.4861548 ,  0.5680456 ]],
      dtype=float32)>, <tf.Variable 'dense_6/bias:0' shape=(4,) dtype=float32, numpy=array([0., 0., 0., 0.], dtype=float32)>]

  输出结果会发现有两个tf.Variable,前面是只权重的部分,後面是偏差值。
  在权重部分中,我看到kernel,以为是只作业系统上的软件和硬体之间的沟通,後来才想到:「这不是作业系统啊」,因此就调查了一下为何机器学习中有kernel。
  在机器学习里,kernel可以用来协助区分资料,使得可以更快速建立基本架构,一般来说在低维度的空间,资料可能会混杂在同一个区块中,很难找到适合的线性方式,因此使用kernel可以将基本资料切换成多个维度,从平面变成立体的架构,就有可能可以找到适合的线性方式,不必用非线性的方式了。
  上述提到,总结kernel有两个重点:样本的相似性以及加权。不得不说机器学习中有很重要的概念:要得到自己想要的结果,那就在训练集中先找到相似的样本,将那些样本拿来训练,就能得到想要的结果了。因此kernel就可以被用来找到距离最近点进行训练、区分,且距离越近的点所设定的权重会越大,表示相似度越高,最後在用线性回归调整权重数值,以训练玩结果。
  输出结果中的array中的各个数字就是各个神经元的权重,在上一篇激励函数中有提到,因为只会看最後一个数来决定该输入层有多少个神经元,因此权重的个数仅有8个,若要表示输入层,则如图(一)。
https://ithelp.ithome.com.tw/upload/images/20211007/201407224s4Y5Bqpvs.png
  以tf.ones(3,4,2)格式会是这样:

[[[1. 1.]
  [1. 1.]
  [1. 1.]
  [1. 1.]]

 [[1. 1.]
  [1. 1.]
  [1. 1.]
  [1. 1.]]

 [[1. 1.]
  [1. 1.]
  [1. 1.]
  [1. 1.]]]

  则图(一)的输入层有两个神经元,第一个会取矩阵当中的第一行数字,第二个则取第二行。
  最後偏差值的部分,偏差因为是先把资料乘上权重且加总完毕之後,才会加入偏差值,因此可以看到偏差的个数是根据layer个数而定,且目前每个值都是设定为0。


<<:  中阶魔法 - 提升 Hoisting

>>:  [Python 爬虫这样学,一定是大拇指拉!] DAY22 - 实战演练:HTML Response - 抓取股票代码清单 (1)

[Day 1] 主角总是最後登场的 (前端篇)

其实只是拖延症点到满等的我,说是主角其实只是拖延症发作 有看过某些YT频道的应该有听过这段话 什麽样...

【Day 1】踏入机器学习的世界

前言 随着 人工智慧(Artificial Intelligence, AI) 的发展越来越快速, ...

Day 15 [Python ML、Pandas] 统整资料和Maps

import pandas as pd pd.set_option('max_rows', 5) i...

[CodeIgniter] 隐藏网址中的index.php

新手发文 Codeigniter如果不调整设定,网址中会自带index.php 为了符合MVC架构,...

Day14 Gin and Go Mod

Background Goland从1.11版本起就开始导入了GO Module功能,这样也不需要再...