zoukankan      html  css  js  c++  java
  • 机器学习/深度学习测试题(二)—— 单层线性神经网络求解异或问题

    1. 输入样本的处理

    听起来似乎是一个比较奇怪的说法,不对输入做任何处理的话,是无法求解异或问题的。这里提供一种对输入进行处理的可行方式:对输入样本做必要的升维处理,其实质是引入非线性分量。

    如下图所示:


    这里写图片描述

    X = [0, 0, 0; 0, 1, 1; 1, 0, 1; 1, 1, 0];
                                            % 行表示样本,包含输入值和目标值
    P = [X(:, 1), X(:, 1).^2, X(:, 1).*X(:, 2), X(:, 2).^2, X(:, 2)]';
                                            % 为了保证 matlab 接口的一致性,使其每一列为一个样本;
    d = X(:, 3)';
    

    2. 定义单层线性神经网络

    lr = maxlinlr(P, 'bias');
                        % 根据 1996 年 Hayjin 证明的 LMS 算法的收敛性,最大学习率与输入样本矩阵的自相关矩阵的最大特征值有关;
    net = linearlayer(0, lr);
    
    % 开始训练
    net = train(net, P, d);
    
    % 测试
    sim(net, P)
    
    % 查看学习到的权值
    net.iw{:}
    net.b{:}
  • 相关阅读:
    Kefa and Park
    分土地
    果园里的树
    分解质因数
    素数筛
    cantor的数表
    new一个二维数组
    基础练习 十六进制转八进制
    查函数功能
    concatenate函数
  • 原文地址:https://www.cnblogs.com/mtcnn/p/9422122.html
Copyright © 2011-2022 走看看