书籍介绍
本书是深度学习真正意义上的入门书,深入浅出地剖析了深度学习的原理和相关技术。书中使用Python3,尽量不依赖外部库或工具,从基本的数学知识出发,带领读者从零创建一个经典的深度学习网络,使读者在此过程中逐步理解深度学习。书中不仅介绍了深度学习和神经网络的概念、特征等基础知识,对误差反向传播法、卷积神经网络等也有深入讲解,此外还介绍了深度学习相关的实用技巧,自动驾驶、图像生成、强化学习等方面的应用,以及为什么加深层可以提高识别精度等“为什么”的问题。
AI导读
核心看点
- 从零开始用Python和NumPy手写神经网络
- 深入浅出讲解反向传播等核心原理
- 不依赖复杂框架,透彻理解底层逻辑
适合谁读
- 零基础想理解深度学习原理的初学者
- 数学基础薄弱,畏惧复杂公式的读者
- 希望掌握底层实现而非仅调包的工程师
读前提醒
- 需具备Python基础及高中数学知识
- 重在理解原理,实战应用需结合框架
- 建议动手运行代码以加深理解
读者共识
- 讲解通俗易懂,被赞为最佳入门书
- 虽无框架实战,但能建立完整认知
- 代码实现清晰,适合数学苦手阅读
本导读基于书籍简介、目录、原文摘录、短评和书评生成,不等同于全文精读。
精彩摘录
- "最近出现了很多深度学习相关的库,任何人都可以方便地使用。实际上,使用这些库的话,可以轻松地运行深度学习的程序。那么,为什么我们还要特意花时间从零开始实现深度学习呢?一个理由就是,在制作东西的过程中可以学到很多。 在制作东西的过程中,会进行各种各样的实验,有时也会卡住,抱着脑袋想为什么会这样。这种费时的工作对深刻理解技术而言是宝贵的财富。像这样认真花费时间获得的知识在使用现有的库、阅读最新的文章、创建原创的系统时都大有用处。而且最重要的是,制作本身就是一件快乐的事情。(还需要快乐以外的其他什么理由吗?)"
- "def AND(x1, x2): x = np.array([x1, x2]) w = np.array([0.5, 0.5]) b = -0.7 tmp = np.sum(w*x) + b if tmp <= 0: return 0 else: return 1 这里把−θ命名为偏置b,但是请注意,偏置和权重w1、 w2的作用是不 一样的。具体地说, w1和w2是控制输入信号的重要性的参数,而偏置是调 整神经元被激活的容易程度(输出信号为1的程度)的参数。比如,若b为 −0.1,则只要输入信号的加权总和超过0.1,神经元就会被激活。但是如果b 为−20.0,则输入信号的加权总和必须超过20."
- "输出层所用的激活函数,要根据求解问题的性质决定。一般地,回归问题可以使用恒等函数,二元分类问题可以使用 sigmoid函数,多元分类问题可以使用 softmax函数。"
- "和求解机器学习问题的步骤(分成学习和推理两个阶段进行)一样,使用神经网络解决问题时,也需要首先使用训练数据(学习数据)进行权重参数的学习;进行推理时,使用刚才学习到的参数,对输入数据进行分类。"
- "在梯度法中,函数的取值从当前位置沿着梯度方向前进一定距离,然后在新的地方重新求梯度,再沿着新梯度方向前进,如此反复,不断地沿梯度方向前进。像这样,通过不断地沿梯度方向前进,逐渐减小函数值的过程就是梯度法( gradient method)。梯度法是解决机器学习中最优化问题的常用方法,特别是在神经网络的学习中经常被使用。 根据目的是寻找最小值还是最大值,梯度法的叫法有所不同。严格地讲,寻找最小值的梯度法称为梯度下降法( gradient descent method),寻找最大值的梯度法称为梯度上升法( gradient ascent method)。但是通过反转损失函数的符号,求最小值的问题和"
- "在神经网络的学习中,学习率(数学式中记为n)的值很重要。学习率过小,会导致学习花费过多时间;反过来,学习率过大,则会导致学习发散而不能正确进行。 在关于学习率的有效技巧中,有一种被称为学习率衰( learning ratedeay)的方法,即随着学习的进行,使学习率逐渐减小。实际上,一开始“多”学,然后逐渐“少”学的方法,在神经网络的学习中经常被使用。 逐渐减小学习率的想法,相当于将“全体”参数的学习率值一起降低。而 Adagrad进一步发展了这个想法,针对“一个一个”的参数,赋予其“定制”的值。"
- "我们介绍抑制过拟合、提高泛化能力的技巧权值衰减( welght decay)。简单地说,权值衰减就是一种以减小权重参数的值为目的进行学习的方法。通过减小权重参数的值来抑制过拟合的发生。"
- "6。5超参数的验证 神经网络中,除了权重和偏置等参数,超参数( hyper- parameter)也经常出现。这里所说的超参数是指,比如各层的神经元数量、 batch大小、参数更新时的学习率或权值衰减等。如果这些超参数没有设置合适的值,模型的性能就会很差。虽然超参数的取值非常重要,但是在决定超参数的过程中一般会伴随很多的试错。本节将介绍尽可能高效地寻找超参数的值的方法。 6。5。1验证数据 之前我们使用的数据集分成了训练数据和测试数据,训练数据用于学习,测试数据用于评估泛化能力。由此,就可以评估是否只过度拟合了训练数据(是否发生了过拟合),以及泛化能力如何等。 下面我们要对超参数设置各种各样的"
作者简介
作者简介:
斋藤康毅
东京工业大学毕业,并完成东京大学研究生院课程。现从事计算机视觉与机器学习相关的研究和开发工作。是Introducing Python、Python in Practice、The Elements of Computing Systems、Building Machine Learning Systems with Python的日文版译者。
译者简介:
陆宇杰
众安科技NLP算法工程师。主要研究方向为自然语言处理及其应用,对图像识别、机器学习、深度学习等领域有密切关注。Python爱好者。
目录
译者序 xiii
前言 xv
第1章 Python入门 1
1.1 Python是什么 1
1.2 Python的安装 2
显示全部