2024-08-02, 20:00-今日內容

argmax的例子: PDF 是概率密度函数 Z就是我们说的logits Dense layer 全连接层 -(针对分类问题的,也就是categorical) batch normalization layer Tensorflow keras的关系

🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️

argmax的例子: 当然可以。让我们通过一个具体的例子来说明 np.argmax 在一个 4x4 矩阵上的操作,并解释其输出和变化。

示例:对一个 4x4 矩阵进行 argmax 操作

假设我们有一个 4x4 的矩阵,我们想要找到每行中最大值的索引。

例子矩阵

import numpy as np

# 示例矩阵
matrix = np.array([
    [1, 3, 2, 4],
    [5, 1, 6, 2],
    [4, 3, 2, 1],
    [7, 8, 5, 6]
])

print("Matrix:")
print(matrix)

沿行进行 argmax 操作(即 axis=1

使用 np.argmax 沿着每一行(axis=1)进行操作:

# 沿着每行进行 argmax 操作
row_argmax = np.argmax(matrix, axis=1)

print("\nArgmax along rows (axis=1):")
print(row_argmax)

沿列进行 argmax 操作(即 axis=0

使用 np.argmax 沿着每一列(axis=0)进行操作:

# 沿着每列进行 argmax 操作
column_argmax = np.argmax(matrix, axis=0)

print("\nArgmax along columns (axis=0):")
print(column_argmax)

代码和输出解释

让我们运行上述代码并解释输出:

import numpy as np

# 示例矩阵
matrix = np.array([
    [1, 3, 2, 4],
    [5, 1, 6, 2],
    [4, 3, 2, 1],
    [7, 8, 5, 6]
])

print("Matrix:")
print(matrix)

# 沿着每行进行 argmax 操作
row_argmax = np.argmax(matrix, axis=1)
print("\nArgmax along rows (axis=1):")
print(row_argmax)

# 沿着每列进行 argmax 操作
column_argmax = np.argmax(matrix, axis=0)
print("\nArgmax along columns (axis=0):")
print(column_argmax)

输出结果

Matrix:
[[1 3 2 4]
 [5 1 6 2]
 [4 3 2 1]
 [7 8 5 6]]

Argmax along rows (axis=1):
[3 2 0 1]

Argmax along columns (axis=0):
[3 3 1 0]

解释

  • 沿行进行 argmax 操作(axis=1)
    • 对于第一行 [1, 3, 2, 4],最大值是 4,其索引是 3。
    • 对于第二行 [5, 1, 6, 2],最大值是 6,其索引是 2。
    • 对于第三行 [4, 3, 2, 1],最大值是 4,其索引是 0。
    • 对于第四行 [7, 8, 5, 6],最大值是 8,其索引是 1。
    • 所以结果是 [3, 2, 0, 1]
  • 沿列进行 argmax 操作(axis=0)
    • 对于第一列 [1, 5, 4, 7],最大值是 7,其索引是 3。
    • 对于第二列 [3, 1, 3, 8],最大值是 8,其索引是 3。
    • 对于第三列 [2, 6, 2, 5],最大值是 6,其索引是 1。
    • 对于第四列 [4, 2, 1, 6],最大值是 6,其索引是 0。
    • 所以结果是 [3, 3, 1, 0]

总结

通过 np.argmax(matrix, axis=1),我们可以找到每行最大值的索引,输出形状为 (4,),表示每行最大值的索引。通过 np.argmax(matrix, axis=0),我们可以找到每列最大值的索引,输出形状也是 (4,),表示每列最大值的索引。

希望这个例子能帮助你理解 argmax 的操作和输出形状。如果有其他问题或需要进一步解释,请告诉我!    

🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️

PDF 是概率密度函数 他的积分是概率 均匀分布(0-1)是说在0到1的区间,pdf的value是1 。 也就是说在这个区间内的所有点的pdf都是1. 他们这个区间的integral 也就是面积,或者积分,是1.

想要计算均匀分布的概率,直接就是b-a。 • PDF 的值是 1:表示在 [0, 1) 区间内每个点的概率密度是 1。 • 概率的计算:通过积分计算区间 [a, b) 内的概率,结果是 b - a。

#uniform_distribution

🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️

Z就是我们说的logits 最后一层的activation就是对Z 也就是logits 做的激活。

为什么有的时候模型会让他自己输出,而不是再套一层softmax的activation,gpt的解释是: 数值稳定性:直接处理 logits 可以避免在计算 softmax 时的数值不稳定问题

🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️

Dense layer 全连接层 -(针对分类问题的,也就是categorical) 主要是针对categorical 的分类问题,最后一层一般都是这个dense layer。 也就是用activation是softmax,把问题最后转换成概率问题输出,也就是每个category的概率。nice

如果model.add(layers.Dense(10)) 他没有写activation,也就是说没有activation,

🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️

batch normalization layer 他就是对每一个batch进行normalization的操作。直接可以添加到层与层之间,我们在input layer之后,一般都会对他进行normalization的操作。 这里是好处:• 概念:在每个小批量上标准化输入,使得每层输入具有零均值和单位方差,并且引入缩放和平移参数。 • 好处: • 加速训练 • 减少内部协变量偏移 • 具有正则化效果 • 降低对输入数据预处理的依赖性

🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️

Tensorflow keras的关系 keras是tensorflow下面的关于NN的API,主要是提供DL的深度学习libreary的。 tensorflow是keras的框架。

#匯總今日內容