《Neural networks and deep learning》概览

最近阅读了《Neural networks and deep learning》这本书(online book,还没出版),算是读得比较仔细,前面几章涉及的内容比较简单,我着重看了第三章《Improving the way neural networks learn》,涉及深度神经网络优化和训练的各种技术,对第三章做了详细的笔记(同时参考了其他资料,以后读到其他相关的论文资料也会补充或更改),欢迎有阅读这本书的同学一起交流。以下属个人理解,如有错误请指正。

What this book is about?

这本书中的代码基于Python实现,从MNIST这个例子出发,讲人工神经网络(Neural networks),逐步深入到深度学习(Deep Learning),以及代码实现,一些优化方法。适合作为入门书。

1、 Using neural nets to recognize handwritten digits

  • 文章概要

    用人工神经网络来识别MNIST数据集,Python实现,仅依赖NumPy库。


2、 How the backpropagation algorithm works

  • 文章概要

    上一章没有讨论怎么优化NN,当时并没有讨论怎么计算损失函数的梯度,没有讨论优化过程,这就是这一章要讲的BP算法。

  • BP算法在1970s出现,但直到1986年Hinton的paper发表之后它才火起来。
  • BP实现代码

    the code was contained in the update_ mini _ batch and backprop methods of the Network class.In particular, the update_mini_batch method updates the Network’s weights and biases by computing the gradient for the current mini_batch of training examples:

  • Fully matrix-based approach to backpropagation over a mini-batch

    Our implementation of stochastic gradient descent loops over training examples in a mini-batch. It’s possible to modify the backpropagation algorithm so that it computes the gradients for all training examples in a mini-batch simultaneously. The idea is that instead of beginning with a single input vector, x, we can begin with a matrix X=[x1x2…xm] whose columns are the vectors in the mini-batch.

    将mini batch里的所有样本组合成一个大矩阵,然后计算梯度,这样可以利用线性代数库,大大地减少运行时间。

  • BP算法有多快?

    BP算法刚发明的时候,计算机计算能力极其有限。现在BP在深度学习算法中广泛应用,得益于计算能力的大跃升,以及很多有用的trick。

  • what’s the algorithm really doing?

    这部分对BP算法深入讨论,是个证明过程。网络前面某个节点发生的改变,会一层一层往后传递,导致代价函数发生改变,这两个改变之间的关系可以表示为:

一层一层地推导,又可以表示为:

后面还有一堆……

关于BP的原理,建议看看Andrew NG的UFLDL,也可以看一些相应的博文。


3、Improving the way neural networks learn

这一章讨论一些加速BP算法、提高NN性能的技术。这些技术/trick在训练网络、优化的时候很常用,如下所述,(目前还没整理完各个部分的笔记,而且篇幅长,就分为几篇博客来写,陆续在 [文章链接] 中贴出。):

  1. 比方差代价函数更好的: 交叉熵代价函数 [文章链接]
  2. 四种正则化方法(提高泛化能力,避免overfitting): [文章链接]
    • L1 regularization
    • L2 regularization
    • dropout
    • artificial expansion of the training data
  3. 权重初始化的方法 [文章链接]
  4. 如何选取超参数(学习速率、正则化项参数、minibatch size) [文章链接]

4、A visual proof that neural nets can compute any function



转载请注明出处:http://blog.csdn.net/u012162613/article/details/44220115

时间: 2024-10-08 08:17:07

《Neural networks and deep learning》概览的相关文章

Neural Networks and Deep Learning学习笔记ch1 - 神经网络

近期開始看一些深度学习的资料.想学习一下深度学习的基础知识.找到了一个比較好的tutorial,Neural Networks and Deep Learning,认真看完了之后觉得收获还是非常多的.从最主要的感知机開始讲起.到后来使用logistic函数作为激活函数的sigmoid neuron,和非常多其它如今深度学习中常使用的trick. 把深度学习的一个发展过程讲得非常清楚,并且还有非常多源代码和实验帮助理解.看完了整个tutorial后打算再又一次梳理一遍,来写点总结.以后再看其它资料

机器学习001 deeplearning.ai 深度学习课程 Neural Networks and Deep Learning 第一周总结

Deep Learning Specialization 吴恩达老师最近在coursera上联合deeplearning.ai 推出了有关深度学习的一系列课程,相对于之前的machine learning课程,这次的课程更加实用,作业语言也有matlab改为了python从而更加贴合目前的趋势.在此将对这个系列课程做一个学习笔记. 而这次的Deep Learning Specialization分为五门课程,分别为:Neural Networks and Deep Learning,Improv

第四节,Neural Networks and Deep Learning 一书小节(上)

最近花了半个多月把Mchiael Nielsen所写的Neural Networks and Deep Learning这本书看了一遍,受益匪浅. 该书英文原版地址地址:http://neuralnetworksanddeeplearning.com/ 回顾一下这本书主要讲的内容 1.使用神经网络识别手写数字 作者从感知器模型引申到S型神经元.然后再到神经网络的结构.并用一个三层神经网络结构来进行手写数字识别, 作者详细介绍了神经网络学习所使用到梯度下降法,由于当训练输入数量过大时,学习过程将变

Neural Networks and Deep Learning

Neural Networks and Deep Learning This is the first course of the deep learning specialization at Coursera which is moderated by moderated by DeepLearning.ai. The course is taught by Andrew Ng. Introduction to deep learning Be able to explain the maj

[C3] Andrew Ng - Neural Networks and Deep Learning

About this Course If you want to break into cutting-edge AI, this course will help you do so. Deep learning engineers are highly sought after, and mastering deep learning will give you numerous new career opportunities. Deep learning is also a new "s

Convolutional Neural Networks from deep learning (assignment 1 from week 1)

Convolutional Neural Networks https://www.coursera.org/learn/convolutional-neural-networks/home/welcome There are still something confuse me! working how to paste the jupyter here.................................................... Convolutional Neur

吴恩达《深度学习》-课后测验-第一门课 (Neural Networks and Deep Learning)-Week 4 - Key concepts on Deep Neural Networks(第四周 测验 – 深层神经网络)

Week 4 Quiz - Key concepts on Deep Neural Networks(第四周 测验 – 深层神经网络) \1. What is the "cache" used for in our implementation of forward propagation and backward propagation?(在实现前向传播和反向传播中使用的"cache"是什么?) [ ]It is used to cache the interme

Neural Networks and Deep Learning(神经网络与深度学习) - 学习笔记

catalogue 0. 引言 1. 感知器及激活函数 2. 代价函数(loss function) 3. 用梯度下降法来学习-Learning with gradient descent 4. 用反向传播调整神经网络中逐层所有神经元的超参数 5. 过拟合问题 6. IMPLEMENTING A NEURAL NETWORK FROM SCRATCH IN PYTHON – AN INTRODUCTION 0. 引言 0x1: 神经网络的分层神经元意味着什么 为了解释这个问题,我们先从一个我们熟

neural networks and deep learning 吴恩达coursera公开课

课程链接:网易云课堂:http://study.163.com/my#/smarts ->free              coursera:https://www.coursera.org/learn/neural-networks-deep-learning?authMode=signup  ->need money 大牛学习笔记:https://zhuanlan.zhihu.com/p/29017066