1강
인공지능 개요
1. 생각하는 컴퓨터
컴퓨터가 생각할 수 있는가?
- 튜링 테스트: 인간처럼 대화하면 컴퓨터가 지능을 가진 것으로 간주
- 체스 대결 (딥 블루 vs 카스파로프): 컴퓨터가 인간 챔피언을 이김 (1997)
- 퀴즈 대결 (Watson vs 인간 챔피언): 자연어 이해와 정보처리로 승리 (2011)
- 바둑 대결 (AlphaGo vs 이세돌): 딥러닝+강화학습 기반으로 인간을 이김 (2016)
2. 생성형 인공지능 (Generative AI)
- 정의: 학습된 데이터를 바탕으로 새로운 콘텐츠 생성
- 사례
: ChatGPT, Copilot (텍스트 생성)
DALL·E, Midjourney (이미지 생성)
Sora (비디오 생성)
- 문제점
: 편향, 사실 왜곡, 책임 소재 불분명, 설명 부족(블랙박스)
3. 인공지능 시스템의 주요 능력
- 학습, 예측, 인지, 자연어 처리, 창조, 감성지능 등
4. 약한 AI vs 강한 AI
- 약한 AI(Weak AI): 특정 작업만 가능 (현재 대부분의 AI)
- 강한 AI(AGI): 인간처럼 모든 지적 활동 가능 (이론적 개념)
5. 인공지능의 역사
초기 태동 (1956년 다트머스 회의)
- “기계도 학습과 추론이 가능하다”는 주장을 기반으로 시작
- 기호처리, 전문가 시스템, 문제풀이 기계 등 등장
- 전문가 시스템
- DENDRAL: 화학 분석
- MYCIN: 감염 질병 진단
6. 인공지능의 겨울(AI Winter)
- 1970~90년대: 성능/기술 한계로 인한 관심 하락
- XOR 문제(민스키) 등 신경망의 한계 지적
7. 재도약
머신러닝, 딥러닝의 발전
- LLM(ChatGPT 등) + GPU 발전
- 웹, SNS로 풍부한 학습 데이터 확보
지능의 정의
- 문제 해결 능력, 적응력, 인지력, 학습력 등
- 지능은 규칙 유추, 패턴 인식, 언어 이해 등에 활용됨
9. 인공지능 접근 방식
접근 방식 설명
계산심리학 접근 인간처럼 행동하는 시스템 개발
기계지능 접근 인간이 하던 일을 컴퓨터가 하도록
기호처리 AI(Symbolic) 규칙 기반, 논리적 추론
확률/통계 기반 불확실성 있는 문제 해결 (베이즈, 결정트리 등)
연결주의(Connectionism) 신경망 기반 딥러닝
10. 머신러닝 개요
- 시스템이 데이터로부터 학습하여 스스로 성능 향상
- 지도학습, 비지도학습, 강화학습 포함
2강
상태공간 탐색에 의한 문제풀이
1. 문제풀이의 개념
- 직관적으로 해결할 수 없는 문제에 대해 해법을 찾는 과정
- 전략:
- 경험적 방법: 시행착오, 통찰
- 알고리즘: 정해진 절차
예시: 8-퍼즐 문제
- 초기 상태, 목표 상태 정의
- 시행착오를 통해 조각을 이동하며 목표 상태에 도달
2. 문제의 표현
상태(State)
- 퍼즐 조각의 배치 등, 현재의 문제 상황을 나타냄
상태묘사(State Description)
- 상태를 컴퓨터가 처리할 수 있는 형태로 표현 (배열, 리스트 등)
연산자(Operator)
- 한 상태를 다른 상태로 변화시키는 수단
- 예: 퍼즐에서 빈 칸을 상하좌우로 이동
상태공간(State Space)
- 초기 상태로부터 연산자를 적용해 도달 가능한 모든 상태들의 집합
- 그래프 형태로 표현
3. 상태공간 탐색에 의한 문제풀이
- 초기 상태 → 연산자 반복 → 목표 상태 도달
- 탐색 알고리즘은 노드를 선택, 확장, 목표 검사, 반복 수행
탐색 과정
- OPEN 리스트: 앞으로 확장할 노드들 저장
- CLOSED 리스트: 이미 확장된 노드들 저장
4. 탐색 방법의 분류
맹목적 탐색 (Blind Search)
경험적 탐색 (Heuristic Search)
- 목표에 가까울 것으로 예상되는 노드를 우선 탐색
| 목적 | 정보 사용 | 탐색 방법 |
|---|
| 임의 경로 탐색 | 무 | DFS, BFS |
| 최적 경로 탐색 | 무 | 균일비용 탐색 |
| 임의 경로 탐색 | 유 | 언덕오르기, 모의 담금질 |
| 최적 경로 탐색 | 유 | 최적우선 탐색, A* 탐색 |
3. 깊이우선 탐색 (Depth-First Search)
개요
- 가장 깊이 있는 노드부터 확장
- OPEN: 스택 구조
- 목표에 도달하지 못하면 다른 경로로 백트래킹
- 깊이 제한 가능
알고리즘
- 출발 노드를 OPEN에 삽입
- OPEN이 비어있지 않으면 루프
- OPEN의 앞 노드를 꺼내 확장
- 목표 도달 시 성공, 아니면 후계노드를 OPEN 앞에 삽입
- 반복
4. 너비우선 탐색 (Breadth-First Search)
개요
- 트리의 레벨 순서대로 확장
- OPEN: 큐 구조
- 해가 존재하면 최단 경로 보장
알고리즘
- 출발 노드를 OPEN에 삽입
- OPEN이 비어있지 않으면 루프
- OPEN의 앞 노드를 꺼내 확장
- 목표 도달 시 성공, 아니면 후계노드를 OPEN 뒤에 삽입
- 반복
개요
- 이동에 비용이 있는 경우 사용
- 퍼즐 조각 이동, 지도상의 거리 등
- 출발 노드로부터의 누적 비용
g(n)이 가장 적은 노드를 먼저 확장
알고리즘
- 출발 노드에
g=0을 부여하고 OPEN에 삽입
- OPEN에서
g가 가장 작은 노드를 꺼냄
- 목표 노드이면 종료, 아니면 확장
- 생성된 후계 노드에 대해 기존 노드와 비용 비교
- OPEN 리스트를
g 오름차순 정렬
- 반복
예시: 도시 간 최단 경로
- 도시 a → g까지의 최단 거리 경로 탐색
- 그래프와 거리 정보 기반으로 균일비용 탐색 적용
정리
- 상태묘사: 문제의 상태를 컴퓨터가 이해할 수 있도록 표현
- 연산자: 상태를 변화시키는 도구
- 상태공간: 모든 가능한 상태들의 집합 (그래프 형태)
- DFS: 스택, 깊이 우선
- BFS: 큐, 너비 우선, 최단 경로 보장
- UCS: 우선순위 큐, 최소 비용 경로 보장