zoukankan      html  css  js  c++  java
  • 神经网络

     

          神经网络在OCR中属于很重要的算法,现在火爆的DEEPLEARNING另一个名字叫做多层神经网络.我试着把相关的知识总结一下,这篇文章先写一个最简单的实现.最简单的网络就是只有一个节点,这个节点有一个霸气的名字--感知器.下面是一段关于感知器的代码,代码虽然简单,但已经把感知器的逻辑都表现出来了.

     

    double w[3] = {1,1,1};

    int data[8][3] = {

        {0,0,0,}, {1,0,0},{1,0,1},{1,1,0}

        ,{0,0,1},{0,1,1},{0,1,0},{1,1,1}

    };

     

    int label[8] = {-1,-1,-1,-1,1,1,1,1};

     

    for (int i =0; i < 100; i++)

    {

        int error = 0;

        for (int n = 0; n < 8; n++)

        {

            double sum = data[n][0] * w[0] + data[n][1] * w[1] + data[n][2] * w[2];

     

            if (sum * label[n] < 0)

            {

                error++;

                //调整权重

                if(label[n] == -1)

                {

                    if (data[n][0] == 1)

                    {

                        w[0] -= 0.01;

                    }

     

                    if (data[n][1] == 1)

                    {

                        w[1] -= 0.01;

                    }

     

                    if (data[n][2] == 2)

                    {

                        w[2] -= 0.01;

                    }

                }

                if (label[n] == 1)

                {

                    if (data[n][0] == 1)

                    {

                        w[0] += 0.01;

                    }

     

                    if (data[n][1] == 1)

                    {

                        w[1] += 0.01;

                    }

     

                    if (data[n][2] == 2)

                    {

                        w[2] += 0.01;

                    }

                }

            }

        }

     

        if (error < 2)

        {

            break;

        }

    }

     

     

     

    通过判定公式来确定样本类型,通过已知样本来影响公式中参数,大部分分类模型都是这个原理,神经网络也不例外.先写这么多吧.写博文还是挺累的.还要陪老婆看琅琊榜,以后还要写收敛的原理,网络的设计,估计还能再写一篇.

     

  • 相关阅读:
    我为何看到你的提问不想回答?关于如何提问的一些看法
    零基础一步一步pytorch实现Logistic regression逻辑回归编程教程
    numpy与pytorch实现梯度下降,实现一个简单的两层神经网络
    [ubuntu]Gedit修改文件后提示无法创建备份文件同时不能保存修改过后的文件
    【测绘】高速公路中线放样
    【GDAL】图像处理三:图像平滑(一)
    【GDAL】图像处理二:初级图像读取,操作,存储。
    【GDAL】图像处理一:GDAL1.9.2在vs2010旗舰版中的配置
    【openCV】openCV2.4.8在vs2010旗舰版中的配置
    【c++】大数相加
  • 原文地址:https://www.cnblogs.com/guopengfei/p/4865712.html
Copyright © 2011-2022 走看看