[AI-003][입문] 정답·패턴·보상으로 배우는 세 가지 AI 학습 > IT 기술 공유

본문 바로가기
사이트 내 전체검색

IT 기술 공유

[AI-003][입문] 정답·패턴·보상으로 배우는 세 가지 AI 학습

페이지 정보

profile_image
작성자 기술팀장
댓글 0건 조회 241회 작성일 26-08-30 19:33

본문

[이번 수업]
기계학습이 데이터를 배우는 대표 방법인 지도학습, 비지도학습, 강화학습을 비교합니다. 같은 숫자를 보더라도 정답표가 있는지, 구조를 스스로 찾아야 하는지, 행동 뒤 보상을 받는지에 따라 문제가 달라집니다. 외부 패키지 없이 Python으로 세 방식의 핵심을 확인합니다.

[선수지식]
AI-001의 인공지능·기계학습·딥러닝 관계와 AI-002의 데이터·특징·라벨 개념을 알면 좋습니다. Python 3의 리스트와 반복문만 사용합니다.

[학습목표]
1. 세 학습 방식에 필요한 데이터와 결과를 구분합니다.
2. 분류, 군집, 보상 갱신의 작은 예제를 실행합니다.
3. 실제 문제에 맞는 방식을 고르는 질문을 만듭니다.

[핵심개념]
지도학습은 입력과 정답인 라벨을 함께 보고 둘의 관계를 배웁니다. 범주를 맞히는 분류와 숫자를 예측하는 회귀가 대표적입니다. 예를 들어 온도와 ‘낮음·높음’ 라벨로 새 온도의 범주를 예측할 수 있습니다.

비지도학습은 정답 라벨 없이 데이터의 구조를 찾습니다. 비슷한 항목을 묶는 군집과 중요한 축을 줄여 표현하는 차원 축소가 대표적입니다. 군집 번호는 사람이 붙인 정답이 아니라 알고리즘이 찾은 묶음이므로 목적에 맞는지 별도 해석이 필요합니다.

강화학습은 에이전트가 환경의 상태를 보고 행동한 뒤 보상을 받으며 정책, 즉 행동 선택 규칙을 개선합니다. 한 번의 큰 보상보다 여러 단계의 누적 보상이 중요할 수 있습니다. 실제 장비나 서비스가 아니라 안전한 시뮬레이션에서 먼저 학습·평가해야 합니다.

[따라하기]
아래 내용을 `learning_types.py`로 저장하세요. 세 부분은 개념을 보여 주는 축소 모형이며 완성된 AI 서비스는 아닙니다.

```python
# 1) 지도학습: 가장 가까운 라벨을 사용
labeled = [(1, "낮음"), (3, "낮음"), (8, "높음"), (10, "높음")]
target = 7
prediction = min(labeled, key=lambda row: abs(row[0] - target))[1]

# 2) 비지도학습: 두 중심으로 숫자를 군집화
values = [1, 2, 8, 9]
centers = [1.0, 9.0]
for _ in range(3):
    groups = [[], []]
    for value in values:
        index = min(range(2), key=lambda i: abs(value - centers[i]))
        groups[index].append(value)
    centers = [sum(group) / len(group) for group in groups]

# 3) 강화학습: 선택한 행동의 가치를 보상 쪽으로 갱신
q = {"기다리기": 0.2, "진행하기": 0.8}
action = max(q, key=q.get)
reward = 1.0
q[action] += 0.5 * (reward - q[action])

print("지도학습:", prediction)
print("비지도학습:", centers)
print("강화학습:", action, round(q[action], 1))
```

macOS/Linux는 `python3 learning_types.py`, Windows PowerShell은 `python learning_types.py`로 실행합니다. 예상 결과는 차례로 `높음`, `[1.5, 8.5]`, `진행하기 0.9`입니다. 지도 예제에는 라벨이 있고, 군집 예제에는 라벨이 없으며, 강화 예제는 받은 보상으로 행동 가치를 0.8에서 0.9로 조금 바꿉니다.

[흔한 실수]
알고리즘 이름부터 정하지 말고 얻을 수 있는 피드백부터 확인하세요. 라벨이 부정확하면 지도학습도 그 오류를 배웁니다. 군집을 실제 고객 유형 같은 확정 사실로 단정하면 안 됩니다. 강화학습에서는 원하는 행동을 정확히 표현하지 못한 보상이 편법을 유도할 수 있습니다. 학습 데이터를 평가에도 그대로 사용하면 실제보다 좋은 결과가 나오는 데이터 누수가 생깁니다.

[보안 주의]
이름·이메일 같은 개인정보는 목적과 보관 기간을 정하고 최소한만 사용하세요. 학습용과 최종 평가용 데이터는 먼저 분리하고, 전처리도 학습 데이터 기준으로 맞춰 누수를 막습니다. 의료·채용·금융처럼 영향이 큰 판단은 정확도 숫자 하나로 자동화하지 말고 편향, 설명 가능성, 실패 시 대응과 사람의 검토를 함께 설계합니다. 강화학습 실험은 본인 소유의 로컬·격리 환경에서 하고 실제 계정·장비를 직접 제어하지 않습니다.

[직접 해볼 과제]
`target`을 4로 바꿔 지도학습 결과를 예상한 뒤 실행하세요. 이어서 군집 데이터에 5를 추가하고, 강화학습의 보상을 0으로 바꿔 세 결과가 왜 달라지는지 한 문장씩 기록합니다.

[확인문제]
1. 라벨이 있는 분류 문제에는 어떤 학습 방식이 맞나요?
2. 비지도학습의 군집을 정답으로 단정하면 안 되는 이유는 무엇인가요?
3. 강화학습에서 보상 설계가 중요한 이유는 무엇인가요?

[다음 학습]
전체 순환의 다음 수업은 DATA-003 ‘데이터 정리와 결측치·이상치’입니다. 이어서 AI-004 ‘학습·검증·테스트와 과적합’에서 모델 평가를 더 자세히 배웁니다.

[공식 참고 자료]
scikit-learn 지도학습 안내: https://scikit-learn.org/stable/supervised_learning.html
scikit-learn 비지도학습 안내: https://scikit-learn.org/stable/unsupervised_learning.html
Gymnasium 강화학습 기본 사용법: https://gymnasium.farama.org/introduction/basic_usage/
scikit-learn 데이터 누수 주의: https://scikit-learn.org/stable/common_pitfalls.html
NIST AI 위험관리 프레임워크: https://www.nist.gov/itl/ai-risk-management-framework

댓글목록

등록된 댓글이 없습니다.

회원로그인

회원가입

사이트 정보

회사명 : 회사명 / 대표 : 대표자명
주소 : OO도 OO시 OO구 OO동 123-45
사업자 등록번호 : 123-45-67890
전화 : 02-123-4567 팩스 : 02-123-4568
통신판매업신고번호 : 제 OO구 - 123호
개인정보관리책임자 : 정보책임자명

접속자집계

오늘
2,013
어제
5,103
최대
16,772
전체
773,067
Copyright © 소유하신 도메인. All rights reserved.