请问matlab里面的"Neural Net Fitting"app用的是哪一种神经网络?比如是CNN吗?好像介绍里面没有说明?

请问matlab里面的"Neural Net Fitting"app用的是哪一种神经网络?比如是CNN吗?好像介绍里面没有说明?

img

这个封装的神经网络采用的是前馈神经网络(FNN),也可以说是BP神经网络,也就是我们最常见的神经网络.。这个函数包采用newff进行训练网络,关于他的信息见下方....

img

img

这个用的就是cnn,处理的都是线性数据,cnn一般用于图像数据或者房价,类似数据分类,rnn是处理文本数据的,也就是类似翻译。

神经网络是一个总称,只不过CNN是其中最为经典的一种,最大的特点就是拟合
Neural Net Fitting里面可以拟合二元一次方程,也可以用于深度学习模型的训练
那么在拟合二元一次方程时,用的也是CNN吗?肯定不是的
我查看了一下官方文档以及相关资料,用的是BP神经网络,也就是第0层是输入层(3个神经元), 第1层是隐含层(2个神经元),第2层是输出层,可以结合这个图来看

img

这个一般是用的bp神经网络吧,你看左边的图显示的也是最简单的bp网络神经元结构:输入层-->隐含层-->输出层+激活函数-->输出,这个就是最经典bp公式y=W*x+b。而且拟合一般很少用到cnn的,cnn是可以拟合没错,但是bp就能干的事情,根本就不需要用到cnn

他这个并不是CNN,而是利用两层前馈网络解决拟合问题,就是两个神经网络而已,之所以说他不是CNN,是因为它并没有卷积操作。
这个算法是在R2006a版本中推出的,那个时候根本没有CNN。

img

可以将其理解为一种拟合方法,跟线性拟合,高斯过程拟合属于一个范畴,其实你自己都可以写出来一个这样的拟合网络,用torch写一个:

import torch

data = np.load("your.datga") # 两列数,一列可以理解成X, Y,输出二者拟合关系
x = torch.tensor(X.T[0].reshape(-1, 1))
y = torch.tensor(Y.reshape(-1, 1))
class Net(torch.nn.Module):
    def __init__(self, n_feature, n_hidden,  n_output):
        super(Net, self).__init__()
        self.hidden = torch.nn.Linear(n_feature, n_hidden)
        self.predict = torch.nn.Linear(n_hidden, n_output)

    def forward(self, x):
        x = torch.relu(self.hidden(x))
        x = self.predict(x)
        return x


net = Net(1, 100, 1)
optimizer = torch.optim.Adam(net.parameters(), lr=0.001)
loss_func = torch.nn.MSELoss()

for t in range(20000):
    prediction = net(x)
    loss = loss_func(prediction, y)

    optimizer.zero_grad()
    loss.backward()
    optimizer.step()

用我参加数模和电赛经验告诉你
这个不是CNN,是BP
CNN那个是模板匹配,挺不好用的,你利用摄像头识别时拍出的照片和识别时角度但凡差了一点就会识别不了了…

有一部分可以找到

以算法区分深度学习应用,算法类别可分成三大类:

常用于影像数据进行分析处理的卷积神经网络(简称CNN)
文本分析或自然语言处理的递归神经网络(简称RNN)
常用于数据生成或非监督式学习应用的生成对抗网络(简称GAN)

Neural Net Fitting号称神经网络拟合工具箱
三种都可以应付