您好,欢迎来到智榕旅游。
搜索
您的当前位置:首页深度学习高级,Keras多输入和混合数据实现回归模型

深度学习高级,Keras多输入和混合数据实现回归模型

来源:智榕旅游

Keras: 多输入与混合数据实现回归模型

本教程指导您如何利用Keras进行多输入与混合数据的处理。我们将学习如何构建能够接收多种输入(包括数字、分类和图像数据)的Keras架构。接下来,我们将在混合数据上训练一个端到端网络。这是关于Keras与回归预测的三部系列教程的最终部分。



通过本教程,您将掌握以下技能:




    回顾混合数据的概念以及Keras如何接收多个输入。
    审查房价数据集及其目录结构。
    学习如何准备数据,定义并训练多输入Keras模型,该模型在单个端到端网络中接受多种类型输入数据。
    在测试集上评估多输入与混合数据模型,并与之前文章的结果进行比较。


了解如何利用Keras处理多输入与混合数据,敬请阅读!



混合数据概览

借助Keras灵活的深度学习框架,可以定义一个多输入模型,该模型包含CNN和MLP分支,以处理混合数据。



在机器学习中,混合数据指包含多种类型数据的概念。例如,在医院工作的机器学习工程师为开发能够对患者健康状况进行分类的系统,将面临多种类型的数据输入,如:




    病历记录
    医学影像
    实验室检查结果
    生理参数


所有这些值构成了不同的数据类型;我们的机器学习模型必须能够接收这种“混合数据”并进行预测。



处理混合数据是机器学习研究中的一个开放领域,通常严重依赖于特定任务/最终目标。在本教程中,我们将处理混合数据以帮助您了解相关挑战。



Keras接收多个输入的方法

不同于Sequential API,Keras的函数式API允许构建更复杂的模型,包括多输入模型。



例如,我们可以定义一个简单的序列神经网络:




    使用Keras的函数式API定义一个多输入模型:



    一个简单的前馈神经网络,有10个输入,第一个隐藏层有8个节点,第二个隐藏层有4个节点,最后一个输出层用于回归。


房价数据集分析

数据集包含数字/分类数据与图像数据。图像数据来自每栋房屋中的535个示例。数字和分类属性包括:




    位置
    大小
    房间数量
    浴室数量


每个房子总共提供了四张图片:




    浴室图片
    卧室图片
    正面视图图片
    厨房图片


今天,我们将使用Keras处理多个输入与混合数据,接受数字/分类数据以及图像数据到网络。



项目结构与脚本回顾

Houses-dataset文件夹包含我们在本系列中使用的House Prices数据集。运行mix_training.py脚本时,您仅需提供数据集路径作为命令行参数(具体操作将在结果部分展示)。我们回顾三个Python脚本:




    model/datasets.py:处理加载与预处理数字/分类数据与图像数据。
    model/models.py:包含多层感知器(MLP)与卷积神经网络(CNN),这些是多输入混合数据模型的输入分支。
    mix_training.py:训练脚本,使用pyimagesearch模块的功能加载、拆分数据,并将两个分支连接到网络,然后训练与评估模型。


数据加载与预处理

定义函数加载并预处理数字/分类数据与图像数据。结果是一个更准确的模型,因为它过滤了不平衡的记录。



接下来定义一个辅助函数来加载输入图像。加载所有图像,并创建表示每栋房屋的蒙太奇图像。



模型定义

构建一个多输入、混合数据网络,定义两个分支:




    一个简单的多层感知器(MLP)用于处理分类/数字输入。
    一个卷积神经网络(CNN)用于处理图像数据。


这两个分支将合并以形成最终的多输入Keras模型。



使用Keras进行多输入处理

准备构建能够处理多个输入与混合数据的最终Keras模型。训练与评估也将在此脚本中进行。



定义函数加载数值/分类数据与图像数据,进行切分、缩放与编码。



定义两个分支:MLP与CNN,分别处理数字/分类数据与图像数据。



将分支合并为多输入Keras网络模型,然后训练与评估模型。



结果与总结

在混合数据上训练多输入网络后,我们获得以下结果:




    平均绝对百分比误差从高值开始,随着训练过程继续下降。
    在测试集上获得27.52%的平均绝对百分比误差,意味着网络在房价预测中平均降低约26-27%。


本教程教会您如何定义接受多个输入的Keras网络,以及如何使用Keras处理混合数据。我们定义了一个多输入神经网络,将数值数据与图像数据组合,并在单个端到端网络中训练。



通过这种方式,我们能够端到端地训练多输入网络,其准确度接近单个输入时的水平。代码复现已提供。

Copyright © 2019- zrrp.cn 版权所有 赣ICP备2024042808号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务