神经网络基础知识点自学整理

激活函数

1.单个样本的反向传播算法在每次迭代时的流程为:

正向传播: 利用当前权重和偏置值计算每一层对输入样本的输出值

反向传播: 对输出层的每一个节点计算其误差,反向传播算法计算误差项时每一层都要乘以本层激活函数的导数, 根据误差计算损失函数对权重的梯度值,用梯度下降法更新权重和偏置:

2.训练算法有两个版本:批量模式和单样本模式。

批量模式:每次梯度下降法迭代时对所有样本计算损失函数值,计算出对这些样本的总误差,然后用梯度下降法更新参数。

单样本模式:是每次对一个样本进行前向传播,计算对该样本的误差,然后更新参数,它可以天然的支持增量学习,即动态的加入新的训练样本进行训练。

3.标准的前馈型神经网络第I层实现的变换可以分为线性组合、激活函数两步。 在某些开源框架中,这两步可能会拆分成不同的层,以利于代码复用和灵活组合.

4.梯度消失:如果激活函数导数的绝对值小于1,多次连乘之后误差项很快会衰减到接近于0,参数的梯度值由误差项计算得到,从而导致前面层的权重梯度接近于0,参数没有得到有效更新。

5.梯度爆炸:如果激活函数导数的绝对值大于1,多次乘积之后权重值会趋向于非常大的数,这称为梯度爆炸。梯在很长一段时间内,梯度消失问题是困扰神经网络层次加深的一个重要因素。

25个神经网络

25个神经网络总结

One-Hot和Embedding

One-Hot Encoding(One-Hot 编码)和 Word Embedding(词嵌入)是把单词变成向量的两类方法

One-Hot

One-Hot 编码,又称一位有效编码。其方法是使用 N位 状态寄存器来对 N个状态 进行编码,每个状态都有它独立的寄存器位,并且在任意时候,其中只有一位有效。

假设feature1有两种可能的取值,feature_2 有3种可能的取值,feature_3 有4种取值(状态),one-hot 编码就是保证每个样本中的单个特征只有1位处于状态1,其他的都是0。

feature1 feature2 feature3
样本1 01 001 0001
样本2 10 010 0010
样本3 01 100 0100
样本4 10 001 1000

缺点:

(1) 它是一个词袋模型,不考虑词与词之间的顺序(文本中词的顺序信息也是很重要的);

(2) 它假设词与词相互独立(但在大多数情况下词与词是相互影响的);

(3) 它得到的特征是离散稀疏的,会造成维度灾难。

Embedding-- --word2vec

Embedding就是用一个低维的向量表示一个物体,可以是一个词,或是一个商品,或是一个电影等等,性质是能使距离相近的向量对应的物体有相近的含义
图片引用word2vec具体讲解
word2vec两种数据构造模式: cbow(每个词都是由相邻的词决定的)和skip-gram模式(每个词都决定了相邻的词),Skip-gram的效果好一点
神经网络基础知识点自学整理_第1张图片
神经网络基础知识点自学整理_第2张图片word2vec详述

随机数种子

  • 需要复现带有一定随机性的一些操作和算法时,就需要用到随机种子来固定随机的结果。
  • 随机数函数都是通过概率分布来产生随机数,不同的seed函数参数修改概率分布函数中的参数,所以会出来不同的随机值。
  • 随机种子生成器,使下一次生成的随机数为由种子数决定的特定的随机数,如果seed中参数为空,则生成的随机数完全随机。
    参考博客
import random
for i in range(5):
    random.seed(8)
    print(random.random())

每次生成的随机数相同
神经网络基础知识点自学整理_第3张图片

import random
for i in range(5):
    random.seed()
    print(random.random())

每次生成的随机数不同
神经网络基础知识点自学整理_第4张图片

random.seed(8)
for i in range(5):
    print(random.random())
  • random.seed()设定的随机种子仅有一次有效,也就是说,第一次调用random时使用的是我们随机数种子给定的初值列表,第二次调用时设置的seed对生成随机数无效。

神经网络基础知识点自学整理_第5张图片

  • 设置seed(参数)的时,可以调用多次random()向该随机数的列表中添加信息;而再次使用设置的seed()值时,仅一次有效,也就是说调用第二次random()时则脱离该随机数的列表。
  • seed方法设立的目的是为了能够实现实验的可重复进行,得到相同的随机值结果。

你可能感兴趣的:(入门神经网络,(python),神经网络,深度学习)