zoukankan      html  css  js  c++  java
  • TensorFlow实现多层感知机函数逼近

    TensorFlow实现多层感知机函数逼近

    准备工作

    对于函数逼近,这里的损失函数是 MSE。输入应该归一化,隐藏层是 ReLU,输出层最好是 Sigmoid。

    下面是如何使用 MLP 进行函数逼近的示例:

    1. 导入需要用到的模块:sklearn,该模块可以用来获取数据集,预处理数据,并将其分成训练集和测试集;pandas,可以用来分析数据集;matplotlib 和 seaborn 可以用来可视化:

    1. 加载数据集并创建 Pandas 数据帧来分析数据:

    1. 了解一些关于数据的细节:

     下表很好地描述了数据:

     

    1. 找到输入的不同特征与输出之间的关联:

     以下是上述代码的输出:

    1. 从前面的代码中,可以看到三个参数 RM、PTRATIO 和 LSTAT 在幅度上与输出之间具有大于 0.5 的相关性。选择它们进行训练。将数据集分解为训练数据集和测试数据集。使用 MinMaxScaler 来规范数据集。
      需要注意的一个重要变化是,由于神经网络使用 Sigmoid 激活函数(Sigmoid 的输出只能在 0~1 之间),所以还必须对目标值 Y 进行归一化:

    1. 定义常量和超参数:

    1. 创建一个单隐藏层的多层感知机模型:

    1. 声明训练数据的占位符并定义损失和优化器:

    1. 执行计算图:

    解读分析

    在只有一个隐藏层的情况下,该模型在训练数据集上预测房价的平均误差为 0.0071。下图显示了房屋估价与实际价格的关系:

     在这里,使用 TensorFlow 操作层(Contrib)来构建神经网络层。这使得工作稍微容易一些,因为避免了分别为每层声明权重和偏置。如果使用像 Keras 这样的 API,工作可以进一步简化。


    下面是 Keras 中以 TensorFlow 作为后端的代码:

     前面的代码给出了预测值和实际值之间的结果。可以看到,通过去除异常值(一些房屋价格与其他参数无关,比如最右边的点),可以改善结果:


     

    人工智能芯片与自动驾驶
  • 相关阅读:
    android adb
    5 个免费的受欢迎的 SQLite 管理工具
    [Android]通过setImageURI设置网络上面的图片
    Android TextView实现长按复制文本功能的方法
    View工作原理(四)view的layout过程
    Anaroid WebView详解大全
    Android 如何在Eclipse中查看Android API源码以及support包源码
    关于Android的.so文件你所需要知道的
    AS问题解决系列3—iCCP: Not recognizing known sRGB profile(转)
    安卓App设计博文
  • 原文地址:https://www.cnblogs.com/wujianming-110117/p/14370630.html
Copyright © 2011-2022 走看看