我对与主要数据一起获得额外输入的可能性感兴趣。例如,一个主要依赖于图像的医疗应用程序:如何同时考虑性别、年龄等?
当然可以将 CNN 和其他数据的输出放入一个密集连接的网络中。但它似乎效率低下。有没有行之有效的方法来做这样的事情?
我对与主要数据一起获得额外输入的可能性感兴趣。例如,一个主要依赖于图像的医疗应用程序:如何同时考虑性别、年龄等?
当然可以将 CNN 和其他数据的输出放入一个密集连接的网络中。但它似乎效率低下。有没有行之有效的方法来做这样的事情?
一种更有效的方法是创建一个多输入模型,如下所示:
___________ _____________
|__Image__| |Other input|
_____|_____ _____|_____
|___CNN___| |__Dense___|
_____|______ _____|______
|_Features1_| |_Features2_|
__|_____|__
|__Merge___|
_____|______
|___Dense__|
_____|_____
|__Output__|
但是,您也可以将非结构化数据组合到图像中,如 quora 回答中所述:
开箱即用的方法:
如果您只想使用您的 CNN 库并不加思索地使用它,那么有一种简单的方法可以做到这一点。
您的图像具有“通道”:例如红色蓝色和绿色通道。只需为每个非结构化特征添加另一个通道。这些通道将只是 2D 数组,其条目都是相同的值:外部特征的值。
这意味着更多的内存和更多的参数。如果您有大量非结构化数据,这可能会变得非常昂贵。
更有效的方法(而且仍然不难):
您使用一个或多个反卷积过滤器将非结构化数据提升到结构化数据的大小,将它们沿通道维度连接起来,并继续前进,就好像什么都没发生一样。