zoukankan      html  css  js  c++  java
  • 学习XOR

    //f(x;W,c,w,b)=w*max{0, W*x+c}+b

    #include <iostream>
    #include <vector>
    #include <algorithm>

    template <class T>
    double tanh(T& z) {
      double ret;
      ret = (exp(z)-exp((-1)*z))/(exp(z)+exp((-1)*z));
      return ret;
    }

    template <class T>
    double sigmoid(T& z) {
      return 1.0f/(1.0f+exp((-1)*z));
    }

    int main() {
      int w[][2]={{1, 1}, {1,1}};
      int bias[]={0, -1};
      int weights[] = {1, -2};
      int x[][2]={{0, 0}, {0, 1}, {1, 0}, {1, 1}};
      int c[][2]={{0, 0}, {0, 0}, {0, 0}, {0, 0}};

      /*x[4][2] * w[2][2] = c[4][2]*/
      for(size_t i=0;i<4;++i) {
        for(size_t j=0;j<2;++j) {
          int sum = 0;
          for(size_t k=0;k<2;++k) {
            sum += x[i][k] * w[k][j];
          }
          c[i][j] = sum;
        }
      }

      for(size_t i=0;i<4;++i) {
        for(size_t j=0;j<2;++j) {
          std::cout<<c[i][j]<<" ";
        }
        std::cout<<std::endl;
      }

      std::cout<<"add bias, rectified linear unit:\n";

      for(size_t i=0;i<4;++i) {
        for(size_t j=0;j<2;++j) {
          c[i][j] = c[i][j] + bias[j];
          c[i][j] = std::max(c[i][j], 0);
          std::cout<<c[i][j]<<" ";
        }
        std::cout<<std::endl;
      }

      for(size_t i=0;i<4;++i) {
        for(size_t j=0;j<1;++j) {
          int sum=0;
          for(size_t k=0;k<2;++k) {
            sum += c[i][k] * weights[k];
          }
          c[i][j] = sum;
        }
      }

      std::cout<<"the XOR result:\n";
      for(size_t i=0; i<4; ++i) {
        for(size_t j=0;j<2;++j) {
          std::cout<<x[i][j]<<" ";
        }
      std::cout<<c[i][0]<<"\n";
      }

      return 0;
    }

    With the input patterns (0,0) and (1,1) located on opposite corners of the unit square, and likewise

    for the other two input patterns (0,1) and (1,0), it is clear that we cannot construct a straight line

    for a decision boundary so that (0,0) and (0,1) lie in one dicision region and (0,1) and (1,0) lie in the

    other decision region. In other words, the singlelayer perceptron cannot solve the XOR problem.

  • 相关阅读:
    1-Java类结构和main函数
    0-java概述
    2-python元组和列表
    SSH密码暴力破解及防御实战----防
    SQL注入攻击及防御详解
    XSS跨站攻防安全
    文件包含渗透----当我们无法进行上传渗透时另一种黑客攻击
    jspgou商城部署时报错:Could not open Hibernate Session for transaction; nested exception is org.hibernate.ex
    上传漏洞----看完之后你也是黑客(中国菜刀和kali)
    部署jenkins服务器出现Please wait while Jenkins is getting ready to work ...一直进不去该怎么办?
  • 原文地址:https://www.cnblogs.com/donggongdechen/p/9217023.html
Copyright © 2011-2022 走看看