June AI

대기업 AI 서비스 기획자가 알기 쉽게 풀어주는 AI 기획·개발·트렌드 지식

분류 전체보기 27

08-2 표현: 좋은 특성의 조건(Qualities of Good Features)

우리는 앞의 포스트를 통해 수집된 원시 데이터(Raw Data)를 적정한 특성 벡터(Feature Vector)로 맵핑(Mapping)하는 방법을 알아보았습니다.이번 포스트에서는 이렇게 맵핑한 특성 벡터에서 어떤 값이 좋은 특성(Feature)가 되는지 알아보겠습니다. 좋은 특성의 조건1. 거의 사용되지 않는 불연속 특성 값 배제좋은 특성은 데이터 세트에서 최소 5회 이상 나타나야 합니다. 동일한 값을 갖는 예가 많으면 모델에서 다양한 설정으로 특성을 확인하여 라벨과 특성의 관계를 학습하기 용이합니다. 반대로 특성의 값이 한 번만 나타나거나 매우 드물게 나타난다면 모델에서 해당 특성을 기반으로 좋은 예측을 할 수 없습니다. 2. 최대한 분병하고 명확한 의미 부여머신러닝 프로젝트에 참가하는 모든 구성원에서..

개발/Google MLCC 2018.08.27

08-1 표현: 특성 추출(Feature Engineering)

이번 포스트를 통해서 우리는 수집된 데이터를 어떻게 정제하여 머신러닝에게 학습시킬 지, 특성을 추출하는 방법에 대해서 이야기해 보겠습니다. 원시 데이터를 특성에 맵핑(Mapping Raw Data to Features) 위의 그림에서 왼쪽 부분은 수집된 데이터의 원본인 원시 데이터(Raw Data)입니다. 오른쪽은 실수 벡터로 표현된 특성 벡터(Feature Vector)입니다. 이렇게 원시 데이터로 부터 머신러닝에 적합한 데이터(모델을 학습 시킬 예)로 정제하는 것을 특성 추출(Feature Engineering)이라고 합니다. 보통 머신러닝 프로그래머는 특성을 추출하는데 전체 시간의 75% 정도를 할애합니다. 숫자 값 맵핑(Mapping numeric values)머신러닝의 모델을 학습 시킬 때 부동..

개발/Google MLCC 2018.08.26

[Node.js]02_Node.js를 들어가기 전에 - HTTP란

HTTP란? HTTP란, Hypertext Transfer Protocol의 약자로 인터넷에서 웹 서버와 웹 사용자(인터넷 브라우저) 사이에 문서를 전송하기 위해 사용되는 통신 규약을 말합니다. HTTP의 특징TCP/IP(Transmission Control Protocol/Internet Protocol) 응용 프로토콜 TCP/IP란, 네트워크와 네트워크를 연결하기 위한 프로토콜로서 서로 다른 운영체제의 컴퓨터 간에도 같은 TCP/IP 프로토콜을 사용함으로써, 네트워크 통신이 가능하게 합니다. 연결 상태를 유지하지 않음 실시간으로 항상 연결을 유지하는 것이 아닌, 웹 클라이언트의 요청이 들어왔을 때만 네트워크를 연결하여 응답을 보내는 프로토콜 입니다. 요청(Request) / 응답(Response) 방..

개발/Node.js 2018.08.14

07-1 검증: 검증 세트

앞에서 우리는 주어진 데이터 세트에만 과적합한 모델을 만드는 것을 방지하기 위해서 두 개의 하위 세트(학습 세트, 테스트 세트)로 나누어 일반화 시킨 모델을 만들었습니다. 하지만 여전히 이 방법에도 문제점이 하나 있습니다. 바로 학습 세트로 학습 시키고 테스트 세트로 테스트를 진행해 초매개변수를 조정하여 얻어낸 모델이 이번에는 테스트 세트에 과적합한 모델이 될 수 있다는 것입니다. 세 개의 세트로 분할: 학습 세트(Training Set), 검증 세트(Validation Set), 테스트 세트(Test Set)이렇게 데이터 세트를 두 개로 나누는 것 보다 더 좋은 방법이 있습니다. 주어진 데이터를 세 개의 세트로 나누는 것입니다. 데이터 세트를 학습 세트(Training Set), 검증 세트(Valida..

개발/Google MLCC 2018.08.13

06-01 학습 및 평가 세트

앞의 포스트를 통해 우리는 일반화를 하기 위해서는 주어진 데이터 세트를 두 개의 하위 세트(학습 세트와 테스트 세트)로 나눠야 한다고 했습니다. 학습 세트와 데이터 세트의 개념학습 세트(Training Set): 모델을 학습시키기 위한 데이터 세트의 일부분테스트 세트(Test Set): 모델을 테스트하기 위한 데이터 세트의 일부분그렇다면 주어진 데이터 세트를 학습 세트와 테스트 세트로 나눌 때 몇 대 몇의 비율로 나누는 것이 좋을까요? 데이터 분할 보통 학습 세트와 테스트 세트로 나눌 때 보통 8:2의 비율이 되게 데이터 세트를 분할 합니다. 이는 데이터 분석자의 편의에 따라 임의로 조절이 가능합니다. 테스트 세트는 반드시 다음의 두 가지 조건을 만족해야 합니다. 테스트 세트의 조건통계적으로 유의미한 결..

개발/Google MLCC 2018.08.13

05-01 일반화: 과적합과 일반화

과적합(Overfit)과 일반화(Generalization)아래의 같이 감기에 걸리 사람과 건강한 사람의 분포 데이터가 주어졌다고 가정하겠습니다. 이 데이터를 우리는 어떻게 분류할 수 있을까요? 과적합(Overfit)아래와 같이 감기걸린 사람과 건강한 사람을 정확하게 나누는 경계를 그을 수 있을 것입니다.정확하게 경게를 나눈다면 모델이 학습하는 동안에는 손실이 적지만, 새로운 데이터가 들어왔을 때 잘 예측을 하지 못하는 문제가 발생합니다. 이렇게 주어진 샘플을 필요이상으로 복잡하게 분류한 상태을 과적합하다라고 말합니다. 과적합한 모델: 현재 샘플에 필요 이상으로 정확한(복잡한) 모델 과적합은 모델이 새 데이터에 맞게 잘 일아래의 그림은 과적합 모델에 새로운 데이터가 들어왔을 때 예측이 어긋나는 경우가 발..

개발/Google MLCC 2018.08.13

03-03_손실 줄이기: 확률적 경사하강법(Stochastic Gradient Descent)

확률적 경사하강법(Stochastic Gradient Descent)만약 우리가 모든 데이터 세트를 가지고 모델을 학습 시킨다면 예측의 정확성은 높일 수 있으나, 매우 오랜 시간이 걸릴 것 입니다. 확률적 경사하강법은 랜덤으로 단 한 개의 데이터를 추출하여(배치 크기가 1) 기울기를 얻어 냅니다. 이러한 과정을 반복해서 학습하여 최적점을 찾아내는 것이 확률적 경사하강법입니다. Cf. 확률적(Stochastic): 기울기를 구하는데 필요한 한 개의 데이터가 무작위로 선택 됨 경사하강법과 확률적 경사하강법의 비교 경사하강법 확률적 경사하강법 1회의 학습에 사용되는 데이터 모든 데이터 사용 랜덤으로 추출된 1개의 데이터 사용(중복 선택 가능) 반복에 따른 정확도 학습이 반복 될 수록 최적해에 근접 학습이 반복..

개발/Google MLCC 2018.08.12

03-02_손실 줄이기: 학습률(Learning Rate)

학습률(Learning Rate)앞의 경사하강법에서 시작점에서 다음점으로 이동할 때 보폭(학습률) 만큼 이동한 점을 다음점으로 정한다고 하였습니다. 학습률인란, 현재점에서 다음점으로 얼만큼 이동할지, 다르게 말하면 모델이 얼마나 세세하게 학습을 할지를 말합니다. 학습률이 작다면 손실이 최적인 가중치를 찾는데 오랜 시간이 걸릴 것이며, 학습률이 너무 크다면 최적점을 무질서하게 이탈할 수도 있습니다.초매개변수(Hyperparameter)학습률과 같이 우리가 직접 조정하는 값을 초매개변수라 합니다. 우리는 직접 학습률을 여러 개 대입하여 가장 효율적이게 학습을 하는 학습률을 찾아야 합니다.

개발/Google MLCC 2018.08.12

03-02_손실 줄이기: 경사하강법Gradient Descent)

경사하강법(Gradient Descent)앞의 포스트에서 매개변수를 업데이트를 하는 과정에서 손실을 줄이기 위해 가중치와 편향 값을 수정한다고 하였습니다. 하지만 그냥 아무 값이나 넣는다면 최적화된 값을 찾는데 매우 오랜 시간이 걸릴 것입니다.경사하강법이란, 손실이 최소가 되는 최적의 가중치를 찾는 방법입니다. 먼저 함수의 기울기(경사)를 구하여 기울기가 낮은 쪽으로 계속 이동시켜서 극값에 이를 때 까지 반봅하는 작업을 반복하면 최적의 가중치를 을 수 있습니다. 경사하강법: 함수의 기울기(경사)를 구하여 기울기의 절댓값이 낮은 쪽으로 이동시켜 극값(최적값)을 찾는 방법 여기서 쓰이는 함수란, 손실이 최소가 되는 최적의 가중치를 구하기 위한 모든 w값의 손실을 나타내는 함수입니다. 이를 그래프로 그리면 아..

개발/Google MLCC 2018.08.12

03-01_손실 줄이기: 반복 방식

이번 포스트에서는 머신러닝 모델이 어떤 방식으로 손실을 줄이는지 다뤄보도록 하겠습니다. 머신러닝은 기본적으로 주어진 데이터를 여러번 학습하는 반복 학습 방식을 통해 예측의 정확성을 높입니다. 반복 방식머신러닝의 기본적인 학습 방법인 반복 방식은 입력된 특징(Feature)들을 임의의 가중치(Weight)와 편향(Bias)로 예측 값을 산출하여 실제 값(Label)과 비교하여 그 차이(Loss)를 0 또는 최소화가 되게 하는 가중치와 편향 값을 찾는 방식 입니다. 위의 그림은 머신러닝에서 반복 방식이 동작하는 과정을 나타낸 그림입니다. 그 과정을 풀이하면 다음과 같습니다.임의의 가중치과 편향이 설정된 모델(Model)에 특징(Feature)를 넣습니다. 모델의 예측 함수(y' = b + wx)를 통해 산출..

개발/Google MLCC 2018.08.12