专家系统和机器学习方法在运行时效率和时间/空间复杂度方面的比较

人工智能 machine-learning comparison efficiency expert-systems decision-support-system
2021-10-23 21:30:38

对于我正在撰写的关于临床决策支持系统(计算机辅助医疗决策,例如诊断、治疗)的论文的一部分,我试图将专家系统与基于机器学习方法(深度学习、人工神经网络等)的系统进行比较.)。

具体来说,我目前正在尝试在效率和复杂性方面对专家系统与机器学习系统进行一般比较(如果可能的话),即

  • 运行时效率
  • 时间复杂度
  • 空间复杂度

在试图找到有限成功的文献之后,我目前的思路是,如果一个人试图回答一个非常具体、有限的领域中的问题,只需要一些规则(对于专家系统),就这三个标准而言,专家系统相对“便宜”。然而,当一个问题/领域变得更加复杂时,专家系统似乎会受到需要“爆炸”的规则数量的影响,我认为这可能会导致诸如大型搜索树或其他问题之类的事情。从我对机器学习方法的一般阅读中,我的感觉是这些方法能更好地适应更高维度的更复杂问题。

我想找到一些信息来确认/支持我的总体印象,或者引导我对此进行其他理解。

不幸的是,我似乎找不到任何专门处理这种比较的来源。我不确定这是否是因为我的问题陈述过于宽泛/模糊,我没有正确搜索,没有太多文献,或者我的问题没有意义。

确实设法找到的一些来源是:

专家系统在机器人和监控等领域仍在使用并且很重要。但是,高级规则系统的复杂性可能会导致性能问题。ANN 目前正在设法通过横向扩展来克服此类性能问题。

资料来源:福布斯

Unfortunately, this is the most explicit source I've found. However, it doesn't really provide any details on which this claim could backed up, nor would I consider this a solid source, especially not in an academic setting.

Checking for the logical consistency of a set of interrelated logical rules results in the formulation of a satisfiability (SAT) problem [Bezem, 1988]. If one assumes only binary variables, say n of them, then the corresponding search space is of size 2n . That is, it can become very large quickly. This is an NP-complete problem very susceptible to the “dimensionality curse” problem [Hansen and Jaumard, 1990]

Source: Yanase J, and Triantaphyllou E, 2019, A Systematic Survey of Computer-Aided Diagnosis in Medicine: Past and Present Developments, page 7

This mentions "dimensionality curse", but in the context of checking for logical consistency of the rules of an expert system, and not really in the context of run-time-efficiency & complexity.

I have found numerous other articles comparing expert systems and machine learning approaches, e.g. Ravuri et al., 2019, Learning from the experts: From expert systems to machine-learned diagnosis models, but none of them, from what I have seen, compare expert systems and machine learning approaches across the dimensions I am interested in.

Would anyone be able to provide some input on what would be aspects in comparing expert systems and machine learning approaches in terms of the efficiency and complexity criteria listed above, and/or, be able to point me in the right direction?

1个回答

My feeling from what I have generally read about machine learning approaches is that these adapt better to more complex problems with higher dimensionalities.

Your intuition seems to align with the empirical results in these domains in the last few years. Expert System are in general not used for domains like Computer Vision, but there may be exceptions do this.

Specifically, I am currently trying to make a general comparison (if possible) of expert systems with machine learning systems across dimensions of efficiency and complexity

I will try to provide you with an approach to systematically compare them. You should create a set of tasks T to evaluate your comparison. I will assume your metric to evaluate on is accuracy, but you can of course replace this with any score function of your choice.

Space Complexity

For all tasks implement the expert system and ML model you want to compare. Compare the amount of space they take and average this by the number of tasks to get an estimate of the complexity for each.

E^[space]=1TtTspace(t)

Time Complexity

Similar to measuring space, but now time each of your model and expert system. You could do so for different functions on each of your tasks such as training or predicting. Training is more difficult, because if you're doing supervised learning for example you don't know when you will stop since more training time might be better. So you should set a time or some criteria of convergence and list them under your assumptions.

E^[time]=1TtTtime(predict(t))

Run-time-efficiency

Here is where things get tricky, because there isn't a single unified expression for this that I'm aware of. So I would suggest to evaluate this based on dividing the accuracy by the approximate number of operations. This could be done multiple times and averaged for example if training a neural net for each epoch. To reflect the actual run time in practice more accurately you might also just want to add a time comparison in the form of accuracy divided by runtime on fixed hardware.

All of this provides of course no strong theoretical explanation, but is more of a study to provide some empirical data. If this is done on a large enough scale your results become a lot more meaningful. Scale here means the number of different model types and expert systems and tasks you're testing on.