[WIP] Translate assignments and quizzes to Korean (#151)

* Translate 1.1 (Intro to ML) to Korean

* Translate 1.2 (History of ML) to Korean

* Translate 1.3 (Fairness) to Korean

* Translate 1.4 (Techniques of ML) to Korean

* Translate 2.1 (Tools) to Korean

* Translate 2.2 (Data) to Korean

* Translate 2.3 (Linear) to Korean

* Translate 2.4 (Logistic) to Korean

* Translate 3.1 (Web App) to Korean

* Translate 4.1 (Intro to Classification) to Korean

* Translate 4.2 (Classifiers 1) to Korean

* Translate 4.3 (Classifiers 2) to Korean

* Translate assignment 4.4 (Applied) to Korean

* Translate assignment 5.1 (Visualize) to Korean

* Translate assignment 5.2 (K-Means) to Korean

* Translate assignment 6.1 (Intro to NLP) to Korean

* Translate assignment 6.2 (Tasks) to Korean

* Fix minor typo in assignment 6.2 (Tasks) Korean translation

* Translate assignment 6.3 (Translation Sentiment) to Korean

* Translate assignment 6.4 (Hotel Reviews 1) to Korean

* Translate assignment 6.5 (Hotel Reviews 2) to Korean

* Translate assignment 7.1 (Intro to Time Series) to Korean

* Remove English title from assignment 7.1 (Intro to Time Series) in Korean

* Translate assignment 7.2 (ARIMA) to Korean

* Translate 8.1 (Q-Learning) to Korean

* Translate assignment 8.2 (Gym) to Korean

* Translate assignment 9.1 (Applications) to Korean
pull/375/head
Ian Park 3 years ago committed by GitHub
parent 12ac4bc780
commit d516b3c97a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -0,0 +1,9 @@
# 시작해 봅시다
## 설명
이 미채점 과제에서는 파이썬(Python)을 복습하고 Python 실행 환경 설정 및 노트북(Jupyter Notebook) 실행 방법까지 숙지해 보시길 바랍니다.
다음 [Python Learning Path](https://docs.microsoft.com/learn/paths/python-language/?WT.mc_id=academic-15963-cxa)를 이수하시고, 아래 Python 입문 강좌를 통해 Python 설치 및 실행 환경을 설정해 보세요:
https://www.youtube.com/playlist?list=PLlrxD0HtieHhS8VzuMCfQD4uJ9yne1mE6

@ -0,0 +1,11 @@
# 타임라인을 만들어 봅시다
## 설명
이 [저장소(repository)](https://github.com/Digital-Humanities-Toolkit/timeline-builder)를 사용해 알고리즘, 수학, 통계, 인공지능 또는 머신러닝 중 한 가지 이상의 연혁사를 조합하여 타임라인을 만들어 보세요. 한 명의 인물 또는 한 가지 아이디어를 집중적으로 다루셔도 되고, 여러 세기에 걸친 긴 연혁사를 다루시는 것도 좋습니다. 각 사건과 관련된 멀티미디어도 타임라인에 추가해 보시기 바랍니다.
## 평가기준표
| 평가기준 | 모범 | 적절 | 향상 필요 |
| -------- | ----------------------------------------- | -------------------- | --------------------------------- |
| | 깃허브(GitHub) 페이지에 완성된 타임라인 공개 | 코드 미완성 및 미배포 | 타임라인 조사 미흡, 미완성 및 미배포 |

@ -0,0 +1,11 @@
# Fairlearn에 대해 알아봅시다
## 설명
이번 수업에서는 "데이터 과학자들의 인공지능 시스템들에 대한 공정성을 향상시키기 위한 오픈소스이면서 커뮤니티 중심 프로젝트"인 Fairlearn에 대하여 배워보았습니다. 이 과제에서는 Fairlearn의 [예제 노트북들(Jupyter Notebooks)](https://fairlearn.org/v0.6.2/auto_examples/index.html) 중 하나의 노트북을 선택해 살펴보고, 알게 된 것을 보고서나 파워포인트(PowerPoint) 프레젠테이션으로 발표하면 됩니다.
## 평가기준표
| 평가기준 | 모범 | 적절 | 향상 필요 |
| -------- | --------- | -------- | ----------------- |
| | 보고서나 파워포인트 프레젠테이션(발표 자료)으로 Fairlearn의 시스템들에 대해 논했으며, 노트북을 사용해 결론을 도출함 | 발표 자료에 결론이 없음 | 발표 자료 미제출 |

@ -0,0 +1,11 @@
# 데이터 과학자를 인터뷰해 봅시다
## 설명
현재 일 하는 회사 또는 어느 사용자 집단에서나, 주변 친구들 또는 동료 학생들 중 데이터 과학자로서 전문적으로 일하는 사람과 대화해 보세요. 대화 후 그 사람이 평소 어떤 일을 하는지 500자 이상으로 수필(에세이)을 작성해 보시기 바랍니다. 그 사람은 데이터 과학 분야에서 특정 업무에 집중하는 데이터 과학 전문가인가요, 아니면 전반적으로 다양한 업무에 집중하는 '풀스택' 데이터 과학자인가요?
## 평가기준표
| 평가기준 | 모범 | 적절 | 향상 필요 |
| -------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------- | ------------ |
| | 500자 이상의 에세이이며 참고문헌을 제대로 표기했고 .doc 형식의 워드(Microsoft Word) 파일로 제출 | 500자 이내의 에세이이거나 참고문헌을 제대로 표기하지 않음 | 에세이 미제출 |

@ -0,0 +1,13 @@
# Scikit-learn과 함께 회귀에 대해 알아봅시다
## 설명
Scikit-learn에서 [Linnerud 데이터세트](https://scikit-learn.org/stable/modules/generated/sklearn.datasets.load_linnerud.html#sklearn.datasets.load_linnerud)를 살펴보시기 바랍니다. 이 데이터세트에는 다수의 목표 변수가 있습니다: '한 헬스장에서 스무 명의 중년 남성으로부터 수집한 운동(데이터)과 생리적(목표) 변수가 각각 세 개씩 있습니다'.
허리둘레와 윗몸 일으키기 횟수의 관계성을 그리는 회귀 모델을 어떻게 만들지 직접 서술해 주시기 바랍니다. 마찬가지로, 이 데이터세트의 다른 종류의 데이터(변수)들도 어떻게 회귀 모델을 만들지 서술해 주세요.
## 평가기준표
| 평가기준 | 모범 | 적절 | 향상 필요 |
| --------------------------------- | --------------------------- | ----------------------------- | ---------------- |
| 문단으로 자세히 서술해 제출하였는가? | 문단으로 자세히 서술하여 제출 | 몇 문장으로 서술한 내용을 제출 | 서술한 내용이 없음 |

@ -0,0 +1,11 @@
# 시각화에 대해 알아봅시다
## 설명
데이터 시각화를 위한 다양한 라이브러리가 존재합니다. 이번 시간에는 matplotlib과 seaborn 라이브러리로 Pumpkin 데이터를 샘플 노트북(Jupyter Notebook)에 시각화해보시기 바랍니다. 둘 중 어느 라이브러리가 작업하기 더 쉽나요?
## 평가기준표
| 평가기준 | 모범 | 적절 | 향상 필요 |
| -------- | ------------------------------------------------- | -------------------------------------------- | ------------ |
| | 두 가지의 다른 시각화 라이브러리를 사용한 노트북 제출 | 한 가지의 시각화 라이브러리를 사용한 노트북 제출 | 노트북 미제출 |

@ -0,0 +1,11 @@
# 회귀 모델을 만들어 봅시다
## 설명
이번 수업에서는 선형 회귀와 다항 회귀로 어떻게 모델을 만드는지 알아보았습니다. 이 과제에서는 직접 데이터세트를 찾거나 Scikit-learn에서 기본으로 제공하는 데이터세트로 새로 배운 지식을 적용해 새로운 모델을 만들어보시기 바랍니다. 그리고 어떠한 기법을 사용해 모델을 만들었는지 설명하고, 모델의 정확도를 노트북(Jupyter Notebook)에 기재하시기 바랍니다. 만약 정확도가 낮다면 왜 낮은지 해석해보세요.
## 평가기준표
| 평가기준 | 모범 | 적절 | 향상 필요 |
| -------- | ----------------------------- | -------------------------- | ----------------------- |
| | 완성된 노트북에 해법을 잘 설명함 | 미완성 해법을 제시함 | 결점이 있는 해법을 제시함 |

@ -0,0 +1,11 @@
# 한 번 더 회귀를 알아봅시다
## 설명
이번 수업에서는 Pumpkin 데이터세트의 일부만 사용해보았습니다. 이 과제에서는 Pumpkin 데이터세트 전체를 정제 및 표준화하여 로지스틱 회귀 모델을 만들어보시기 바랍니다.
## 평가기준표
| 평가기준 | 모범 | 적절 | 향상 필요 |
| -------- | -------------------------------------- | ------------------------------------------- | --------------------------------------------------------------- |
| | 성능이 좋은 모델을 기술한 노트북을 제출함 | 최소한의 성능을 발휘하는 모델을 노트북에 선보임 | 성능이 좋지 못한 모델을 노트북에 선보이거나 어떤 모델도 선보이지 않음 |

@ -0,0 +1,11 @@
# 다른 모델을 사용해봅시다
## 설명
이번 수업에서는 회귀 모델을 훈련시키고, 그 모델을 사용해 웹 애플리케이션을 만들어보았습니다. 이 과제에서는 이전 회귀 수업에서 알아본 모델 중 하나를 선택해 다시 한번 웹 애플리케이션을 만들어보시기 바랍니다.
## 평가기준표
| 평가기준 | 모범 | 적절 | 향상 필요 |
| ------- | ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------- |
| | 웹 애플리케이션이 예상대로 정상 작동하며 클라우드에 배포됨 | 웹 애플리케이션에 결함이 있거나 예기치 못한 결과를 나타냄 | 웹 애플리케이션이 제대로 작동하지 않음 |

@ -0,0 +1,11 @@
# 분류법에 대해 알아봅시다
## 설명
Scikit-learn의 이 [기술 문서](https://scikit-learn.org/stable/supervised_learning.html)를 보면 다양한 데이터 분류 기법들을 확인할 수 있습니다. 이 기술 문서로 물건 찾기 게임 비슷한 걸 한번 해 봅시다: 문서에서 여러 분류 알고리즘들을 찾아보고, 이 머신러닝 과정에서 제공하는 어떤 데이터세트에 적용이 가능한지 또 그 적합성을 따지기 위해 어떤 질문을 해야 하는지와 분류 기법에 대해 알아보세요. 선택한 데이터세트와 분류 알고리즘이 어떻게 적합한지 .doc 형식의 파일에 표를 만들어 설명해 보시기 바랍니다.
## 평가기준표
| 평가기준 | 모범 | 적절 | 향상 필요 |
| -------- | ---------------------------------------------------------------------- | -------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
| | 다섯 가지의 다른 알고리즘들과 분류 기법의 중요한 점들을 상세히 잘 설명하였음 | 세 가지의 다른 알고리즘들과 분류 기법의 중요한 점들을 상세히 잘 설명하였음 | 세 가지 미만의 다른 알고리즘들과 분류 기법에 대해 쉽지 않게 설명하였으며 그 설명이 상세하지 못함 |

@ -0,0 +1,11 @@
# Solver들을 공부해 봅시다
## 설명
이 수업에서는 보다 정확한 모델을 만들기 위해 알고리즘들과 기계 학습 과정을 결합하는 여러 가지 종류의 solver들에 대해 알아보았습니다. 이번 과제에서는 이 수업에서 알아본 solver들을 다시 한번 살펴보고, 두 가지 solver를 골라 비교하고 대조해 보시기 바랍니다. 두 solver는 어떤 종류의 문제를 다루나요? 또한 두 solver는 다양한 종류의 데이터와 어떻게 상호 작용하나요? 두 solver 중 하나를 골라야 한다면 어느 것을 왜 택일할 건가요?
## 평가기준표
| 평가기준 | 모범 | 적절 | 향상 필요 |
| -------- | ------------------------------------------------------------------------------------ | --------------------------- | ------------------ |
| | 각 solver마다 한 문단으로 다른 solver와 유심히 비교해 총 두 개의 문단을 .doc 파일로 제출함 | 한 문단만 .doc 파일로 제출함 | 미완성 과제를 제출함 |

@ -0,0 +1,11 @@
# 매개변수로 놀아 봅시다
## 설명
분류기들을 사용할 때 수많은 매개변수가 기본값을 가지고 있는 것을 확인할 수 있습니다. 비주얼 스튜디어 코드(VS Code)의 코드 자동완성 기능(IntelliSense)을 통해 매개변수에 대해 자세히 알아볼 수 있습니다. 이번 수업에서 알아본 머신러닝 분류 기법 중 한 기법을 선택해 여러 매개변수를 조정해 모델을 다시 훈련시켜 보세요. 그리고 Jupyter Notebook(노트북)에 매개변수 조정에 따라 왜 모델의 성능에 차이가 생기는지 자세히 설명해 보시기 바랍니다.
## 평가기준표
| 평가기준 | 모범 | 적절 | 향상 필요 |
| -------- | ------------------------------------------------------------------------------------------------------ | ------------------------------------- | --------------------------- |
| | 매개변수 조정이 적용된 완성된 분류기와 함께 조정에 따른 모델의 성능 변화에 대한 설명을 노트북에 포함하여 제출함 | 미완성 노트북을 제출하거나 설명이 부족함 | 노트북에 버그 또는 결함이 있음 |

@ -0,0 +1,11 @@
# 추천기를 만들어 봅시다
## 설명
이번 수업을 통해 오닉스 런타임(ONNX Runtime) 및 오닉스(ONNX) 형식으로 변환된 모델을 이용해 자바스크립트(JavaScript) 기반의 웹 애플리케이션을 구축하는 법을 배워 보았습니다. 과제로 이 머신러닝 과정에서 제공하는 데이터 또는 다른 곳에서 얻은 데이터로 새로운 추천기를 만드는 실험을 해보세요. (다른 곳에서 데이터를 가져올 경우 그 출처를 꼭 밝히시기 바랍니다.) 다양한 성격 특성에 기반한 반려동물 추천기라든지, 음악 청취자의 기분에 기반하여 장르를 추천하는 추천기도 좋습니다. 창의적으로 한번 만들어 보세요!
## 평가기준표
| 평가기준 | 모범 | 적절 | 향상 필요 |
| -------- | ---------------------------------------------------------------------- | ------------------------------------------------------------------------- | ------------------------------------------------------- |
| | 잘 문서화되고 작동하는 웹 애플리케이션과 Jupyter Notebook(노트북)을 제출함 | 웹 애플리케이션 또는 노트북 중 하나를 제출하지 않았거나 둘 중 하나에 결함이 있음 | 웹 애플리케이션과 노트북 둘 다 제출하지 않았거나 결함이 있음 |

@ -0,0 +1,11 @@
# 클러스터링(군집화)을 위해 다른 시각화도 알아봅시다
## 설명
이번 수업에서는 군집화를 위해 데이터를 그려 넣는 법을 몇 가지 시각화 기술을 통해 알아보았습니다. 산점도는 특히나 여러 객체의 그룹들을 찾는 데 유용합니다. 다양한 방법과 라이브러리들을 조사해 여러 산점도를 그리고 그 과정을 Jupyter Notebook(노트북)에 기록해 보세요. 이 머신러닝 과정에서 제공하는 데이터를 사용하거나 다른 곳에서 데이터를 가져와도 됩니다. (다른 곳에서 데이터를 가져올 경우 그 출처를 노트북에 꼭 밝히시기 바랍니다.) 산점도로 데이터를 시각화해 무엇을 발견했는지 설명해 보세요.
## 평가기준표
| 평가기준 | 모범 | 적절 | 향상 필요 |
| -------- | --------------------------------------- | ------------------------------------------------------- | -------------------- |
| | 노트북에 다섯 개의 산점도를 각각 잘 설명함 | 노트북에 다섯 개 미만의 산점도를 소개했으며 그 설명이 부족함 | 미완성 노트북을 제출함 |

@ -0,0 +1,11 @@
# 다른 군집법도 알아봅시다
## 설명
이번 수업에서는 k-평균 군집화에 대해 알아보았습니다. 때때로 k-평균 군집법은 특정 데이터를 군집화하는 데 있어 적합하지 않을 수 있습니다. Jupyter Notebook(노트북)을 만들고, 이 머신러닝 과정에서 제공하는 데이터를 사용하거나 다른 곳에서 데이터를 구해 (출처를 밝히시기 바랍니다) k-평균 군집법을 사용하지 않는 다른 군집법 한 가지를 골라 데이터에 적용해 보세요. 무엇을 배웠나요?
## 평가기준표
| 평가기준 | 모범 | 적절 | 향상 필요 |
| -------- | ------------------------------------ | -------------------------------------------- | ------------------- |
| | 잘 문서화한 군집 모델을 노트북에 선보임 | 문서화가 부족하고 (또는) 그 문서가 완성되지 않음 | 미완성 작업을 제출함 |

@ -0,0 +1,11 @@
# Bot(봇)을 찾아보세요
## 설명
봇은 어디에나 있습니다. 이번 과제로 봇 하나를 찾아 그 봇에 대해 알아보세요! 웹사이트, 은행 애플리케이션, 전화 통화 등에서 — 예를 들어 금융 서비스 회사에 전화하여 조언이나 계좌 정보를 구할 때 — 찾을 수 있습니다. 봇을 분석해 봇을 혼란스럽게 만들 수 있는지 알아보고, 혼란스럽게 만들 수 있다면 어떤 이유로 혼란스러워하는지, 봇에 대한 짧은 글을 써보시기 바랍니다.
## 평가기준표
| 평가기준 | 모범 | 적절 | 향상 필요 |
| -------- | --------------------------------------------------------------------------------------------------------------- | -------------------------------------- | ----------------- |
| | 봇의 아키텍처(구성 방식)를 추리해, 그 추리를 바탕으로한 봇의 구성 방식 및 봇 사용 경험을 (A4 용지) 한 장 분량으로 설명함 | 글이 미완성이거나 봇에 대한 조사가 부족함 | 글을 제출하지 않음 |

@ -0,0 +1,11 @@
# Bot(봇)이 대답을 하게 만들어 보세요
## 설명
지난 수업에서 대화를 나눌 수 있는 간단한 봇을 만들어 보았습니다. 이 봇은 'bye(안녕)'라고 말할 때까지 엉뚱한 대답을 하며 대화를 이어 나갔었습니다. 이번에는 이 봇에게 'why(왜)' 또는 'how(어떻게)' 등을 사용해 구체적으로 질문을 할 경우 조금 덜 엉뚱하게 대답을 하도록 이끌어 낼 수 있을까요? 봇을 확장하여 기계학습(머신러닝)이 이러한 수작업을 어떻게 최소화 할 수 있을지 생각해 보시기 바랍니다. 좀 더 수월한 작업을 위해 NLTK 또는 TextBlob 라이브러리를 사용하셔도 됩니다.
## 평가기준표
| 평가기준 | 모범 | 적절 | 향상 필요 |
| -------- | --------------------------------------------- | ------------------------------------ | ------------- |
| | 문서화 작업을 포함한 새로운 bot.py 파일을 제출함 | 새로운 봇 파일을 제출했으나 버그가 있음 | 봇 파일 미제출 |

@ -0,0 +1,11 @@
# 시적 허용
## 설명
이전에 Azure의 Text Analytics 서비스를 사용해 감성 분석에 사용된 500편이 넘는 Emily Dickinson(에밀리 디킨슨)의 시를 이 [Notebook(노트북)](https://www.kaggle.com/jenlooper/emily-dickinson-word-frequency)에서 찾을 수 있습니다. 이번 수업에서 알아본 기술들을 사용해 이 데이터셋을 분석해 보시기 바랍니다. 감성 분석 결과가 Azure의 Text Analytics 서비스 보다 좋나요? 왜 그런 결과가 나왔다고 생각하나요? 뜻밖의 놀라운 점은 없나요?
## 평가기준표
| 평가기준 | 모범 | 적절 | 향상 필요 |
| -------- | ---------------------------------------------- | --------------------------------------- | -------------------- |
| | 결과물의 표본에 대한 충실한 분석을 노트북에 선보임 | 노트북이 미완성이거나 분석을 포함하지 않음 | 노트북을 제출하지 않음 |

@ -0,0 +1,5 @@
# NLTK
## 설명
NLTK는 컴퓨터 언어학 및 자연어 처리 분야에서 잘 알려진 라이브러리입니다. 이번 시간에는 이 [NLTK 책](https://www.nltk.org/book/)을 읽고 책 안에 포함된 문제들을 풀어보세요 — 이 미채점 과제를 통해 NLTK 라이브러리에 대해 더욱 자세히 알게 될 겁니다.

@ -0,0 +1,11 @@
# 다른 데이터세트를 사용해 보세요
## 설명
NLTK 라이브러리를 사용해 텍스트에 감성을 부여하는 방법을 배워보았으니 이번에는 다른 데이터세트에 적용해 보세요. 적용하기 위해서는 데이터 처리 과정을 거쳐야 할 것이기 때문에 Jupyter Notebook(노트북)을 만들어 어떠한 방식으로 이 문제에 접근했는지 (사고과정을) 서술해 보시기 바랍니다. 새로 알게 된 것이 있나요?
## 평가기준표
| 평가기준 | 모범 | 적절 | 향상 필요 |
| -------- | ---------------------------------------------------------------------------------------------- | -------------------- | ------------------ |
| | 완성된 노트북과 함께 데이터세트를 선보였으며, 어떻게 감성을 부여했는지 여러 칸(cell)에 걸쳐 잘 서술함 | 노트북에 설명이 부족함 | 노트북에 결함이 있음 |

@ -0,0 +1,11 @@
# 좀더 다양한 시계열 데이터를 시각화해 봅시다
## 설명
이번 수업에서는 특수한 모델링이 필요한 유형의 (시계열) 데이터를 살펴봄으로써 시계열 예측에 대해 알아보기 시작했으며, 에너지 관련 데이터를 시각화해 보았습니다. 이 과제에서는 시계열 예측을 통해 유익한 결과를 도출해낼 수 있을 법한 다른 데이터를 찾아보세요. 세 가지 데이터를 찾아 ([Kaggle](https://kaggle.com)과 [Azure Open Datasets](https://azure.microsoft.com/en-us/services/open-datasets/catalog/?WT.mc_id=academic-15963-cxa)에서 한번 찾아보세요) 시각화하고 특징(계절성, 급변동성, 동향 등)을 관찰해 Jupyter Notebook(노트북)에 기록해 보시기 바랍니다.
## 평가기준표
| 평가기준 | 모범 | 적절 |향상 필요 |
| -------- | ------------------------------------------------------ | ------------------------------------------------------- | ------------------------------------------------------------------------------------- |
| | 노트북에 세 가지 데이터세트를 모두 시각화했으며 그 특징을 설명함 | 노트북에 두 가지 데이터세트를 시각화했으며 그 특징을 설명함 | 노트북에 몇몇의 데이터세트만 시각화 또는 그 특징을 설명했거나, 충분한 데이터를 사용하지 않음 |

@ -0,0 +1,11 @@
# 새로운 ARIMA 모델
## 설명
이번 수업에서는 ARIMA 모델을 만들어 보았습니다. 이 과제에서는 새 데이터([듀크대학교에서 제공하는 데이터세트](http://www2.stat.duke.edu/~mw/ts_data_sets.html) 중 하나)로 새로운 ARIMA 모델을 만들어 보세요. Jupyter Notebook(노트북)에 작업 과정을 설명하고, 데이터와 모델을 시각화하고, MAPE(평균 절대 백분율 오차)를 사용해 모델의 정확도를 시험해 보세요.
## 평가기준표
| 평가기준 | 모범 | 적절 | 향상 필요 |
| -------- | --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------- | -------------------- |
| | 새로운 ARIMA 모델을 만들었으며, 그 성능을 시험했고, 시각 자료와 함께 작업 과정의 설명 및 모델의 정확도를 노트북에 선보임 | 작업 과정의 설명을 포함하지 않거나 버그가 있는 노트북을 제출함 | 미완성 노트북을 제출함 |

@ -0,0 +1,27 @@
# 보다 현실적인 세상
이번 수업에서 다룬 환경에서 Peter(피터)는 피로나 배고픔을 거의 느끼지 않으며 돌아다닐 수 있었습니다. 보다 현실적인 세상에서 피터는 가끔씩 앉아서 휴식도 취해야 하고 음식도 먹어야 합니다. 다음 규칙을 적용해 세상을 좀 더 현실감 있게 만들어 봅시다:
1. 한 장소에서 다른 장소로 이동함으로써 피터는 **에너지**를 잃고 약간의 **피로**를 얻습니다.
2. 피너는 사과를 먹음으로써 더 많은 에너지를 얻을 수 있습니다.
3. 피터는 나무 아래나 잔디밭에 쉬면서 (즉, 나무나 풀이 있는 보드 위의 칸(녹색 들판) 안으로 걸어 들어감으로써) 피로를 없앨 수 있습니다.
4. 피터는 늑대를 찾아 죽여야 합니다.
5. 늑대를 죽이기 위해 피터는 일정 수준의 에너지와 피로도가 필요합니다. 그렇지 않으면 늑대와의 전투에서 집니다.
## 설명
원본 Jupyter Notebook(노트북)인 [notebook.ipynb](notebook.ipynb)을 이 과제의 솔루션(해법)의 시작점으로 사용하면 됩니다.
게임의 규칙에 따라 보상 함수를 수정하고, 강화학습 알고리즘을 실행해 게임에서 승리하기 위한 최선의 행동 전략을 학습하도록 해 보세요. 그런 다음 게임에서 승리 및 패배한 횟수를 기준으로 본인의 알고리즘 성적을 무작위 걷기의 성적과 비교해 보세요.
> **참고**: 새로운 세계에서는 state(상황)이 더 복잡하며, 사람의 위치뿐만 아니라 피로도와 에너지도 필요합니다. 상황을 `(Board(보드), energy(에너지), fatigue(피로))`와 같이 tuple(튜플)로 표현해도 되고, 상황을 위해 새 class(클래스)를 (`Board` 클래스에서 파생해) 정의하거나, 또는 [rlboard.py](rlboard.py)에 이미 정의된 `Board` 클래스를 알맞게 수정하여 사용해도 됩니다.
본인의 해법에 무작위 걷기 전략에 해당하는 코드를 반드시 그대로 남겨 두고, 마지막에 본인의 알고리즘과 무작위 걷기의 성적을 비교해 보시기 바랍니다.
> **참고**: 새로운 해법이 제대로 작동하게 하기 위해서는 hyperparameter(초매개변수), 특히 epoch(에포크) 수를 조정해야 할 수도 있습니다. 게임(늑대와의 전투)에서 승리하는 것은 드문 일이기 때문에 훨씬 더 긴 학습 시간이 필요할 겁니다.
## 평가기준표
| 평가기준 | 모범 |적절 | 향상 필요 |
| -------- | ------------------------------------------------------------------------------------------------------------------------------------------- |--------------------------------------------------------------------------------------------------------------------------------------- |------------------------------------------------------------------------------------------------ |
| | 새로운 게임 규칙, Q-learning(Q 러닝) 알고리즘, 설명 글을 노트북에 포함하여 제시함. 제시된 Q 러닝으로 무작위 걷기에 비해 성적을 크게 향상시킬 수 있음. | 노트북에 제시된 Q 러닝이 무작위 걷기에 비해 성적을 더 향상시키기는 하지만 그 정도가 작음. 또는 노트북에 설명이 부족하고 코드가 잘 구조화되지 않음. | 게임 규칙을 재정의해 적용하려 했으나 Q 러닝 알고리즘이 작동하지 않거나 보상 함수가 완전히 정의되지 않음. |

@ -0,0 +1,45 @@
# Train Mountain Car
[OpenAI Gym](http://gym.openai.com)은 모든 환경이 동일한 API를 — 즉 동일한 `reset`, `step`, `render` 메서드 및 <b>상태 공간(action space)</b><b>상태/관측 공간(observation space)</b>의 추상화를 — 제공하도록 설계되었습니다. 그러므로 다양한 상황에서 최소한의 코드 변경으로 동일한 강화학습 알고리즘을 다른 환경에 적용하는 것이 가능해집니다.
## A Mountain Car Environment
[Mountain Car 환경](https://gym.openai.com/envs/MountainCar-v0/)에는 골짜기에 갇힌 자동차가 있습니다:
<img src="../images/mountaincar.png" width="300"/>
이 환경에서의 목표는 각 단계에서 다음 동작 중 하나를 수행해 골짜기에서 나와 깃발을 잡는 것입니다:
| 값 | 의미 |
| -- | -------------- |
| 0 | 왼쪽으로 가속 |
| 1 | 가속 중지 |
| 2 | 오른쪽으로 가속 |
하지만 이 문제의 핵심은 자동차의 엔진이 한 번에 산을 오를 수 있을 만큼 강력하지 않다는 데에 있습니다. 따라서 목표 지점에 도달하기 위한 유일한 방법은 앞뒤로 자동차를 움직여 추진력을 얻는 것입니다.
상태/관측 공간은 두 개의 값만으로 구성됩니다:
| 값 | 상태/관측 | 최솟값 | 최댓값 |
| --- | ------------ | ----- | ------ |
| 0 | 자동차의 위치 | -1.2 | 0.6 |
| 1 | 자동차의 속도 | -0.07 | 0.07 |
산악용 자동차의 보상 체계는 다소 까다롭습니다:
* 에이전트(agent)가 산 전상의 깃발(위치 = 0.5)에 도달하면 0의 보상이 지급됩니다.
* 에이전트의 위치가 0.5 미만일 경우 -1의 보상이 지급됩니다.
자동차의 위치가 0.5 이상이거나 에피소드(episode)의 길이가 200 이상이면 에피소드가 종료됩니다.
## 설명
강화학습 알고리즘을 적용해 산악용 자동차 문제를 해결해 보시기 바랍니다. 기존 [notebook.ipynb](../notebook.ipynb)의 코드로 시작하면 됩니다 — 새로운 환경으로 대체하고, 상태 이산화(state discretization) 함수들을 변경하고, 기존 알고리즘을 최소한의 코드 수정으로 훈련하도록 해 보세요. 그리고 초매개변수를 조정해 결과를 최적화해 보세요.
> **참고**: 알고리즘 수렴을 위해 아마 초매개변수 조정이 필요할 겁니다.
## 평가기준표
| 평가기준 | 모범 | 적절 | 향상 필요 |
| -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | -------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- |
| | Q 러닝(Q-learning) 알고리즘을 최소한의 코드 수정으로 CartPole 예제로부터 가져와 성공적으로 적용하였으며, 이 알고리즘으로 깃발을 잡는 문제를 200번 미만의 `step`으로 해결함 | 새로운 Q 러닝 알고리즘을 인터넷으로부터 가져와 적용했지만 잘 문서화되지 않았거나, 기존 알고리즘을 적용했지만 원하는 결과를 얻지 못함 | 어떤 알고리즘도 성공적으로 적용하지 못했으나 해법을 찾기 위해 노력함 (상태 이산화, Q 표(Q-table) 자료구조 등을 구현하였음) |

@ -0,0 +1,13 @@
# 머신러닝 물건 찾기 게임
## 설명
이번 수업에서는 기존의 클래식한 머신러닝 알고리즘으로 해결한 실제 문제들에 대해 알아보았습니다. 인공지능의 신기술 및 새로운 도구, 딥러닝, 신경망 활용 등이 다양한 산업 분야에 도움이 되는 도구 제작 속도를 높이는 데 도움이 됐습니다. 그렇지만 이 머신러닝 과정에서 소개하는 기존의 클래식한 머신러닝 알고리즘은 여전히 높은 유용성을 지니고 있습니다.
이 과제는 여러분이 해커톤(hackathon)에 참가하고 있다고 상상하며 임해 보시기 바랍니다. 이 과정에서 배운 내용을 사용해 이번 수업에서 다룬 산업 분야들 중 한 분야의 문제를 해결을 하고자 합니다. 기존의 클래식한 머신러닝 알고리즘을 사용해 그 문제를 해결할 수 있는 해법을 제안해 보세요. 그리고 여러분의 아이디어를 어떻게 구현할 것인지를 파워포인트(PowerPoint) 프레젠테이션에 담아 보세요. 표본 데이터를 수집하고 머신러닝 모델을 구축해 여러분의 개념을 뒷받침할 수 있다면 가산점!
## 평가기준표
| 평가기준 | 모범 | 적절 | 향상 필요 |
| -------- | -------------------------------------------------- | ------------------------------------- | -------- |
| | 파워포인트 프레젠테이션을 선보임 - 모델 구축 시 가산점 | 새롭지 않고 단순한 프레젠테이션을 선보임 | 미완성 |
Loading…
Cancel
Save