Exercises Chapter 1 /w Hands on machine learning with scikit-learn and tensorflow

In this chapter we have covered some of the most important concepts in Machine Learning. In the next chapters we will dive deeper and write more code, but before we do, make sure you know how to answer the following questions:


 1. How would you define Machine Learning? 머신 러닝을 어떻게 정의할 것인지?

Machine Learning is about building systems that can learn from data. Learning means getting better at some task, given some performance measure.

머신 러닝은 데이터로부터 학습할 수 있는 시스템의 구축을 뜻한다. 학습의 의미는 성과 평가 척도를 고려할 때 점차 나아지고 있다는 뜻이다.

 

 

2. Can you name four types of problems where it shines?

Machine Learning is great for complex problems for which we have no algorithmic solution, to replace long lists of hand-tuned rules, to build systems that adapt to fluctuating environments, and finally to help humans learn (e.g., data mining).

기계 학습은

1.     알고리즘 솔루션이없는 복잡한 문제,

2.     수동으로 튜닝된 규칙들,

3.     변동하는 환경에 적응하는 시스템을 구축하고,

4.     마지막으로 인간이 학습 ( : 데이터 마이닝)을 돕도록 도와줍니다.

 

 


3. What is a labeled training set? 라벨링 데이터란 무엇인가?

A labeled training set is a training set that contains the desired solution (a.k.a. a label) for each instance.

각 인스턴스마다 이상적인 솔루션이 라벨링된(라벨이 포함된) training set을 말한다.

 

4. What are the two most common supervised tasks? 지도 학습의 대표적인 예 두 가지

The two most common supervised tasks are regression and classification.

Classification Regression (분류 / 회귀)

 

5. Can you name four common unsupervised tasks? 비지도 학습 예시 두 가지?

Common unsupervised tasks include clustering, visualization, dimensionality reduction, and association rule learning.

클러스터링 / 시각화 / 차원 축소 / 연관 규칙 학습



6. What type of Machine Learning algorithm would you use to allow a robot to walk in various unknown terrains? 

로봇이 알려지지 않은 지형을 걷게 하려면 어떤 학습?


Reinforcement Learning is likely to perform best if we want a robot to learn to walk in various unknown terrains since this is typically the type of problem that Reinforcement Learning tackles. It might be possible to express the problem as a supervised or semisupervised learning problem, but it would be less natural.

강화 학습은 일반적으로 보강 학습이 다루는 유형의 문제이기 때문에 다양한 알 수없는 지형에서 로봇이 걷는 법을 배우기를 원한다면 가장 잘 수행 될 것이다. 지도 or 비지도 학습 문제로 문제를 표현하는 것이 가능할 수도 있지만 자연스럽지는 않을 것이다.

 

*참고

Supervised learning – teacher 있음 (레이블(라벨)을 달아줌)

Unsupervised learning – teach 없음 (자연스럽게 알아서 패턴 학습)

Semi supervised learning지도 비지도 섞어서

**강화학습 - 어떤 환경 안에서 정의된 에이전트가 현재의 상태를 인식하여, 선택 가능한 행동들 중 보상을 최대화하는 행동 혹은 행동 순서를 선택하는 방법 / 강화는 실패와 성공을 반복해가며 학습

 

 

7. What type of algorithm would you use to segment your customers into multiple groups?
고객을 여러 그룹으로 분류하는 사용할 알고리즘 유형은 무엇입니까?


If you dont know how to define the groups, then you can use a clustering algorithm (unsupervised learning) to segment your customers into clusters of similar customers. However, if you know what groups you would like to have, then you can feed many examples of each group to a classification algorithm (supervised learning), and it will classify all your customers into these groups.

그룹을 정의하는 방법을 모르는 경우 클러스터링 알고리즘 (비지도 학습)을 사용하여 고객을 유사한 고객의 클러스터로 분류 할 수 있습니다. 그러나 어떤 그룹을 갖고 싶은지 알면 분류 알고리즘 (감독 학습)에 각 그룹의 많은 예를 제공하고 모든 고객을이 그룹으로 분류 할 수 있습니다.

 

8. Would you frame the problem of spam detection as a supervised learning problem or an unsupervised learning problem?  

지도 비지도 중 스팸탐지에 어떤 것을 사용할 것인가?


Spam detection is a typical supervised learning problem: the algorithm is fed many emails along with their label (spam or not spam).

스팸 탐지는 일반적인 감독 학습 문제입니다.이 알고리즘은 많은 이메일을 라벨 (스팸 또는 스팸이 아닌)과 함께 제공받습니다.

 

 

9. What is an online learning system? 온라인 러닝이란?

An online learning system can learn incrementally, as opposed to a batch learning system. This makes it capable of adapting rapidly to both changing data and autonomous systems, and of training on very large quantities of data.

온라인 학습 시스템은 일괄 학습 시스템과 달리 점진적으로 학습 할 수 있습니다. 이를 통해 변화하는 데이터와 자율 시스템 모두에 빠르게 적응할 수 있으며 대량의 데이터를 학습 할 수 있습니다.

 

10. What is out-of-core learning? Out of core 학습이란?

Out-of-core algorithms can handle vast quantities of data that cannot fit in a computers main memory. An out-of-core learning algorithm chops the data into mini-batches and uses online learning techniques to learn from these minibatches.

 

Out-of-core 알고리즘은 컴퓨터의 메인 메모리에 들어갈 수 없는 방대한 양의 데이터를 처리 할 수 ​​있습니다. Out-of-core 학습 알고리즘은 데이터를 잘라서 미니 배치 형태로 나눠 온라인 학습을 통해 이러한 미니 배치들을 학습시킨다.

 

 

11. What type of learning algorithm relies on a similarity measure to make predictions? 예측을 위해 유사성 측정에 의존하는 학습 알고리즘은?

An instance-based learning system learns the training data by heart; then, when given a new instance, it uses a similarity measure to find the most similar learned instances and uses them to make predictions.

인스턴스 기반 학습 시스템은 교육 데이터를 마음으로 학습합니다. 그런 다음 새 인스턴스가 주어지면 유사성 측정을 사용하여 가장 유사한 학습 인스턴스를 찾아 예측을 수행하는 데 사용합니다.

 

 

12. What is the difference between a model parameter and a learning algorithms hyperparameter?

모델 매개 변수와 학습 알고리즘의 하이퍼 매개 변수의 차이점은 무엇입니까?

A model has one or more model parameters that determine what it will predict given a new instance (e.g., the slope of a linear model). A learning algorithm tries to find optimal values for these parameters such that the model generalizes well to new instances. A hyperparameter is a parameter of the learning algorithm itself, not of the model (e.g., the amount of regularization to apply).


모델에는 새로운 인스턴스 ( : 선형 모델의 기울기) 주어질 예측할 것을 결정(무엇을 예측할지에 대해 결정)하는 하나 이상의 모델 매개 변수가 있습니다. 학습 알고리즘은 모델이 새로운 인스턴스로 일반화되도록 이러한 매개 변수에 대한 최적 값을 찾으려고합니다. 하이퍼 파라미터는 모델이 아닌 학습 알고리즘 자체의 파라미터 (예를 들어, 적용 정규화의 )이다.

 


13. What do model-based learning algorithms search for? What is the most common strategy they use to succeed? How do they make predictions?

모델 기반 학습 알고리즘은 무엇을 검색합니까? 그들이 성공하는데 사용하는 가장 일반적인 전략은 무엇입니까? 그들은 어떻게 예측을합니까?

Model-based learning algorithms search for an optimal value for the model parameters such that the model will generalize well to new instances. We usually train such systems by minimizing a cost function that measures how bad the system is at making predictions on the training data, plus a penalty for model complexity if the model is regularized. To make predictions, we feed the new instances features into the models prediction function, using the parameter values found by the learning algorithm.

 

모델 기반 학습 알고리즘은 모델이 새로운 인스턴스에 대해 잘 일반화 될 수 있도록 모델 매개 변수에 대한 최적 값을 검색합니다. 우리는 일반적으로 시스템이 학습 데이터에 대한 예측이 얼마나 나쁜지를 측정하는 비용 함수를 최소화하고 모델이 정규화 된 경우 모델 복잡성에 대한 불이익을 최소화함으로써 그러한 시스템을 교육합니다. 예측을 하기 위해 학습 알고리즘에서 찾은 매개 변수 값을 사용하여 모델의 예측 함수에 새 인스턴스의 피쳐를 공급합니다.

 


14. Can you name four of the main challenges in Machine Learning?

Some of the main challenges in Machine Learning are the lack of data, poor data quality, nonrepresentative data, uninformative features, excessively simple models that underfit the training data, and excessively complex models that overfit the data.

 

1.     데이터 부족

2.     데이터 품질 저하

3.     비 대표성 데이터 (모집단을 대표하지 못하는 Data)

4.     정보가없는 기능

5.     학습 데이터에 부합하지 않는 지나치게 단순한 모델 및 데이터를 초과 구현하는 지나치게 복잡한 모델입니다. / underfit or overfit

 

 

15. If your model performs great on the training data but generalizes poorly to new instances, what is happening? Can you name three possible solutions?

모델이 교육 데이터에서 뛰어난 성능을 보였으나 모델이 새로운 인스턴스로 잘 변형되지 않는다면 어떤 일이 벌어지고 있습니까? 가능한 세 가지 해결책을 제시해주세요.

 

If a model performs great on the training data but generalizes poorly to new instances, the model is likely overfitting the training data (or we got extremely lucky on the training data). Possible solutions to overfitting are getting more data, simplifying the model (selecting a simpler algorithm, reducing the number of parameters or features used, or regularizing the model), or reducing the noise in the training data.
모델이 학습 데이터에 대해 우수한 실적을 보였지만 인스턴스에 좋지 않은 경우 일반적으로 모델이 교육 데이터에 지나치게 적합합니다 (또는 교육 데이터에 대해 매우 운이 좋음). 오버 피팅에 대한 가능한 솔루션은 많은 데이터를 얻고, 모델을 단순화하고 (간단한 알고리즘 선택, 사용되는 매개 변수 또는 기능 감소, 모델 정규화) 또는 학습 데이터의 노이즈 감소입니다.


 

 16. What is a test set and why would you want to use it? 테스트 세트 란 무엇이며 사용하려는 이유는 무엇입니까?

A test set is used to estimate the generalization error that a model will make on new instances, before the model is launched in production.

테스트 세트는 모델이 프로덕션 환경에서 시작되기 전에 모델이 새 인스턴스에서 수행하게 될 일반화 오류를 평가하는 데 사용됩니다.

 

 

17. What is the purpose of a validation set?

A validation set is used to compare models. It makes it possible to select the best model and tune the hyperparameters.
유효성 검사 집합의 목적은 무엇입니까? 검증 세트는 모델을 비교하는 사용됩니다. 최고의 모델을 선택하고 하이퍼 파라미터를 튜닝 있습니다.

 

 

18. What can go wrong if you tune hyperparameters using the test set?

If you tune hyperparameters using the test set, you risk overfitting the test set, and the generalization error you measure will be optimistic (you may launch a model that performs worse than you expect).

학습 데이터 셋에 오버피팅될 위험이 있으며, 일반화 되는 (일반적인) 에러가 좋게 표시될수도 있음, 그래서 성과가 좋지 않은 모델을 얻을 수 있다.

 

 

19. What is cross-validation and why would you prefer it to a validation set?

교차 유효성 검사 란 무엇이며 유효성 검사 집합을 선호하는 이유는 무엇입니까?

Cross-validation is a technique that makes it possible to compare models (for model selection and hyperparameter tuning) without the need for a separate validation set. This saves precious training data.

교차 유효성 검증은 별도의 분류된 validation 세트 없이( train / test로만 분류해도 괜찮음) 모델 비교 (모델 선택 및 하이퍼 파라미터 튜닝 변수 조정)를 가능하게 하는 기술입니다. 이렇게 하면 validation set을 따로 뺴지 않아도 되기 때문에 train data를 아낄 수 있다(데이터가 적은 상황에서 좋은 효율)


+ Recent posts