ntqr


Namentqr JSON
Version 0.3.2 PyPI version JSON
download
home_pageNone
SummaryTools for the logic of evaluation using unlabeled data
upload_time2024-04-18 12:30:10
maintainerNone
docs_urlNone
authorNone
requires_pythonNone
licenseNone
keywords evaluation algebra machine learning logic ai safety
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Logic tools to make your AI safer

![NTQR](./img/NTQRpt24.png)

```console
~$: pip install ntqr
```

:::{figure-md}
![Prevalence estimates](./img/uciAdultEvalPrevalenceGauges.png)

**The prevalence estimates for the two labels in
    a single evaluation using the UCI Adult dataset. The green
    triangle is the correct value. "AE" is the exact, error
    independent evaluator. "MV" is the majority voting
    evaluator.**
:::


Evaluation of noisy decision makers in unsupervised settings is a fundamental
safety engineering problem. This library contains the algebraic postulates that
govern **any** evaluation/grading of noisy binary classifiers/responders.
"Noisy" means that the decision makers (humans, robots, algorithms, etc.) are
not always correct. Using the counts of how often a group/ensemble of them
agreed and disagreed while responding to a finite test, we can infer their
average statistics of correctness.

For a high level, conceptual understanding of what you can do with the
evaluation algorithms and postulates in this package, check out the conceptual
guide. The formalism of NTQR logic is what makes it invaluable for safety
applications. In unsupervised settings, your AI is flying blind when it comes
to assessing itself on unlabeled data. The algorithms in this package allow
you to use a group of classifiers to grade themselves.

All the complicated algebraic geometry computations here are meant to
accomplish only one thing - give you a logically consistent framework for
validating **any** algorithm that evaluates classifiers on a test that used
unlabeled data. This logical framework has three properties that make it
useful in AI safety applications:

1. It is **universal**. The algorithms here apply to any domain. There is no
   Out of Distribution (OOD) problem when you use algebraic evaluation because
   it does not use any probability theory. By only using summary statistics of
   how a group of classifiers labeled a test set, we can treat all classifiers,
   whether human or robotic, as black boxes. There are no hyperparameters
   to tune or set in NTQR algorithms. If they were, these algorithms could
   not claim to be universal.

2. It is **complete**. The finite nature of any test given to a group of
   binary classifiers means we can guarantee the existence of a complete
   set of postulates that must be obeyed during any evaluation. Completeness
   is a logical safety shield. It allows us to create theorem provers that
   can unequivocably detect violations of the logical consistency of **any**
   grading algorithm. This is demonstrated here by the error-independent
   evaluator outputting an irrational number for test ratios that can only
   be rationals.

3. It allows you to create **self-alarming** evaluation algorithms.
   Algebraic evaluation algorithms warn when their assumptions are wrong. This
   is the single most important safety feature of algebraic evaluation.
   No method that uses representation of the domain or probability theory
   can do this. Charles Perrow, the author of "Normal Accidents", said

     > Unfortunately, most warning systems do not warn us that
     > they can no longer warn us.

   This package aleviates that problem. Algebraic evaluation can detect many
   cases where its evaluation assumptions are wrong.

>**Warning**
This library is under heavy development and is presently meant only
for research and educational purposes. AI or any safety engineering is
not solvable by any one tool. These tools are meant to be part of a broader
safety monitoring system and are not meant as standalone solutions.
NTQR algorithms are meant to complement, not supplant, other safety tools.


            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "ntqr",
    "maintainer": null,
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": null,
    "keywords": "evaluation, algebra, machine learning, logic, ai safety",
    "author": null,
    "author_email": "Andres Corrada-Emmanuel <andres.corrada@dataengines.com>, Walker Lee <walker.lee@dataengines.com>, Adam Sloat <adam.sloat@dataengines.com>",
    "download_url": "https://files.pythonhosted.org/packages/53/6f/af6b3a1fb58e01def8139dd4d2da21b4acf46fd1f08e78143773450ca760/ntqr-0.3.2.tar.gz",
    "platform": null,
    "description": "# Logic tools to make your AI safer\n\n![NTQR](./img/NTQRpt24.png)\n\n```console\n~$: pip install ntqr\n```\n\n:::{figure-md}\n![Prevalence estimates](./img/uciAdultEvalPrevalenceGauges.png)\n\n**The prevalence estimates for the two labels in\n    a single evaluation using the UCI Adult dataset. The green\n    triangle is the correct value. \"AE\" is the exact, error\n    independent evaluator. \"MV\" is the majority voting\n    evaluator.**\n:::\n\n\nEvaluation of noisy decision makers in unsupervised settings is a fundamental\nsafety engineering problem. This library contains the algebraic postulates that\ngovern **any** evaluation/grading of noisy binary classifiers/responders.\n\"Noisy\" means that the decision makers (humans, robots, algorithms, etc.) are\nnot always correct. Using the counts of how often a group/ensemble of them\nagreed and disagreed while responding to a finite test, we can infer their\naverage statistics of correctness.\n\nFor a high level, conceptual understanding of what you can do with the\nevaluation algorithms and postulates in this package, check out the conceptual\nguide. The formalism of NTQR logic is what makes it invaluable for safety\napplications. In unsupervised settings, your AI is flying blind when it comes\nto assessing itself on unlabeled data. The algorithms in this package allow\nyou to use a group of classifiers to grade themselves.\n\nAll the complicated algebraic geometry computations here are meant to\naccomplish only one thing - give you a logically consistent framework for\nvalidating **any** algorithm that evaluates classifiers on a test that used\nunlabeled data. This logical framework has three properties that make it\nuseful in AI safety applications:\n\n1. It is **universal**. The algorithms here apply to any domain. There is no\n   Out of Distribution (OOD) problem when you use algebraic evaluation because\n   it does not use any probability theory. By only using summary statistics of\n   how a group of classifiers labeled a test set, we can treat all classifiers,\n   whether human or robotic, as black boxes. There are no hyperparameters\n   to tune or set in NTQR algorithms. If they were, these algorithms could\n   not claim to be universal.\n\n2. It is **complete**. The finite nature of any test given to a group of\n   binary classifiers means we can guarantee the existence of a complete\n   set of postulates that must be obeyed during any evaluation. Completeness\n   is a logical safety shield. It allows us to create theorem provers that\n   can unequivocably detect violations of the logical consistency of **any**\n   grading algorithm. This is demonstrated here by the error-independent\n   evaluator outputting an irrational number for test ratios that can only\n   be rationals.\n\n3. It allows you to create **self-alarming** evaluation algorithms.\n   Algebraic evaluation algorithms warn when their assumptions are wrong. This\n   is the single most important safety feature of algebraic evaluation.\n   No method that uses representation of the domain or probability theory\n   can do this. Charles Perrow, the author of \"Normal Accidents\", said\n\n     > Unfortunately, most warning systems do not warn us that\n     > they can no longer warn us.\n\n   This package aleviates that problem. Algebraic evaluation can detect many\n   cases where its evaluation assumptions are wrong.\n\n>**Warning**\nThis library is under heavy development and is presently meant only\nfor research and educational purposes. AI or any safety engineering is\nnot solvable by any one tool. These tools are meant to be part of a broader\nsafety monitoring system and are not meant as standalone solutions.\nNTQR algorithms are meant to complement, not supplant, other safety tools.\n\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Tools for the logic of evaluation using unlabeled data",
    "version": "0.3.2",
    "project_urls": {
        "Documentation": "https://ntqr.readthedocs.org/en/latest",
        "Home": "https://github.com/andrescorrada/IntroductionToAlgebraicEvaluation/tree/main/python"
    },
    "split_keywords": [
        "evaluation",
        " algebra",
        " machine learning",
        " logic",
        " ai safety"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "8d7ff6706a8b122582d82c743b6ee01b9241e1349edb1179d074786ea1043fbb",
                "md5": "148e535d3ff83cc50a2afdb3ae8295e6",
                "sha256": "a25562b7e10b195b811210b9658fdba7121768f22ad8cf569447ff81824235a2"
            },
            "downloads": -1,
            "filename": "ntqr-0.3.2-py2.py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "148e535d3ff83cc50a2afdb3ae8295e6",
            "packagetype": "bdist_wheel",
            "python_version": "py2.py3",
            "requires_python": null,
            "size": 26057,
            "upload_time": "2024-04-18T12:30:06",
            "upload_time_iso_8601": "2024-04-18T12:30:06.857637Z",
            "url": "https://files.pythonhosted.org/packages/8d/7f/f6706a8b122582d82c743b6ee01b9241e1349edb1179d074786ea1043fbb/ntqr-0.3.2-py2.py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "536faf6b3a1fb58e01def8139dd4d2da21b4acf46fd1f08e78143773450ca760",
                "md5": "2d3d5b614631b4dd43c6ba16b779d5d0",
                "sha256": "defff47c0c5191c47cc33709e61a0bef5b9f9c674b1f39fa09630223a69d489e"
            },
            "downloads": -1,
            "filename": "ntqr-0.3.2.tar.gz",
            "has_sig": false,
            "md5_digest": "2d3d5b614631b4dd43c6ba16b779d5d0",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 975137,
            "upload_time": "2024-04-18T12:30:10",
            "upload_time_iso_8601": "2024-04-18T12:30:10.338546Z",
            "url": "https://files.pythonhosted.org/packages/53/6f/af6b3a1fb58e01def8139dd4d2da21b4acf46fd1f08e78143773450ca760/ntqr-0.3.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-04-18 12:30:10",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "andrescorrada",
    "github_project": "IntroductionToAlgebraicEvaluation",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "ntqr"
}
        
Elapsed time: 0.25531s