【问题标题】:Machine learning size of input and output输入和输出的机器学习大小
【发布时间】:2017-04-14 11:17:01
【问题描述】:

目前我正在使用基于this website 的python 机器学习(第二部分是关于图像识别)。我想训练一个网络来识别图像中的 4 个特定点,但我的问题是:

神经网络是通过简单地将矩阵相乘、计算给定输出和识别输出之间的增量并重新计算矩阵中的权重来创建的。现在假设我有一个600x800 像素图像作为输入。如果我将它与我的层矩阵相乘,我将无法得到 4x2 矩阵作为输出(每个点的 x,y)。

我的第二个问题是我应该有多少隐藏层来解决这个问题?更多的层总是更好但需要更长的计算时间吗?我们能猜出我们需要多少隐藏层,或者我们应该测试一些值并充分利用它吗?

我目前的神经网络代码:

from os.path import isfile
import numpy as np

class NeuralNetwork:

    def __init__(self):
        np.random.seed(1)
        self.syn0 = 2 * np.random.random((480000,8)) - 1

    @staticmethod
    def relu(x, deriv=False):
        if(deriv): 
            res = np.maximum(x, 0)
            return np.minimum(res, 1)
        return np.maximum(x, 0)

    def train(self, imgIn, out):
        l1 = NeuralNetwork.relu(np.dot(imgIn, self.syn0))

        l1_error = out - l1

        exp = NeuralNetwork.relu(l1,True)
        l1_delta = l1_error * exp

        self.syn0 += np.dot(imgIn.T,l1_delta)
        return l1 #np.abs(out - l1)

    def identify(self, img):
        return NeuralNetwork.relu(np.dot(imgIn, self.syn0))

【问题讨论】:

    标签: python machine-learning


    【解决方案1】:

    问题1.输入数据。

    您必须序列化输入。例如,如果您有一张 600*800 像素的图像,则输入必须为 1*480000(rows, cols)。 行表示数据的个数,列表示数据的维度。

    问题 2. 分类。

    如果要对 4 种不同类型的类进行分类,则应使用 (1,4) 向量进行输出。例如,有 4 个类('Fish'、'Cat'、'Tiger'、'Car')。那么向量 (1,0,0,0) 表示 Fish。

    问题3.全连接网络。

    我认为本主页中的示例使用全连接网络。它使用整个图像进行一次分类。如果要使用图像子集进行分类。您应该使用卷积神经网络或其他方法。这个我不是很清楚。

    问题 4. 超参数

    这取决于数据。您必须使用各种超参数进行测试。然后选择最佳超参数。

    【讨论】:

    • 好的,这对我有帮助。谢谢!但是现在我面临另一个问题:当我将图像与第一层相乘时(在开始时随机生成),结果矩阵中的值太大以至于 nonlin (sigmoid) 方法中的 exp 函数不能计算出来的。我可以接近的任何想法?还是有更好的 sigmoid 函数?
    • 可以使用Relu功能。目前没有使用 sigmoid 函数,因为它们存在梯度消失问题。 ReLU 是几乎适用于所有情况的最佳解决方案
    • 好的,谢谢,我会试试这个!我是否也使用这个函数的导数来计算error_delta,因为它只是01,这对我来说看起来有点奇怪。
    • 是的。你必须。有一些 ReLU 的修改版本,但我认为简单的 ReLU 很适合。
    • 我尝试使用新的 Relu 函数,但这总是返回 0 个向量给我。我将神经网络中的代码添加到问题中。如果你能看看就好了。
    猜你喜欢
    • 2016-08-08
    • 2015-08-04
    • 1970-01-01
    • 2018-03-23
    • 1970-01-01
    • 2016-04-11
    • 2021-08-01
    • 2015-05-03
    • 2016-09-20
    相关资源
    最近更新 更多