自学内容网 自学内容网

cnn突破二(bpnet三层网络增加bias后,识别率没有下降)

增加bias后,刚开始,我的代码是这样写的,导致学习训练相同次数后,得分下降很厉害:

 //反向传播对w2【】进行更新 以及biasY【】更新
            for (int i = 0; i < p; i++)//128
                for (int j = 0; j < q; j++)//10
                {
                    q=10                
                    double delta = (yO[j] - d[j]) * dsigmoid(yO[j]) ;
                    w2[i, j] -= delta * learnRate * hO[i];
                    by[j]-=delta * learnRate ;
                }

           下面是正常后的代码,得分恢复到95分以上:

  for (int j = 0; j < q; j++)//10

{

double delta = (yO[j] - d[j]) * dsigmoid(yO[j]) ;

 by[j]-=delta * learnRate ;

for (int i = 0; i < p; i++)//128

{    

w2[i, j] -= delta * learnRate * hO[i];

}

}

虽然delta * learnRate是相同的,但包涵在不同的for循环中,执行的次数不一样,看是相同,结果不同。

这样的错误,计算机100%放过,编程人毫无觉察!

这样给我们了一种警示,或者说启示,现在的rust编程语言,不会有指针错误,但语言仍然不能严格的发现数学逻辑上的错误。

我们是不是让计算机编程进一步,变成数学编程语言,那么编程时,这个数学公式有严格定义,你就不可能犯上面的错误,这是一种方法,另一种方法就是,封装好,你去调用,也不会有这样的错误。

因为这个东西害我很久了,我毫无觉察!

其实近期并不想写博客,cnn编程突破是今年十一的最大成绩,我想有笔记和程序就可以了,再搬到csdn上,麻烦,写了那么多,也没什么反响!

但是,近期周围又有将要去世的人,看得见,却又留不住,三个月或半年吧!

我们都是赶路人,人生路上还是应该留些记号吧!比如孙悟空在佛祖五指山下,撒泡尿,做个记号!所以有些东西还是分享出来!

感谢机器视觉让我走上了人生正确的道路,机器视觉是从黑白开始的,我们应该接受人生的无常!

机器视觉,计算机视觉,机器学习,人工智能是紧密联系的,cnn就是人工智能的桥梁,做机器视觉很久了,当跨过cnn,有一种豁然开朗的感觉!

认知上又有了一些新的变化,其实2012年那个时候opencv和人脸识别已经大肆流行,我们搞机器视觉的没有不知道的,但我为什么坚持下来机器视觉?

现在打通了cnn桥梁,人工智能的算法也入了门,是不是我就去搞人工智能了呢?其实并不是,我现在好像更坚定机器视觉了!

为什么?你只要理解到人工智能会算命的一面,就够了,这就像我们古代的八卦的发明!但八卦不仅仅是算命!

可能我的观点保守偏激,但人工智能是时代潮流,作为逻辑数学一面的人工智能仍然可以辅助机器视觉,虽然机器视觉的高速,稳定,准确,ai谈不上,但是就像杨振宁说的,几何可以和代数相互验证,这就给物理提供了极大的便利。

我的感受是,c++编程和c#编程的相互验证,为我们解决问题提供了便利,机器视觉和ai一样可以相互验证,因为概率的ai和准确的机器视觉并不冲突。


原文地址:https://blog.csdn.net/ganggangwawa/article/details/142711552

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!