深度学习
我们知道深度学习虽然是机器学习的一部分,但是两者的主体流程却是极其相似的。
机器学习(深度学习)的流程
1.数据获取
2.特征工程
3.建立模型
4.评估与应用
数据获取
数据量与性能关系图
数据获取、数据整理、数据分析、数据标注、数据增强
深度学习适合处理大数据,而数据量比较小的时候,用传统机器学习方法也许更合适。
特征工程
机器学习的特征工程
机器学习和深度学习最大的区别在于特征工程的实现方式:
机器学习的特征工程由人工参与筛选;
深度学习的特征工程由算法自动提取。
特征工程的作用:
1.数据和特征决定了机器学习/深度学习的上限;
2.模型与算法的选择决定了如何逼近这个上限。
由此可见,好的数据和特征是模型和算法发挥更大作用的前提。
建立模型
神经网络
目前使用比较多的深度模型有:CNN、RNN、LSTM
其中CNN多用于图像;
RNN多用于语音;
LSTM多用于行为识别。
图像处理中的模型检测模型:Fast-RCNN、Faster-RCNN、Yolo、SSD、yolov5等;
分类模型:AlexNet、GoogleNet、VGGNet、ResNet等
评估与应用
训练集和验证集的loss曲线
深度学习模型的效果评估,首先是根据训练集和验证集在训练过程中的损失函数曲线来初步判断模型学习是否收敛;最后也是最重要的是根据测试集的测试效果来评估当前模型的训练效果是否允许实际场景的应用。
上面简单介绍了深度学习的流程,那么具体的过程后续深入讲解与分享。
下面再介绍一些深度学习的工具:
首先选择一门编程语言
动态编程语言
深度学习的编程语言行业默认:Python(一种简洁而优美的语言);
安装环境:
用于科学计算的Python发行版
Anaconda,其中包含了Python和其他深度学习中可能会用到的包,最主要的是可以将开发环境单独隔离;
集成开发环境:
深受好评的Python集成开发环境
PyCharm或JupyterNotebook,一个来编辑Python代码的工具;
深度学习框架:
PyTorch或Tensorflow
端到端的开源机器学习框架
以上是深度学习所用到的基本软件,其中最重要的是深度学习框架的选择,选择一个合适的框架将有助于我们在学习过程中是否可以高效的解决问题。
目前最流行的开源工具当属谷歌的Tensorflow和Facebook的PyTorch;
关于这两个框架的对比选择,网上也是众说纷纭。
从现实应用角度来说,我们作为深度学习应用人员,以快速应用为主,当我们在复现开源代码的过程中肯定会遇到各种各样的问题,能否快速找到解决方法至关重要。
PyTorch的使用人群目前已经远远超过Tensorflow,且PyTorch在论文研究人员中的使用更多,所以选择PyTorch作为深度学习框架是一个明智的选择!
学术界最受欢迎的深度学习框架