跳到正文
GitHub·· 9 天前AI 评分12

一种具备推理能力的 AI 智能体系统与方法

bcroner/RZNAI_AGI

AI 导读

该专利提出一种全新 AI 智能体架构,通过从知识库构建图分析算法实例(源码采用广度优先搜索),求解从当前状态到达成状态与规避状态的路径,使智能体能在内部推演场景并制定行动计划。系统采用全有符号整数构成的神经网络,依据奖励或惩罚按预设值增减突触权重,并在权重达到预设阈值(源码中为 0)时重新定向神经元连接。每执行预设周期数(源码中为 1048576)后,通过右移 1 位等方式将所有权重幅度减半。

正文

System and Method for an AI Agent with Reasoning Capabilities

Background of the Invention

[0001] The term Artificial Intelligence was coined by computer scientist John McCarthy in the 1950s [1]. Artificial intelligence research began at Dartmouth College in 1956 [2]. Expert systems are implementations that use logical rules developed by experts within a specialized domain, and these were actively being researched in the 1980s [3] [4] [5]. Ben Goertzel developed the term artificial general intelligence in 2008 [5]. The 2020s saw an AI boom with the discovery of the technology of Large Language Models (LLMs) [6] [7] [8] [9].

Abstract

We introduce a new form of artificial intelligence that is capable of carrying out reasoning processes, making it possible for an AI agent to mentally investigate scenarios and form a plan of action in order to both achieve the Achieve State(s) (“correct decision(s)”) and avoid the Avoid State(s) (“incorrect decision(s)”).

We Claim

  1. The construction of graph analysis algorithm instances (we use breadth-first search in the provided source code) from the Knowledge Bank and the solving for starting at the current state C and arriving at each of the Achieve State(s) A and Avoid State(s) A’.
  2. The increase of magnitude by a preset amount of the weight of a connection (synapse) between an input signal or an artificial neuron from one layer to the next upon any motivational reward(s) received and the decrease of the magnitude by a preset amount of the weight of a connection (synapse) between an input signal or an artificial neuron from one layer to the next upon any motivational disincentive(s) received.
  3. The re-targetting of an artificial neuron from a given layer when it fires an output to an artificial neuron’s input on the subsequent layer and the weight of the firing artificial neuron reaches a preset limit (we use 0 for this level in the provided reference source code).
  4. The retrieval of an non-hashed unit of a former input from the knowledge bank upon the triggering of a recall operation by the setting of the recall bit in the output unit.

Specification

[0002] We receive input (the Input Unit) from either recall (from the knowledge bank) or from one or more sensors. The Input Unit contains a Read From Recall bit as well as one or more bits that indicate which sensor the input data is sourced from when read from a sensor or whether reading from a calculated Achieve State path or a calculated Avoid State path. Recalling an Input State from the Knowledge Bank also brings in these one or more sensor indicator bits as they are an integral part of the Input State data unit.

[0003] We discuss a modified artificial neural network approach. We introduce a neural network composed entirely of signed integers. We compose successive layers of integral artificial neurons which are the analog of the hidden layers used in floating point approaches. The first layer receives the input and the last layer sends output bit signals to the Output Unit. An artificial neuron is composed of a series of signed integer weights that refer to the input bit signals leading from it to the next layer as well as indicators for which artificial neurons in the next layer are addressed by the output bit signals. We select a number of these integral artificial neurons for each of the layers and a number of hidden layers in between. A portion (half in the provided reference source code) of the integral artificial neurons of a given layer sends negative integer values to the next layer and another portion (again, we use half in the provided reference source code) sends positive integer values to the next layer. The threshold for an integral artificial neuron to “fire” (meaning send its outputs to the next layer) is a preset limit (we use 0 or higher in the provided reference source code). To test whether a firing of a given artificial neuron occurs, we take the sum of all the integers from all the previous layer’s firing (or in the case of the first layer, from the Input Unit).

[0004] If an Achieve State is reached and rewards are available, increase all positive firing neuronal weights by a preset value (we use 1 in the provided source code) and decrease all negative firing neuronal weights (meaning further from zero on the negative side) by our preset value (again, we use 1 in the provided source code). If an Avoid State is reached and disincentives are available, decrement all positive firing neuronal weights by one and decrement all firing weights by one (meaning one closer to zero on the negative side). If an Achieve State is reached and rewards are not available, remove said Achieve State from the data structure that contains Achieve States. If an Avoid State is reached and disincentives are not available, remove said Avoid State from the data structure that contains Avoid States.

[0005] Every time a preset number of cycles of the system is performed (we use 1048576 in the provided source code), we reduce the magnitudes of all weights of the Integral Artificial Neurons by either subtracting a preset value from all positive-valued weights and adding said preset value to all negative-valued weights (meaning bringing them all closer to zero by said preset limit) or by shifting the bits of all our integer weights to the right by a preset number (we use 1 as this number so as to reduce the magnitudes of all weights by one-half).

[0006] When an integral artificial neuron weight reaches a preset limit (we use 0 in the provided source code), we “rewire” the artificial neuron to target a different artificial neuron of the next layer in the manner of your choice, whether round-robin, random, or some other method. We select a value for the weight for this new connection that is not equal to the preset limit that triggers our re-targeting (in the provided source code, it’s a nonzero value). Observe that for this to occur, our artificial neurons wire to the next layer sparsely, meaning that not all neurons from a layer are addressed by any neuron of the previous layer. We also take care to avoid having a neuron from one layer to target the same neuron of the next layer multiple times.

[0007] Once we have obtained our Current Input, we conjoin this to the end of the Input Queue and dequeue the oldest input from the beginning of the Input Queue. This is our short-term memory. We now seek to obtain an Output Unit. The Output Unit consists of an Action Sequence and a Parameter Sequence. After the Output Unit is obtained and any actions are performed, we address motivation with the Achieve State being recorded if a reward is available and with the Avoid State being recorded if a disincentive is available.

[0008] The Knowledge Bank format appears as follows, with the bits representing a given Action Sequence conjoined to the given Parameter Sequence to form a composite unit:
Input State A - Action Sequence 0 -> Location (Input State) X
Input State A - Action Sequence 1 -> Location (Input State) Y
Input State A - Action Sequence 2 -> Location (Input State) Z
Locations X, Y, and Z contain the inputs reached when Action Sequences 0, 1, and 2 were performed after Input State A, respectively.

[0009] This is a logical implication in the form of (JK->P) && (JL->Q) && (JM->R), which can be represented by a directed graph on which we perform breadth-first search, a linear-time operation. We repeat for all Achieve State(s) in the system and we are left with action/step pairs. We repeat for all Avoid State(s) in the system and we are again left with action/step pairs. We record the path of the shortest length among the Achieve State BFS paths and the path of the shortest length among the Avoid State BFS paths. When we retrieve from recall, the least significant sensor identification bit is used to distinguish between reading from the reward (Achieve) path and reading from the disincentive (Avoid) path.

[0010] To select the most appropriate action, we find action matches between the Achieve action/step pairs and the Avoid action/step pairs where the number of steps in the Avoid action/step pair is less than or equal to the number of steps in the matching Achieve action/step pairs. We eliminate these actions as options. We also eliminate all other Avoid actions from action/step pairs that don’t match any actions from the Achieve action/step pairs. If two or more Achieve States remain and are available from the current state, the one with the fewest intermediate states is selected. If there are multiple sequences leading to an Achieve State that are all tied for the fewest intermediate states, one is chosen at random. If no Achieve State action/step pairs are available, an action to perform is chosen at random from the remaining actions that have not been eliminated as possibilities. If no actions remain available, we select the action/step pair that results in the greatest number of steps before an Avoid State is reached. The output from this breadth-first search portion of the cycle is the Output Unit, which consists of the Output Recall Bit, the Action Sequence, and the Parameter Sequence.

[0011] One of the output bits is a recall bit where the AGI reads from its knowledge bank based on the portion of the output unit contained in the rest of the output unit (the Utility Sequence). For the AGI to perform tasks such as controlling robotics or outputting to a display terminal, there will be a portion of the Output Unit that contains the Utility Sequence. This Utility Sequence is then parsed so that the remainder of the Output Unit received from the 2CNF logic solver- the Parameter Sequence- is sent to the correct Output Target as identified by the Action Sequence from the solution of the 2CNF instance from the prior step of the cycle. The recall action accepts the Action Sequence and the Parameter Sequence from the Output Unit and uses that to address a location in the Knowledge Bank. The data from this location is fetched and sent into the input as the new Current Input. It is worth noting that the Knowledge Bank is updated with every single cycle with a location within the Knowledge Bank vectoring with an action to another location, possibly a new location, to reflect a dynamic world. If the recall bit is not set in the Output Unit, then the Parameter Sequence is sent to the Output Target addressed by the Action Sequence, and the action is performed according to the Parameter Sequence, and input comes from the current sensory source to begin the next cycle.

References

  1. Woo, Elaine (October 28, 2011). "John McCarthy dies at 84; the father of artificial intelligence". Los Angeles Times.
  2. Kaplan A, Haenlein M (2018), "Siri, Siri in my Hand, who's the Fairest in the Land? On the Interpretations, Illustrations and Implications of Artificial Intelligence", Business Horizons, 62: 15–25, doi:10.1016/j.bushor.2018.08.004, S2CID 158433736
  3. Crevier D (1993). AI: The Tumultuous Search for Artificial Intelligence. New York, NY: BasicBooks. ISBN 0-465-02997-3.
  4. Newquist HP (1994), The Brain Makers: Genius, Ego, And Greed in the Quest For Machines That Think, New York: Macmillan/SAMS, ISBN 978-0-9885937-1-8, OCLC 313139906
  5. Russell SJ, Norvig P (2021). Artificial Intelligence: A Modern Approach (4th ed.). Hoboken: Pearson. ISBN 978-0-13-461099-3. LCCN 20190474
  6. Marr B (20 March 2023). "Beyond The Hype: What You Really Need To Know About AI In 2023". Forbes. Retrieved 27 January 2024.
  7. Clark S (21 December 2023). "The Era of AI: 2023's Landmark Year". CMSWire.com. Retrieved 28 January 2024.
  8. Gates B (21 December 2023). "This year signaled the start of a new era". www.linkedin.com. Retrieved 28 January 2024.
  9. Lee A (23 January 2024). "UT Designates 2024 'The Year of AI'". UT News. Retrieved 28 January 2024.

来源:GitHub · github.com