您如何区分机器学习中的复杂模型和简单模型?哪些参数控制模型的复杂性或简单性?是输入的数量,还是层数?
此外,什么时候应该使用简单模型而不是复杂模型,反之亦然?
您如何区分机器学习中的复杂模型和简单模型?哪些参数控制模型的复杂性或简单性?是输入的数量,还是层数?
此外,什么时候应该使用简单模型而不是复杂模型,反之亦然?
考虑模型中的连续复杂性。
不重要的:
简单的:
中等复杂:恒定风速下的风力涡轮机
非常复杂:光照 3-D 运动场景到像素的光线追踪
天文复杂:天气
现在考虑关于模型的一般性或特殊性的连续统一体。
非常具体:用于火星任务的机器人具有精确的机械拓扑结构、材料标注和一组机械坐标,这些坐标包含在用于加工机器人零件的 CAD 文件中。
有点具体:指导内燃机设计的公式,这是众所周知的。
有点笼统:现象是确定性的,变量及其域是已知的。
非常笼统:可能有一些模型,因为它在自然界中有效,但我们知道的很少。
在上述粒度级别上有二十种排列。每个人都有数学分析、应用研究、工程和货币化的目的。
以下是输入、输出和层数之间的一些一般相关性。
更高的复杂性通常对应于更大的层数。
较高的 i/o 维度对应于相应 i/o 层的较高宽度。
将一般性映射到特殊性或从特殊性映射通常需要复杂性。
现在,为了让这个答案对那些想要他们可以记住的公式答案的人来说更不吸引人,......
每个人工网络在训练前都是任意函数的模型,训练后是特定函数的模型。
损失函数是视差模型。
算法是通过将递归定义及时展开以映射到称为 CPU 的集中计算模型而创建的过程模型。
递归定义也是一个模型。
除了尚未建模的想法或数据之外,科学中几乎没有任何东西不是模型。
如果您想为您的模型找到合适的架构,您可以使用NAS(神经架构搜索)方法,而不是运行一些简单的模型来查找模型并参与来决定哪个模型更复杂或更简单。在 NAS 中用于寻找合适架构的一些方法是:
你在什么情况下问这个?如果您要执行对象检测、回归或强化学习,则完全不同。
对于第一种情况,我想说使用简单与复杂模型的要点是训练数据的大小。如果你有 1000 个训练样本,你不能指望大型网络比简单的网络表现更好。
简而言之,如果您已经有许多模型,您通常应该能够区分(如果您愿意的话,直观地)更简单和更复杂的模型。例如,根据您在问题中已经指出的输入数量和层数。然后,如果一个更简单的模型和一个更复杂的模型执行相同的任务,而复杂模型的性能并没有比简单的模型好很多,那么您应该使用更简单的模型。通常根据您的用例来决定性能的显着差异是您的职责。这是实践中的奥卡姆剃刀(https://en.m.wikipedia.org/wiki/Occam%27s_razor)。作为此免费课程的一部分,您可能会学到更多实用方面https://lagunita.stanford.edu/courses/HumanitiesSciences/StatLearning/Winter2016/about