반응형

tensorflow 설치 및 버전 확인

pip install -q tensorflow==2.0.0-beta1

import tensorflow as tf

print(tf.__version__)

 

 

keras fashion_mnist data load

fashion_mnist = keras.datasets.fashion_mnist

(train_images, train_labels), (test_images, test_labels) = fashion_mnist.load_data() 

class_names = ['T-shirt/top', 'Trouser', 'Pullover', 'Dress', 'Coat','Sandal', 'Shirt', 'Sneaker', 'Bag', 'Ankle boot']

 

normalization data

train_images = train_images / 255.0

test_images = test_images / 255.0

 

 

Deep Learning

DNN

CNN

RNN

GAN

 

분류: 사람이 분류해야 한다.

기준을 찾는 것이 목적이다.

 

조정 값 = 오차 * 입력값 * 학습율

 

비용 함수는 모델을 구성하는 가중치(w)의 함수이다.

정답을 찾아가는 방향으로 한다.

 

경사 하강법(Gradient Descent)

수학에서 경사를 구하는 것 이 미분이다 . 경사 하강법을 구하는 것이다.

 

 

학습이 안되는 원인 2개는

1) 코드 가 잘못되거나 잘못 작성하거나

2) 데이터가 잘 못 됬다.

 

 

모든 데이터는 모두 오차가 있다.

실제값하고 차이가 날 수 밖에 없다.

코드를 통해서 데이터 전처리 했는데 오류때문에 숫자가 틀려지고

튜닝을 해야 한다. 어떤것 하면 좋은 값이 나오는지

 

신경명

퍼셉트론(Perceptron)

 

MLP(Multi Layer Perceptron)

입력과 출력 사이에 층이 더 있다.  ->hidden layer

 

인공지능(AI; Artificial Intelligence)

머신러닝(ML; Machine Learning)

딥러닝(DL; Deep Learning) 

 

 

딥런닝하려고 하는 것은 기존의 방법으로 안풀리기 때무에

딥런닝하고 머신러닝은 서로 보완하는 방법

 

딥런닝 : 자연어 처리 바둑 , 비전

 

역전파, 경사하강법

역전파(bp, back propagation) 알고리즘

경사하강법(gd, Gradient descent) 알고리즘

 

 

가중치를 업데이트 하기 위해 사용되는 알고리즘

 

 

tensorflow, keras,pytorch

pytorch최근에는 많이 사용한다.

 

딥러닝의 큰 단점

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

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

 

비지도 학습, 강화 학습

        레이블링 데이터 문제를 해결하기 위한.

        비지도 학습 : 모델 구조를 통해 레이블링 데이터 없이. GAN

        강화 학습 : 환경과 동적으로 연동하여 레이블링 데이터를 취득.

 

Cost Function 종류

        MSE(Mean Squared Error)

        CE(Cross Entropy)

        KL-Divergence

        MLE(Maximum Likelihood Estimation)

 

Optimizer 종류

cost function 이 있으면 이동하는 것

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

        GD(Gradient Descent)

        Batch GD

        Mini-Batch GD

        SGD(Stochastic GD)

        Momentum

        AdaGrad

        AdaDelta

        Adam

        RMSprop

 

 

Overfitting 방지법 종류

        DropOut

        BN(Batch Normalization)

        Regularization L1, L2

        Data Augmentation -> 데이터의 양을 많이 늘린다.

 

영상은 증강 시키는데 자연어 등 처리는 증가 시키는 것이 어렵다.

 

 

학습율

        가중치가 변경되는 정도

 

활성화 함수 종류

SoftMax 최대 1 최소 0으로 하고 싶다. 합쳐서 1이다.

 

 

relu  기본인데

다른 것 사용하면 학습이 늦어진다. 뭐 사용해도 관계없지만 실습시간의 문제가 있다.

컴파일 : 모델  optimizer + loss

 

 

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

verbose = 0 직접 결과만 나온다.

verbose = 1 인 경우는 학습 과정이 나온다.

 

노드 개수와 레이어 개수는 optimizer , activation -> hypper parameter

architecture이 결정한다.

결론은 가이드가 없다.

 

 

그전에 grid search도 있었다.

그리드로 하는 것이다. 이것으로 해도 잘 안된다.

그래서 가이드가 없다.

 

 

값이 다른 것은 시작의 weigh가 다르다.

시작을 하면 메모리에서 값을 정한다.  데이터 초기화 하지 않아서

초기화 값이 다 달라서

 

seed는 데이터 섞을 때 seed

노드를 쭐이는 방향으로 한다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형

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

딥러닝-3  (0) 2020.11.26
딥러닝-2  (0) 2020.11.26

+ Recent posts