1. What is the approximate depth of a Decision Tree trained (without restrictions) on a training set with 1 million instances?

The depth of a well-balanced binary tree containing m leaves is equal to log2(m)3, rounded up. A binary Decision Tree (one that makes only binary decisions, as is the case of all trees in Scikit-Learn) will end up more or less well balanced at the end of training, with one leaf per training instance if it is trained without restrictions. Thus, if the training set contains one million instances, the Decision Tree will have a depth of log2(106) 20 (actually a bit more since the tree will generally not be perfectly well balanced).

 

m 개의 잎을 포함하는 균형 잡힌 이진 트리의 깊이는 log2 (m)과 같으며 반올림됩니다. 바이너리 결정 트리 (Scikit-Learn의 모든 트리의 경우와 같이 바이너리 결정 만하는 바이너리 결정 트리)는 교육 종료시 다소 균형이 잘 잡히게됩니다. 제한없이 교육을받는 경우 트레이닝 인스턴스 당 하나의 리프가됩니다. . 따라서 훈련 세트에 백만 인스턴스가 포함되어있는 경우 의사 결정 트리의 깊이는 log2 (106) 20입니다 (실제로 트리가 일반적으로 완벽하게 균형을 이루지 못하기 때문에 실제로는 조금 더 많음). (그냥 로그 2 해주면 되는듯)

*여기서 log2는 밑이 2라는 것을 뜻함. 어떻게 쓰는지 모르겠다 컴퓨터로..


 

2. Is a nodes Gini impurity generally lower or greater than its parents? Is it generally lower/greater, or always lower/greater?

일반적으로 노드의 Gini 불순도가 부모도다 높나 낮나? 일반적으로 낮/높은지 항상 낮/높은지


노드의 지니 불순물은 일반적으로 부모보다 낮습니다. 이것은 CART 교육 알고리즘의 비용으로 보장됩니다. 함수는 각 노드를 자식 Gini 불순물의 가중치 합을 최소화하는 방식으로 분할합니다.

그러나 한 자식이 다른 자식(의 지니 불순도)보다 작으면, 그 부모보다 지니 불순도가 높을 수 있다 만약 이 증가분이 다른 자식의 지니 불순물 감소보다 크다면)

 

그러나 한 자식의 불순이 다른 자식보다 작으면, 다른 아이의 불순물 감소로 인해 지니 불순물이 부모보다 더 클수도 있다.

 

예를 들어, 클래스 A에 네 개의 인스턴스가 있고, 클래스 B에는 한 개의 인스턴스가 있다고 가정해 보자. 지니 불순도는 1-(1/5)^2 – (4/5)^2 = 0.32 이다. 이 때 데이터 셋은 일차원이고 모든 인스턴스들이 A B A A A 순서라고 해보자. 너는 알고리즘이 두번째 인스턴스 이후 이 노드를 분리할 것임을 알 수 있(그냥 클래스 나누는것) – 자식 노드 A, B를 만들면서.  그리고 다른 자식 노드의 인스턴스는 A, A, A이다.

첫번째 자식의 불순도는 1 – (1/2)^2 – (1/2)^2 = 0.5이다 = 부모보다 높음.

 

이 것은 다른 노두가 순수하다는 것에 대한 보상이므로, 전체 지니 불순도는 2/5 * 0.5 + 3/5 * 0 = 0.2이다. (두번째 노드는 모두가 A이므로 순수 = 불순도는 0) à 이 때 부모의 지니 불순도보다 낮다 


*즉 보통 자식노드가 부모노드보다 지니불순도가 낮지만 항상 낮은건 아니다.


 

3. If a Decision Tree is overfitting the training set, is it a good idea to try decreasing max_depth?

If a Decision Tree is overfitting the training set, it may be a good idea to decrease max_depth, since this will constrain the model, regularizing it. // 모델의 깊이가 낮아질수록 모델을 제약하고 regularizing 하는 것.

 

 

4. If a Decision Tree is underfitting the training set, is it a good idea to try scaling the input features? 만약 underfit하다면 scaling 해주는 것이 좋냐?

Decision Trees dont care whether or not the training data is scaled or centered; thats one of the nice things about them. So if a Decision Tree underfits the training set, scaling the input features will just be a waste of time.

해봤자 소용없음 

 


5. If it takes one hour to train a Decision Tree on a training set containing 1 million instances, roughly how much time will it take to train another Decision Tree on a training set containing 10 million instances?

1 백만 개의 인스턴스가 포함 된 교육 세트에서 의사 결정 트리를 교육하는 데 1 시간이 소요되는 경우 1 천만 개의 인스턴스가 포함 된 교육 세트에서 다른 의사 결정 트리를 교육하는 데 대략 어느 정도의 시간이 걸립니까?

 

The computational complexity of training a Decision Tree is O(n × m log(m)). So if you multiply the training set size by 10, the training time will be multiplied by K = (n × 10m × log(10m)) / (n × m × log(m)) = 10 × log(10m) / log(m). If m = 106, then K 11.7, so you can expect the training time to be roughly 11.7 hours.

 

의사 결정 트리 트레이닝의 계산 복잡도는 O (n × m log (m))입니다. 따라서 훈련 세트 크기에 10을 곱하면 훈련 시간에 K = (n × 10m × log (10m)) / (n × m × log (m)) = 10 × log (10m) / log (m). m = 10^6이면 K ≈ 11.7이므로 약 11.7 시간의 교육 시간을 기대할 수 있습니다.

 


6. If your training set contains 100,000 instances, will setting presort=True speed up training?

너의 교육 세트에 100,000 개의 인스턴스가 포함되어 있다면 presort = True로 설정하여 교육을 가속화해야 하는가?

 

Presorting the training set speeds up training only if the dataset is smaller than a few thousand instances. If it contains 100,000 instances, setting presort=True will considerably slow down training.

교육 세트를 미리 할당하면 데이터 세트가 수천 개보다 작은 경우에만 교육이 가속화됩니다. 인스턴스가 100,000 개 포함되어 있으면 presort = True로 설정하면 교육 속도가 상당히 느려집니다.




1. What is the fundamental idea behind Support Vector Machines?

The fundamental idea behind Support Vector Machines is to fit the widest possible street between the classes. In other words, the goal is to have the largest possible margin between the decision boundary that separates the two classes and the training instances. When performing soft margin classification, the SVM searches for a compromise between perfectly separating the two classes and having the widest possible street (i.e., a few instances may end up on the street). Another key idea is to use kernels when training on nonlinear datasets.

 

Support Vector Machines의 근본적인 아이디어는 클래스 사이에 가능한 가장 넓은 "거리 = Street"를 맞추는 것입니다. , 두 클래스와 교육(Train) 인스턴스를 구분하는 결정 경계 사이에 최대한 큰 여백을 두는 것이 목표입니다 = 가장 넓은 마진을 확보하는 것이 목표입니다. 소프트 마진 분류를 수행 할 때 SVM은 두 클래스를 완벽하게 분리하고 가능한 가장 넓은 거리 (, 몇 개의 인스턴스가 거리에서 끝날 수 있음) 사이의 절충안을 검색합니다. 또 다른 주요 아이디어는 비선형 데이터 세트를 훈련 할 때 커널을 사용하는 것입니다.

 


2. What is a support vector?

After training an SVM, a support vector is any instance located on the street (see the previous answer), including its border. The decision boundary is entirely determined by the support vectors. Any instance that is not a support vector (i.e., off the street) has no influence whatsoever; you could remove them, add more instances, or move them around, and as long as they stay off the street they wont affect the decision boundary. Computing the predictions only involves the support vectors, not the whole training set

 

SVM을 학습 후, Support vectors는 경계를 포함하여 "거리"에있는 모든 인스턴스입니다. 의사 결정 경계(Decision boundry)는 전적으로 Support Vectors에 의해 결정됩니다. Support Vectors가 아닌 (, 거리에서 벗어난) 인스턴스는 아무런 영향을 미치지 않습니다. 당신은 그것들을 제거하거나, 더 많은 인스턴스를 추가하거나, 움직일 수 있으며, 거리에서 벗어나 있다면 결정 경계에 영향을주지 않을 것입니다. 예측은 전체 교육 세트가 아닌 Support vectors만 포함됩니다.

 


3. Why is it important to scale the inputs when using SVMs?

SVM을 사용할 때 입력을 스케일 하는 것이 중요한 이유는 무엇인가?

SVMs try to fit the largest possible street between the classes (see the first answer), so if the training set is not scaled, the SVM will tend to neglect small features (see Figure 5-2).

SVM은 클래스 사이에 가능한 가장 큰 "Street"를 채우려고합니다) = Maximum Margin 을 찾는것이 목표다. 따라서 Training 세트의 크기가 조정되지 않으면(scale이 조정되지 않으면) SVM은 작은 피쳐를 무시하는 경향이 있습니다 

 

 

5. Should you use the primal or the dual form of the SVM problem to train a model on a training set with millions of instances and hundreds of features?

수백만 개의 인스턴스와 수백 개의 기능이있는 교육 세트에서 모델을 교육하기 위해 SVM 문제의 기본형 또는 이중형을 사용해야합니까?

 

This question applies only to linear SVMs since kernelized can only use the dual form. The computational complexity of the primal form of the SVM problem is proportional to the number of training instances m, while the computational complexity of the dual form is proportional to a number between m2 and m3. So if there are millions of instances, you should definitely use the primal form, because the dual form will be much too slow.

이 질문은 커널화dual form에만 사용할 수 있기 때문에 선형 SVM에만 적용됩니다. SVM 문제의 초기 형태의 계산 복잡도는 훈련 인스턴스의 수 m에 비례하는 반면, dual form의 계산 복잡도는 m^2 m^3 사이의 수에 비례한다. 따라서 수백만 개의 인스턴스가 있다면 이중 폼이 너무 느리기 때문에 primal form을 사용해야합니다.

 

 


6. Say you trained an SVM classifier with an RBF kernel. It seems to underfit the training set: should you increase or decrease γ (gamma)? What about C?

만약 RBF커널로 모델을 학습시켰을 때 오버피팅이 되었다면 감마와 C를 어떻게 조절해야 하는가?

 

If an SVM classifier trained with an RBF kernel underfits the training set, there might be too much regularization. To decrease it, you need to increase gamma or C (or both).
RBF
커널로 트레이닝 된 SVM 분류기가 트레이닝 세트에 부적합하다면 너무 많은 정규화 때문일수 있다.. 줄이려면 감마 또는 C (또는 둘 다)를 늘려야합니다.



1. What Linear Regression training algorithm can you use if you have a training set with millions of features? 

수많은 feature를 가지고 있다면 어떤 Linear Regression 알고리즘을 사용할 것인가?


If you have a training set with millions of features you can use Stochastic Gradient Descent or Mini-batch Gradient Descent, and perhaps Batch Gradient Descent if the training set fits in memory. But you cannot use the Normal Equation because the computational complexity grows quickly (more than quadratically) with the number of features.

당신이 수많은 feature를 가졌다면 스토캐스틱 그라디언트 하강 또는 미니 배치 그라디언트 하강을 사용할 수 있으며, 트레이닝 세트가 메모리에 맞으면(감당할 수 있으면) Batch 그라데이션 디센트를 사용할 수 있습니다. 그러나 일반 방정식을 사용할 수는 없으므로 계산 복잡도가 피쳐의 수와 함께 빠르게 증가합니다 (2 차 이상). 



2. Suppose the features in your training set have very different scales. What algorithms might suffer from this, and how? What can you do about it?

훈련 세트의 기능이 매우 다른 척도를 가지고 있다고 가정합니다. 어떤 알고리즘이 이것으로 어려움을 겪으며 있으며, 어떻게 되는가? 해결책은?

If the features in your training set have very different scales, the cost function will have the shape of an elongated bowl, so the Gradient Descent algorithms will take a long time to converge. To solve this you should scale the data before training the model. Note that the Normal Equation will work just fine without scaling.


트레이닝 세트의 피쳐의 스케일이 매우 다른 경우 cost function 긴 보울 모양이므로 Gradient Descent 알고리즘에 수렴하는 데 시간이 오래 걸릴 수 있습니다. 이 문제를 해결하려면 모델을 교육하기 전에 데이터의 scale을 조정해야 합니다. Normal Equation은 크기 조정 없이 정상적으로 작동합니다. = 경사하강법은 정규화가 필요하다

 


3. Can Gradient Descent get stuck in a local minimum when training a Logistic Regression model?

Logistic Regression 모델을 훈련 할 때 Gradient Descent가 로컬 미니멈에 가둬질수있나?

 

Gradient Descent cannot get stuck in a local minimum when training a Logistic Regression model because the cost function is convex.1

Gradient Descent는 로컬 미니멈에 갖칠수 없다. 왜냐하면 Logistic Regression 모델 학습시 비용 함수는 covex 모형이기 때문이다.

// covex à If you draw a straight line between any two points on the curve, the line never crosses the curve.

 

 

4. Do all Gradient Descent algorithms lead to the same model provided you let them run long enough? 

만약 충분히 오래 실행된다면 모든 Gradient Descent algo는 같은 모델이 될 것인가?


If the optimization problem is convex (such as Linear Regression or Logistic Regression), and assuming the learning rate is not too high, then all Gradient Descent algorithms will approach the global optimum and end up producing fairly similar models. However, unless you gradually reduce the learning rate, Stochastic GD and Mini-batch GD will never truly converge; instead, they will keep jumping back and forth around the global optimum. This means that even if you let them run for a very long time, these Gradient Descent algorithms will produce slightly different models. 

최적화 문제가 볼록 Covex ( : 선형 회귀 또는 로지스틱 회귀) 인 경우 learning rate가 너무 높지 않다고 가정하면 모든 그래디언트 하강 알고리즘이 전체 최적 값에 도달하여 상당히 유사한 모델을 생성하게 됩니다. 그러나 learning rate를 점진적으로 낮추지 않으면 Stochastic GD Mini-batch GD는 절대로 수렴하지 않습니다. 대신, 그들은 전 지구 적 최적으로 앞뒤로 계속 뛰어 오를 것입니다. , 매우 오랜 시간 동안 작동 시키더라도 이러한 Gradient Descent 알고리즘은 약간 다른 모델을 생성합니다.

 

 

5. Suppose you use Batch Gradient Descent and you plot the validation error at every epoch. If you notice that the validation error consistently goes up, what is likely going on? How can you fix this?

당산이 Batch Gradient Descent를 사용하고 당신이 모든 에포크마다 validation error를 그래프로 표시한다고 가정하자. 만약 당신이 벨리데이션 에러가 지속적으로 올라간다는 것을 알았으면, 이게 왜 올라가는 것인가? 어떻게 해결할 것인가?

 

If the validation error consistently goes up after every epoch, then one possibility is that the learning rate is too high and the algorithm is diverging. If the training error also goes up, then this is clearly the problem and you should reduce the learning rate. However, if the training error is not going up, then your model is overfitting the training set and you should stop training.

만약 모든 모든 에포크 이후에 validation error가 올라가면, learning rate가 너무 높거나, 알고리즘이 지나치게 다양해졌을 가능성이 있다. 만약 training error역시 올라간다면, 이는 당신이 learning rate를 감소시켜야 한다는 것을 뜻한다. 만약 training error가 올라가지 않는다면, 당신의 모델은 오버피팅 된 것이고 당신은 학습을 중단해야 한다.

 

 

6. Is it a good idea to stop Mini-batch Gradient Descent immediately when the validation error goes up?

만약 Validation error가 올라가면 Mini-batch Gradient 를 즉각 중지하는 것이 맞는가?

Due to their random nature, neither Stochastic Gradient Descent nor Mini-batch Gradient Descent is guaranteed to make progress at every single training iteration. So if you immediately stop training when the validation error goes up, you may stop much too early, before the optimum is reached. A better option is to save the model at regular intervals, and when it has not improved for a long time (meaning it will probably never beat the record), you can revert to the best saved model.

 

무작위적인 특성으로 인해 스토캐스틱 그라디언트 하강 또는 미니 배치 그라디언트 하강은 매 반복 교육마다 진전을 보장하지 않습니다. 따라서 검증 오류가 발생했을 때 즉시 교육을 중단하면 최적에 도달하기 전에 너무 일찍 중지 할 수 있습니다. 더 나은 옵션은 일정한 간격으로 모델을 저장하는 것입니다. 그리고 오랜 시간 동안 개선되지 않은 경우, 가장 저장된 모델로 되돌릴 수 있습니다.

 

 

7. Which Gradient Descent algorithm (among those we discussed) will reach the vicinity of the optimal solution the fastest? Which will actually converge? How can you make the others converge as well?
어떤 그라디언트 디센트 알고리즘이 최적의 솔루션 근처에 가장 빨리 도달 할 것입니까? 실제로 수렴 할 것인가? 어떻게 수렴시킬것인가?

 

Stochastic Gradient Descent has the fastest training iteration since it considers only one training instance at a time, so it is generally the first to reach the vicinity of the global optimum (or Mini-batch GD with a very small mini-batch size). However, only Batch Gradient Descent will actually converge, given enough training time. As mentioned, Stochastic GD and Mini-batch GD will bounce around the optimum, unless you gradually reduce the learning rate.
Stochastic Gradient Descent 번에 하나의 교육 인스턴스만을 고려하기 때문에 가장 빠른 교육 반복을 수행하므로 일반적으로 전역 최적 (또는 미니 배치 크기가 매우 작은 Mini-batch GD) 부근에 처음으로 도달합니다. 러나 충분한 Training 시간이 주어지면 Batch Gradient Descent 실제로 수렴됩니다. 언급 바와 같이, 점차적으로 학습 속도=learning rate을 줄이지 않으면 Stochastic GD Mini-batch GD optimum 근처에서 튀어다니는 것을 반복합니다.

 

 

8. Suppose you are using Polynomial Regression. You plot the learning curves and you notice that there is a large gap between the training error and the validation error. What is happening? What are three ways to solve this?

다항 회귀 (Polynomial Regression)를 사용한다고 가정하십시오. 학습 곡선을 플롯하면 training error validation error 사이에 큰 차이가 있다는 것을 알게됩니다. 무슨 일 이니? 이것을 해결할 수있는 세 가지 방법은 무엇입니까?

 

If the validation error is much higher than the training error, this is likely because your model is overfitting the training set. One way to try to fix this is to reduce the polynomial degree: a model with fewer degrees of freedom is less likely to overfit. Another thing you can try is to regularize the model for example, by adding an 2 penalty (Ridge) or an 1 penalty (Lasso) to the cost function. This will also reduce the degrees of freedom of the model. Lastly, you can try to increase the size of the training set.

Validation error Training error보다 훨씬 높으면 모델이 Training set overfitting 되었을 수 있습니다. 이 문제를 해결하기 위한 한 가지 방법은 다항식 차수를 줄이는 것입니다. 차수가 낮으면 그만큼 overfit할 가능성이 줄어듭니다. 시도 할 수있는 또 다른 방법은 비용 함수에 ℓ2 패널티 (릿지) 또는 ℓ1 페널티 (라소)를 추가하는 등 모델을 정규화하는 것입니다. 이는 또한 모델의 자유도를 감소시킵니다. 마지막으로 Training 세트의 크기를 늘리려고 할 수 있습니다.

 

 

9. Suppose you are using Ridge Regression and you notice that the training error and the validation error are almost equal and fairly high. Would you say that the model suffers from high bias or high variance? Should you increase the regularization hyperparameter α or reduce it?

Ridge Regression을 사용한다고 가정하고 Training error validation error가 거의 동일하고 상당히 높다는 것을 알게됩니다. 이 모델이 높은 바이어스(편차가 큰지) 또는 높은 분산을 겪고 있다고 말할 수 있습니까? 정규화 하이퍼 파라미터 α를 높이거나 줄여야합니까?

 

If both the training error and the validation error are almost equal and fairly high, the model is likely underfitting the training set, which means it has a high bias. You should try reducing the regularization hyperparameter α.

학습 오차와 검증 오차가 거의 같고 상당히 높다면 모델은 Training set underfit 가능성이 높다. 정규화 하이퍼 파라미터인 α를 줄여야합니다.

 

 

10. Why would you want to use: Ridge Regression instead of Linear Regression? Lasso instead of Ridge Regression? Elastic Net instead of Lasso? /// Linear Reg 대신 Ridge Reg 사용 이유? Rig 대신 Lasso Reg 사용이유? Lasso 대신 Elastic Net 사용이유?


Lets see:

A model with some regularization typically performs better than a model without any regularization, so you should generally prefer Ridge Regression over plain Linear Regression.

일부 정규화 모델은 일반적으로 정규화가없는 모델보다 성능이 우수하므로 일반적으로 일반 선형 회귀보다 릿지 회귀를 선호해야합니다.

 

 

Lasso Regression uses an 1 penalty, which tends to push the weights down to exactly zero. This leads to sparse models, where all weights are zero except for the most important weights. This is a way to perform feature selection automatically, which is good if you suspect that only a few features actually matter. When you are not sure, you should prefer Ridge Regression.

Lasso Regression은 ℓ1 패널티를 사용합니다.이 패널티는 가중치를 정확히 제로로 낮추는 경향이 있습니다. 이로 인해 가장 중요한 가중치를 제외하고 모든 가중치가 0 인 희소 모델이 생성됩니다. 이것은 자동으로 기능 선택을 수행하는 방법입니다. 실제로 몇 가지 기능 만 중요하다고 생각되면 좋습니다. 확실하지 않으면 릿지 회귀를 선호해야합니다.

 

 

Elastic Net is generally preferred over Lasso since Lasso may behave erratically in some cases (when several features are strongly correlated or when there are more features than training instances). However, it does add an extra hyperparameter to tune. If you just want Lasso without the erratic behavior, you can just use lastic Net with an l1_ratio close to 1.

Lasso는 일부 경우 (여러 기능이 강하게 상관되거나 교육 인스턴스보다 많은 기능이있는 경우)에 비정상적으로 동작 할 수 있기 때문에 Lasso보다 일반적으로 선호됩니다. 그러나 튜닝을 위해 추가 하이퍼 매개 변수를 추가합니다. 이상한 행동을하지 않고 올가미를 원한다면 lastic_ratio 1에 가까운 lastic net을 사용할 수 있습니다.

 


 

11. Suppose you want to classify pictures as outdoor/indoor and daytime/nighttime. Should you implement two Logistic Regression classifiers or one Softmax Regression classifier?

야외 / 실내 및 주간 / 야간으로 사진을 분류하려고한다고 가정합니다. 당신은 두 가지 로지스틱 회귀 분류기 또는 Softmax 회귀 분류기를 구현해야합니까?

 

If you want to classify pictures as outdoor/indoor and daytime/nighttime, since these are not exclusive classes (i.e., all four combinations are possible) you should train two Logistic Regression classifiers.

실외 / 실내 및 주간 / 야간으로 사진을 분류하려면 독점적인 클래스가 아니므로 ( 4 가지 조합 모두 가능) 두 개의 로지스틱 회귀 분류기를 교육해야합니다.





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