Browse Source

[FIX] resolve some comments

pull/1/head
troyyyyy 1 year ago
parent
commit
2bf57673a9
4 changed files with 35 additions and 26 deletions
  1. +10
    -10
      docs/Intro/Basics.rst
  2. +9
    -7
      docs/Overview/Abductive-Learning.rst
  3. +8
    -1
      docs/Overview/Installation.rst
  4. +8
    -8
      docs/README.rst

+ 10
- 10
docs/Intro/Basics.rst View File

@@ -15,13 +15,13 @@ Modules in ABL-Package
ABL-Package is an implementation of `Abductive Learning <../Overview/Abductive-Learning.html>`_,
designed to harmoniously integrate and balance the use of machine learning and
logical reasoning within a unified model. As depicted below, the
ABL-Package comprises three primary modules: **Data**, **Learning**, and
ABL-Package comprises three primary parts: **Data**, **Learning**, and
**Reasoning**, corresponding to the three pivotal components in current
AI: data, models, and knowledge.

.. image:: ../img/ABL-Package.png

**Data** module manages the storage, operation, and evaluation of data.
**Data** part manages the storage, operation, and evaluation of data.
It first features class ``ListData`` (derived from base class
``BaseDataElement``), which defines the data structures used in
Abductive Learning, and comprises common data operations like insertion,
@@ -30,24 +30,24 @@ Metrics, including class ``SymbolMetric`` and ``ReasoningMetric`` (both
specialized metrics derived from base class ``BaseMetric``), outline
methods for evaluating model quality from a data perspective.

**Learning** module is responsible for the construction, deployment, and
training of machine learning models. In this module, the class
**Learning** part is responsible for the construction, deployment, and
training of machine learning models. In this part, the class
``ABLModel`` is the central class that encapsulates the machine learning
model, which may incorporate models such as those based on Scikit-learn
or a neural network framework using constructed by class ``BasicNN``.

**Reasoning** module consists of the reasoning part of the Abductive
learning. The class ``KBBase`` allows users to define domain
knowledge base. For diverse types of knowledge, we also offer
**Reasoning** part is responsible for the construction of domain knowledge
and performing reasoning. In this part, the class ``KBBase`` allows users to
define domain knowledge base. For diverse types of knowledge, we also offer
implementations like ``GroundKB`` and ``PrologKB``, e.g., the latter
enables knowledge base to be imported in the form of a Prolog files.
Upon building the knowledge base, the class ``Reasoner`` is
responsible for minimizing the inconsistency between the knowledge base
and learning models.

Finally, the integration of these three modules occurs through
**Bridge** module, which features class ``SimpleBridge`` (derived from base
class ``BaseBridge``). Bridge module synthesize data, learning, and
Finally, the integration of these three parts occurs through
**Bridge** part, which features class ``SimpleBridge`` (derived from base
class ``BaseBridge``). Bridge part synthesize data, learning, and
reasoning, and facilitate the training and testing of the entire
Abductive Learning framework.



+ 9
- 7
docs/Overview/Abductive-Learning.rst View File

@@ -16,7 +16,7 @@ In **Abductive Learning (ABL)**, we assume that, in addition to data,
there is also a knowledge base :math:`\mathcal{KB}` containing
domain knowledge at our disposal. We aim for the classifier :math:`f`
to make correct predictions on data instances :math:`\{x_1,\dots,x_m\}`,
and meanwhile, the logical facts grounded by the prediction
and meanwhile, the pseudo-groundings grounded by the prediction
:math:`\left\{f(\boldsymbol{x}_1), \ldots, f(\boldsymbol{x}_m)\right\}`
should be compatible with :math:`\mathcal{KB}`.

@@ -26,22 +26,22 @@ The process of ABL is as follows:
pseudo-labels
:math:`\left\{f(\boldsymbol{x}_1), \ldots, f(\boldsymbol{x}_m)\right\}`
are predicted by a data-driven classifier model.
2. These pseudo-labels are then converted into logical facts
2. These pseudo-labels are then converted into pseudo-groundings
:math:`\mathcal{O}` that are acceptable for logical reasoning.
3. Conduct joint reasoning with :math:`\mathcal{KB}` to find any
inconsistencies. If found, the logical facts that lead to minimal
inconsistencies. If found, the pseudo-groundings that lead to minimal
inconsistency can be identified.
4. Modify the identified facts through **abductive reasoning** (or, **abduction**),
returning revised logical facts :math:`\Delta(\mathcal{O})` which are
returning revised pseudo-groundings :math:`\Delta(\mathcal{O})` which are
compatible with :math:`\mathcal{KB}`.
5. These revised logical facts are converted back to the form of
5. These revised pseudo-groundings are converted back to the form of
pseudo-labels, and used like ground-truth labels in conventional
supervised learning to train a new classifier.
6. The new classifier will then be adopted to replace the previous one
in the next iteration.

This above process repeats until the classifier is no longer updated, or
the logical facts :math:`\mathcal{O}` are compatible with the knowledge
the pseudo-groundings :math:`\mathcal{O}` are compatible with the knowledge
base.

The following figure illustrates this process:
@@ -57,6 +57,8 @@ is dual-driven by both data and domain knowledge, integrating and
balancing the use of machine learning and logical reasoning in a unified
model.

For more information about ABL, please refer to: [Zhou, 2019](https://link.springer.com/epdf/10.1007/s11432-018-9801-4?author_access_token=jgJe1Ox3Mk-K7ORSnX7jtfe4RwlQNchNByi7wbcMAY7_PxTx-xNLP7Lp0mIZ04ORp3VG4wioIBHSCIAO3B_TBJkj87YzapmdnYVSQvgBIO3aEpQWppxZG25KolINetygc2W_Cj2gtoBdiG_J1hU3pA==) and [Zhou and Huang, 2022](https://www.lamda.nju.edu.cn/publication/chap_ABL.pdf).

.. _abd:

.. admonition:: What is Abductive Reasoning?
@@ -68,7 +70,7 @@ model.
reasoning may arrive at conclusions that are plausible but not conclusively
proven.

In Abductive Learning, given :math:`\mathcal{KB}` (typically expressed
In ABL, given :math:`\mathcal{KB}` (typically expressed
in first-order logic clauses), one can perform both deductive and
abductive reasoning. Deductive reasoning allows deriving
:math:`b` from :math:`a`, while abductive reasoning allows inferring


+ 8
- 1
docs/Overview/Installation.rst View File

@@ -5,7 +5,14 @@ ABL is distributed on `PyPI <https://pypi.org/>`__ and can be installed with ``p

.. code:: console

$ pip install abl
# (TODO)
$ pip install abl

For testing purposes, you can install it using:

.. code:: console

$ pip install -i https://test.pypi.org/simple/ abl

Alternatively, to install ABL by source code,
sequentially run following commands in your terminal/command line.


+ 8
- 8
docs/README.rst View File

@@ -17,7 +17,14 @@ ABL is distributed on `PyPI <https://pypi.org/>`__ and can be installed with ``p

.. code:: console

$ pip install abl
# (TODO)
$ pip install abl

For testing purposes, you can install it using:

.. code:: console

$ pip install -i https://test.pypi.org/simple/ abl

Alternatively, to install ABL by source code,
sequentially run following commands in your terminal/command line.
@@ -27,10 +34,3 @@ sequentially run following commands in your terminal/command line.
$ git clone https://github.com/AbductiveLearning/ABL-Package.git
$ cd ABL-Package
$ pip install -v -e .


Releases
--------
`release 0.1`_

.. _release 0.1: https://github.com/AbductiveLearning/ABL-Package/releases/tag/v0.1

Loading…
Cancel
Save