BP神经网络 识别手写数字

原理

    BP神经网络分为两部分,前向传播和反向传播;前向传播前面已经讲过了,那么在这儿就讲讲反向传播。其实反向传播和我们Logistic Regression原理差不多,都是通过代价函数来进行求导,只不过在这儿我们神经网络一共有三层,那么就会有两组权重,分别对应第一层传向第二层,第二层传向第三层。所以,在这里,我们可能就需要进行求偏导,然后去更新我们的权重

效果

    效果相比于我们的Logistic Regression 和给定权重的前向传播,要略差一些。准确率波动比较大,在85%~99%左右



具体实现

需要导入的库


导入数据


显示数据


将Y转化为矩阵


降维升维函数


    主要用于minimize()函数来方便求theta

前向传播函数


代价函数和正则函数


梯度函数


梯度检验函数


预测函数


θ生成函数


主函数


小结

    到此,我们已经能够构建一个简单的神经网络,能够解决简单的实际问题。已经迈出一大步了!

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容