自学内容网 自学内容网

动手学深度学习72 优化算法

1. 优化算法

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
任意两点连线,所有线上的值都在集合里面–凸集
在这里插入图片描述
在机器学习,凹凸函数的区别?
在这里插入图片描述

在这里插入图片描述
凸函数表达能力有限
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
动量法: 比较平滑的改变方向,两个下降方向不一样【冲突】的时候,抵消掉一些使梯度的更新不那么剧烈。看过去两三个梯度。
mementum–超参数【beta】
在这里插入图片描述
Adam不一定比SGD更好,只是对学习率不那么敏感,做了非常多的平滑。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2. QA

在这里插入图片描述
1, 可以。
2,可以自己实现简单版本,看开源的实现细节
3,实际工业使用数据效果更差
5,是的
6,冲量法出现比较早
7,不一定比sgd好

在这里插入图片描述
在这里插入图片描述
9,收敛点是梯度为0,不再更新。梯度–损失值变大的方向,减去–值变小的方向
10,是的
11 对稀疏矩阵更新的理论,batchsize大 收敛慢一些,小收敛快一些
12 小数据用大模型会差,大模型用小数据训练效果也差,模型大小和数据大小要匹配
在这里插入图片描述
13 有
15 算一下有多个 unique number,大概等于样本个数就是连续的,不是就是离散的
16 有用程度打折
17 看懂能用就行
18 不好比较
19 nlp入门比赛。会议比赛。
在这里插入图片描述

unique number from gpt

您可能指的是 unique 方法,它能够帮助判断一个特征的唯一值数量,进而推测其是离散还是连续的特征。下面我展示如何使用 pandasnunique(获取唯一值的数量)方法来判断特征的离散性或连续性。

以下是具体的代码示例:

import pandas as pd

# 假设df是数据集
def check_feature_type_with_unique(df, threshold=20):
    feature_types = {}
    for col in df.columns:
        unique_count = df[col].nunique()
        if pd.api.types.is_numeric_dtype(df[col]):
            # 根据唯一值数量判断
            if unique_count < threshold:
                feature_types[col] = '离散'  # 如果唯一值数量少于阈值,认为是离散变量
            else:
                feature_types[col] = '连续'  # 否则认为是连续变量
        else:
            feature_types[col] = '离散'  # 非数值类型通常是离散变量
    return feature_types

# 示例数据
df = pd.DataFrame({
    'age': [23, 45, 30, 25, 40],
    'gender': ['M', 'F', 'M', 'F', 'M'],
    'income': [3000.5, 7000.8, 4000.6, 5500.0, 3200.4]
})

# 运行函数并查看结果
print(check_feature_type_with_unique(df))

代码说明

  1. 参数 threshold:这是唯一值数量的阈值,通常设置为20。低于这个阈值的数值类型特征会被视为离散变量。
  2. 数据类型判断:使用 pandasis_numeric_dtype 来判断列是否为数值类型。
  3. 判断逻辑
    • 如果列是数值类型且唯一值少于阈值,则判断为离散变量;否则判断为连续变量。
    • 非数值类型的特征(如性别)通常默认视为离散变量。

运行结果示例

运行后会返回每列的离散或连续属性判断。例如:

{'age': '离散', 'gender': '离散', 'income': '连续'}

这意味着 agegender 是离散特征,而 income 是连续特征。


原文地址:https://blog.csdn.net/weixin_42831564/article/details/143771518

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!