• 神经网络与深度学习(邱锡鹏)编程练习 2 题目解析


    实验1:线性回归的参数优化-最小二乘法

    1 最小二乘法原理

    基于均方误差最小化进行模型求解。

    线性回归中,试图找到一条直线,使所有样本到直线的欧氏距离之和最小。(西瓜书P54)

    图源:NNDL P34

    2 最小二乘法优化公式

    (参考书中第二章 2.3中的公式),在main()中利用训练集训练模型的参数w,并且返回模型。

    NNDL P34

    3 最小二乘法实现

    在numpy中可以使用numpy.linalg.pinv求伪逆

    python之numpy之伪逆numpy.linalg.pinv_千行百行的博客-CSDN博客_numpy pinv

    伪逆矩阵(广义逆矩阵) - 简书 (jianshu.com)

     

    实验2:线性回归的参数优化-梯度下降法

    梯度下降法优化 (参考书中第二章 2.3中的公式),在main()中利用训练集训练模型的参数w,并且返回模型。

    NNDL P35

        def gradient(phi_grad, y, w_init, lr=0.001, step_num=10):  # lr 学习率; step_num 迭代次数
            w_train = w_init
            for i in range(step_num):
                grad = phi_grad.T.dot(phi_grad.dot(w_train) - y) * 2.0 / len(phi_grad)  # 计算梯度
                w_train = w_train - lr * grad  # 更新 w
                print("循环次数:", i, "参数 w_train = ", w_train)
            return w_train

    实验3:基函数回归(最小二乘法优化)

    • 多项式基函数 multinomial_basis(x, feature_num=10)
    • 高斯基函数 gaussian_basis x, feature_num=10)

    通过基函数对元素数据进行交换,从而将变量间的线性回归模型转换为非线性回归模型

    1. 最小二乘法 + 多项式基函数
    2. 最小二乘法 + 高斯基函数

     六、Sklearn线性回归 - 走看看 (zoukankan.com)

    实验4:基函数回归(梯度下降法优化)

    • 多项式基函数 multinomial_basis(x, feature_num=10)
    • 高斯基函数 gaussian_basis x, feature_num=10)

    通过基函数对元素数据进行交换,从而将变量间的线性回归模型转换为非线性回归模型。

    1. 梯度下降法 + 多项式基函数
    2. 梯度下降法 + 高斯基函数

     六、Sklearn线性回归 - 走看看 (zoukankan.com)

    实验5:使用深度学习框架

    邱锡鹏老师使用的是 TensorFlow

    本实验用 pytorch 实现

    数据集:

    • train.txt
    • test.txt

     

    函数:

    • 载入数据:load_data(filename)
    • 基函数: identity_basis(x) multinomial_basis(x, feature_num=10) gaussian_basis x, feature_num=10)
    • 训练模型:main(x_train, y_train) 返回从x到y的映射
    • 评估模型:evaluate(ys, ys_pred)

     

    主程序:

    1. # 载入数据
    2. # 使用线性回归训练模型,返回一个函数f()使得y = f(x)
    3. # 计算预测的输出值
    4. # 使用测试集评估模型
    5. # 显示结果

     知识点:基函数

    From:PRML

  • 相关阅读:
    Python Twelfth Day
    Python Tenth Day
    Python Ninth Day
    Python Eighth Day
    Python Seventh Day
    Python Sixth Day
    Python Fifth Day
    Python Fourth Day
    Python Third Day
    金融量化分析-python量化分析系列之---使用python的tushare包获取股票历史数据和实时分笔数据
  • 原文地址:https://www.cnblogs.com/hbuwyg/p/16326163.html
Copyright © 2020-2023  润新知