如何训练神经网络--1

文章目录


前言

学海无涯,笔勤不辍...暑假过的也太懒惰了...没想到已经断更了一个多月了...笔者要好好反省自己,下次还敢 hhh

本阶段,笔者将更新一些ML/DL的相关知识,满满干货,快点赞收藏吧...(本文基于读者,对机器学习/神经网络/深度学习 有一定的基础了解,直接上实操相关的知识...)


训练一个神经网络,最基本的要了解激活函数,预处理、权重设置、Btach normalization、评价模型、超参数优化

今天就浅浅谈一下激活函数(常见)的问题,以及在实践中用哪个激活函数比较好...

一、浅谈激活函数

1.sigmoid 函数

其公式为:f(x)= 1/(1+e^-x^)

sigmoid函数存在的问题:

1.可以发现,当input(x)是正数且特别大或者是负数且特别小,函数趋于平坦,梯度变得很小,即神经元趋于饱和,使得反向传播时,根据梯度对各超参数调整的幅度很小,很可能会发生"梯度消失"的问题
2.同时,经由sigmoid函数后,input(x)会被投影到(0,1)之间,这不是0对称的,也就是说,下一层的神经元的输入都是正的,这也使得超参数的梯度优化方向不是一直为正就是一直为负,这使得梯度下降/超参数优化变得困难..
3.因为要计算e/exp() 会消耗大量的计算资源...
​```

2.tanh函数

其公式为:

可以看出,它在sigmoid函数基础上进行了改进,解决了非0中心的问题,能让输入的input(x)不全为正数,这比sigmoid是一个进步...

它的问题:

1.与sigmoid函数相同,当输入的值为大的正数或小的负数,它在后向传播中可能会导致"梯度消失"问题
2.要计算e/exp() 消耗了计算机的算力资源

3.RELU函数:

其公式为:

可以很清楚的看见,当input(x)是正数时,它的梯度不会消失,一定程度上解决了梯度消失的问题

同时,它的运算是线性的,速度更快,在实际操作中,一般是sigmod/tanh 的六倍

但它同样存在问题,就是它没有0中心化...

RELU系列的激活函数是很多的...之后的就之后来更新吧...
实践中多使用RELU函数作为激活函数,可以尝试使用tanh或者其他RELU系列函数,不要用sigmoid函数!!!


总结

在训练神经网络时,激活函数最好使用RELU系列,一般是RELU函数...RELU函数能很好增加非线性,它在正数范围很好的克服了神经元的饱和问题,输入有不同能很直观的表现出来,能让更多信息进入下一层,使得神经网络更好地学习到现实世界的信息,更加贴合现实世界...但是RELU函数,可能会死亡,由于负输入会使得输出是0,影响参数的更新,导致神经元的失效...

相关推荐
FL162386312923 分钟前
[数据集][目标检测]电梯内广告牌电动车检测数据集VOC+YOLO格式2787张4类别
深度学习·yolo·目标检测
F80001 小时前
YOLOv8改进:CA注意力机制【注意力系列篇】(附详细的修改步骤,以及代码,CA目标检测效果由于SE和CBAM注意力)
深度学习·yolo·目标检测·yolov8
少说多想勤做1 小时前
【计算机视觉前沿研究 热点 顶会】ECCV 2024中Mamba有关的论文
人工智能·计算机视觉·目标跟踪·论文笔记·mamba·状态空间模型·eccv
宜向华2 小时前
opencv 实现两个图片的拼接去重功能
人工智能·opencv·计算机视觉
OpenVINO生态社区2 小时前
【了解ADC差分非线性(DNL)错误】
人工智能
醉后才知酒浓3 小时前
图像处理之蒸馏
图像处理·人工智能·深度学习·计算机视觉
炸弹气旋4 小时前
基于CNN卷积神经网络迁移学习的图像识别实现
人工智能·深度学习·神经网络·计算机视觉·cnn·自动驾驶·迁移学习
python_知世4 小时前
时下改变AI的6大NLP语言模型
人工智能·深度学习·自然语言处理·nlp·大语言模型·ai大模型·大模型应用
愤怒的可乐4 小时前
Sentence-BERT实现文本匹配【CoSENT损失】
人工智能·深度学习·bert
冻感糕人~4 小时前
HRGraph: 利用大型语言模型(LLMs)构建基于信息传播的HR数据知识图谱与职位推荐
人工智能·深度学习·自然语言处理·知识图谱·ai大模型·llms·大模型应用