第一次帖子
学习内容
概述:
一. 什么是神经网络与深度学习
1. 人工智能定义
人工智能 (Artificial Intelligence): 是用机器去实现所有目前必须借助人类智慧才能实现的任务。其具体研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统。
2. 人工智能方法
人工智能是一个概念性而非形式化定义,包含多种方法论:
◼ 仿生角度:模拟自然生物信息处理过程(神经网络、深度学习)
◼ 符号学角度:用统计概率、数理逻辑、博弈搜索等实证(机器学习)
◼ 行为学角度:以控制论实现机器自我进化(自动控制、强化学习)
◼ 交叉角度:上述多种角度的合成
二. 神经网络与深度学习发展
人工神经网络或简称神经网络(NN),是从微观结构与功能上模拟人脑神经系统而建立的一类模型,是模拟人的智能的一条途径。
◼ 创始:
·1943年,McCulloch和W.Pitts,提出NN数学模型;
·1949年,Hebb规则
◼ 初步发展:
·1958年,Rosenblatt 感知机和联想学习
·1960年,Widrow和Hoff ADALINE学习算法
◼ 停滞期:1969年Minsky“Perceptron” XOR问题
◼ 复兴期(二十世纪八、九十年代):
·1982 Hopfield解决TSP问题
·1986 Rumelhart和McClelland BP
·新型神经网络提出,如RBFN, Hopfield网络,Boltzmann机等
◼ 爆发期(2006~2021年):
·2006年:Hinton提出深度学习
·应用的爆发式发展:语音识别:微软,2011;ImageNet: Google, 2011-;AlphaGo: DeepMind, 2016
◼ 通用人工智能(2021起):以ChatGPT3.5为标志
三. 神经网络与深度学习应用
人工智能发展的六大关键技术如下图:
线性分类与感知机:
一. 线性回归
1. 定义
线性回归时利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法。
2. 要素
◼ 训练集(training set)或者训练数据(training data), 是我们流程中的输入数据,一般称为x
◼ 输出数据,一般称为y
◼ 拟合的函数(或者称为假设或者模型):一般写做𝑦=ℎ(𝑥);如果是直线,则 𝑦=𝑘𝑥+b
◼ 训练数据的条目数(#training set):一条训练数据是由一对输入数据和输出数据组成的,输入数据的维度𝑛(特征的个数,features)
3.学习过程
二. 线性二分类问题
1.线性分类
1.1 定义
线性分类器则透过特征的线性组合来做出分类决定,以达到此种目的。简言之,样本通过直线(或超平面)可分
1.2 要素
◼ 输入:特征向量
◼ 输出:哪一类。如果是二分类问题,则为0和1,或者是属于某类的概率,即0-1之间的数
1.3 线性分类与线性回归差别
输出意义不同:属于某类的概率<->回归具体值
参数意义不同:最佳分类直线<->最佳拟合直线
维度不同:前面的例子中,一个是一维的回归,一个是二维的分类
下面是一个例子:
此时,引入了梯度下降法来解决这个问题。
2. 梯度下降法
三. 神经元模型
1. 生物神经元
1.1 Spiking模型
1.2 Integrate-and-fire模型
1.3 M-P模型
1.4 单神经元模型
2. 作用函数
2.1 非对称型Sigmoid函数 (Log Sigmoid)
2.2 对称型Sigmoid函数 (Tangent Sigmoid)
2.3 对称型阶跃函数
四. 感知机模型
1. 感知机原理
感知机(Perceptron) 是1957年,由Rosenblatt提出,是神经网络和支持向量机的基础。
2. 感知机模型
输入:训练数据集{𝐱(i), y(i)}
输出:𝐰
感知机解决线性分类问题的大致步骤如下:
· 赋初值 𝐰𝟎,数据序号𝑖=1,迭代次数𝑘=0。
· 选择数据点(𝐱(i), y(i))
· 判断该数据点是否为当前模型的误分类点,即判断若y(i)(wT𝐱(i))≤0,则更新权值
· 转到第二步,直到训练集中没有误分类点
具体过程可以参考:感知机模型
多层前馈网络与误差反传算法:
多层感知机
1. XOR问题
线性不可分问题:无法进行线性分类。Minsky1969年提出XOR问题
2. 多层感知机
XOR的解决方法:使用多层感知机
• 在输入和输出层间加一或多层隐单元,构成多层感知器(多层
前馈神经网络)。
• 加一层隐节点(单元)为三层网络,可解决异或(XOR)问题
由输入得到两个隐节点、一个输出层节点的输出:
具体实例可以参考:多层感知机学习XOR实例
3. 多层前馈网络及BP算法概述
多层感知机是一种多层前馈网络,由多层神经网络构成,每层网络将输出传递给下一层网络。神经元间的权值连接仅出现在相邻层之间,不出现在其他位置。如果每一个神经元都连接到上一层的所有神经元(除输入层外),则成为全连接网络。下面讨论的都是此类网络。
多层前馈网络的反向传播(BP)学习算法,简称BP算法,是有导师的学习,它是梯度下降法在多层前馈网中的应用。
网络结构:见图,𝐮(或𝐱)、𝐲是网络的输入、输出向量,神经元用节点表示,网络由输入层、隐层和输出层节点组成,隐层可一层,也可多层(图中是单隐层),前层至后层节点通过权联接。由于用BP学习算法,所以常称BP神经网络。
BP学习算法由正向传播和反向传播组成:
① 正向传播是输入信号从输入层经隐层,传向输出层,若输出层得到了期望的输出,
则学习算法结束;否则,转至反向传播
② 反向传播是将误差(样本输出与网络输出之差)按原联接通路反向计算,由梯度下降
法调整各层节点的权值和阈值,使误差减小
4.BP算法详解
BP算法的推导与实例可以参考:神经网络之BP算法(图说神经网络+BP算法理论推导+例子运用+代码)
性能优化
一. 常用技巧
1. 模型初始化
2. 训练数据与测试数据
原始训练数据被分成K个不重叠的子集。然后执行K次模型训练和验证,每次在K−1 个子集上进行训练,并在剩余的一个子集(在该轮中没有用于训练的子集)上进行验证。最后,通过对K 次实验的结果取平均来估计训练和验证误差。
3. 欠拟合与过拟合
· 欠拟合:误差一直比较大
· 过拟合:在训练数据集上误差小而在测试数据集上误差大
4. Dropout(暂退)
在整个训练过程的每一次迭代中,标准暂退法包括在计算下一层之前将当前层中的一些节点置零。
二. 动量法
病态曲率问题的解决方法可以参考:梯度下降优化
三. 自适应梯度算法
1. Adaptive Gradient:自适应梯度
可以参考:深度学习中的优化算法之AdaGrad
2. RMSProp: Root Mean Square Prop
可以参考:pytorch优化器详解:RMSProp
3. Adam算法
可以参考:Adam优化器算法详解及代码实现