[Machine Learning] 27. 머신러닝 시스템을 디자인 하는 방법 (Machine Learning System Design)
지금까지 머신러닝에 대한 중요한 내용들을 배웠습니다. 이번에는 조금 다른 방향으로 생각해보려고 합니다. 스팸 메일을 분류하는 시스템을 만든다고 생각해 보겠습니다. 이 시스템은 분류(classification)에 대한 내용임으로 Supervised Learning에 속하는 문제가 됩니다. 이메일의 features를 x라고 하고 스팸인지 아닌지 여부를 y라고 합시다. (스팸은 1, 정상은 0) 이중에서 100개의 단어를 선택하여 이메일과 대조를 해보면서 각 features가 이메일 내용에 포함이 되어 있으면 1과 그렇치 않으면 0으로 […]
바로 이전 내용에서 처음 슬라이드로 다시 돌아가서, 아래 그림과 같이 머신 러닝을 적용할 때 문제가 발생하면 조치를 할 수 있는 옵션들이 약 6가지 정도 있습니다. 그냥 감으로 이것저것 해보는 것은 시간이 오래걸리기 때문에 효율적으로 판단하는 방법을 이전 내용에서 배웠습니다. 이제 이것을 통해서 어떠한 조치를 취하는 것이 현재 내가 격고 있는 어려움에 효과적인지를 정리하면서 알아보겠습니다. 앞의 […]
이번에는 머신러닝을 적용하여 여러분이 원하시는 무언가를 진행하고자 할때 생각해보면 좋은 내용들을 알아보겠습니다. 여러분이 정규화된 linear regression을 예측하는 모델을 만들었다고 생각해보겠습니다. 그런데 실제 학습된 결과가 실제 결과 보다 생각보다 많이 차이가 나서 적용하기 어렵다고 느껴질 때가 있을 것입니다. 이때 무엇을 해야 할까요 일반적으로 사람들은 다음과 같은 내용들을 하려고 생각합니다. 1. 더 많은 데이터가 필요하다 – 2배, […]
지금까지 NN에 대해서 하나씩 살펴봤는데요. 이번에는 전체적으로 정리하면서 살펴보도록 하겠습니다. NN의 구성에 대해서 먼저 알아봅니다. 아래 그림과 같이 3가지 케이스의 NN이 구성되어 있습니다. 3가지 모두다 동일한 input, output activation을 가지고 있습니다. 다른점은 hidden layer가 첫번째는 1개, 두번째 구성은 2개, 세번째 구성에서는 3개를 가지고 있습니다. Input units NN을 구성할때 input units의 수는 자연스럽게 x features의 크기로 결정이 […]
여기까지 여러분은 NN에 대한 모든 기본 개념을 배웠습니다. 이제 구현을 하기 위해서 몇가지 더 알아야 할 것들을 배우고 실제로 구현이 어떻게 되는지를 살펴보도록 하겠습니다. Unrolling Parameters 아래 그림에서와 같이 Octave로 실제 구현을 할때 사용되는 values에 대해서 알아보겠습니다. costFunction의 입력 값이 되는 theta와 Advanced Optimization Algorithm을 사용할때 입력 값이 되는 initialTheta는 각 layer별로 theta들이 있기 때문에 Matrix가 […]
앞에서 수학적인 표현을 가지고 설명을 했던 내용을 다시 한번 NN 구성도를 보면서 살펴보도록 하겠습니다. x, y의 dataset를 가지고 NN에 적용을 하게 되면 x data들은 input value의 형태로 Layer 1에서부터 시작이 됩니다. 이때 bias term인 상수 1은 존재하지만 크게 신경을 쓰지는 않습니다. input values은 연결된 선들을 따라서 weight 값과 연산이 되어 layer2의 z라는 input values가 됩니다. […]
이제 본격적으로 상세한 내용들을 알아보겠습니다. Neural Network for Classification 은 Logistic Regression의 확장판으로 좀더 복잡하고 다양한 결과 값을 도출하기에 좋은 모델입니다. 이제부터는 간단하게 NN이라고 하겠습니다. 여기서는 NN에 대한 특성과 차이점에 대해서 알아봅니다. 아래 그림의 NN 구성도를 보면 총 4개의 Layer로 이루어져 있습니다. 총 Layer의 갯수를 L로 표현하도록 하겠습니다. 즉, 여기서는 L=4가 됩니다. 그리고, 각각의 Layer는 다수의 Units으로 […]
이제 Neural Networks에 대해서 실제 예제들을 살펴보며 알아보겠습니다. 여기서는 어떻게 NNs가 복잡한 non-linear hypothesis를 처리할 수 있는지에 대해서 볼 수 있습니다. 아래 그림의 오른쪽과 같은 binary형태의 dataset이 있을때 뼈다귀 모양의 곡선으로 Decision Boundary를 정의할 수 있을 겁니다. 이것을 조금 심플하게 왼쪽과 같이 표현을 한다고 하면 x1과 x2의 XOR/XNOR의 결과로 표현을 할 수 있습니다. 역시 binary의 input data에 대해서 AND 연산에 […]
Neural Networks Motivation 앞에서 배웠던 non-linear classification을 조금더 살펴보겠습니다. 2개의 features가 있을때 아래 그림의 그래프와 같이 dataset이 존재하고 이것을 곡선으로 decision boundary를 표현할 수 있습니다. 여기서 featrures가 100개로 늘어났을 경우를 생각해봅시다. 각 features의 2차항으로 h 함수를 생성한다고 가정할때 다음과 같이 각각의 곱 혹은 제곱으로 표현이 됩니다. x12 ,x1x2, x1x4 …, x1x100 이렇게 만들어진 features의 수는 약 5,000개가 되고 이것은 […]
지금까지 우리는 두가지 모델에 대해서 배웠습니다. Supervised Learning에 대한 Linear regression 모델과 Logistic regression 모델을 배웠습니다. 이 두가지 모델을 이용하면 상당히 많은 머신러닝에 대한 해답을 찾을 수 있을 것입니다. Overfitting 이시점에서 우리는 h함수에 대해서 조금더 알아보도록 하겠습니다. 아래 그림은 Linear regression에서의 dataset을 그래프로 표현한 것입니다. 가장 왼쪽에 세타에 대한 1차방정식으로 h함수를 정의했다고 생각합시다. 이때 직선을 그리면 […]