一、前言
看了下课程安排,自己还是没安排好,刚刚捋清了一下思路。
基础:python、数理
认识:神经网络基础、opencv基础、pytorch框架、tensorflow框架(还有个NLP的基础,这个有空再看)
应用:论文精读、人工智能项目实践
进阶:西瓜书、统计学习方法
关于进阶,这两本书很纠结,不知道把他们放哪,感觉全都要用,所以呢,我准备想买,时不时看看。
二、神经网络与多层感知机
人工智能、机器学习、神经网络、深度学习四者关系
2.1 人工神经元
意思就是各个子输入,乘以权重再累加,得到一个总输入的值,放入函数,之后判断是否超过阈值,超过输出1,不超过输出0。也就是激活和为激活两种状态。输出只有0和1两个。
2.2 人工神经网络
人工神经网络:大量神经元以某种连接方式构成的机器学习模型
所以学习不同的神经网络,就是学习不同的连接方式,比方RNN,就是循环连接
2.3 多层感知机
多层的意思就是,原本只要输入层和输出层,在这之间加入了隐藏层(也就构成了多样性),数学上就是乘上了一个权重矩阵。每一次乘上权重矩阵,就需要进行一次激活函数(),不然多层的其实就是单层感知机了
2.4 激活函数
作用
(1)让多层感知机成为真正的多层,否则等价于一层
(2)引入非线性,使网络可以逼近任意非线性函数(万能逼近定理,universal approximator)
常见的激活函数
紫线是函数原型
黄线是函数的导函数图像
然后多层感知机常用的是Relu。这个函数就很简单,导函数就有点阶跃信号那种感觉。
使用条件
1,连续并可导(允许少数点上不可导),便于利用数值优化的方法来学习网络参数
2.激活函数及其导函数要尽可能的简单,有利于提高网络计算效率
3激活函数的导函数的值域要在合适区间内,不能太大也不能太小,否则会影响训练的效率和稳定性
饱和激活函数和非饱和激活函数
饱和激活函数和非饱和激活函数是两种常用的激活函数类型。
饱和激活函数,如饱和Sigmoid函数和Heaviside函数,在数值较大的时候,输出会急剧上升,无法准确反映输入信号的变化。这种函数的优点是具有固定的单调性,但缺点是只能用在某些特定的模型中,限制了其应用范围。
非饱和激活函数,如常见的ReLU函数(Rectified Linear Unit)、Tanh函数、Softmax函数等,具有非饱和特性,**能够在一定程度上防止梯度消失问题。**这些函数可以提供比饱和函数更大的激活范围,使得神经网络能够更好地学习和工作。例如,ReLU函数在输入值大于零的时候输出值为1,使得神经元在非饱和状态下可以更好地传递信息。
顺便说一下,最近换了新电脑,fpga新起点的软件还在弄,可能明天才会学。