Last active
November 12, 2025 10:16
-
-
Save ruvnet/5227498ee0f072bd5c304773a1ef9b08 to your computer and use it in GitHub Desktop.
Revisions
-
ruvnet revised this gist
May 18, 2024 . 1 changed file with 99 additions and 74 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -1,74 +1,99 @@ # NEUMANN: Differentiable Logic Programs for Abstract Visual Reasoning ## Message Passing Given node features \( h \) and neighboring nodes \( N(i) \), the new feature for a node \( i \) is computed as: $$ h_i' = \text{ReLU}\left(\sum_{j \in N(i)} W_m h_j + b_m\right) $$ ## Program Induction Loss The loss function for program induction over dataset \( D \) with target values \( y \) and predictions \( \hat{y} \) is: $$ L(\theta) = \sum_{(x, y) \in D} (y - f(x, \theta))^2 $$ ## Gradient Descent Update Parameters \( \theta \) are updated using gradient descent: $$ \theta \leftarrow \theta - \eta \frac{\partial L}{\partial \theta} $$ # Scheduled Policy Optimization for Natural Language Communication ## Policy Gradient The gradient of the policy \( \pi \) with respect to trajectory \( \tau \) and reward function \( R \) is: $$ \nabla_\theta J(\theta) = \mathbb{E}_{\tau \sim \pi_\theta} \left[ \sum_{t=0}^T \nabla_\theta \log \pi_\theta(a_t | s_t) R(\tau) \right] $$ ## Scheduled Learning Loss The combined loss function incorporating both Learning from Demonstrations (LfD) and Reinforcement Learning (RL) is: $$ L = \alpha L_{LfD} + (1 - \alpha) L_{RL} $$ ## Gradient Descent Update Parameters \( \theta \) are updated using gradient descent: $$ \theta \leftarrow \theta - \eta \frac{\partial L}{\partial \theta} $$ # LEFT: Logic-Enhanced Foundation Model ## Logic Execution The result of applying the logic program \( P \) to features \( x \) is: $$ f(P, x) = \sum_{i} P_i x_i $$ ## Loss Function The loss function for dataset \( D \) with target values \( y \) and predictions \( \hat{y} \) is: $$ L(\theta) = \sum_{i=1}^n (y_i - f(P_i, x_i))^2 $$ ## Gradient Descent Update Parameters \( \theta \) are updated using gradient descent: $$ \theta \leftarrow \theta - \eta \frac{\partial L}{\partial \theta} $$ # ALMARL: Attention-based LSTM and Multi-Agent Reinforcement Learning ## Attention Mechanism The attention weights \( \alpha \) for scores \( s \) are computed as: $$ \alpha_i = \frac{\exp(s_i)}{\sum_{j} \exp(s_j)} $$ ## Policy Gradient The gradient of the policy \( \pi \) with respect to trajectory \( \tau \) and reward function \( R \) is: $$ \nabla_\theta J(\theta) = \mathbb{E}_{\tau \sim \pi_\theta} \left[ \sum_{t=0}^T \nabla_\theta \log \pi_\theta(a_t | s_t) R(\tau) \right] $$ ## Gradient Descent Update Parameters \( \theta \) are updated using gradient descent: $$ \theta \leftarrow \theta + \eta \nabla_\theta J(\theta) $$ # DeepPath: Reinforcement Learning for Knowledge Graph Reasoning ## Q-Learning Update The Q-value update for state \( s \), action \( a \), reward \( r \), and next state \( s' \) is: $$ Q(s, a) \leftarrow Q(s, a) + \alpha \left( r + \gamma \max_{a'} Q(s', a') - Q(s, a) \right) $$ ## Policy The policy \( \pi \) for state \( s \) using softmax is: $$ \pi(a|s) = \frac{\exp(Q(s, a))}{\sum_{a'} \exp(Q(s, a'))} $$ ## Gradient Descent Update Parameters \( \theta \) are updated using gradient descent (if applicable): $$ \theta \leftarrow \theta - \eta \frac{\partial L}{\partial \theta} $$ -
ruvnet revised this gist
May 18, 2024 . 1 changed file with 74 additions and 0 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,74 @@ ### 1. NEUMANN: Differentiable Logic Programs for Abstract Visual Reasoning #### Mathematical Formulation 1. **Message Passing**: Given node features \( h \) and neighboring nodes \( N(i) \), the new feature for a node \( i \) is computed as: \[ h_i' = \text{ReLU}\left(\sum_{j \in N(i)} W_m h_j + b_m\right) \] 2. **Program Induction Loss**: The loss function for program induction over dataset \( D \) with target values \( y \) and predictions \( \hat{y} \) is: \[ L(\theta) = \sum_{(x, y) \in D} (y - f(x, \theta))^2 \] 3. **Gradient Descent Update**: Parameters \( \theta \) are updated using gradient descent: \[ \theta \leftarrow \theta - \eta \frac{\partial L}{\partial \theta} \] ### 2. Scheduled Policy Optimization for Natural Language Communication #### Mathematical Formulation 1. **Policy Gradient**: The gradient of the policy \( \pi \) with respect to trajectory \( \tau \) and reward function \( R \) is: \[ \nabla_\theta J(\theta) = \mathbb{E}_{\tau \sim \pi_\theta} \left[ \sum_{t=0}^T \nabla_\theta \log \pi_\theta(a_t | s_t) R(\tau) \right] \] 2. **Scheduled Learning Loss**: The combined loss function incorporating both Learning from Demonstrations (LfD) and Reinforcement Learning (RL) is: \[ L = \alpha L_{LfD} + (1 - \alpha) L_{RL} \] 3. **Gradient Descent Update**: Parameters \( \theta \) are updated using gradient descent: \[ \theta \leftarrow \theta - \eta \frac{\partial L}{\partial \theta} \] ### 3. LEFT: Logic-Enhanced Foundation Model #### Mathematical Formulation 1. **Logic Execution**: The result of applying the logic program \( P \) to features \( x \) is: \[ f(P, x) = \sum_{i} P_i x_i \] 2. **Loss Function**: The loss function for dataset \( D \) with target values \( y \) and predictions \( \hat{y} \) is: \[ L(\theta) = \sum_{i=1}^n (y_i - f(P_i, x_i))^2 \] 3. **Gradient Descent Update**: Parameters \( \theta \) are updated using gradient descent: \[ \theta \leftarrow \theta - \eta \frac{\partial L}{\partial \theta} \] ### 4. ALMARL: Attention-based LSTM and Multi-Agent Reinforcement Learning #### Mathematical Formulation 1. **Attention Mechanism**: The attention weights \( \alpha \) for scores \( s \) are computed as: \[ \alpha_i = \frac{\exp(s_i)}{\sum_{j} \exp(s_j)} \] 2. **Policy Gradient**: The gradient of the policy \( \pi \) with respect to trajectory \( \tau \) and reward function \( R \) is: \[ \nabla_\theta J(\theta) = \mathbb{E}_{\tau \sim \pi_\theta} \left[ \sum_{t=0}^T \nabla_\theta \log \pi_\theta(a_t | s_t) R(\tau) \right] \] 3. **Gradient Descent Update**: Parameters \( \theta \) are updated using gradient descent: \[ \theta \leftarrow \theta + \eta \nabla_\theta J(\theta) \] ### 5. DeepPath: Reinforcement Learning for Knowledge Graph Reasoning #### Mathematical Formulation 1. **Q-Learning Update**: The Q-value update for state \( s \), action \( a \), reward \( r \), and next state \( s' \) is: \[ Q(s, a) \leftarrow Q(s, a) + \alpha \left( r + \gamma \max_{a'} Q(s', a') - Q(s, a) \right) \] 2. **Policy**: The policy \( \pi \) for state \( s \) using softmax is: \[ \pi(a|s) = \frac{\exp(Q(s, a))}{\sum_{a'} \exp(Q(s, a'))} \] 3. **Gradient Descent Update**: Parameters \( \theta \) are updated using gradient descent (if applicable): \[ \theta \leftarrow \theta - \eta \frac{\partial L}{\partial \theta} \] ### Summary of Each Algorithm These mathematical formulations capture the essence of each algorithm's operations, leveraging calculus for optimization, learning, and reasoning: - **NEUMANN** applies differentiable logic to visual reasoning using message passing and gradient descent for parameter updates. - **Scheduled Policy Optimization** combines policy gradients with scheduled learning for optimizing natural language communication. - **LEFT** integrates logic-based program execution with deep learning for enhanced reasoning in text and document analysis. - **ALMARL** uses attention mechanisms and multi-agent reinforcement learning for coordination and policy optimization. - **DeepPath** employs Q-learning for reasoning over knowledge graphs, enhancing information retrieval and recommendation systems. -
ruvnet created this gist
May 18, 2024 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,350 @@ ### Introduction This document provides a comprehensive overview of five advanced algorithms, detailing their technical implementations using Python and Pydantic for data validation, as well as asynchronous programming for efficiency. Each algorithm is also explored in terms of practical applications across various domains. The algorithms covered include: 1. **NEUMANN: Differentiable Logic Programs for Abstract Visual Reasoning** - This algorithm integrates differentiable logic programming with neural networks, enabling advanced visual reasoning and logical deduction. It is particularly useful in computer vision, robotics, and medical imaging. 2. **Scheduled Policy Optimization for Natural Language Communication** - This algorithm optimizes policies for natural language communication, enhancing dialogue systems, customer support automation, and machine translation. It leverages policy gradient methods and scheduled learning to improve interaction quality and efficiency. 3. **LEFT: Logic-Enhanced Foundation Model** - This algorithm combines deep learning with logical reasoning, improving tasks such as text classification, sentiment analysis, and legal document analysis. It provides a robust framework for applications in NLP, legal tech, and educational systems. 4. **ALMARL: Attention-based LSTM and Multi-Agent Reinforcement Learning** - This algorithm enhances multi-agent coordination using attention mechanisms and LSTM networks. It is applicable in autonomous driving, game AI, and supply chain optimization, improving strategic decision-making and agent cooperation. 5. **DeepPath: Reinforcement Learning for Knowledge Graph Reasoning** - This algorithm applies Q-learning to knowledge graphs, facilitating advanced reasoning and information retrieval. It is valuable in recommendation systems, semantic search, and healthcare for discovering relationships within large datasets. Each section includes installation instructions, data model definitions, core algorithmic logic, and practical application examples. Additionally, verbose output is integrated into the implementations to provide detailed logs at key steps, serving as proof of the algorithms' operations and aiding in debugging and analysis. ## 1. NEUMANN: Differentiable Logic Programs for Abstract Visual Reasoning ### Implementation Instructions #### 1. Install Required Libraries ```bash pip install torch pydantic ``` #### 2. Define Data Models with Pydantic ```python from pydantic import BaseModel from typing import List class Node(BaseModel): id: int neighbors: List[int] h: float ``` #### 3. Implement Message Passing and Program Induction ```python import torch import torch.nn.functional as F class NEUMANN: def __init__(self, input_dim, hidden_dim): self.W_m = torch.nn.Parameter(torch.randn(input_dim, hidden_dim)) self.b_m = torch.nn.Parameter(torch.zeros(hidden_dim)) self.theta = torch.nn.Parameter(torch.randn(hidden_dim)) async def message_passing(self, h, neighbors): new_h = F.relu(torch.sum(self.W_m * h[neighbors] + self.b_m, dim=0)) print(f"Message passing: h = {h}, neighbors = {neighbors}, new_h = {new_h}") return new_h async def program_induction_loss(self, D, f): loss = 0 for x, y in D: prediction = f(x, self.theta) loss += (y - prediction) ** 2 print(f"Induction loss: x = {x}, y = {y}, prediction = {prediction}, loss = {loss}") return loss async def train(self, graph, D, f, num_epochs): for epoch in range(num_epochs): print(f"Epoch {epoch+1}/{num_epochs}") for node in graph: node.h = await self.message_passing(node.h, node.neighbors) loss = await self.program_induction_loss(D, f) loss.backward() with torch.no_grad(): for param in [self.W_m, self.b_m, self.theta]: param -= 0.01 * param.grad param.grad.zero_() print(f"End of epoch {epoch+1}: loss = {loss.item()}") async def execute_logic(self, f, x): result = f(x, self.theta) print(f"Logic execution: x = {x}, result = {result}") return result ``` ### Practical Applications - **Computer Vision**: Used in image classification, object detection, and scene understanding, enabling systems to interpret visual data through logical reasoning. - **Robotics**: Helps robots make sense of their surroundings and perform complex tasks that require both visual input and logical deduction. - **Medical Imaging**: Assists in interpreting medical images by combining pattern recognition with logical rules, aiding in diagnostics and treatment planning. ## 2. Scheduled Policy Optimization for Natural Language Communication ### Implementation Instructions #### 1. Install Required Libraries ```bash pip install torch pydantic ``` #### 2. Define Data Models with Pydantic ```python from pydantic import BaseModel from typing import List class Trajectory(BaseModel): states: List[int] actions: List[int] rewards: List[float] ``` #### 3. Implement Policy Gradient and Scheduled Learning ```python import torch class ScheduledPolicyOptimization: def __init__(self, policy, α): self.policy = policy self.α = α async def policy_gradient(self, τ, R): gradients = [torch.autograd.grad(torch.log(self.policy(a_t | s_t)) * R(τ), self.policy.parameters()) for s_t, a_t in zip(τ.states, τ.actions)] print(f"Policy gradient: τ = {τ}, R = {R}, gradients = {gradients}") return sum(gradients) async def scheduled_learning_loss(self, LfD, RL): loss = self.α * LfD + (1 - self.α) * RL print(f"Scheduled learning loss: LfD = {LfD}, RL = {RL}, loss = {loss}") return loss async def train(self, environment, num_epochs): for epoch in range(num_epochs): print(f"Epoch {epoch+1}/{num_epochs}") τ = environment.sample_trajectory(self.policy) LfD = environment.compute_LfD_loss(τ) RL = environment.compute_RL_loss(τ) loss = await self.scheduled_learning_loss(LfD, RL) loss.backward() with torch.no_grad(): for param in self.policy.parameters(): param -= 0.01 * param.grad param.grad.zero_() print(f"End of epoch {epoch+1}: loss = {loss.item()}") async def execute_logic(self, state): with torch.no_grad(): action = torch.argmax(self.policy(state)).item() print(f"Logic execution: state = {state}, action = {action}") return action ``` ### Practical Applications - **Dialogue Systems**: Enhances chatbots and virtual assistants, improving their ability to learn from interactions and provide better conversational experiences. - **Customer Support**: Optimizes automated customer service systems to handle diverse queries efficiently. - **Language Translation**: Improves machine translation systems by refining translation policies based on user feedback and linguistic rules. ## 3. LEFT: Logic-Enhanced Foundation Model ### Implementation Instructions #### 1. Install Required Libraries ```bash pip install torch pydantic ``` #### 2. Define Data Models with Pydantic ```python from pydantic import BaseModel from typing import List class DataSample(BaseModel): label: float features: List[float] ``` #### 3. Implement Logic-Based Program Execution ```python import torch class LEFT: def __init__(self, P, D): self.P = P self.D = D self.theta = torch.nn.Parameter(torch.randn(len(D))) async def execute(self, P, D): result = torch.tensor([sum(P * torch.tensor(D.features))]) print(f"Logic execution: P = {P}, D = {D.features}, result = {result}") return result async def loss_function(self, D): loss = 0 for i in range(len(D)): y = D[i].label prediction = await self.execute(self.P[i], D[i]) loss += (y - prediction) ** 2 print(f"Loss function: y = {y}, prediction = {prediction}, loss = {loss}") return loss async def train(self, num_epochs): for epoch in range(num_epochs): print(f"Epoch {epoch+1}/{num_epochs}") loss = await self.loss_function(self.D) loss.backward() with torch.no_grad(): self.theta -= 0.01 * self.theta.grad self.theta.grad.zero_() print(f"End of epoch {epoch+1}: loss = {loss.item()}") async def execute_logic(self, data_sample): result = await self.execute(self.P, data_sample) print(f"Logic execution: data_sample = {data_sample}, result = {result}") return result ``` ### Practical Applications - **Natural Language Processing (NLP)**: Enhances tasks like text classification, sentiment analysis, and information extraction by integrating logical reasoning with deep learning. - **Legal Tech**: Assists in legal document analysis and contract review by applying logical rules to understand and classify legal language. - **Education**: Improves intelligent tutoring systems by combining logical reasoning with educational content for personalized learning experiences. ## 4. ALMARL: Attention-based LSTM and Multi-Agent Reinforcement Learning ### Implementation Instructions #### 1. Install Required Libraries ```bash pip install torch pydantic ``` #### 2. Define Data Models with Pydantic ```python from pydantic import BaseModel from typing import List class AgentState(BaseModel): id: int state: List[float] action: int reward: float ``` #### 3. Implement Attention Mechanism and Policy Update ```python import torch class ALMARL: def __init__(self, policy, η): self.policy = policy self.η = η async def attention(self, h, scores): α = torch.exp(scores) / torch.sum(torch.exp(scores)) print(f"Attention: h = {h}, scores = {scores}, α = {α}") return α async def policy_update(self, τ, R): gradients = [torch.autograd.grad(torch.log(self.policy(a_t | s_t)) * R(τ), self.policy.parameters()) for s_t, a_t in zip(τ.states, τ.actions)] print(f"Policy update: τ = {τ}, R = {R}, gradients = {gradients}") gradient = sum(gradients) with torch.no_grad(): for param in self.policy.parameters(): param += self.η * gradient param.grad.zero_() async def train(self, environment, num_epochs): for epoch in range(num_epochs): print(f"Epoch {epoch+1}/{num_epochs}") τ = environment.sample_trajectory(self.policy) scores = environment.compute_attention_scores(τ) α = await self.attention(τ, scores) await self.policy_update(τ, environment.compute_rewards(τ)) print(f"End of epoch {epoch+1}") async def execute_logic(self, state): with torch.no_grad(): action = torch.argmax(self.policy(state)).item() print(f"Logic execution: state = {state}, action = {action}") return action ``` ### Practical Applications - **Multi-Agent Systems**: Enhances coordination and cooperation among multiple agents in scenarios like autonomous driving, where vehicles need to interact intelligently. - **Game AI**: Improves the strategic capabilities of NPCs in video games, enabling them to learn and adapt to player behavior. - **Supply Chain Optimization**: Optimizes logistics and supply chain operations by coordinating multiple agents (e.g., warehouses, delivery trucks) for improved efficiency. ## 5. DeepPath: Reinforcement Learning for Knowledge Graph Reasoning ### Implementation Instructions #### 1. Install Required Libraries ```bash pip install torch pydantic ``` #### 2. Define Data Models with Pydantic ```python from pydantic import BaseModel class StateAction(BaseModel): state: int action: int reward: float next_state: int ``` #### 3. Implement Q-Learning and Policy ```python import torch class DeepPath: def __init__(self, num_states, num_actions, α, γ): self.Q = torch.zeros(num_states, num_actions) self.α = α self.γ = γ async def q_learning_update(self, s, a, r, s_next): self.Q[s, a] += self.α * (r + self.γ * torch.max(self.Q[s_next]) - self.Q[s, a]) print(f"Q-learning update: s = {s}, a = {a}, r = {r}, s_next = {s_next}, Q = {self.Q}") async def policy(self, s): action_probs = torch.softmax(self.Q[s], dim=0) print(f"Policy: s = {s}, action_probs = {action_probs}") return action_probs async def train(self, environment, num_epochs): for epoch in range(num_epochs): print(f"Epoch {epoch+1}/{num_epochs}") s = environment.reset() done = False while not done: a = await self.policy(s) s_next, r, done = environment.step(a) await self.q_learning_update(s, a, r, s_next) s = s_next print(f"End of epoch {epoch+1}") async def execute_logic(self, state): action_probs = await self.policy(state) action = torch.argmax(action_probs).item() print(f"Logic execution: state = {state}, action = {action}") return action ``` ### Practical Applications - **Recommendation Systems**: Enhances personalized recommendations by reasoning over knowledge graphs to understand user preferences and item relationships. - **Semantic Search**: Improves search engines by enabling them to understand and reason over semantic relationships between entities, providing more accurate search results. - **Healthcare**: Assists in medical knowledge discovery by reasoning over biomedical knowledge graphs to find connections between diseases, treatments, and genetic factors. --- These updated implementations include detailed logging at key steps in the execution process, providing verbose output that can be used as proof of the algorithms' operations.