본문 바로가기

2019년 혁신성장 청년인재 집중양성(빅데이터)/[COURSERA] Machine Learning Stanford Uni

(32)
[week6] Building a Spam Clasifier A. Prioritizing What to Work on 1. 스팸분류기를 만들 때 10,000~50,000개로이루어진 원핫 벡터를 이용하여 만든다. 2. 어떻게 이 분류기의 성능을 향상 시킬 수 있을까? 1) 데이터를 많이 모은다 2) 머리를 써서 좋은 피쳐를 만든다. 3) 알고리즘을 조지는 걸 하나 만든다. 이 중 뭘 해야할지는 나도 모른다. B. Error Analysis 1. 시간을 효율적으로 사용하고, 러닝의 영감을 얻기 위해선는 빠르고 더럽게 아이디어를 적용하여 보고 결과를 확인 한뒤, 어디에다 시간을 쓸 것인지 정해야 한다. 2. 간단한 알고리즘으로 시작해라! 검증요 데이터로 실험을 적용하고, 러닝 커브를 그려 행동을 결정하라. 3. 또, 에러들을 수동으로 조사하여서 취약적ㅁ을 파악하고, 그..
[week6] Evalutating a Learning Algorithm A. Bias vs. Variance 1.기계학습에 뭔가 문제가 있다면, 그 문제는 bias(선입관) 또는 variance(분산) 둘 중 하나 떄문이다. 2 이 선입관과 분산성을 구분해줄 필요가 있다. 3. 모델이 선입견이 심하다면 설명력이 약해진다(underfitting). 모델이 높은 가변성을 가지면 이는 트레인 데이터에 과도하게 아부하는 꼴이 된다. 선입견이 강해지면 트레인에 대한 설명력이 강해지는 대신, 테스트에 대한 설명력은 약해지게 되는 것이다. 적절한 타협이 필요하다. 4. 항수가 높아질수록 오류는 줄어드는 경향이 있다, 동시에 어떤 지점까지 테스트의 오차 또한 줄어들며, 이 지점이 지나면 볼록한 커브를 형상하며 다시 증가하게 된다. B. Regularization and Bias/Varia..
[week6] Evaluating a Learning Algoritm * gut feeling 직감 Deciding What to try Next 1. 예측을 했다~ 결과가 거지 같다~ 어떻게 할까~ 2. 1) 트레인 수를 늘린다. 2) 피쳐를 덜 사용한다. 3) 추가적인 피쳐를 사용한다. 4) 폴리노미얼한 피쳐를 더한다. 5) 러닝 레이트를 감소 시키거나 증가시킨다. 3. 보통 사람들은 트레인 데이터를 더 모으거나, 피쳐를 더 모으거나, 아니면 직감에 의존해서 여러가지 파라미터를 수정한다. 1. 그러지 말라! 감에 의존하지 말라! 진단을 해라! 2. 진단을 통해 알고리즘으로 부터의 통찰을 얻을 수 있고, 어떤 파라미터를 조정해야 하는지에 대한 정보를 얻을 수 있다. 3. 진단은 시간이 들 수 있으나, 감에 의존한 시간 보다는 훨씬 좋다. Evaluating Hypothe..
[week5] Neural Networks : Learning, Cost Function and Backpropagation 1. 1. 먼저 살펴볼 예로는 이진 분류다. 어떤 대상이 맞거나 아니거나 하는 분류로 모든 분류의 기본이 된다. 그렇기 때문에 아웃풋 레이어에서 단 하나의 유닛만을 가지며, 실제로 그 유닛이 참일 확률을 보여준다. 2. 멀티클래스 분류의 경우는 k개의 클래스(답)을 가지며, K개의 아웃풋을 가지게 된다. 즉 K개 차원의 벡터를 가지게 되며, 최대 우도법에 의해서 가장 큰 값을 가지는 위치의 값이 답이 된다. 1. 위의 식은 로지스틱 회귀를 통한 분류의 비용함수의 정규화 버전으로, 세타0에 대해서는 패널티(정규화)가 이루어지지 않기 때문에 1부터 끝가지 세타의 제곱값이 더해진다. 2. 신경망의 비용함수가 복잡해 보일 수 있다. 하지만 겁먹지마라, 딱 연산의 구조가 증가한 만큼 신경망의 비용함수도 그 구조가..
[week4] Applications A. Examples and Intuitions 1 https://ko.khanacademy.org/computing/computer-science/cryptography/ciphers/a/xor-bitwise-operation XOR 비트 연산 ko.khanacademy.org 1. 먼저 배타적 논리합 (XOR)에대해서 짚고 넘어가야 한다. 배타적 논리합이란 하나만 참이고 하나는 거짓인 경우를 골라 내는 것인데, 그것을 하나의 연산으로만 구분할 수 없기 때문에 최소 2번 이상의 연산이 필요하다는 이야기다. 1. AND연산이라는 간단한 예제를 보면, X1과 ,X2의 값에 의해서 생긴 가설 H의 값이 X1과 X2가 모두 1일 일때만 1의 값을 가지는 것을 볼 수 있다. 이것이 AND연산이 되었음을 알려준다..
[week4] Neural Network Model Representation 1. Input wire : Dendrite 2. Output wire : Axon 3. 뉴런의 기능을 단순화 해봤을 때, 뉴런은 계산 단위이고, 여러개의 입력 단자로부터 값을 받아 특정 계산을 수행하고 축삭돌기를 통해 출력값을 다른 노드나 뉴런으로 보낸다. 1. 덴드라이트를 통해 받아들이고, 정보를 처리하여, 액손을 통해 출력한다. 1. 우리가 모델로 사용할 뉴런은 논리적인 단위다. 2. 노란색 원을 뉴런의 본체로 본다면, x1,x2,x3를 input wire(dendrite)로 뉴런에 데이터를 공급한다. 본체는 어떤 계산을 하고, axon을 통해 ouput을 산출한다. 여기서 h(x)는 로지스틱회귀함수에서 사용했던 액티베이션 함수가 들어가 있다. 3. X0는 bi..
[week4] Non-linear Hypotheses, Motivation 1. 연속된 값을 예측하는 선형회귀도 있고, 분류를 위한 로지스틱 회귀도 있고, 비선형적이지 않은 값을 예측하거나 분류하는 다항식으로 이루어진 선형회귀와 로지스틱 회귀도 있는데, 왜? 신경망 알고리즘이 필요할까? 2. 고차 다항식의 차수가 높아질수록, 실제 한번의 가설의 값을 계산하는데 필요한 연산량은 기하급수적으로 O(N^(차수))로 증가하게 된다. 피쳐의 수가 적다면 괜찮겠지만, 피쳐의 수가 많고, 컴퓨터가 구지다면 비용이 너무 크게 든다는 단점이 있다. 1. 우리가 차의 사진을 분류하는 분류기를 만든다고 생각해보자. 차의 특정 픽셀의 값에 따라 많은 종류의 사진들을 위치 시킬 때, 그러한 픽셀들에 의해서 사진은 비선형적으로 분류된다. 하지만, 지금의 예시와 같이 사진의 픽셀은 단 두개가 아니다. 2..
[week3] Solving the Problem of Overfitting 1. Underfitting = high bias, 과소적합은 강한 편향(bias), 강한 선입견(preconception)을 가지고 있다고 말할 수 있다. 데이터를 직선에 맞추려다보니 이러한 크 편향이 생겨버린 것이다. 2. 두 번째는 Overfitting 이라고 하면, 이를 high variance(높은 분산)을 가지고 있다라고 한다. 데이터가 맞긴 맞지만, 너무 커다란 변동성을 가지게 되면서, 너무 약한 일관성?을 가지게 된다. 3. 중간 건 그냥 잘 맞는다고 함, Just right! 1. 로지스틱 리그레션에서도 이와같은 과소적합과 과대적합의 예를 찾을 수 있다. 2. 적절하게 디시전 바운더리가 형성될 수 있디만, 피쳐가 많아지면, 오버피팅 되어, 높은 분산을 가지게 되어 버린다. 1. 어떻게 이..