社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

深度学习:如何进行优雅的优化?

小白学视觉 • 3 年前 • 211 次点击  
点击上方小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达


深度学习中我们总结出 5 大技巧:



本节继续从第三个开始讲起。


3. Early stopping and Regularization


本节我们一起探讨 Early stopping and Regularization,这两个技巧不是深度学习特有的方法,是机器学习通用的方法。



Early stopping


在训练过程中,往往会得出训练的最后的结果还可能不如以前的,原因很有可能出现overfitting。 我们需要提前踩刹车,得出更好的效果。



Regularizaton


当我们努力降低Loss函数的数值的时候,我们会发现,我们找到的参数集weights,不仅仅要让Loss变小,而且weights 自身也需要接近于0,这样我们的结果会更加理想。



L1 正则化:



新的Loss函数将会被最小化:



L2正则化:



新的Loss函数将会被最小化:




到这里,很多同学会疑问,为什么weights小了,结果就很更好,我在这里举例说明:6岁的时候和14岁的时候,大脑的神经元密度明显降低,说明一些无效的神经元是阻碍大脑进步的。



4. Dropout


Dropout 在2012年imagenet 比赛中大放异彩,是当时CNN模型夺冠的功勋环节之一。


那什么是Dropout 我们先直观的理解:


练武功的时候,训练的时候脚上绑上重物



等到练成下山的时候:



我们从几个方面来解释Dropout


基础定义


当训练的时候,每一个神经元都有p%的可能“靠边站”



当测试的时候,所有的神经元齐心协力,共同努力:



Dropout是一种Ensemble学习


Ensemble 学习我们在机器学习专栏中一起讨论过,链接是集成学习。每次训练的时候的网络结构都是不一样的,是一个thinner network:



其实在训练的时候训练了很多thinner network:



测试的时候,取各个网络的平均值



所以在深度学习中,我们的整个训练测试方法如下:



本专栏图片、公式很多来自台湾大学李弘毅老师、斯坦福大学cs229、cs231n 、斯坦福大学cs224n课程。在这里,感谢这些经典课程,向他们致敬!


小白团队出品:零基础精通语义分割↓

下载1:OpenCV-Contrib扩展模块中文版教程
在「小白学视觉」公众号后台回复:扩展模块中文教程即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。

下载2:Python视觉实战项目52讲
小白学视觉公众号后台回复:Python视觉实战项目即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。

下载3:OpenCV实战项目20讲
小白学视觉公众号后台回复:OpenCV实战项目20讲即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。

交流群


欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/131589
 
211 次点击