게임인공지능 8주차 - Machine Learning, Python 기초
실습 환경 구축 : Python + Tensorflow
머신러닝 (Machine Learning)
명시적으로 프로그래밍을 하지 않고도 컴퓨터가 학습할 수 있는 능력을 갖게 하는 것
머신러닝의 사용 예
데이터 마이닝 : 클릭 기록, 의료 기록, 유전자 분석 등
작업으로 프로그래밍 할 수 없는 것들 :자율 주행, 얼굴 인식, 스팸 필터
개개인의 유저에게 최적화된 추천 알고리즘 : 아마존 (상품 추천), 넷플릭스 (영화 추천)
Explicit Programming의 한계 : 규칙이 많다 (Many rules)
지도 학습 (Surpervised learning)
- Traning set을 통해 학습
- Learning with laveled examples
비지도학습 (Unsupervised learning)
- Un-labeled data
- 구글 뉴스 분류 (grouping)
- Word clustering
강화 학습 (Reinforcement learning)
Atari 벽돌깨기 게임을 하는 Google DeepMind의 Deep Q-learning
https://youtu.be/V1eYniJ0Rnk?si=ODxIjCzPU3FlMXUQ
지도 학습 (Surpervised learning)
알고리즘에게 정확한 답의 데이터 세트를 준다는 데에서 유래
연속적인 값을 예측하는 문제인 '회귀문제(Regression Problem)'
머신러닝에서 적용되는 문제 유형 (예)
- Image labelling : learning from tagged images
- Email spam filter : learning from labeled (spam or ham) email
- Predicting exam score : learning from previous exam score and time spent
Training data : 모델 학습에 사용되는 데이터
Validation data : 학습을 할 때 튜닝이 필요한 parameter들을 최적화 하기 위해 사용
Test data : 학습된 모델을 검증하기 위해 사용
머신러닝 프로세스
- Data collection
- Feature selection
- Algorithm choice
- Training
- Evaluation
머신러닝 알고리즘의 정확도
- Supervised classification : unseen 데이터에 대한 정확도 (accuracy)
- Unsupervised classification : 군집화된 데이터에 대한 검증
- Internal evaluation : 같은 클러스터에 있는 데이터의 유사도는 높고,
다른 클러스터에 있는 데이터의 유사도는 낮은지에 대한 검증
- External evaluation : 정답(Gold standard)이라고 부를 수 있는 외부의 라벨을 이용하여 클러스터를 검증
- Training data : 모델 학습에 사용되는 데이터
- Validation data : 학습을 할 때 튜닝이 필요한 parameter들을 최적화하기 위해 사용
- Test data : 학습된 모델을 검증하기 위해 사용
파이썬
구글에서 만든 소프트웨어의 50% 이상이 파이썬
인스타그램, 드롭박스 등...
파이썬 언어의 특징
- Interpreter language supporting Object-oriented
- Dynamic data type determination
- Platform independent language
- Simple and easy
- High-level internal object data structure
- Automatic memory management
- Easy module-based coding
- A lot of libraries support
- Extending and Embedding
- Many supported tools : IDLE, Pycharm, Jupyter Notebook, Jupyter Lab
- Free
파이썬 환경 셋업
Welcome to Python.org
The official home of the Python Programming Language
www.python.org
Python & IDLE 설치
Step 1. Homepage 접속
Step 2. Python 다운로드
- Python 홈페이지에서 [Downloads]-[Windows] 메뉴를 차례대로 선택합니다.
- Stable Releases에서 Install 프로그램을 다운로드합니다.
- 다운로드 시 컴퓨터사양에 따라 32-bit용 또는 64-bit용 설치 파일 중 하나를 선택하여 다운로드합니다.
- 다운로드 한 Python installer를 실행하여 Python을 설치합니다.
Step 3. IDLE 프로그램을 실행합니다.
Step 4. Python 설치 확인
Visual Studio Code (다양한 프로그래밍언어를 지원함)
Step 1. Visual Studio Code 홈페이지 접속 : https://code.visualstudio.com/
Step 2. 프로그램 다운로드
- VS code 홈페이지에서 [Download for Windows] 버튼을 클릭합니다.
- 다운로드한 Setup 프로그램을 실행합니다.
Step 3. VSCode 프로그램을 실행합니다.
Step 4. VSCode에서 Python extension을 설치합니다.
Ctrl + Shift + P를 이용하여 인터프리터 지정 가능
Python 기초
for i in range(2) :
name = input ("What's your name ? ")
print(name)
a = 100
b = 5
c = a * b
print(c)
기초 문법
- 주석문 : #
- 블록 : ":"과 들여쓰기로 구분
- 치환문 : 이름 = 값
- 확장 치환문 : +=, -=, *=, /=
- 객체 치환 : x = [1, 2, 3]
- Data type : 숫자, 문자열
- 변수 : C/C++과 사용법이 비슷/ 변수 타입 선언할 필요 없음
- 사칙연산 : C/C++과 동일, 문자열에도 사용 가능, 서로 다른 타입의 연산은 사용 안됨
- 캐스팅 연산 : 형변환 연산
- 논리 연산 : and, or. not