到目前为止,我知道深度学习是机器学习的一个子集。我了解一些机器学习中的算法及其实现,如KNN、朴素贝叶斯等。是否有特定的算法集来表示和实现深度学习?
回答:
将“算法”、“方法”、“模型”和特定机器学习概念的“实现”混为一谈是一个常见的误解。机器学习社区中定义的大多数事物是模型或方法,而不是算法或实现。粗略地说:
- 模型是表示实际、真实过程的一种形式,以数学方程/公式的形式存在。这样的模型之一可以是最近邻分类器或线性分类器
- 方法通常是解决问题的途径,使用一些数据来寻找模型的参数(例如,常用于训练机器学习模型的梯度方法)
- 算法是一组指令,通常以某种伪代码形式显示,展示为了创建给定方法的实现所需的具体操作。
- 最后,实现是实现某个抽象算法的一段特定代码
因此,现在,深度学习只是机器学习中的一个总体概念,尚未有明确的定义,尽管它通常用于指代涉及数据表示层次抽象的模型以及训练此类模型的方法。
最常见的深度学习模型是深度神经网络,换句话说,就是具有多个(多少?这是一个开放的辩论,有些人说5个,其他说10个或30个)非线性隐藏层的神经网络。其中一些模型包括:
- 深度玻尔兹曼机(DBM)
- 深度自编码器(DAE)
- 深度卷积神经网络(DCNN)
- 循环神经网络(RNN)
一般来说,模型可以是深度的,可以有针对深度学习的方法、算法或深度学习算法的实现。其中一些算法包括
- 对比散度(CD)
- 持久对比散度(PCD)
这些用于训练DBM。