머신러닝 18

Lab-07-3-2 application and tips

Sample Data Fashion MNIST / IMDB / CIFAR-100 train과 test 이미지 로드 256 크기의 이미지들을 0 - 1 사이로 정규화 학습을 위해 모델 표준화 컴파일 하기 위해: optimizer, loss, metrics 선언 모델 5번에 걸쳐 훈련시킴 test 이미지 넣어서 어떻게 출력되는지 확인. - 자연어 처리 위한 데이터 Internet Movie DataBase - Text Classification 영화 평 분류 잘 하기 위한 처리 기법 worst - 0 (부정) brilliant - 1 (긍정) 단어 10000개 선언 자연어 같은 경우 전처리 과정이 중요. 공백을 벡터로 선언, 시작 값, 모르는 값, 사용되지 않은 값 등을 벡터로 설정하는 전처리를 통해 학습 ..

Lab-07-3-1 application and tips

Data sets Training / Validation / Testing Evaluating a hypothesis Anomaly Detection Learning Online vs Batch Fine tuning Efficient Models 모델 만드는 과정에서 데이터 구성이 가장 중요! 모델 만들 때 훈련과 평가를 거침. 데이터 구성을 왼쪽처럼 / 오른쪽처럼. 왼쪽: 평가할 때 학습에 없는 얼굴들이 들어감. => 제대로 된 평가 할 수 없게 됨! 오른쪽: 평가를 통해 해당하는 얼굴이 있었는지 판별 가능해진다. 데이터 구성은 우측 이미지처럼 잘 구성해야 한다! 학습을 위한 데이터와 평가를 위한 데이터를 잘 고른 후 모델의 성능을 높이는 작업을 해야한다. 데이터 바탕으로 여러 레이어를 만들어서 네트워..

Lab-07-2-1 application and tips

학습이 반복될수록 모델이 가설에 맞춰져가면서 Accuracy가 높아지고 평가 값이 높아지게 된다. 이때 학습 모델이 쓰이지 않은 데이터로 테스트를 하게 되면 오히려 Test는 떨어지는 경향을 보인다. 따라서 Test 데이터와 평가 데이터가 모두 잘 들어맞는, 최고의 Accuracy를 보이는 것이 가장 중요하다. High bias: 데이터가 편향된, 학습이 덜 된 underfit 상태가 있다. High variance: 데이터에만 맞는 모델, 즉 변화량이 많은 overfit 상태가 있다. 좌: 테스트 데이터 / 가운데: 평가 데이터 / 우: 테스트 데이터 테스트와 평가 데이터 모두에 잘 적용이 되어야 하는데 주로 테스트 데이터에만 잘 적용되는 경우가 많고, 이를 overfitting 상태라고 한다. 해결방..

Lab-07-1 application and tips

Learning rate 값을 어떤 식으로 조정해야 하는가? 학습 시킬 data에 대해 어떻게 preprocesssing 할 지? + 그 기법들 학습 시에는 잘 되었지만, 새로운 데이터에서는 잘 안 될 때 = Overfitting Learning rate = Gradient = 기울기 learningrate와 기울기의 연관 관계에 대하여 조절을 통해 최적의 cost를 지닌 모델을 찾는다. 텐서플로우에서 loss_value = cost 가설 값과 실제 값의 비교를 통해 도출 tape.gradient를 통해 업데이트한다. 어떤 learning rate 쓸 지 Optimizer 함수를 통해 설정. gradient: 각 위치별로 기울기 값이 나옴 vs learning rate: 한 번에 얼만큼 이동할 지 / 어..

Lv1. 의사결정회귀나무로 따릉이 데이터 예측하기

데이터 다운로드 #데이터 다운로드 링크로 데이터를 코랩에 불러옵니다. !wget 'https://bit.ly/3gLj0Q6' import zipfile with zipfile.ZipFile('3gLj0Q6',⸱'r') as existing_zip: existing_zip.extractall('data') 라이브러리 불러오기 # Pandas 와 Scikit-learn 라이브러리를 불러오세요 import pandas as pd from sklearn.tree import DecisionTreeRegressor 데이터 불러오기 # train.csv 와 test.csv 를 DataFrame 클래스로 불러오세요 train = pd.read_csv('data/train.csv') test = pd.read_csv(..

Lab-06-2 Softmax Classifier Animal Classification

동물 데이터를 분류하면서 이전 방식들과 달리 softmax에 다양한 추가 기능 활용하여 구현해보자. hypothesis가 아닌 logits 값을 input으로 받음! Sample Dataset 동물의 특징을 추출하여 분류 (ex. 다리의 개수) 데이터는 ','로 나눔. 데이터 슬라이싱함. tf.one_hot 기능을 통해 y 데이터에 one_hot을 적용한다. 이때 바로 적용을 하면 에러가 나는데, 이유는 ohe_hot은 랭크가 N이면 output은 N+1이 돼야 한다. 따라서 바로 적용을 하면 one hot shape이 2차원에서 한 차원이 추가되어 3차원인 (?, 1, 7)이 되는데, 이는 원하는 shape이 아니다. 이를 해결하기 위해 tf.reshape 함수를 통해 shape을 하나 줄인다. 최종 ..

Lab-06-1 Softmax Classifier

one hot coding: 특정 부분에만 표기를 해주고 나머지는 0으로 표기 Softmax: 인물, 동물과 같이 이진분류보다 더 많이 분류할 때 많이 쓰임. softmax 통하면 출력값이 확률로 변함. 전체 확률 값의 총합은 반드시 1이 되어야 함. Gradient Function을 통해 cost값 update: cost값을 바탕으로 모델의 파라미터가 얼마나 변했는지 알려준다. 이때의 variables는 [W, b]값이다. Train: 2000번 반복 Prediction: 학습이 끝난 후 가장 높은 확률값을 a로 설정한다. 이 과정은 argmax 함수를 통해 선정한다. 출력값을 확인해보면 제일 마지막 출력 값에 0번째에서 가장 높은 값이 출력되면서 정상 작동한 것을 나타낸다. 출처: https://yo..

Lec 6-1 - Softmax Regression: 기본 개념 소개, Lec 6-2: Softmax classifier 의 cost함수

기존 함수의 단점: return값이 실수 값이 되기 때문에 binary classification에서 가파른 함수가 된다. => g(z) 함수(g(z) = 1 / 1+e^-2)가 큰 수를 압축해주어 0과 1 사이의 값으로 바꾸어주어 보완. Softmax 함수의 결과 값의 결과가 0~1 사이의 값 전체의 sum이 1이다. (각각의 값을 확률로 봄) Cost function: 실제의 값과 hypothesis와 차이가 얼마? => Cross-Entropy function으로 확인! 출처: https://youtu.be/MFAnsx1y9ZI

Lab-05-2 Logistic Regression

θ = w 좌측 그림의 랜덤한 w 값을 조절하여 cost를 0으로 만들어 우측 그림의 최적의 값으로 만드는 것. convex(구불구불한 그래프 형태) 값이어야 우리가 원하는 값을 가질 수 있음. 같은 로그 함수를 y가 1인지 0인지에 따라 반전시키고, 이 두 함수를 합친 식이 cost 함수이다. 이를 Tensorflow의 reduce 함수를 통해 차원을 낮추어 값을 얻을 수 있다. convex 형태의 cost 함수로 어떻게 0에 다다르도록 최소화를 할 수 있는가? α: learning rate ∂/∂θ: gradient J(θ): cost 학습을 통해 경사를 따라 점점 내려가고, 지속적으로 업데이트 되는 모델 값을 토대로 결국 값을 찾을 수 있다. 출처: https://youtu.be/BrgA_KgLOe..