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