第二章:感知机
1、什么是感知机
    感知机就是一个算法,它可以接收多个输入信号,只输出一个信号.在神经元中,多个信号经过不同的权重输入到一个神经元中,输出的信号只有一个.当不同输入信号经过加权求和之后,得到的总和超过阈值时,这个神经元才会输出信号.具体的说,w是控制输入信号重要性的参数,而b是调整神经元倍激活的容易程度的参数。

2、感知机可以实现基本的与, 或, 与非门,但是感知机不能实现异或门。

3、单层感知机无法表示的东西,通过增加一层就可以解决。也就是说,通过增加层,感知机能够进行更加灵活的表示。

4、2层感知机(激活函数使用了sigmoid函数的感知机)可以表示任意函数。

5、学习就是确定合适参数的过程,而人要做的就是思考感知机的构造(模型),并且把训练数据交给计算机。

总结:
    (1)感知机是具有输入和输出的算法
    (2)感知机酱权重和偏置设定为算法
    (3)使用感知机可以表示与门和或门等逻辑电路,但是异或门无法通过一层感知机实现,只能通过单层感知机实现
    (4)单层感知机只能表示线性空间,多层感知机可以表示非线性空间

第三章:神经网络
(神经网络解决的问题不就是多分类问题吗,也就是多输出,这个感知机有着异曲同工之妙)
1、感知机的优缺点:
    优点:即时对于复杂的函数,感知机也可能表示
    缺点:权重的确定还要通过人工进行
   但是神经网络的出现,能够弥补感知机存在的缺点。神经网络一个非常重要的性质就是它可以自动地从数据中学习合适的参数。

2、激活函数的作用:
    (1)激活函数的作用在于决定如何来激活输入信号的总和
    (2)“朴素感知机”是指单层神经网络,指的就是激活函数使用了阶跃函数的模型
    (3)“多层感知机”是指神经网络,指的就是使用sigmoid函数等平滑的激活函数的多层网络

3、感知机和神经网络的联系和区别
    感知机的激活函数的阶跃函数;神经网络的激活函数是除了阶跃函数的其他函数。神经网络的激活函数常常是sigmoid或者是relu函数。

4、阶跃函数和sigmoid函数的联系和区别:
    区别:
    (1)sigmoid函数是一个平滑的曲线,输出随着输入发生连续性的变化。但是阶跃函数的输出随着输入发生着剧烈的变化。这是不利于神经网络进行学习的。
    (2)感知机中的神经元之间流动着的是0或者1的二元信号,神经网络中流动的是连续的实数值信号。
    联系:
    (1)当输入信号是比较重要的信息时,阶跃函数和sigmoid函数都会输出较大的值;当输入信号微不重要的信息时,两者都会输出比较小的值。而且,不管输入信号有多小,或者有多大,输出信号都在0和1之间。
    (2)阶跃函数和sigmoid都是非线性的函数
    注意:神经网络的激活函数必须要使用非线性神经网络,也就是说,神经网络的激活函数不能使用线性函数。这是因为,如果激活函数选择的是线性函数,不管有多少层,神经网络都是在进行线性叠加,这样是没有任何意义的。

5、机器学习问题的步骤可以分为“学习”和“推理”两个阶段:
    (1)学习:在学习阶段进行模型的学习
    (2)推理:将学习到的模型对未知的数据进行推理(分类)

6、softmax函数:
    softmax函数的输出和总是1,因次,我们可以把softmax函数的输出解释为“概率”。我们取出这个概率列表中最大值的索引,作为预测结果。需要用到的api是np.argmax(x)

7、为什么批处理会极大提高运算速度和效率?
    当数据传送称为瓶颈的时候,批处理可以减轻数据总线的负荷,花更多的时间在计算上,而不是在数据传送上。

总结:
    (1)神经网络中的激活函数使用平滑变化的sigmoid函数或者是Relu函数
    (2)机器学习的问题大体上可以分为回归问题和分类问题
    (3)关于输出层的激活函数,回归问题一般使用恒等函数,分类分体一般使用softmax函数
    (4)分类问题中,输出层的神经元的数量设置为要分类的类别数
    (5)输入数据的几何称为批。通过以批为单位进行推理处理,能够实现高速的运算。

第四章:神经网络的学习
1、机器学习中的“学习”就是指从训练数据中自动获取最优参数的过程;学习的目的就是寻找损失函数最小的参数。

2、泛化能力是指处理未被观察过的数据的能力。

3、对权重参数的损失函数求导,表示的就是“如果稍微改变一下这个权重参数的值,损失函数的值将会如何变化”。如果导数的值为负数,那么表示参数的更新方向应该往正方向更新;反之,如果导数的参数为正数,那么表示参数的更新方向应该往负方向更新。(因为我们的目标就是为了是损失函数的值接近0)

4、我们不能需用识别精读作为指标,因为识别精读是离散的,数值是突变的,不利于神经网络的学习。所以我们会选用一些连续的函数作为我们的指标。

5、负梯度的方向是梯度法中变量更新的方向,梯度的方向是函数值变小最快的方向

总结:
    (1)机器学习中使用的数据集分为训练数据和测试数据
    (2)神经网络使用训练数据进行学习,使用测试数据检测神经网络的泛化能力
    (3)神经网络的学习以损失函数为指标,以损失函数的值最小微目标,不断的更新参数
第五章:误差反向传播算法
1、为何使用计算图解题?
    (1)通过计算图,我们可以把复杂的问题简单化
    (2)利用计算图,我们可以把中间的过程数据保存下载
    (3)最重要的就是,在计算图中,可以通过反向传播计算导数

总结:
    (1)计算图的结点是由局部计算构成的,局部计算构成全局计算。
    (2)计算图的正向传播进行一般的计算,通过计算图的反向传播,可以计算各个节点的导数。
    (3)通过将神经网络的组成元素实现成层,可以高效地计算梯度(反向传播法)

第七章:卷积神经网络
1、CNN中出现了卷积层(Convolution)和池化层(Pooling)
2、CNN层的连接顺序是:卷积层 - relu - 池化层
3、全连接层存在的问题:数据的形状被忽略了,所以全连接层无法利用形状相关的信息;但是卷积层可以保持形状不变,这样可以保证CNN能够正确理解图像等具有形状的数据
4、增大步幅,输出大小变小;增大填充后,输出大小变大
5、输入数据和滤波器的通道数要设为相同的值;池化的窗口大小和步幅设定为相同的值
6、池化层的特点:没有需要学习的参数;通道数不发生变化;对微小的位置变化具有鲁棒性(健壮)
7、滤波器在学习什么?答案就是在观察边缘(颜色变化的分界线)和斑块(局部的块状区域)

深度学习入门(斋藤康毅)相关推荐

  1. 深度学习入门--斋藤康毅 总结

    一. 本书学习趋势 从浅至深,从易到难. 1.从感知机出发为我们学习神经网络奠定基础 2.介绍简单的基于随机梯度下降法(SGD) 的神经网络 3.稍显复杂一些的卷积神经网络(CNN) 二.感知机 2. ...

  2. 深度学习入门_斋藤康毅_chapter23

    系列文章目录 这是第一部分 文章目录 系列文章目录 前言 一.chapter 1 二.chapter感知机 1.numpy生成数组 三. 神经网络 总结 前言 本来是想通过李沐的网课入门深度学习的,但 ...

  3. 斋藤康毅-深度学习入门 学习笔记二

    ch02 感知机 Perceptron.py import numpy as np''' def AND(x1, x2):w1, w2, theta = 0.5, 0.5, 0.7tmp = w1 * ...

  4. 斋藤康毅-深度学习入门 学习笔记三

    ch03 神经网络 1. pkl文件的创建与导入 python官方文档对pickle模块的定义:pickle The pickle module implements binary protocols ...

  5. 斋藤康毅-深度学习入门 学习笔记四

    ch 神经网络的学习 损失函数 1.1 均方误差 import numpy as npdef mean_squared_error(y, t):return 0.5 * np.sum((y - t) ...

  6. 斋藤康毅-深度学习入门 学习笔记五

    ch 误差反向传播法 乘法和加法层的反向传播 class AddLayer:def __init__(self):passdef forward(self, x, y):out = x + yretu ...

  7. 斋藤康毅-深度学习入门 学习笔记一

    ch01 Python入门 basic.py ''' python --versionnote in python3 5/2 = 2.54**2 = 16type(3.4)x = 10 then x ...

  8. 读书笔记:手写数字识别 ← 斋藤康毅

    求解机器学习问题的步骤可以分为"学习"和"推理"两个阶段. 本例假设"学习"阶段已经完成,并将学习到的权重和偏置参数保存在pickle文件s ...

  9. 《深度学习入门--基于python的理论与实现》——斋藤康毅读书笔记

    <深度学习入门--基于python的理论与实现>读书笔记(第二章) 写在前面 第二章:感知机 2.1感知机是什么 2.2简单的逻辑电路 2.2.1与门(and gate) 2.2.2与非门 ...

  10. 《深度学习入门》(斋藤康毅著)学习笔记(一)

    1.Windows环境下关于python+pycharm安装 (1)下载安装python 网站地址:https://www.python.org/ 安装:选择适合自己电脑的相应安装包,下载,然后点击安 ...

最新文章

  1. C# + MySql 存贮过程开发示例
  2. Electron Built-in AutoUpdater 踩坑记录
  3. 汇编语言--int指令
  4. 计算机 360云盘删除,xp系统下如何删除360云盘显示图标
  5. SQL从入门到入魔之初入门
  6. ORACLE查询保留字
  7. 详细的 Python 安装教程(windows)
  8. 源码装置vsftpd
  9. android动态注册服务器,Android 6.0动态权限申请教程
  10. linux mint 安装ssh
  11. matlab yalmip cplex,matlab – CPLEX YALMIP – “未找到解算器”?
  12. Socket服务器分类与流程总结
  13. markdown如何设置图片大小_Markdown 调整图片位置与大小
  14. 个人总结 - JS逆向解析
  15. BackTrack5 (BT5)无线password破解教程WPA/WPA2-PSK无线password皴
  16. 学生个人消费系统设计C语言,个人消费管理系统C语言课程设计毕业设计word格式.doc...
  17. LCD屏幕,IPS屏幕,TFT屏幕,SLCD屏幕和AMOLED手机屏幕介
  18. 站长还应该发布外链吗?
  19. 深入学习D3JS:d3-color
  20. 免费电子书下载网站,不来白嫖一波

热门文章

  1. JavaScript 判断 Chrome 内核的 360 浏览器
  2. Android监听个人热点(Hotspot)打开关闭状态
  3. python3 列表 元组 字典 文件 编码转码
  4. (4)msp430f5529东拼西凑的开环垃圾小车(舵机,电机,红外对管的应用)
  5. 【Python】: 使用 pbd 进行调试pyhon代码
  6. KT1025A蓝牙音频芯片_立讯KC认证FCC测试现场整改记录
  7. 用CSS来做一个动画案例
  8. 区块链是未来数字经济标志性的发明技术
  9. 虚拟语气、情态动词和主谓一致
  10. 四、JDK的下载与安装