python实现神经网络的优势_从零开始,用Python实现各种经典DNN神经网络(附代码)...

引言

这个系列供六篇文章, 将从最基础的全连接网络DNN开始, 从零开始用Python/Numpy实现包含CNN, RNN等在内的深度网络模型。

我们已经有了TensorFlow/PyTorch这样强大的深度学习计算框架,但从零开始自己实现基本的神经网络(特别是反向传播)仍然是必要的, 理由在于能够更清楚的理解网络结构和反向传播的原理。

了解各种网络的局限性和工程优化。

更加深刻的理解神经网络的演化和优化过程。

本文所介绍的所有模型, Trainer及应用等都附有完整的代码实现。对任何实现有疑问, 欢迎在本文后留言提问。

欢迎转载, 转载请注明出处及链接。

完整代码库请查看我的GithubRepo: .部分代码参考了Stanford CS231n 课程作业, 在此致谢。

PS 为什么要开设这个专栏

其实专栏中的很多文章都引自我的博客, 如果熟悉我的博客的同学, 应该没有什么新东西。 之所以开设这个专栏, 是希望,

1, 以合辑的形式, 重新整理一下散乱的博客文章

2, 能有一个场所供大家交流(毕竟我的博客迟迟没有上线留言功能, 哭~~)

3, 能让更多的同学看到这些文章

希望大家能在这个专栏里玩的开心~

文章汇总

本文由六篇文章组成。

第一篇, 介绍了神经网络的基础DNN各种基本结构的实现(包括方向传播), 并简要讨论了神经网络相比传统结构的优势。

链接:CNN卷积网络的Python实现(一):FCN全连接网络​fanding.xyz

第二篇, 重点介绍了DNN中的一个重要概念, 正则化(Regularization)的原理及实现, 以及两个重要的带有正则作用的拓扑结构: Batch Normalization 和 DropOut.

链接:

CNN卷积网络的Python实现(二):Regularization正则化实现 - Nick's Tech Blog​fanding.xyz

第三篇, 引入了CNN, 并简要介绍了CNN的原理及其优势(相比DNN), 并基于Python实现了CNN的卷积层(及反向传播)。

链接:CNN卷积网络的Python实现(三):卷积网络实现 - Nick's Tech Blog​fanding.xyz

第四篇, 重点介绍了CNN中的两个重要拓扑的原理和实现,包括 Pooling(池化)层及CNN针对 BatchNorm层的改进——Spatial BatchNorm.

链接:

CNN卷积网络的Python实现(四):池化和BN层的实现 - Nick's Tech Blog​fanding.xyz

第五篇, 重点介绍了DNN Trainer(/Solver)即基本训练框架的实现, 包括如何检验模型实现的正确性及超参调试等。

链接:CNN卷积网络的Python实现(五):卷积网络实现 - Nick's Tech Blog​fanding.xyz

第六篇, 这一篇我们将视角从CNN转到RNN, 介绍了RNN及LSTM的基本原理及其实现, 并利用RNN基于Microsoft COCO数据实现Image Captioning应用。

链接:

RNN, LSTM与ImageCaptioning原理及Python实现​fanding.xyz

结语

这六篇文章基本串起了深度学习中最重要的DNN, CNN和RNN模型拓扑, 原理及实现。 如果能够吃透这六篇文章中所提到的所有东西, 应该说对深度学习的基础有了较深刻的理解, 当然, 这些理论基础还需要通过大量的实战联系转化为经验, 在随后的博文中, 我会介绍一些基于CNN, RNN的有趣的小项目。 当然, 当你已经吃透了这些模型原理之后, 使用TF这样的框架无疑是事半功倍了。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值