반응형

Linear Regression의 Hypothesis 와 cost

regression:

예: 몇시간 공부해서 얼마 나오는지 ?

 

값을 예측해준다.

 

학습 데이터 

x y
1 1
2 2
3 3
4 4

 

hypothesis :

linear regression로 가설한다.

H(x) = Wx +b

W, b에 따라 선의 모양이 달라진다.

 

Cost function , loss function

H(x) -y => (H(x) -y ) ^ 2 을 한다.

+- 통일

차이가 클때 penalty를 많이 준다.

 

cost function 은 W,b 를 구하는 것이다.

반응형
반응형

학습 추가 진행

train_data, test_Data로 나누어서 하기

 

model.fit() batch_size

batch_size GPU와 관련된 옵션이다.

한번에 GPU에 보내는 데이터의 수이다.

 

batch_size 1일 경우 1개를 보내고, 1개의 결과를 받고, 1번 웨이트를 업데이트 한다.

batch_size 10일 경우 10개를 보내고, 10개의 결과를 한 번에 받고, 1번 웨이트를 업데이트 한다.

batch_size를 키우면, 시간은 줄어들지만 학습이 빠르게 진행되지 않는다.

 

 

batch_size를 키우면, 시간은 줄어들지만 학습이 빠르게 진행되지 않는다.

 

loss 떨어지는 추세라면 조금  학습해도

학습의 진행 판단 여부는 loss 추세를 보고 결정

test loss 그래프 기울기가 양으로 바뀔  overfitting 이므로  학습을 진행하면  

hooking : test loss 어느 정도 발생하는지 스스로 추세 파악, overfitting 발생할  스스로 멈춤

 

model fit

history = model.fit(X_train, y_train, epochs=1000, verbose=1, batch_size=20, validation_data=(X_test, y_test))

모델  안에 들어가는 옵션핏하면서 validation test_x, test_y 데이터로

# (좌측은 train data, 우측은 test data)

따로 validation 데이터를 주지 않고, test 데이터로 준 것의 일부를 validation에 사용.

validation에 사용된 데이터는 학습에 사용되지 않는다.

history = model.fit(X_train, y_train, epochs=1000, verbose=0, batch_size=20, validation_split=0.1)

 

 

epoch가 적어도 데이터 수가 많으면 학습 잘된다.

epoch 수보다 데이터 수 많은 것이 더 중요

데이터 수가 적으면 overfitting 발생 가능성 (overfitting이 빨리 오면 성능이 안 좋음 - 학습은 되나 원하는 성능을 못 얻을 것)

->> 데이터 확보의 중요성

 

학습 시에 데이터를 섞어 주지 않으면 특정 데이터 순서로 학습이 일어나 편향이 생길 수있다.

shuffle=True

 

Normalization/Standardization

입력이 여러 차원일 때 각 차원의 입력을 동일한 스케일로 맞추어주면, 학습이 빠르게 진행된다고 한다.

·       Normalization : 전체 데이터를 0~1로 변환해준다.

·       Standardization : 평균을 0, 표준편차를 1이되도록 변환해 준다.

·       반드시 해야 할 것 : noramlization, 결측치 처리, outlier 처리

·       수렴 속도 차이 발생

Normalization - 데이터  정규화 한다.

 

 

Overfitting 처리

(오버피팅 완화)

  • DropOut
  • BatchNormalization
  • Regularization

model.add(BatchNormalization()) 

 

 

Regression, 회귀

·       임의의 값 출력하도록.

 

classification, 분류

 

normolization을 하는게 좋다. 하지만 정확하게 하는 것이 좋다.

학습이 되며 0~1 normalization했을 보다 살짝 빠르다

 

딥러닝 장단점

        장점 : 대상 함수의 내부를 몰라도 된다.

        단점 : 비싸다

많은 데이터, 많은 연산량

 

ML DL의 선택

        기존의 방법으로 이미 풀린 문제는 ML

        기존의 방법으로 못풀었는데 데이터가 있으면 DL

바둑, 얼굴인식, 물체인식, 음성인식, 번역

 

딥러닝의 큰 단점

        입출력 데이터 쌍을 구하기 어렵다.

        특히 출력 데이터. 레이블링 데이터(labeling data)

 

Cost Function 종류

        MSE(Mean Squared Error)

        CE(Cross Entropy)

        KL-Divergence

        MLE(Maximum Likelihood Estimation)

 

Optimizer 종류

        오차에 대하여 w를 업데이트 시키는 알고리즘들.

        GD(Gradient Descent)

        Batch GD

        Mini-Batch GD

        SGD(Stochastic GD)

        Momentum

        AdaGrad

        AdaDelta

        Adam

        RMSprop

 

Overfitting 방지법 종류

        DropOut

        BN(Batch Normalization)

        Regularization

        Data Augmentation

 

 

학습율

가중치가 변경되는 정도

 

 

SoftMax

        activation function중의 하나.

        최종 출력층에 사용되며, 여러개의 출력 노드의 합 중에 비중의 값으로 나타낸다.

 

Gradient Descent

        함수가 학습될 바를 정의한 비용함수의 값이 최소로 하기 위해 가중치를 업데이트 하기 위한 알고리즘

 

BackPropagation 역전파

        출력된 값과 원하는 값과의 차이를 가지고 그 전의 w 값들을 변경하는 알고리즘.

        뒤에서부터 그 오차의 값이 전파된다는 이름.

        실제 변경되는 값의 크기는 GD로 결정됨.

반응형

'Study > Deep learning' 카테고리의 다른 글

딥러닝-3  (0) 2020.11.26
딥러닝-1  (0) 2020.11.23

+ Recent posts