June AI

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

Deep Learning 16

11-4 분류: ROC, AUC

ROC 곡선(Receiver Operating Characteristic Curve)ROC 곡선(Receiver Operation Characteristic Curve: 수신자 조작 특성 곡선)은 모든 분류 임계값(Classification Thresholds)에서 분류 모델의 성능을 보여주는 그래프입니다. 이 곡선은 두 매개변수를 갖습니다.TPR(True Positive Rate): 참 양성 비율(= 재현율) => TPR = TP / (TP + FN) FPR(False Positive Rate): 허위 양성 => FPR = FP / (FP + TN) ROC 곡선은 다양한 분류 임계값의 TPR과 FPR을 나타냅니다. 분류 임계값을 낮추면 더 많은 데이터가 양성으로 분류되어 거짓 양성(FP)과 참 양성(T..

개발/Google MLCC 2018.09.07

11-3 분류: 정밀도와 재현율(Precision and Recall)

분류 모델을 평가하는 방법으로 정확도(Accuracy) 외에도 정밀도와 재현율 이란 것이 있습니다. 이에 대한 이해를 도울 수 있는 좋은 자료를 아래의 링크로 첨부하겠습니다. 한 번 읽어 보시는 걸 추천드립니다! 링크: 조대협의 블로그 - 분류모델(Classification)의 성능 평가 이 포스트에서는 Machine Learning Crash Course에서 다루는 정밀도와 재현율에 관한 내용을 정리하도록 하겠습니다. 정밀도(Precision)정밀도(Precision): 양성으로 식별된 사례 중 실제로 양성이었던 사례의 비율은 어느 정도인가요? 정밀도는 다음과 같이 정의 됩니다.(거짓 양성이 없을 경우 모델의 정밀도는 1.0) 그럼 이번에는 이전 포스트에서 다룬 예시를 통해 정밀도를 계산해 보도록 하겠..

개발/Google MLCC 2018.09.07

11-1 분류: 임계값(Threshold), 참(True)과 거짓(False), 양(Positive)과 음(Negative)

이번 포스트에서는 분류 작업에 로지스틱 회귀를 사용하는 방법과 분류 모델의 효과를 평가하는 방법에 대해서 알아보겠습니다. 로지스틱 회귀 모형에서 특정 이메일에 관해 스팸일 확률이 0.95가 반환 되었다면 이 이메일은 스팸일 가능성이 매우 높은 메일로 예측 할 수 있습니다. 이와 반대로 동일한 로지스틱 회귀 모형에서 예측 점수가 0.03인 이메일이라면 이 이메일은 스팸이 아닐 가능성이 높습니다. 그렇다면 만약 스팸이 확률이 0.6인 이메일은 어떻게 처리해야 할까요? 임계값(Threshold)우리는 이렇게 애매한 값을 이분법으로 확실히 분류를 할 기준이 필요로 합니다. 이 기준을 바로 임계값(Threshold)라고 합니다. 로지스틱 회귀 값을 이진 카테고리에 매핑(Mapping)하려면 분류 임계값(Class..

개발/Google MLCC 2018.09.06

10-1 로지스틱 회귀(Logistic Regression): 확률 계산 & 로그 손실

앞서 우리는 선형 회귀를 통해 주어진 데이터가 연속적인 값일 경우 하나의 선으로 회귀시키는 예측 모델을 만들었습니다. 그런데 만약 주어지는 데이터가 범주형이거나 특정 분류로 나눠지는 데이터일 경우 어떻게 해야 할까요? 예를 들어서 동전이 앞면이 나올지 뒷면이 나올지, 아니면 내일 비가 올지, 맑을지, 구름이 낄지 등과 같이 수량이 아닌 확률과 같은 범주형으로 데이터가 주어지는 경우 처럼 말이죠. 이때 사용하는 방법이 바로 로지스틱 회귀(Logistic Regression)입니다. 로지스틱 회귀(Logistic Regression)로지스틱 회귀법은 주어진 데이터가 1, 2, ..., 100 처럼 연속적인 값이 아닌, 동전이 앞면이 나올 확률, 내일 비가 올 확률과 같이 특정 분류로 나누어 지거나, 확률적으..

개발/Google MLCC 2018.09.06

09-2 단순성을 위한 정규화: 람다

앞의 포스트에서 우리는 L2 정규화를 통해 모델이 학습 데이터에 과적합 되는 것을 막는 방법을 배웠습니다. 그럼 우리는 어느정도 정규화를 해야 좋은 모델을 얻을 수 있을까요? 이번 포스트에서는 정규화 항에 람다(Lambda)라는 정규화율(Regularization Rate)을 곱하여 정규화의 정도를 조정하는 것에 대해서 알아보도록 하겠습니다. 람다(Lambda)람다(Lambda)란 얼마나 정규화를 할지 조정하는 정규화율(Regularization Rate)입니다. 만약 람다 값을 높인다면 정규화 효과가 강화되어 아래와 같이 정규 분포 모양의 그래프가 그려집니다. 람다 값이 높은 모델 가중치 분포 그래프를 보면, 가중치의 평균 값에 가장 많은 빈도가 발생하는 뚜렷한 정규 분포의 모양을 나타내는 것을 알 수..

개발/Google MLCC 2018.09.06

09-1 단순성을 위한 정규화: 구조적 위험 최소화 & L2 정규화

이번 포스트에서는 우리가 학습시키는 모델이 주어진 데이터 세트에만 과적합 되는 것을 방지하기 위해 정규화를 하는 방법에 대해서 다뤄보도록 하겠습니다. 위의 그림은 반복 학습 횟수에 대해 학습 세트(Training Data)와 검증 세트(Validation Data)의 손실을 일반화된 곡선으로 보여줍니다. 이를 보면, 학습 손실은 점차 감소하지만 검증 손실은 어느 순간부터 증가하는 것을 나타냅니다. 즉, 이 일반화 곡선은 모델이 학습 세트에 과적합되어 있다는 것을 의미합니다. 정규화를 통한 과적합 줄이기정규화란, 모델의 복잡도에 패널티를 줌으로써 과적합을 줄이는 것을 말합니다. 정규화 전략에는 크게 2가지가 있습니다.조기중단: 학습 데이터에 대해 손실이 특정 값에 수렴하기 전에 학습을 중단하는 방법 => ..

개발/Google MLCC 2018.09.05

08-3 표현: 정제(Cleaning Data)

ML 엔지니어에게는 유저로 부터 수집된 여러 데이터들이 주어집니다. 이러한 데이터들 중에는 유저의 실수 혹은 서버의 오류와 같은 문제들로 인해 나쁜 데이터가 있을 수 있습니다. ML 엔지니어들은 일반적인 데이터의 상황과 다른 나쁜 데이터를 찾아 정제하는 과정을 수행하여야 합니다. 이번 포스트에서는 나쁜 데이터를 정제하는 방법에 대해서 다뤄보도록 하겠습니다. 특성 값 조정(Scaling feature values)조정(Scaling)이란, 수집된 특성 값을 0~1 또는 -1~+1의 표준 범위로 변화하는 것을 말합니다. 만약 특성이 하나인 데이터 세트에서는 조정(Scaling)하는 과정이 불필요하겠지만, 데이터 세트가 여러 특성으로 구성되어 있다면 특성 조정(Feature Scaling)을 통해 다음과 같은..

개발/Google MLCC 2018.09.03

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

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

개발/Google MLCC 2018.08.26

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