小编Bas*_*ian的帖子

Java中的梯度下降

我最近在Coursera开始了AI-Class,我有一个与我实现梯度下降算法有关的问题.

这是我当前的实现(我实际上只是将数学表达式"翻译"为Java代码):

public class GradientDescent {

private static final double TOLERANCE = 1E-11;

private double theta0;
private double theta1;

public double getTheta0() {
    return theta0;
}

public double getTheta1() {
    return theta1;
}

public GradientDescent(double theta0, double theta1) {
     this.theta0 = theta0;
     this.theta1 = theta1;
}

public double getHypothesisResult(double x){
    return theta0 + theta1*x;
}

private double getResult(double[][] trainingData, boolean enableFactor){
    double result = 0;
    for (int i = 0; i < trainingData.length; i++) {
        result = (getHypothesisResult(trainingData[i][0]) - trainingData[i][1]); …
Run Code Online (Sandbox Code Playgroud)

java artificial-intelligence gradient-descent

10
推荐指数
1
解决办法
6654
查看次数

神经网络:求解XOR

有人可以给我一个数学正确的解释,为什么多层感知器可以解决XOR问题?

我对感知器的解释如下:

具有两个输入的感知器 在此输入图像描述在此输入图像描述 具有以下线性函数,因此能够解决线性可分离问题,例如AND和OR.

在此输入图像描述

在此输入图像描述 是基本步骤功能.

我想到的方式是我用这两个部分代替 在此输入图像描述 用+号分隔为 在此输入图像描述在此输入图像描述 我明白了 在此输入图像描述这是一条线.通过应用步进函数,我得到关于输入的一个聚类.我将其解释为由该行分隔的空格之一.

因为MLP的功能仍然是线性的,我如何以数学方式解释这一点,更重要的是:为什么它仍然是线性的时能够解决XOR问题?是因为它插入多项式?

artificial-intelligence machine-learning perceptron neural-network

7
推荐指数
2
解决办法
1669
查看次数

带有 HOG 描述符的词袋

我不太确定如何使用 HOG 描述符实现“词袋”方法。我检查了几个来源,这些来源通常提供以下几个步骤:

  1. 计算有效训练图像集的 HOG。
  2. 应用聚类算法从描述符中检索 n 个质心。
  3. 执行一些魔术以使用计算的 HOG 的最近质心的频率创建直方图,或使用 OpenCV 实现来执行此操作。
  4. 用直方图训练线性 SVM

涉及魔术(3)的步骤不是很清楚。如果我不使用 OpenCV,我将如何实现它?

HOG 是按单元计算的向量。所以我为每个单元格都有一个向量。我可以遍历向量并计算向量的每个元素的最近质心并相应地创建直方图。这是一个正确的方法吗?但如果是这样,我仍然有不同大小的向量并且没有从中受益。

machine-learning computer-vision

5
推荐指数
1
解决办法
1426
查看次数

ERM:三元关系中的基数

如何在实体-关系-模型(Chen-Notation)的三元关系中读取和/或指定基数(最小/最大)?

例如: 一位负责人与他的关联员工一起访问了多个资格证书。现在,我想知道如何在 Min-Max-Notation 中指定基数。

在此处输入图片说明

这是另一个给定基数的例子,我想知道如何阅读它。

在此处输入图片说明

database database-design relational-database

4
推荐指数
1
解决办法
2696
查看次数

神经网络训练期间的 MSE

MSE 是否有可能在训练期间增加?

我目前正在计算每个时期验证集的 MSE,在某个特定点,MSE 开始增加而不是减少。有人对这种行为有解释吗?

machine-learning neural-network

2
推荐指数
1
解决办法
826
查看次数

OpenCv (Python) 中单通道图像的 FindContours

我无法使用 OpenCV 的findContours(...)方法在单通道图像中查找轮廓。该图像实际上是一个 numpy 数组,其形状(128, 128)和元素的实际值介于 之间[0.0,1.0]。最初的形状是(1,128,128,1)但我用过np.squeeze(...)去掉第一个和最后一个维度。保留其中任何一个都不能解决我的问题。

我尝试过的:

image = np.squeeze(array) #using np.squeeze(array, [0]) won't help.
image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
contours, hierarchy = cv2.findContours(image, 1, 2)
Run Code Online (Sandbox Code Playgroud)

上面的代码会导致以下异常:

error: (-215) scn == 3 || scn == 4 in function cv::cvtColor
Run Code Online (Sandbox Code Playgroud)

我也尝试过:

如果我直接申请findContours(...),那么不使用cvtColor(...),我会得到一个不同的错误:

 error: (-210) [Start]FindContours supports only CV_8UC1 images when mode != CV_RETR_FLOODFILL otherwise supports CV_32SC1 images only in function cvStartFindContours_Impl
Run Code Online (Sandbox Code Playgroud)

一些来源建议使用 a来获取[1]threshold所需的二进制图像findContours(...) …

python opencv numpy

2
推荐指数
1
解决办法
8194
查看次数