0. Generative model 중요한것 1. PixcelRNN/CNN 2. Variational Autoencoder 3. GAN Generative model? 주어진 트레이닝 데이터의 특징을 학습하여 트레이닝 데이터와 유사한 새로운 데이터를 생성하는데 목적이 있음 입력변수(latent variable) z로부터 결과물(image)를 만들어내는 모델 maximum likelihood(ML)를 바탕으로 학습을 하는 것 Maximum Likelihood method? 가장 큰 우도(likelihood)을 찾는 문제, 주어진 추정 계수로 관측값이 발생할 확률 Implicit density - model에 대해 틀을 명확히 정의하는 대신 확률 분포를 알기 위해 sample을 뽑는 방법 >>Markov C..
* 합성곱 계층(Convolutional Layer, Conv Layer) - MLNN(Multi-Layer Neural Network )의 문제를 해결하고자 만들어진 것이 합성곱 계층 - 필기체나 MNIST 데이터 같은 이미지 데이터는 일반적으로 채널, 세로, 가로 이렇게 3차원으로 구성된 데이터 - Affine 계층에서는 이 3차원 데이터를 1차원 데이터(784=28*28)로 바꿔 입력했지만 합성곱에서는 3차원 데이터(1, 28, 28)를 입력하고 3차원의 데이터로 출력하므로 형상을 유지 - CNN에서는 이러한 입출력 데이터를 특징맵(Feautre Map) (1) 합성곱 계층 – 연산 (2) 합성곱 계층 - 패딩(Padding) - 패딩(Padding)은 합성곱 연산을 수행하기 전, 입력데이터 주변을..
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 import tensorflow as tf import numpy as np sess = tf.Session() sess.run(tf.global_variables_initializer()) x = [i for i in range(10)] print(x) #list 생성 #마지막 차원에 2개의 값으로 고정된 2차원 행렬을 만든다 y = tf.reshape(x, shape = [-1,2]).eval(session=sess) print("y.shape ", y.shape) # (5, 2) #마지막 차원에 5개의 값으로 고정된 2차원 ..
추후작성예정
MNIST 데이터베이스 (Modified National Institute of Standards and Technology database) - 손으로 쓴 숫자들로 이루어진 대형 데이터 베이스 - 기계학습분야의 트레이닝 및 테스트에 널리 사용된다 유명한 MNIST 데이터를 사용한 코드이다. 인터넷에는 분류만 많이 있지 regression은 없어 구현해 보았다. 결과값 [[6.7332497]] 눈에 보이는 값 7 ====> 오차가 별로 나지 않는다. 전체코드 github https://github.com/YoujeongPark/mnist_regression_ex YoujeongPark/mnist_regression_ex Contribute to YoujeongPark/mnist_regression_ex ..
CNN을 통해서 기본적인 regression을 하는 방법을 설명하겠다. 기본적으로 python에서 숫자를때 차원을 제대로 고려하는 것이 중요하다. 데이터 셋은 다음과 같다. 1 2 3 # define dataset X = array([[10, 20, 30], [20, 30, 40], [30, 40, 50], [40, 50, 60]]) y = array([40, 50, 60, 70]) Colored by Color Scripter cs 위의 데이터 셋은 차원을 아는 것이 중요하다. X데이터의 경우 차원이 (4,3,1) Y데이터 경우 차원이 (4,)이 도출된다. 왼쪽 4라는 숫자를 맞춰주어야 한다. 1 2 print("X.shape", X.shape) #X.shape (4, 3, 1) print("Y.sha..
케라스를 이용하여 하는 mlp 기본 예제 코드이다. 기본적인 데이터는 다음과 같다. X : [10,20,30] -> Y : [40,50] 1 2 X = array([[10, 20, 30], [20, 30, 40], [30, 40, 50], [40, 50, 60]]) y = array([[40, 50],[50,60],[60, 70],[70,80]]) cs 100개의 뉴런을 사용하여 output을 두개 도출한다. 이때 데이터는 3개이기 때문에 input_dim = 3으로 도출되고 Dense(2)로 설정한다. optimizer은 adam으로 설정하였고 회귀이기 때문에 loss는 mse로 설정하였다. 1 2 3 4 5 6 7 # define model model = Sequential() model.add(De..