Overview

Types of AI

Explore narrow AI, general AI, and the spectrum from rule-based to learning systems.

Narrow AI vs General AI

Narrow AI (ANI - Artificial Narrow Intelligence)

  • Designed for one specific task
  • All current AI systems are narrow AI
  • Examples: AlphaGo (chess only), GPT (language only), image classifiers

Artificial General Intelligence (AGI)

  • Hypothetical AI with human-level general intelligence
  • Can reason across any domain
  • Does not exist yet — ongoing research

Artificial Superintelligence (ASI)

  • Hypothetical AI that surpasses human intelligence
  • Purely speculative

Types by Learning Approach

  • Rule-based: Explicit if/then rules (chess programs of the 80s)
  • Statistical ML: Learn patterns from data
  • Deep Learning: Multi-layer neural networks
  • Reinforcement Learning: Learn from trial and error
  • Foundation Models / LLMs: Large-scale pre-training

Symbolic vs Connectionist AI

  • Symbolic (Good Old-Fashioned AI): Logic, rules, reasoning
  • Connectionist: Neural networks, pattern matching
  • Hybrid: Combining both (modern trend)

Example

python
# Comparing AI approaches for the same problem

# 1. Symbolic AI - explicit rules
def symbolic_sentiment(text):
    positive_words = {'great', 'excellent', 'amazing', 'love', 'fantastic', 'good'}
    negative_words = {'terrible', 'awful', 'hate', 'bad', 'horrible', 'poor'}

    words = set(text.lower().split())
    pos_count = len(words & positive_words)
    neg_count = len(words & negative_words)

    if pos_count > neg_count: return 'positive'
    if neg_count > pos_count: return 'negative'
    return 'neutral'

# 2. Statistical ML
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.linear_model import LogisticRegression

train_texts = [
    "Great product, love it!", "Terrible quality, hate it",
    "Amazing experience!", "Awful service",
    "Really good value", "Poor customer support"
]
train_labels = [1, 0, 1, 0, 1, 0]  # 1=positive, 0=negative

vectorizer = TfidfVectorizer()
X = vectorizer.fit_transform(train_texts)

ml_classifier = LogisticRegression()
ml_classifier.fit(X, train_labels)

# Test
test_text = "Excellent product!"
test_vec = vectorizer.transform([test_text])
ml_pred = ml_classifier.predict(test_vec)[0]

print(f"Symbolic: {symbolic_sentiment(test_text)}")
print(f"ML: {'positive' if ml_pred == 1 else 'negative'}")

# 3. Modern LLM (using API)
# response = anthropic.messages.create(
#     model="claude-3-haiku-20240307",
#     messages=[{"role": "user", "content": f"Is this positive or negative? '{test_text}'"}]
# )
# print(f"LLM: {response.content[0].text}")
Try it yourself — PYTHON